parent
895904251f
commit
4b829fa9d1
|
|
@ -59,9 +59,8 @@ options:
|
||||||
description: Whether or not to fail if a group or variable is not found.
|
description: Whether or not to fail if a group or variable is not found.
|
||||||
compose:
|
compose:
|
||||||
description: compose variables for Ansible based on jinja2 expression and inventory vars
|
description: compose variables for Ansible based on jinja2 expression and inventory vars
|
||||||
default: False
|
|
||||||
required: False
|
required: False
|
||||||
type: boolean
|
type: dict
|
||||||
keyed_groups:
|
keyed_groups:
|
||||||
description: create groups for plugins based on variable values and add the corresponding hosts to it
|
description: create groups for plugins based on variable values and add the corresponding hosts to it
|
||||||
type: list
|
type: list
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -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
|
||||||
|
|
@ -58,6 +58,20 @@ def netbird_api_multigroup():
|
||||||
return mock_netbird_api
|
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):
|
def test_missing_access_token_lookup(inventory):
|
||||||
loader = DataLoader()
|
loader = DataLoader()
|
||||||
inventory._options = {'api_key': None, 'api_url': None}
|
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 inventory.inventory.groups is not None
|
||||||
assert 'All' in inventory.inventory.groups
|
assert 'All' in inventory.inventory.groups
|
||||||
assert 'Development' 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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue