mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-08-23 06:21:43 -07:00
Use top level values as defaults if metadata is not provided (#42277)
This commit is contained in:
parent
f1dcfe4f4c
commit
4f63134d78
1 changed files with 24 additions and 14 deletions
|
@ -46,10 +46,10 @@ class KubernetesRawModule(KubernetesAnsibleModule):
|
||||||
supports_check_mode=True,
|
supports_check_mode=True,
|
||||||
**kwargs)
|
**kwargs)
|
||||||
|
|
||||||
kind = self.params.pop('kind')
|
self.kind = self.params.pop('kind')
|
||||||
api_version = self.params.pop('api_version')
|
self.api_version = self.params.pop('api_version')
|
||||||
name = self.params.pop('name')
|
self.name = self.params.pop('name')
|
||||||
namespace = self.params.pop('namespace')
|
self.namespace = self.params.pop('namespace')
|
||||||
resource_definition = self.params.pop('resource_definition')
|
resource_definition = self.params.pop('resource_definition')
|
||||||
if resource_definition:
|
if resource_definition:
|
||||||
if isinstance(resource_definition, string_types):
|
if isinstance(resource_definition, string_types):
|
||||||
|
@ -67,11 +67,11 @@ class KubernetesRawModule(KubernetesAnsibleModule):
|
||||||
|
|
||||||
if not resource_definition and not src:
|
if not resource_definition and not src:
|
||||||
self.resource_definitions = [{
|
self.resource_definitions = [{
|
||||||
'kind': kind,
|
'kind': self.kind,
|
||||||
'apiVersion': api_version,
|
'apiVersion': self.api_version,
|
||||||
'metadata': {
|
'metadata': {
|
||||||
'name': name,
|
'name': self.name,
|
||||||
'namespace': namespace
|
'namespace': self.namespace
|
||||||
}
|
}
|
||||||
}]
|
}]
|
||||||
|
|
||||||
|
@ -80,14 +80,13 @@ class KubernetesRawModule(KubernetesAnsibleModule):
|
||||||
results = []
|
results = []
|
||||||
self.client = self.get_api_client()
|
self.client = self.get_api_client()
|
||||||
for definition in self.resource_definitions:
|
for definition in self.resource_definitions:
|
||||||
kind = definition.get('kind')
|
kind = definition.get('kind', self.kind)
|
||||||
search_kind = kind
|
search_kind = kind
|
||||||
if kind.lower().endswith('list'):
|
if kind.lower().endswith('list'):
|
||||||
search_kind = kind[:-4]
|
search_kind = kind[:-4]
|
||||||
api_version = definition.get('apiVersion')
|
api_version = definition.get('apiVersion', self.api_version)
|
||||||
resource = self.find_resource(search_kind, api_version, fail=True)
|
resource = self.find_resource(search_kind, api_version, fail=True)
|
||||||
definition['kind'] = resource.kind
|
definition = self.set_defaults(resource, definition)
|
||||||
definition['apiVersion'] = resource.group_version
|
|
||||||
result = self.perform_action(resource, definition)
|
result = self.perform_action(resource, definition)
|
||||||
changed = changed or result['changed']
|
changed = changed or result['changed']
|
||||||
results.append(result)
|
results.append(result)
|
||||||
|
@ -102,12 +101,23 @@ class KubernetesRawModule(KubernetesAnsibleModule):
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
def set_defaults(self, resource, definition):
|
||||||
|
definition['kind'] = resource.kind
|
||||||
|
definition['apiVersion'] = resource.group_version
|
||||||
|
if not definition.get('metadata'):
|
||||||
|
definition['metadata'] = {}
|
||||||
|
if self.name and not definition['metadata'].get('name'):
|
||||||
|
definition['metadata']['name'] = self.name
|
||||||
|
if resource.namespaced and self.namespace and not definition['metadata'].get('namespace'):
|
||||||
|
definition['metadata']['namespace'] = self.namespace
|
||||||
|
return definition
|
||||||
|
|
||||||
def perform_action(self, resource, definition):
|
def perform_action(self, resource, definition):
|
||||||
result = {'changed': False, 'result': {}}
|
result = {'changed': False, 'result': {}}
|
||||||
state = self.params.get('state', None)
|
state = self.params.get('state', None)
|
||||||
force = self.params.get('force', False)
|
force = self.params.get('force', False)
|
||||||
name = definition.get('metadata', {}).get('name')
|
name = definition['metadata'].get('name')
|
||||||
namespace = definition.get('metadata', {}).get('namespace')
|
namespace = definition['metadata'].get('namespace')
|
||||||
existing = None
|
existing = None
|
||||||
|
|
||||||
self.remove_aliases()
|
self.remove_aliases()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue