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
Exemple #9
0
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():
Exemple #10
0
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)