def repository_set(self, params):
        product = self.find_product(params['product'], params['organization'])
        del params['product']
        del params['organization']

        if not product:
            return False
        else:
            reposet = self._entities.RepositorySet(self._server, product=product, name=params['name'])
            reposet = reposet.search()[0]

            formatted_name = [params['name'].replace('(', '').replace(')', '')]
            formatted_name.append(params['basearch'])

            if 'releasever' in params:
                formatted_name.append(params['releasever'])

            formatted_name = ' '.join(formatted_name)

            repository = self._entities.Repository(self._server, product=product, name=formatted_name)
            repository._fields['organization'] = entity_fields.OneToOneField(entities.Organization)
            repository.organization = product.organization
            repository = repository.search()

            if len(repository) == 0:
                if 'releasever' in params:
                    reposet.enable(data={'basearch': params['basearch'], 'releasever': params['releasever']})
                else:
                    reposet.enable(data={'basearch': params['basearch']})

        return True
Esempio n. 2
0
    def repository(self, name, content_type, product, organization, url=None):
        updated = False
        product = self.find_product(product, organization)

        repository = self._entities.Repository(self._server,
                                               name=name,
                                               product=product)
        repository._fields['organization'] = entity_fields.OneToOneField(
            entities.Organization)
        repository.organization = product.organization
        repository = repository.search()

        repository = repository[0] if len(repository) == 1 else None

        if repository and (repository.name != name or
                           ('url' in repository.url
                            and repository.url != url)):
            repository = self._entities.Repository(self._server,
                                                   name=name,
                                                   id=repository.id,
                                                   url=url)
            repository.update()
            updated = True
        elif not repository:
            repository = self._entities.Repository(self._server,
                                                   name=name,
                                                   content_type=content_type,
                                                   product=product,
                                                   url=url)
            repository.create()
            updated = True

        return updated
    def repository(self, name, type, product, organization):
        updated = False
        product = self.find_product(product, organization)

        repository = self._entities.Repository(self._server,
                                               name=name,
                                               product=product)
        repository._fields['organization'] = entity_fields.OneToOneField(
            entities.Organization)
        repository.organization = product.organization
        repository = repository.search()

        if len(repository) == 1:
            repository = repository[0]

        if repository and repository.name != name:
            repository = self._entities.Repository(self._server,
                                                   name=name,
                                                   id=repository.id)
            repository.update()
            updated = True
        elif not repository:
            repository = self._entities.Repository(
                self._server,
                name=name,
                content_type=type,
                product=product,
            )
            repository.create()
            updated = True

        return updated
    def find_repository(self, name, product, organization):
        product = self.find_product(product, organization)

        repository = self._entities.Repository(self._server, name=name, product=product)
        repository._fields['organization'] = entity_fields.OneToOneField(entities.Organization)
        repository.organization = product.organization
        response = repository.search()

        if len(response) == 1:
            return response[0]
        else:
            self._module.fail_json(msg="No Repository found for %s" % name)
Esempio n. 5
0
    def repository(self,
                   name,
                   content_type,
                   product,
                   organization,
                   url=None,
                   download_policy=None):
        updated = False
        product = self.find_product(product, organization)

        repository = self._entities.Repository(self._server,
                                               name=name,
                                               product=product)
        repository._fields['organization'] = entity_fields.OneToOneField(
            entities.Organization)
        repository.organization = product.organization
        repository = repository.search()

        repository = repository[0].read() if len(repository) == 1 else None

        if repository and (repository.name != name or repository.url != url or
                           (download_policy and
                            repository.download_policy != download_policy)):
            repository = self._entities.Repository(
                self._server,
                name=name,
                id=repository.id,
                url=url,
                download_policy=download_policy)
            if not self._module.check_mode:
                repository.update()
            updated = True
        elif not repository:
            repository = self._entities.Repository(
                self._server,
                name=name,
                content_type=content_type,
                product=product,
                url=url,
                download_policy=download_policy,
            )
            if not self._module.check_mode:
                repository.create()
            updated = True

        return updated
    def repository(self, params):
        product = self.find_product(params['product'], params['organization'])
        params['product'] = product.id
        del params['organization']

        repository = self._entities.Repository(self._server, **params)
        repository._fields['organization'] = entity_fields.OneToOneField(entities.Organization)
        repository.organization = product.organization
        response = repository.search()

        if len(response) == 1:
            repository.id = response[0].id
            repository.update()
        else:
            repository.create()

        return True
Esempio n. 7
0
 def __init__(self, server_config=None, **kwargs):
     _check_for_value('template', kwargs)
     self._fields = {
         'advanced': entity_fields.BooleanField(),
         'description': entity_fields.StringField(),
         'fact_name': entity_fields.StringField(),
         'input_type': entity_fields.StringField(),
         'name': entity_fields.StringField(),
         'options': entity_fields.StringField(),
         'puppet_class_name': entity_fields.StringField(),
         'puppet_parameter_name': entity_fields.StringField(),
         'required': entity_fields.BooleanField(),
         # There is no Template base class yet
         'template': entity_fields.OneToOneField(JobTemplate, required=True),
         'variable_name': entity_fields.StringField(),
     }
     super(TemplateInput, self).__init__(server_config, **kwargs)
     self._meta = {
         'api_path': '/api/v2/templates/{0}/template_inputs'.format(self.template.id),
         'server_modes': ('sat')
     }
Esempio n. 8
0
 def test_one_to_one_field(self):
     """Test :meth:`nailgun.entity_fields.OneToOneField.gen_value`."""
     self.assertEqual(
         entity_fields.OneToOneField(TestClass).gen_value(), TestClass)