def get_cis_by_query(self, **kwargs): """ get all cis that match a certain query parameter :param kwargs: possible query parameters possible parameters: 'parent', 'ancestor', 'namePattern', 'lastModifiedBefore', 'lastModifiedAfter', 'page' and 'resultsPerPage' :return: list of ci objects """ cis = CiSet() for k in kwargs.iterkeys(): if k not in VALID_QUERY_PARAMETERS: logger.error('"query parameter: %s not allowed" % k') raise IllegalQueryParameter("query parameter: %s not allowed" % k) if 'resultsPerPage' not in kwargs.iterkeys(): kwargs['resultsPerPage'] = '-1' try: logger.debug('trying to retrieve a set of cis') root = ET.fromstring( self.http_get_query('repository/query', kwargs)) logger.debug('retrieval succesfull') except Exception: logger.error('to retrieve cis') return False for elem in root.findall('ci'): logger.debug('appending; %s' % elem.attrib['ref']) ci = (self.get_ci_by_name(elem.attrib['ref'])) cis.add_ci(ci) return cis
import xldeploy from xldeploy.repository.configuration_item import CiSet repo = xldeploy.connect_repository() cis = repo.get_cis_by_query(parent='Infrastructure') ## test iteration for ci in cis: repo.update_ci(ci) ## test __str__ print str(cis) for ci in cis: ci.update_ci_properties(tags=['blah31', 'blah41', 'blah51']) repo.update_cis(cis) xcis = CiSet() for ci in cis: nci = ci nci.update_id("%s_test2" % ci.get_id()) xcis.add_ci(nci) repo.create_cis(xcis)