Compare commits

...

6 Commits
0.1.6 ... main

Author SHA1 Message Date
Mark Horninger 90725d8998
Create FUNDING.yml 2024-05-07 15:31:33 -04:00
spam-n-eggs a221973f1e Update galaxy.yml version to 0.2.0 2024-04-03 16:15:44 +00:00
spam-n-eggs 38f3f4c7f4 Update CHANGELOG 2024-04-03 16:15:40 +00:00
Mark Horninger 4b829fa9d1
Fixes #28 - Tested with a separate inventory. (#29) 2024-04-03 12:08:50 -04:00
Mark Horninger 895904251f
Update README.md (#26)
Documentation updates which fix: 
* #25 
* #20
2024-03-11 13:53:58 -04:00
spam-n-eggs 6243672014 Update CHANGELOG 2024-03-11 02:44:08 +00:00
9 changed files with 154 additions and 6 deletions

2
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1,2 @@
# These are supported funding model platforms
open_collective: dominion-solutions-foss/projects/ansible-netbird

View File

@ -43,7 +43,7 @@ body:
id: ansible-version
attributes:
label: Ansible Version
description: What version of Laravel are you running? Please be as specific as possible
description: What version of Ansible Core are you running? Please be as specific as possible
placeholder: 2.16.4
validations:
required: true
@ -57,6 +57,7 @@ body:
- macOS
- Windows
- Linux
- BSD
- type: textarea
id: notes
attributes:

View File

@ -2,6 +2,33 @@
All notable changes to this project will be documented in this file.
## Bug Fixes - Parameters - 2024-04-03
### Bug Fixes
Thanks to @ipsecguy for pointing out that there was an issue with the compose variables.
- #28 - The compose parameter is updated to accept a `dict()` now.
- The documentation has been improved as well.
- Some small issues around creating bugs / questions have been resolved.
### What's Changed
* Update README.md by @spam-n-eggs in https://github.com/dominion-solutions/ansible-netbird/pull/26
* Fixes #28 - Tested with a separate inventory. by @spam-n-eggs in https://github.com/dominion-solutions/ansible-netbird/pull/29
**Full Changelog**: https://github.com/dominion-solutions/ansible-netbird/compare/0.1.6...0.2.0
## Fixed an accidental bug in the last release - 2024-03-11
Bug was accidentally released in the last release. Fixed.
### What's Changed
* Mjh/fix issues with message by @spam-n-eggs in https://github.com/dominion-solutions/ansible-netbird/pull/24
**Full Changelog**: https://github.com/dominion-solutions/ansible-netbird/compare/0.1.5...0.1.6
## Small Bugfixes - 2024-03-11
Minor fixes including:

View File

@ -49,7 +49,7 @@ strict: No
---
plugin: dominion_solutions.netbird.netbird
api_key: nbp_this_is_a_fake_api_key
api_url: https://netbird.example.com/api/v1
api_url: https://netbird.example.com/api/
netbird_connected: True
```
@ -59,7 +59,7 @@ This example gets all peers in the _All_ group and builds the additional _connec
---
plugin: dominion_solutions.netbird.netbird
api_key: nbp_this_is_a_fake_api_key
api_url: https://netbird.example.com/api/v1
api_url: https://netbird.example.com/api/
netbird_connected: False
leading_separator: No
netbird_groups:

View File

@ -8,7 +8,7 @@ namespace: dominion_solutions
name: netbird
# The version of the collection. Must be compatible with semantic versioning
version: 0.1.6
version: 0.2.0
# The path to the Markdown (.md) readme file. This path is relative to the root of the collection
readme: README.md

View File

@ -59,9 +59,8 @@ options:
description: Whether or not to fail if a group or variable is not found.
compose:
description: compose variables for Ansible based on jinja2 expression and inventory vars
default: False
required: False
type: boolean
type: dict
keyed_groups:
description: create groups for plugins based on variable values and add the corresponding hosts to it
type: list

View File

@ -0,0 +1,74 @@
[
{
"accessible_peers_count": 1,
"approval_required": false,
"city_name": "",
"connected": false,
"connection_ip": "",
"country_code": "",
"dns_label": "apple.netbird.cloud",
"geoname_id": 0,
"groups": [
{
"id": "3aBcD4eF5gHiJ6kLmNoP",
"name": "All",
"peers_count": 2
},
{
"id": "2j3k4l5m6n7o8p9q0r1",
"name": "Test Group With Spaces",
"peers_count": 1
}
],
"hostname": "apple",
"id": "2j3k4l5m6n7o8p9q0r1",
"ip": "10.10.10.123",
"kernel_version": "",
"last_login": "2024-02-10T22:01:27.744131502Z",
"last_seen": "2024-02-11T03:21:42.202104672Z",
"login_expiration_enabled": true,
"login_expired": false,
"name": "apple",
"os": "Linux Mint 21.3",
"ssh_enabled": false,
"ui_version": "netbird-desktop-ui/0.25.7",
"user_id": "auth0|abc123xyz4567890defg",
"version": "0.25.7"
},
{
"accessible_peers_count": 1,
"approval_required": false,
"city_name": "New York",
"connected": true,
"connection_ip": "146.123.45.67",
"country_code": "US",
"dns_label": "banana.netbird.cloud",
"geoname_id": 1234567,
"groups": [
{
"id": "2j3k4l5m6n7o8p9q0r1",
"name": "Development",
"peers_count": 1
},
{
"id": "3aBcD4eF5gHiJ6kLmNoP",
"name": "All",
"peers_count": 2
}
],
"hostname": "banana",
"id": "hkwJPXNUmGywCLo5S8Wg",
"ip": "10.10.10.124",
"kernel_version": "",
"last_login": "2024-02-02T11:20:05.934889112Z",
"last_seen": "2024-02-24T02:59:35.324496386Z",
"login_expiration_enabled": false,
"login_expired": false,
"name": "docker-manager",
"os": "Alpine Linux 3.19.1",
"ssh_enabled": false,
"ui_version": "",
"user_id": "",
"version": "0.25.5"
}
]

View File

@ -0,0 +1,18 @@
---
plugin: dominion_solutions.netbird.netbird
api_key: nbp_this_is_a_fake_api_key
api_url: https://netbird.example.com/api/v1
ip_style: plain
netbird_connected: False
leading_separator: No
netbird_groups:
- "Test Group With Spaces"
groups:
connected: connected
ssh_hosts: ssh_enabled
strict: No
keyed_groups:
compose:
ansible_ssh_host: label
ansible_ssh_port: 22

View File

@ -58,6 +58,20 @@ def netbird_api_multigroup():
return mock_netbird_api
@pytest.fixture(scope="module")
def netbird_api_spaces_in_group():
mock_netbird_api = NetbirdApi(None, None)
response_data = []
with open('tests/unit/module_utils/inventories/fixtures/peers_spaces_in_group.json') as peers_file:
peers_map = json.load(peers_file)
for data in peers_map:
response_data.append(Peer(data['hostname'], data['dns_label'], data['id'], data))
mock_netbird_api.ListPeers = MagicMock(return_value=response_data)
return mock_netbird_api
def test_missing_access_token_lookup(inventory):
loader = DataLoader()
inventory._options = {'api_key': None, 'api_url': None}
@ -137,3 +151,16 @@ def test_use_ip_address(inventory, netbird_api_multigroup):
assert inventory.inventory.groups is not None
assert 'All' in inventory.inventory.groups
assert 'Development' in inventory.inventory.groups
def test_use_group_with_spaces(inventory, netbird_api_spaces_in_group):
loader = DataLoader()
path = 'tests/unit/module_utils/inventories/fixtures/spaces_in_group.netbird.yml'
inventory._build_client = MagicMock()
inventory.client = netbird_api_spaces_in_group
inventory.parse(InventoryData(), loader, path, False)
assert inventory.inventory is not None
assert inventory.inventory.hosts is not None
assert inventory.inventory.groups is not None
assert 'All' in inventory.inventory.groups
assert 'Test Group With Spaces' in inventory.inventory.groups