def get(self, intrusion_prevention=True, firewall=True, integrity_monitoring=True, log_inspection=True, web_reputation=True, application_types=True): """ Get all of the rules from Deep Security """ # determine which rules to get from the Manager() rules_to_get = { 'DPIRuleRetrieveAll': intrusion_prevention, 'firewallRuleRetrieveAll': firewall, 'integrityRuleRetrieveAll': integrity_monitoring, 'logInspectionRuleRetrieveAll': log_inspection, 'applicationTypeRetrieveAll': application_types, } for call, get in rules_to_get.items(): rule_key = translation.Terms.get(call).replace( '_retrieve_all', '').replace('_rule', '') self[rule_key] = core.CoreDict() if get: soap_call = self.manager._get_request_format(call=call) if call == 'DPIRuleRetrieveAll': self.log( "Calling {}. This may take 15-30 seconds as the call returns a substantial amount of data" .format(call), level='warning') response = self.manager._request(soap_call) if response and response['status'] == 200: if not type(response['data']) == type([]): response['data'] = [response['data']] for i, rule in enumerate(response['data']): rule_obj = Rule(self.manager, rule, self.log, rule_type=rule_key) if rule_obj: if rule_key == 'intrusion_prevention' and rule_obj.cve_numbers: rule_obj.cve_numbers = rule_obj.cve_numbers.split( ', ') if type(rule_obj.cve_numbers) == type(''): rule_obj.cve_numbers = [ rule_obj.cve_numbers ] rule_id = '{}-{: >10}'.format(rule_key, i) if 'id' in dir(rule_obj): rule_id = rule_obj.id elif 'tbuid' in dir(rule_obj): rule_id = rule_obj.tbuid self[rule_key][rule_id] = rule_obj self.log("Added Rule {} from call {}".format( rule_id, call), level='debug') return len(self)
def __init__(self, manager=None, api_response=None, log_func=None, rule_type=None): self.manager = manager self.rule_type = rule_type self.policies = core.CoreDict() if api_response: self._set_properties(api_response, log_func)
def __init__(self, manager=None, api_response=None, log_func=None): self.manager = manager if api_response: self._set_properties(api_response, log_func) self.computers = core.CoreDict()
def __init__(self, manager=None): core.CoreDict.__init__(self) self.manager = manager self._exempt_from_find.append('computers') self.computers = core.CoreDict() self.log = self.manager.log if self.manager else None