def create_apex_checkpoint(self, payload): if 'ScopeId' not in payload: payload['ScopeId'] = self.user_id if 'API_Name' in payload: payload['ExecutableEntityId'] = self.get_apex_entity_id_by_name(object_type=payload['Object_Type'], name=payload['API_Name']) payload.pop('Object_Type', None) payload.pop('API_Name', None) payload = json.dumps(payload) r = requests.post(self.get_tooling_url()+"/sobjects/ApexExecutionOverlayAction", data=payload, proxies=urllib.getproxies(), headers=self.get_rest_headers('POST'), verify=False) r.raise_for_status() ##WE ALSO NEED TO CREATE A TRACE FLAG FOR THIS USER expiration = mm_util.get_iso_8601_timestamp(30) payload = { "ApexCode" : "FINEST", "ApexProfiling" : "INFO", "Callout" : "INFO", "Database" : "INFO", "ExpirationDate" : expiration, "ScopeId" : self.user_id, "System" : "DEBUG", "TracedEntityId" : self.user_id, "Validation" : "INFO", "Visualforce" : "INFO", "Workflow" : "INFO" } self.create_trace_flag(payload) return mm_util.generate_success_response("Done")
def delete_trace_flags(self): query_string = 'Select Id From TraceFlag' r = requests.get(self.get_tooling_url()+"/query/", params={'q':query_string}, headers=self.get_rest_headers(), proxies=urllib.getproxies(), verify=False) r.raise_for_status() qr = mm_util.parse_rest_response(r.text) for record in qr['records']: self.delete_tooling_entity("TraceFlag", record["Id"]) return mm_util.generate_success_response("Done")
def delete_apex_checkpoint_results(self): query_string = 'Select Id From ApexExecutionOverlayResult Where UserId = \''+self.user_id+'\' order by CreatedDate' r = requests.get(self.get_tooling_url()+"/query/", params={'q':query_string}, headers=self.get_rest_headers(), proxies=urllib.getproxies(), verify=False) r.raise_for_status() qr = mm_util.parse_rest_response(r.text) for record in qr['records']: self.delete_tooling_entity("ApexExecutionOverlayResult", record["Id"]) return mm_util.generate_success_response("Done")
def delete_debug_logs(self, scope="user"): if scope != "user": query_string = "Select Id From ApexLog" else: query_string = "Select Id From ApexLog WHERE LogUserId = '{0}'".format(self.user_id) r = requests.get(self.get_tooling_url()+"/query/", params={'q':query_string}, headers=self.get_rest_headers(), proxies=urllib.getproxies(), verify=False) r.raise_for_status() qr = mm_util.parse_rest_response(r.text) for record in qr['records']: self.delete_tooling_entity("ApexLog", record["Id"]) return mm_util.generate_success_response("Done")
def delete_apex_checkpoint(self, **kwargs): if 'overlay_id' in kwargs: r = requests.delete(self.get_tooling_url()+"/sobjects/ApexExecutionOverlayAction/{0}".format(kwargs['overlay_id']), headers=self.get_rest_headers(), proxies=urllib.getproxies(), verify=False) r.raise_for_status() return mm_util.generate_success_response('OK') else: id = kwargs.get('id', None) file_path = kwargs.get('file_path', None) line_number = kwargs.get('line_number', None) if id == None: ext = mm_util.get_file_extension_no_period(file_path) api_name = mm_util.get_file_name_no_extension(file_path) mtype = mm_util.get_meta_type_by_suffix(ext) id = self.get_apex_entity_id_by_name(object_type=mtype['xmlName'], name=api_name) query_string = "Select Id from ApexExecutionOverlayAction Where ExecutableEntityId = '{0}' AND Line = {1}".format(id, line_number) r = requests.get(self.get_tooling_url()+"/query/", params={'q':query_string}, headers=self.get_rest_headers(), proxies=urllib.getproxies(), verify=False) r.raise_for_status() query_result = mm_util.parse_rest_response(r.text) overlay_id = query_result['records'][0]['Id'] r = requests.delete(self.get_tooling_url()+"/sobjects/ApexExecutionOverlayAction/{0}".format(overlay_id), headers=self.get_rest_headers(), proxies=urllib.getproxies(), verify=False) r.raise_for_status() return mm_util.generate_success_response('OK')
def sign_in_with_github(self, creds): try: response = mm_github.sign_in(creds) if 'message' in response: return mm_util.generate_error_response(response['message']) elif 'authentication' in response: src = open(os.path.join(self.get_app_settings_directory(),'.github.json'), "wb") src.write(json.dumps(response, sort_keys=False, indent=4)) src.close() return mm_util.generate_success_response('Connected to GitHub successfully!') else: return mm_util.generate_error_response(response) except Exception, e: return mm_util.generate_error_response("Error connecting to GitHub: "+e.message)
def remove_overlay_action(self, **kwargs): if 'overlay_id' in kwargs: r = requests.delete( self.get_tooling_url() + "/sobjects/ApexExecutionOverlayAction/{0}".format( kwargs['overlay_id']), headers=self.get_rest_headers(), verify=False) r.raise_for_status() return mm_util.generate_success_response('OK') else: id = kwargs.get('id', None) file_path = kwargs.get('file_path', None) line_number = kwargs.get('line_number', None) if id == None: ext = mm_util.get_file_extension_no_period(file_path) api_name = mm_util.get_file_name_no_extension(file_path) mtype = mm_util.get_meta_type_by_suffix(ext) id = self.get_apex_entity_id_by_name( object_type=mtype['xmlName'], name=api_name) query_string = "Select Id from ApexExecutionOverlayAction Where ExecutableEntityId = '{0}' AND Line = {1}".format( id, line_number) r = requests.get(self.get_tooling_url() + "/query/", params={'q': query_string}, headers=self.get_rest_headers(), verify=False) r.raise_for_status() query_result = mm_util.parse_rest_response(r.text) overlay_id = query_result['records'][0]['Id'] r = requests.delete( self.get_tooling_url() + "/sobjects/ApexExecutionOverlayAction/{0}".format(overlay_id), headers=self.get_rest_headers(), verify=False) r.raise_for_status() return mm_util.generate_success_response('OK')