Esempio n. 1
0
    def handle(self, *args, **options):

        br = Branch.objects.get(repo__name__exact=options['repo'], name__exact=options['branch'])
        if not br: raise CommandError("invalid repo/branch")

        downloadOnly = False
#        if len(args) > 2 and args[2] == '--download-only': downloadOnly = True

        agent = Utils.getAgentForBranch(br, logger=logger)

        path = br.api_store
        if options['type'] == 'code':
            types = ['ApexClass','ApexTrigger','ApexPage','ApexComponent']
        elif options['type'] == 'config':
            types = [aType.strip() for aType in br.api_assets.split(',')]

        filename = os.path.join(path, '{0}_fetch_{1}_{2}.zip'.format(options['type'], br.repo.name, br.name))

        logger.info('fetching audit data')
        chgmap = agent.retrieve_changesaudit(types)

        logger.info('retrieving %s from %s:%s for %s' % (options['type'], br.repo.name, br.name, ','.join(types)))
        agent.retrieve_meta(types, filename)
        agent.close()
        logger.info('finished download')

        if not downloadOnly:
            from stratosource.management.checkin import perform_checkin, save_objectchanges
            perform_checkin(br.repo.location, filename, br)
            batch_time = timezone.now()
            logger.debug('saving audit...')
            save_objectchanges(br, batch_time, chgmap, options['type'])
Esempio n. 2
0
def edit_branch_details(request, branch_id, from_edit = False):

    branch = Branch.objects.get(id=branch_id)
    selected = EmailTemplateFolder.objects.filter(branch=branch).order_by('name')

    if not from_edit and request.method == 'POST' and request.POST.__contains__('saveFoldersButton'):
        folderlist = request.POST.getlist('email_template_folder')
        for select in selected: select.delete()
        for folder in folderlist:
            ef = EmailTemplateFolder()
            ef.branch = branch
            ef.name = folder
            ef.save()
        return adminMenu(request)

    try:
        agent = Utils.getAgentForBranch(branch)
        folders = agent.getSalesforceEmailTemplateFolders()
    except Exception as ex:
        return render(request, 'error.html', {'error_message': str(ex) })

    folders.sort()
    for select in selected:
        if select.name in folders:
            folders.remove(select.name)

    return render(request, 'edit_asset_details.html', {'branch': branch, 'selected': selected, 'folders': folders})
Esempio n. 3
0
    def handle(self, *args, **options):

        repo = Repo.objects.get(name__exact=options['repo'])
        self.branch = Branch.objects.get(repo=repo, name__exact=options['branch'])

        self.agent = Utils.getAgentForBranch(self.branch)
        self.rest_headers = {"Authorization": "OAuth %s" % self.agent.getSessionId(), "Content-Type": "application/json" }
        self.rest_conn = httplib.HTTPSConnection(self.agent.getServerLocation())
        self.startTests()
        self.monitorTests()
        self.rest_conn.close()
Esempio n. 4
0
def deploy(objectList, from_branch, to_branch, testOnly=False, retain_package=False, packagedir="/tmp"):
    if packagedir == None:
        packagedir = "/tmp"
    agent = Utils.getAgentForBranch(to_branch, logger=logging.getLogger("deploy"))
    os.chdir(from_branch.repo.location)
    resetLocalRepo(from_branch.name)
    #    for object in objectList:
    #        print(object.status, object.filename, object.type, object.el_name, object.el_subtype)
    output_name = generate_package(agent, objectList, from_branch, to_branch, retain_package, packagedir)
    results = agent.deploy(output_name, testOnly)
    if not retain_package:
        os.unlink(output_name)
    return results
Esempio n. 5
0
    def handle(self, *args, **options):

        repo = Repo.objects.get(name__exact=options['repo'])
        self.branch = Branch.objects.get(repo=repo,
                                         name__exact=options['branch'])

        self.agent = Utils.getAgentForBranch(self.branch)
        self.rest_headers = {
            "Authorization": "OAuth %s" % self.agent.getSessionId(),
            "Content-Type": "application/json"
        }
        self.rest_conn = httplib.HTTPSConnection(
            self.agent.getServerLocation())
        self.startTests()
        self.monitorTests()
        self.rest_conn.close()
Esempio n. 6
0
def deploy(objectList,
           from_branch,
           to_branch,
           testOnly=False,
           retain_package=False,
           packagedir='/tmp'):
    if packagedir == None: packagedir = '/tmp'
    agent = Utils.getAgentForBranch(to_branch,
                                    logger=logging.getLogger('deploy'))
    os.chdir(from_branch.repo.location)
    resetLocalRepo(from_branch.name)
    #    for object in objectList:
    #        print(object.status, object.filename, object.type, object.el_name, object.el_subtype)
    output_name = generate_package(agent, objectList, from_branch, to_branch,
                                   retain_package, packagedir)
    results = agent.deploy(output_name, testOnly)
    if not retain_package: os.unlink(output_name)
    return results
Esempio n. 7
0
    def handle(self, *args, **options):

        br = Branch.objects.get(repo__name__exact=options['repo'],
                                name__exact=options['branch'])
        if not br: raise CommandError("invalid repo/branch")

        downloadOnly = False
        #        if len(args) > 2 and args[2] == '--download-only': downloadOnly = True

        agent = Utils.getAgentForBranch(br, logger=logger)

        path = br.api_store
        if options['type'] == 'code':
            types = ['ApexClass', 'ApexTrigger', 'ApexPage', 'ApexComponent']
        elif options['type'] == 'config':
            types = [aType.strip() for aType in br.api_assets.split(',')]

        filename = os.path.join(
            path, '{0}_fetch_{1}_{2}.zip'.format(options['type'], br.repo.name,
                                                 br.name))

        logger.info('fetching audit data')
        chgmap = agent.retrieve_changesaudit(types)

        logger.info('retrieving %s from %s:%s for %s' %
                    (options['type'], br.repo.name, br.name, ','.join(types)))
        agent.retrieve_meta(types, filename)
        agent.close()
        logger.info('finished download')

        if not downloadOnly:
            from stratosource.management.checkin import perform_checkin, save_objectchanges
            perform_checkin(br.repo.location, filename, br)
            batch_time = timezone.now()
            logger.debug('saving audit...')
            save_objectchanges(br, batch_time, chgmap, options['type'])