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
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)
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
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') }
def test_one_to_one_field(self): """Test :meth:`nailgun.entity_fields.OneToOneField.gen_value`.""" self.assertEqual( entity_fields.OneToOneField(TestClass).gen_value(), TestClass)