def __init__(self, *args, **kwargs): """ TODO: need to come up with a way to resolve variables used inside the profile Best way to do this i think is to pull all available variables form the xlr context and match the dictonary's values against them :param args: :param kwargs: :return: """ # pull in the xlrelease apis self.__releaseApi = XLReleaseServiceHolder.getReleaseApi() self.__repositoryService = XLReleaseServiceHolder.getRepositoryService() self.__taskApi = XLReleaseServiceHolder.getTaskApi() self.__phaseApi = XLReleaseServiceHolder.getPhaseApi() self.__variable_start_regex = re.compile('\$\{', re.IGNORECASE) # TODO: replace with {} once testing is done self.__variable_start_string = "$<" self.__variable_end_string = ">" self.store = dict() if kwargs.has_key('url'): kwargs = self.load_from_url(kwargs['url']) elif kwargs.has_key('repoId'): kwargs = self.load_profile_from_xlr_repo(kwargs['repoId']) elif kwargs.has_key('repoString'): kwargs = json.loads(str(kwargs['repoString'])) self.update(dict(*args, **kwargs)) # use the free update to set keys
def __init__(self, *args, **kwargs): """ TODO: need to come up with a way to resolve variables used inside the profile Best way to do this i think is to pull all available variables form the xlr context and match the dictonary's values against them :param args: :param kwargs: :return: """ # pull in the xlrelease apis self.__releaseApi = XLReleaseServiceHolder.getReleaseApi() self.__repositoryService = XLReleaseServiceHolder.getRepositoryService( ) self.__taskApi = XLReleaseServiceHolder.getTaskApi() self.__phaseApi = XLReleaseServiceHolder.getPhaseApi() self.__variable_start_regex = re.compile('\$\{', re.IGNORECASE) # TODO: replace with {} once testing is done self.__variable_start_string = "$<" self.__variable_end_string = ">" self.store = dict() if kwargs.has_key('url'): kwargs = self.load_from_url(kwargs['url']) elif kwargs.has_key('repoId'): kwargs = self.load_profile_from_xlr_repo(kwargs['repoId']) elif kwargs.has_key('repoString'): kwargs = json.loads(str(kwargs['repoString'])) self.update(dict(*args, **kwargs)) # use the free update to set keys
def find_ci_id(self, name, type): sp = SearchParameters() sp.setType(Type.valueOf(str(type))) for p in XLReleaseServiceHolder.getRepositoryService().listEntities(sp): if str(p.getTitle()) == name: return p
def find_ci_id(name, type): sp = SearchParameters() sp.setType(Type.valueOf(type)) for p in XLReleaseServiceHolder.getRepositoryService().listEntities(sp): if str(p.getTitle()) == name: return p
def load_profile(profile): sp = SearchParameters() sp.setType(Type.valueOf('rel.ReleaseProfile')) for p in XLReleaseServiceHolder.getRepositoryService().listEntities(sp): if str(p.getTitle()) == profile: return json.loads(p.getProperty('profileJson'))
def find_template_id_by_name(self, name): sp = SearchParameters() sp.setType(Type.valueOf(str('xlrelease.Release'))) for p in XLReleaseServiceHolder.getRepositoryService().listEntities(sp): if p.isTemplate() == True: if str(p.getTitle()) == str(name): Base.info("Found id: %s for name %s" % (str(p.getId()), name)) return str(p.getId()) return None
def find_template_id_by_name(self, name): sp = SearchParameters() sp.setType(Type.valueOf(str('xlrelease.Release'))) for p in XLReleaseServiceHolder.getRepositoryService().listEntities( sp): if p.isTemplate() == True: if str(p.getTitle()) == str(name): Base.info("Found id: %s for name %s" % (str(p.getId()), name)) return str(p.getId()) return None
def __init__(self, *args, **kwargs): # pull in the xlrelease apis self.__releaseApi = XLReleaseServiceHolder.getReleaseApi() self.__repositoryService = XLReleaseServiceHolder.getRepositoryService() self.__taskApi = XLReleaseServiceHolder.getTaskApi() self.__variable_start_regex = re.compile('^\$\{', re.IGNORECASE) self.store = dict() if kwargs.has_key('url'): kwargs = self.load_from_url(kwargs['url']) elif kwargs.has_key('repoId'): kwargs = self.load_profile_from_xlr_repo(kwargs['repoId']) elif kwargs.has_key('repoString'): kwargs = json.loads(str(kwargs['repoString'])) self.update(dict(*args, **kwargs)) # use the free update to set keys
import com.xebialabs.deployit.repository.SearchParameters as SearchParameters import com.xebialabs.deployit.plugin.api.udm.ConfigurationItem as ConfigurationItem import com.xebialabs.xlrelease.domain.Configuration as Configuration import com.xebialabs.deployit.plugin.api.reflect.Type as Type import com.xebialabs.deployit.jcr import com.xebialabs.deployit.repository from com.xebialabs.deployit.plugin.api.reflect import DescriptorRegistry from com.xebialabs.deployit.plugin.api.reflect import Type import com.xebialabs.deployit.engine.api.dto.ValidatedConfigurationItem from Base import Base import datetime # Globals __repositoryService = XLReleaseServiceHolder.getRepositoryService() __ciType = 'rel.ReleaseCounterStore' StorageTimestamp = " " def get_ci_object(ciType, id): if not DescriptorRegistry.exists(Type.valueOf(ciType)): raise ValueError('Unknown CI type %s' % ciType) type = Type.valueOf(ciType) configurationItem = type.descriptor.newInstance(id) return configurationItem def check_ci_for_validations(ci): if isinstance(ci, com.xebialabs.deployit.engine.api.dto.ValidatedConfigurationItem) and not ci.validations.isEmpty():
import sys import com.xebialabs.xlrelease.api.XLReleaseServiceHolder as XLReleaseServiceHolder tagList = tag.split(',') #get the releaseApi releaseApi = XLReleaseServiceHolder.getReleaseApi() # get the object of the current release this_release = releaseApi.getRelease(release.id) # extract the tags tags = this_release.getTags() # let's print and be merry print "found these tags for release: %s" % release.id print tags #add the tag for tag in tagList: tags.add(str(tag)) #print and be merry print "adding tag: %s to release: %s" % (tag, release.id) # update the release with the new set of tags this_release.setTags(tags) #save the updated release back to xlr releaseApi.updateRelease(release.id, this_release)
from requests.auth import HTTPBasicAuth import json import time import datetime #import com.xebialabs.xlrelease.api.v1 #import com.xebialabs.xlrelease.domain from java.time import LocalDate, ZoneId # beter way to do this import java.util.Date import dateutil.parser import org.slf4j.LoggerFactory as LoggerFactory # import com.xebialabs.xlrelease.api.v1 as releaseApi import com.xebialabs.xlrelease.api.XLReleaseServiceHolder as XLReleaseServiceHolder logger = LoggerFactory.getLogger("Planner") releaseApi = XLReleaseServiceHolder.getReleaseApi() phaseApi = XLReleaseServiceHolder.getPhaseApi() taskApi = XLReleaseServiceHolder.getTaskApi() MANUAL_TASK_DURATION = 60 * 60 * 1000 AUTOMATED_TASK_DURATION = 1 * 60 * 1000 hardcodedVars = [ "Release-Ready", "CodeFrozen-Flag", "PendSecurityScan", "Dependency-Flag", "NoOpenDefects-Flag", "BXImpact-Flag" ] class Planner(object): def __init__(self): return
import planner.planner reload(planner.planner) from planner.planner import Planner the_planner = Planner() HTTP_SUCCESS = sets.Set([200, 201, 202, 203, 204, 205, 206, 207, 208]) HTTP_ERROR = sets.Set([ 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 412, 413, 414, 415 ]) filterReleaseTags = list(releaseTags) filterReleaseFolders = list(folderFilter) filterStatuses = ["FAILED", "COMPLETED", "SKIPPED", "ABORTED"] releaseApi = XLReleaseServiceHolder.getReleaseApi() appServices = XLReleaseServiceHolder.getApiServices() taskApi = XLReleaseServiceHolder.getTaskApi() # logger.info(str(appServices)) svcs = XLReleaseServiceHolder.getApiServices() for api in svcs: if api.serviceName() == 'folderApi': folder_api = api dict = [] # httpRequest = HttpRequest(server) def get_Releases(): releases = [] archivedReleases = []
import sys import com.xebialabs.xlrelease.api.XLReleaseServiceHolder as XLReleaseServiceHolder tagList = tag.split(',') #get the releaseApi releaseApi = XLReleaseServiceHolder.getReleaseApi() # get the object of the current release this_release = releaseApi.getRelease(release.id) # extract the tags tags = this_release.getTags() # let's print and be merry print "found these tags for release: %s" % release.id print tags #add the tag for tag in tagList: tags.add(str(tag)) #print and be merry print "adding tag: %s to release: %s" % (tag, release.id) # update the release with the new set of tags this_release.setTags(tags)