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 __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 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 def build_object(self, releaseId, archived):