Skip to content

Commit 13654fb

Browse files
authored
Merge pull request #34 from xlab-steampunk/inventory_plugin_bugfix
Inventory plugin bugfix - changed group and host name
2 parents 028a167 + 5edb705 commit 13654fb

File tree

6 files changed

+35
-40
lines changed

6 files changed

+35
-40
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
---
2+
bugfixes:
3+
- Updated host and group name in cloud.terraform.terraform_provider inventory plugin. (https://github.com/ansible-collections/cloud.terraform/pull/34)

plugins/inventory/terraform_provider.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -156,25 +156,25 @@ def read_config_data(self, path): # type: ignore # mypy ignore
156156

157157
def _add_group(self, inventory: Any, resource: TerraformRootModuleResource) -> None:
158158
attributes = TerraformAnsibleProvider.from_json(resource)
159-
inventory.add_group(attributes.group_name)
159+
inventory.add_group(attributes.name)
160160
if attributes.children:
161161
for child in attributes.children:
162162
inventory.add_group(child)
163-
inventory.add_child(attributes.group_name, child)
163+
inventory.add_child(attributes.name, child)
164164
if attributes.variables:
165165
for key, value in attributes.variables.items():
166-
inventory.set_variable(attributes.group_name, key, value)
166+
inventory.set_variable(attributes.name, key, value)
167167

168168
def _add_host(self, inventory: Any, resource: TerraformRootModuleResource) -> None:
169169
attributes = TerraformAnsibleProvider.from_json(resource)
170-
inventory.add_host(attributes.host_name)
170+
inventory.add_host(attributes.name)
171171
if attributes.groups:
172172
for group in attributes.groups:
173173
inventory.add_group(group)
174-
inventory.add_host(attributes.host_name, group=group)
174+
inventory.add_host(attributes.name, group=group)
175175
if attributes.variables:
176176
for key, value in attributes.variables.items():
177-
inventory.set_variable(attributes.host_name, key, value)
177+
inventory.set_variable(attributes.name, key, value)
178178

179179
def create_inventory(self, inventory: Any, state_content: TerraformShow) -> None:
180180
for resource in state_content.values.root_module.resources:

plugins/module_utils/models.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,18 +54,16 @@ def from_json(cls, json: TJsonObject) -> "TerraformRootModuleResource":
5454

5555
@dataclass
5656
class TerraformAnsibleProvider:
57-
host_name: str
57+
name: str
5858
groups: List[str]
59-
group_name: str
6059
children: List[str]
6160
variables: Dict[str, str]
6261

6362
@classmethod
6463
def from_json(cls, json: TerraformRootModuleResource) -> "TerraformAnsibleProvider":
6564
return cls(
66-
host_name=json.values.get("host_name", None),
65+
name=json.values.get("name", None),
6766
groups=json.values.get("groups", []),
68-
group_name=json.values.get("group_name", None),
6967
children=json.values.get("children", []),
7068
variables=json.values.get("variables", {}),
7169
)

tests/integration/targets/terraform_provider/ansible_provider.tf

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,36 +9,36 @@ terraform {
99
}
1010

1111
resource "ansible_host" "host" {
12-
host_name = "somehost"
12+
name = "somehost"
1313
groups = ["somegroup", "anothergroup"]
1414
variables = {
15-
host_hello = "from host!"
15+
host_hello = "from host!"
1616
host_variable = 7
1717
}
1818
}
1919

2020
resource "ansible_host" "anotherhost" {
21-
host_name = "anotherhost"
21+
name = "anotherhost"
2222
groups = ["somechild"]
2323
variables = {
24-
host_hello = "from anotherhost!"
24+
host_hello = "from anotherhost!"
2525
host_variable = 5
2626
}
2727
}
2828

2929
resource "ansible_host" "ungrupedhost" {
30-
host_name = "ungrupedhost"
30+
name = "ungrupedhost"
3131
}
3232

3333
resource "ansible_group" "group" {
34-
group_name = "somegroup"
34+
name = "somegroup"
3535
children = ["somechild", "anotherchild"]
3636
variables = {
37-
group_hello = "from group!",
37+
group_hello = "from group!",
3838
group_variable = 11
3939
}
4040
}
4141

4242
resource "ansible_group" "childlessgroup" {
43-
group_name = "childlessgroup"
43+
name = "childlessgroup"
4444
}

tests/integration/targets/terraform_provider/terraform.tfstateshow

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"schema_version": 0,
1414
"values": {
1515
"children": null,
16-
"group_name": "childlessgroup",
16+
"name": "childlessgroup",
1717
"id": "childlessgroup",
1818
"variables": null
1919
},
@@ -31,7 +31,7 @@
3131
"somechild",
3232
"anotherchild"
3333
],
34-
"group_name": "somegroup",
34+
"name": "somegroup",
3535
"id": "somegroup",
3636
"variables": {
3737
"group_variable": "11",
@@ -57,7 +57,7 @@
5757
"groups": [
5858
"somechild"
5959
],
60-
"host_name": "anotherhost",
60+
"name": "anotherhost",
6161
"id": "anotherhost",
6262
"variables": {
6363
"host_hello": "from anotherhost!",
@@ -83,7 +83,7 @@
8383
"somegroup",
8484
"anothergroup"
8585
],
86-
"host_name": "somehost",
86+
"name": "somehost",
8787
"id": "somehost",
8888
"variables": {
8989
"host_hello": "from host!",
@@ -107,7 +107,7 @@
107107
"schema_version": 0,
108108
"values": {
109109
"groups": null,
110-
"host_name": "ungrupedhost",
110+
"name": "ungrupedhost",
111111
"id": "ungrupedhost",
112112
"variables": null
113113
},

tests/unit/plugins/inventory/test_terraform_provider.py

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,8 @@ def test_add_host_groups_vars(self, inventory_plugin, mocker, resource):
9393
mocker.patch(
9494
"ansible_collections.cloud.terraform.plugins.inventory.terraform_provider.TerraformAnsibleProvider.from_json"
9595
).return_value = TerraformAnsibleProvider(
96-
host_name="host_name",
96+
name="host_name",
9797
groups=["group1", "group2"],
98-
group_name=None,
9998
children=[],
10099
variables={"host_var1": "1", "host_var2": "2"},
101100
)
@@ -112,9 +111,8 @@ def test_add_host_groups(self, inventory_plugin, mocker, resource):
112111
mocker.patch(
113112
"ansible_collections.cloud.terraform.plugins.inventory.terraform_provider.TerraformAnsibleProvider.from_json"
114113
).return_value = TerraformAnsibleProvider(
115-
host_name="host_name",
114+
name="host_name",
116115
groups=["group1", "group2"],
117-
group_name=None,
118116
children=[],
119117
variables={},
120118
)
@@ -129,9 +127,8 @@ def test_add_host_vars(self, inventory_plugin, mocker, resource):
129127
mocker.patch(
130128
"ansible_collections.cloud.terraform.plugins.inventory.terraform_provider.TerraformAnsibleProvider.from_json"
131129
).return_value = TerraformAnsibleProvider(
132-
host_name="host_name",
130+
name="host_name",
133131
groups=[],
134-
group_name=None,
135132
children=[],
136133
variables={"host_var1": "1", "host_var2": "2"},
137134
)
@@ -148,9 +145,8 @@ def test_add_group_children_vars(self, inventory_plugin, mocker, resource):
148145
mocker.patch(
149146
"ansible_collections.cloud.terraform.plugins.inventory.terraform_provider.TerraformAnsibleProvider.from_json"
150147
).return_value = TerraformAnsibleProvider(
151-
host_name=None,
152148
groups=[],
153-
group_name="group_name",
149+
name="group_name",
154150
children=["child1", "child2"],
155151
variables={"group_var1": "1", "group_var2": "2"},
156152
)
@@ -167,9 +163,8 @@ def test_add_group_children(self, inventory_plugin, mocker, resource):
167163
mocker.patch(
168164
"ansible_collections.cloud.terraform.plugins.inventory.terraform_provider.TerraformAnsibleProvider.from_json"
169165
).return_value = TerraformAnsibleProvider(
170-
host_name=None,
171166
groups=[],
172-
group_name="group_name",
167+
name="group_name",
173168
children=["child1", "child2"],
174169
variables={},
175170
)
@@ -184,9 +179,8 @@ def test_add_group_vars(self, inventory_plugin, mocker, resource):
184179
mocker.patch(
185180
"ansible_collections.cloud.terraform.plugins.inventory.terraform_provider.TerraformAnsibleProvider.from_json"
186181
).return_value = TerraformAnsibleProvider(
187-
host_name=None,
188182
groups=[],
189-
group_name="group_name",
183+
name="group_name",
190184
children=[],
191185
variables={"group_var1": "1", "group_var2": "2"},
192186
)
@@ -216,7 +210,7 @@ def test_create_inventory(self, inventory_plugin):
216210
schema_version=0,
217211
values={
218212
"children": None,
219-
"group_name": "childlessgroup",
213+
"name": "childlessgroup",
220214
"id": "childlessgroup",
221215
"variables": None,
222216
},
@@ -232,7 +226,7 @@ def test_create_inventory(self, inventory_plugin):
232226
schema_version=0,
233227
values={
234228
"children": ["somechild", "anotherchild"],
235-
"group_name": "somegroup",
229+
"name": "somegroup",
236230
"id": "somegroup",
237231
"variables": {"group_hello": "from somegroup!", "group_variable": "11"},
238232
},
@@ -248,7 +242,7 @@ def test_create_inventory(self, inventory_plugin):
248242
schema_version=0,
249243
values={
250244
"groups": ["somechild"],
251-
"host_name": "anotherhost",
245+
"name": "anotherhost",
252246
"id": "anotherhost",
253247
"variables": {"host_hello": "from anotherhost!", "host_variable": "5"},
254248
},
@@ -264,7 +258,7 @@ def test_create_inventory(self, inventory_plugin):
264258
schema_version=0,
265259
values={
266260
"groups": ["somegroup", "anothergroup"],
267-
"host_name": "somehost",
261+
"name": "somehost",
268262
"id": "somehost",
269263
"variables": {"host_hello": "from somehost!", "host_variable": "7"},
270264
},
@@ -280,7 +274,7 @@ def test_create_inventory(self, inventory_plugin):
280274
schema_version=0,
281275
values={
282276
"groups": None,
283-
"host_name": "ungroupedhost",
277+
"name": "ungroupedhost",
284278
"id": "ungroupedhost",
285279
"variables": None,
286280
},

0 commit comments

Comments
 (0)