Ejemplo n.º 1
0
    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")
Ejemplo n.º 2
0
 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")
Ejemplo n.º 3
0
 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")
Ejemplo n.º 4
0
 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")
Ejemplo n.º 5
0
 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')
Ejemplo n.º 6
0
 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)
Ejemplo n.º 7
0
    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')