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'])
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})
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()
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
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()
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
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'])