class DBManager_django(object): def __init__(self): self.cache = DBCache_django() def default_filter_state(self, filter_id, apk_name): return {"status": "UNKNOWN", "count": 0, "description": {}} def pick_dynamic_test_with_status_unknown(self, vm_client_id): dynamic_test = DynamicTestResults.objects.filter( status__exact='UNKNOWN').order_by('?').first() package_name = dynamic_test.vuln.app.package_name vulnerability_type = dynamic_test.vuln.name if (dynamic_test.vuln.dynamic_test_params is not None): dynamic_test_params = json.loads( dynamic_test.vuln.dynamic_test_params) else: dynamic_test_params = {} dynamic_test_params['count'] = dynamic_test.count download_url = settings.DOWNLOAD_APK_SITE + '%d' % dynamic_test.vuln.app.id + '/apk/?' self.cache.cache_dynamic_test_for_vm(vm_client_id, dynamic_test) print(vulnerability_type, package_name, download_url, dynamic_test_params) return (vulnerability_type, package_name, download_url, dynamic_test_params) def update_success(self, vm_client_id, description): dynamic_test = self.cache.get_dynamic_test_for_vm(vm_client_id) for vuln_type in description.keys(): if vuln_type == dynamic_test.vuln.name: dynamic_test.status = "SUCCESS" dynamic_test.count += 1 dynamic_test.description = {vuln_type: description[vuln_type]} dynamic_test.save() else: for vulnerability in description[vuln_type]: #its one of the dynamic only tested vulnerabilities, create a new vulnerability with its #description vulnerability = VulnerabilityResult( name=vuln_type, description=vulnerability, confidence=1, dynamicTest=False, dynamic_test_params=None, app=dynamic_test.vuln.app) vulnerability.save() def log_failure(self, vm_client_id, status, extras): dynamic_test = self.cache.get_dynamic_test_for_vm(vm_client_id) dynamic_test.status = status dynamic_test.count += 1 dynamic_test.description = extras dynamic_test.save()
class DBManager_django(object): def __init__(self): self.cache = DBCache_django() def default_filter_state(self, filter_id, apk_name): return {"status":"UNKNOWN", "count":0, "description":{}} def pick_dynamic_test_with_status_unknown(self,vm_client_id): dynamic_test = DynamicTestResults.objects.filter(status__exact='UNKNOWN').order_by('?').first() package_name = dynamic_test.vuln.app.package_name vulnerability_type = dynamic_test.vuln.name if(dynamic_test.vuln.dynamic_test_params is not None): dynamic_test_params = json.loads(dynamic_test.vuln.dynamic_test_params) else: dynamic_test_params = {} dynamic_test_params['count'] = dynamic_test.count download_url = settings.DOWNLOAD_APK_SITE + '%d'%dynamic_test.vuln.app.id + '/apk/?' self.cache.cache_dynamic_test_for_vm(vm_client_id,dynamic_test) print (vulnerability_type, package_name, download_url, dynamic_test_params) return (vulnerability_type, package_name, download_url, dynamic_test_params) def update_success(self,vm_client_id,description): dynamic_test = self.cache.get_dynamic_test_for_vm(vm_client_id) for vuln_type in description.keys(): if vuln_type == dynamic_test.vuln.name: dynamic_test.status = "SUCCESS" dynamic_test.count +=1 dynamic_test.description = {vuln_type : description[vuln_type]} dynamic_test.save() else: for vulnerability in description[vuln_type]: #its one of the dynamic only tested vulnerabilities, create a new vulnerability with its #description vulnerability = VulnerabilityResult(name = vuln_type, description = vulnerability, confidence = 1, dynamicTest = False, dynamic_test_params = None, app = dynamic_test.vuln.app) vulnerability.save() def log_failure(self,vm_client_id,status,extras): dynamic_test = self.cache.get_dynamic_test_for_vm(vm_client_id) dynamic_test.status = status dynamic_test.count +=1 dynamic_test.description = extras dynamic_test.save()