Example #1
0
 def create_payload(self, name='', description='', inventory=Inventory, credential=None, source_script=None, **kwargs):
     credential, source_script = filter_by_class((credential, Credential), (source_script, InventoryScript))
     self.create_and_update_dependencies(inventory, credential, source_script)
     credential = self.ds.credential if credential else None
     payload = self.payload(inventory=self.ds.inventory, credential=credential, name=name, description=description, **kwargs)
     payload.ds = DSAdapter(self.__class__.__name__, self._dependency_store)
     return payload
Example #2
0
 def create_payload(self, name='', organization=Organization, **kwargs):
     self.create_and_update_dependencies(organization)
     payload = self.payload(name=name,
                            organization=self.ds.organization,
                            **kwargs)
     payload.ds = DSAdapter(self.__class__.__name__, self._dependency_store)
     return payload
Example #3
0
 def create_payload(self, organization=Organization, **kwargs):
     self.create_and_update_dependencies(*filter_by_class((organization,
                                                           Organization)))
     organization = self.ds.organization if organization else None
     payload = self.payload(organization=organization, **kwargs)
     payload.ds = DSAdapter(self.__class__.__name__, self._dependency_store)
     return payload
Example #4
0
    def create_payload(
        self, name='', description='', source='custom', inventory=Inventory, credential=None, source_script=InventoryScript, project=None, **kwargs
    ):
        if source != 'custom' and source_script == InventoryScript:
            source_script = None
        if source == 'scm':
            kwargs.setdefault('overwrite_vars', True)
            if project is None:
                project = Project

        inventory, credential, source_script, project = filter_by_class(
            (inventory, Inventory), (credential, Credential), (source_script, InventoryScript), (project, Project)
        )
        self.create_and_update_dependencies(inventory, credential, source_script, project)

        if credential:
            credential = self.ds.credential
        if source_script:
            source_script = self.ds.inventory_script
        if project:
            project = self.ds.project

        payload = self.payload(
            inventory=self.ds.inventory,
            source=source,
            credential=credential,
            source_script=source_script,
            project=project,
            name=name,
            description=description,
            **kwargs
        )
        payload.ds = DSAdapter(self.__class__.__name__, self._dependency_store)
        return payload
Example #5
0
    def create_payload(self,
                       name='',
                       description='',
                       job_type='run',
                       playbook='ping.yml',
                       credential=Credential,
                       inventory=Inventory,
                       project=None,
                       **kwargs):
        if not project:
            project = Project
        if not inventory and not kwargs.get('ask_inventory_on_launch', False):
            inventory = Inventory

        self.create_and_update_dependencies(
            *filter_by_class((credential, Credential), (inventory,
                                                        Inventory), (project,
                                                                     Project)))
        project = self.ds.project if project else None
        inventory = self.ds.inventory if inventory else None
        credential = self.ds.credential if credential else None

        payload = self.payload(name=name,
                               description=description,
                               job_type=job_type,
                               playbook=playbook,
                               credential=credential,
                               inventory=inventory,
                               project=project,
                               **kwargs)
        payload.ds = DSAdapter(self.__class__.__name__, self._dependency_store)
        return payload, credential
Example #6
0
 def create_payload(self, oauth_2_application=None, **kwargs):
     self.create_and_update_dependencies(
         *filter_by_class((oauth_2_application, OAuth2Application)))
     oauth_2_application = self.ds.oauth_2_application if oauth_2_application else None
     payload = self.payload(oauth_2_application=oauth_2_application,
                            **kwargs)
     payload.ds = DSAdapter(self.__class__.__name__, self._dependency_store)
     return payload
Example #7
0
    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
Example #8
0
 def create_payload(self, workflow_job_template=WorkflowJobTemplate, unified_job_template=JobTemplate, **kwargs):
     if not unified_job_template:
         self.create_and_update_dependencies(workflow_job_template)
         payload = self.payload(workflow_job_template=self.ds.workflow_job_template, unified_job_template=None, **kwargs)
     else:
         self.create_and_update_dependencies(workflow_job_template, unified_job_template)
         payload = self.payload(workflow_job_template=self.ds.workflow_job_template, unified_job_template=self.ds.unified_job_template, **kwargs)
     payload.ds = DSAdapter(self.__class__.__name__, self._dependency_store)
     return payload
Example #9
0
    def create_payload(self, module_name='ping', module_args=np, job_type=np, limit=np, verbosity=np,
                       inventory=Inventory, credential=Credential, **kwargs):

        self.create_and_update_dependencies(inventory, credential)

        payload = self.payload(module_name=module_name, module_args=module_args, job_type=job_type, limit=limit,
                               verbosity=verbosity, inventory=self.ds.inventory, credential=self.ds.credential,
                               **kwargs)
        payload.ds = DSAdapter(self.__class__.__name__, self._dependency_store)
        return payload
