def clear_endpoints(self): edge_api = EdgeAPI(self.get_value('edge_url'), debug=True) meraki_api = MerakiAPI(self.get_value('sdwan_key'), debug=True) endpoints = [] # Checking DNS Edge CI if not edge_api.validate_edgeurl(): return False succeed = False if self._update_domainlist(edge_api, endpoints): #Checking Meraki if meraki_api.validate_api_key(): self._update_firewall_rules(meraki_api, endpoints) self.set_value('current_version', "") self.set_value('last_execution', "") self.save() succeed = True return succeed
def clear_domainlists(self): meraki_api = MerakiAPI(self.get_value('sdwan_key'), debug=True) if not meraki_api.validate_api_key(): return False succeed = False domainlists = {} if self._debug: print("Now Clearing....") self._clear_domainlists() network_id = self._get_network_id(meraki_api) if network_id is not None: rules = meraki_api.get_firewall_rules(network_id) new_rules = self._update_firewall_rules_by_dls(meraki_api, rules, domainlists) meraki_api.update_firewall_rules(network_id, new_rules) self.set_value('last_execution', "") self.save() return True
def collect_clients(self, configuration): succeed = False try: meraki_api = MerakiAPI(self.get_value('api_key'), debug=True) if not meraki_api.validate_api_key(): return succeed organization = meraki_api.get_organization(self.get_value('org_name')) if organization is None: return succeed network = meraki_api.get_network(organization['id'], self.get_value('network_name')) if (network is not None) and (network['id'] != ''): clients = self._collect_clients(configuration, meraki_api, network['id']) self._compare_clients(configuration, clients) self.set_clients(clients) except Exception as e: if self._debug: print('DEBUG: Exceptin <%s>' % str(e)) return succeed
def synchronize_endpoints(self): if self._debug: print('Synchronize Endpoints is called....') ep_api = EndpointsAPI(self.get_value('o365_client_id'), debug=True) edge_api = EdgeAPI(self.get_value('edge_url'), debug=True) meraki_api = MerakiAPI(self.get_value('sdwan_key'), debug=True) # Checking Office 365 endpoints if not ep_api.validate_client_id(): return False latest_version = ep_api.get_current_version( self.get_value('o365_instance')) if self._debug: print('Now Checking Version....<%s> vs. <%s>' % (self.get_value('current_version'), latest_version)) if self.get_value('current_version') == latest_version: return True endpoints = self._get_endpoints(ep_api) # Checking DNS Edge CI if not edge_api.validate_edgeurl(): return False if self._debug: print('Now Updating both Domainlist....') succeed = False if self._update_domainlist(edge_api, endpoints): #Checking Meraki if meraki_api.validate_api_key(): self._update_firewall_rules(meraki_api, endpoints) self.set_value('current_version', latest_version) timestamp = datetime.datetime.now().strftime( "%Y/%m/%d %H:%M:%S.%f UTC") self.set_value('last_execution', timestamp) self.save() succeed = True return succeed
def synchronize_domainlists(self): edge_api = EdgeAPI(self.get_value('edge_url'), debug=self._debug) meraki_api = MerakiAPI(self.get_value('sdwan_key'), debug=self._debug) if not edge_api.validate_edgeurl() or not meraki_api.validate_api_key( ): return False succeed = False if edge_api.login(self.get_value('edge_client_id'), self.get_value('edge_secret')): self._update_domainlist_ids(edge_api) domainlists = {} if self._debug: print("Now Checking Updated Domainlists....") if self._updates_domainlists(edge_api, domainlists): if self._debug: print("Now Synchronizing....") network_id = self._get_network_id(meraki_api) if network_id is not None: rules = meraki_api.get_firewall_rules(network_id) new_rules = self._update_firewall_rules_by_dls( meraki_api, rules, domainlists) meraki_api.update_firewall_rules(network_id, new_rules) timestamp = datetime.datetime.now().strftime( "%Y/%m/%d %H:%M:%S.%f UTC") self.set_value('last_execution', timestamp) self.save() succeed = True if self._debug: print("Now Synchronization is complted") edge_api.logout() return succeed