Make ExecutionEnvironment awxkit class able to handle null values in payload

This commit is contained in:
Alan Rominger 2021-06-11 13:32:46 -04:00
parent 2e0dd61bb6
commit b39b80b036
No known key found for this signature in database
GPG Key ID: C2D7EAAA12B63559

View File

@ -6,7 +6,7 @@ from awxkit.api.pages import (
Organization,
)
from awxkit.api.resources import resources
from awxkit.utils import random_title, PseudoNamespace
from awxkit.utils import random_title, PseudoNamespace, filter_by_class
from . import base
from . import page
@ -21,15 +21,19 @@ class ExecutionEnvironment(HasCreate, HasCopy, base.Base):
NATURAL_KEY = ('name',)
# fields are name, image, organization, managed_by_tower, credential
def create(self, name='', image='quay.io/ansible/ansible-runner:devel', credential=None, pull='', **kwargs):
def create(self, name='', image='quay.io/ansible/ansible-runner:devel', organization=Organization, credential=None, pull='', **kwargs):
# we do not want to make a credential by default
payload = self.create_payload(name=name, image=image, credential=credential, pull=pull, **kwargs)
payload = self.create_payload(name=name, image=image, organization=organization, credential=credential, pull=pull, **kwargs)
ret = self.update_identity(ExecutionEnvironments(self.connection).post(payload))
return ret
def create_payload(self, name='', organization=Organization, **kwargs):
self.create_and_update_dependencies(organization)
payload = self.payload(name=name, organization=self.ds.organization, **kwargs)
def create_payload(self, name='', organization=Organization, credential=None, **kwargs):
self.create_and_update_dependencies(*filter_by_class((credential, Credential), (organization, Organization)))
credential = self.ds.credential if credential else None
organization = self.ds.organization if organization else None
payload = self.payload(name=name, organization=organization, credential=credential, **kwargs)
payload.ds = DSAdapter(self.__class__.__name__, self._dependency_store)
return payload