Example #10
0
    def create_payload(
            self,
            credential_type=CredentialType,
            user=None,
            team=None,
            organization=Organization,
            inputs=None,
            **kwargs):
        if isinstance(credential_type, int):
            # if an int was passed, it is assumed to be the pk id of a
            # credential type
            credential_type = CredentialTypes(
                self.connection).get(id=credential_type).results.pop()

        if credential_type == CredentialType:
            kind = kwargs.pop('kind', 'ssh')
            if kind in ('openstack', 'openstack_v3'):
                credential_type_name = 'OpenStack'
                if inputs is None:
                    if kind == 'openstack_v3':
                        inputs = config.credentials.cloud['openstack_v3']
                    else:
                        inputs = config.credentials.cloud['openstack']
            else:
                credential_type_name = config_kind_to_credential_type_name_map[kind]
            credential_type = CredentialTypes(
                self.connection).get(
                managed_by_tower=True,
                name__icontains=credential_type_name).results.pop()

        credential_type, organization, user, team = filter_by_class(
            (credential_type, CredentialType), (organization, Organization), (user, User), (team, Team))
        if not any((user, team, organization)):
            organization = Organization
        self.create_and_update_dependencies(
            credential_type, organization, user, team)
        user = self.ds.user if user else None
        team = self.ds.team if team else None
        organization = self.ds.organization if organization else None

        payload = self.payload(
            self.ds.credential_type,
            user=user,
            team=team,
            organization=organization,
            inputs=inputs,
            **kwargs)
        payload.ds = DSAdapter(self.__class__.__name__, self._dependency_store)
        return payload
Example #11
0
 def create_payload(self,
                    name='',
                    description='',
                    inventory=Inventory,
                    credential=None,
                    **kwargs):
     self.create_and_update_dependencies(inventory, credential)
     credential = self.ds.credential if credential else None
     payload = self.payload(inventory=self.ds.inventory,
                            credential=credential,
                            name=name,
                            description=description,
                            **kwargs)
     payload.ds = DSAdapter(self.__class__.__name__, self._dependency_store)
     return payload
Example #12
0
 def create_payload(self,
                    name='',
                    description='',
                    variables=None,
                    inventory=Inventory,
                    **kwargs):
     self.create_and_update_dependencies(*filter_by_class((inventory,
                                                           Inventory)))
     payload = self.payload(inventory=self.ds.inventory,
                            name=name,
                            description=description,
                            variables=variables,
                            **kwargs)
     payload.ds = DSAdapter(self.__class__.__name__, self._dependency_store)
     return payload
Example #13
0
    def create_payload(
            self,
            name='',
            description='',
            scm_type='git',
            scm_url='',
            scm_branch='',
            organization=Organization,
            credential=None,
            **kwargs):
        if credential:
            if isinstance(credential, Credential):
                if credential.ds.credential_type.namespace not in (
                        'scm', 'insights'):
                    credential = None  # ignore incompatible credential from HasCreate dependency injection
            elif credential in (Credential,):
                credential = (
                    Credential, dict(
                        credential_type=(
                            True, dict(
                                kind='scm'))))
            elif credential is True:
                credential = (
                    Credential, dict(
                        credential_type=(
                            True, dict(
                                kind='scm'))))

        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(
            organization=organization,
            scm_type=scm_type,
            name=name,
            description=description,
            scm_url=scm_url,
            scm_branch=scm_branch,
            credential=credential,
            **kwargs)
        payload.ds = DSAdapter(self.__class__.__name__, self._dependency_store)
        return payload
Example #14
0
 def create_payload(self,
                    name='',
                    description='',
                    notification_type='slack',
                    organization=Organization,
                    **kwargs):
     if notification_type not in notification_types:
         raise ValueError(
             'Unsupported notification type "{0}".  Please use one of {1}.'.
             format(notification_type, notification_types))
     self.create_and_update_dependencies(organization)
     payload = self.payload(organization=self.ds.organization,
                            notification_type=notification_type,
                            name=name,
                            description=description,
                            **kwargs)
     payload.ds = DSAdapter(self.__class__.__name__, self._dependency_store)
     return payload
Example #15
0
 def create_payload(self, username='', password='', **kwargs):
     payload = self.payload(username=username, password=password, **kwargs)
     payload.ds = DSAdapter(self.__class__.__name__, self._dependency_store)
     return payload
Example #16
0
 def create_payload(self, kind='cloud', **kwargs):
     payload = self.payload(kind=kind, **kwargs)
     payload.ds = DSAdapter(self.__class__.__name__, self._dependency_store)
     return payload
Example #17
0
 def create_payload(self, name='', description='', **kwargs):
     payload = self.payload(name=name, description=description, **kwargs)
     payload.ds = DSAdapter(self.__class__.__name__, self._dependency_store)
     return payload