From 2f9d5cf583b4b5dd635f386cb9ac07435bd44cc8 Mon Sep 17 00:00:00 2001 From: Ilia Abashin Date: Fri, 25 Aug 2017 14:24:59 +0300 Subject: Heavily refactored all event based scans Restricted real mongo interaction. Still work to do, but it's a good start. Fixed a bug with old subnets not being properly deleted. Change-Id: I5f260e09f0e11a477a47cb031d397a454465123f Signed-off-by: Ilia Abashin --- app/discover/events/event_interface_add.py | 10 +++++++--- app/discover/events/event_subnet_add.py | 1 - app/discover/events/event_subnet_update.py | 6 +++++- 3 files changed, 12 insertions(+), 5 deletions(-) (limited to 'app/discover') diff --git a/app/discover/events/event_interface_add.py b/app/discover/events/event_interface_add.py index a06ad14..2c7af13 100644 --- a/app/discover/events/event_interface_add.py +++ b/app/discover/events/event_interface_add.py @@ -37,7 +37,9 @@ class EventInterfaceAdd(EventBase): router_doc['gw_port_id'] = router['gw_port_id'] # add gateway port documents. - port_doc = EventSubnetAdd().add_port_document(env, router_doc['gw_port_id'], project_name=project) + port_doc = EventSubnetAdd().add_port_document(env, + router_doc['gw_port_id'], + project_name=project) mac_address = port_doc['mac_address'] if port_doc else None @@ -87,7 +89,8 @@ class EventInterfaceAdd(EventBase): subnet_id = interface['subnet_id'] router_id = encode_router_id(host_id, interface['id']) - network_document = self.inv.get_by_field(env, "network", "subnet_ids", subnet_id, get_single=True) + network_document = self.inv.get_by_field(env, "network", "subnet_ids", + subnet_id, get_single=True) if not network_document: self.log.info("network document not found, aborting interface adding") return EventResult(result=False, retry=True) @@ -99,7 +102,8 @@ class EventInterfaceAdd(EventBase): fetcher = ApiFetchRegions() fetcher.set_env(env) fetcher.get(None) - port_doc = EventSubnetAdd().add_port_document(env, port_id, network_name=network_name) + port_doc = EventSubnetAdd().add_port_document(env, port_id, + network_name=network_name) mac_address = port_doc['mac_address'] if port_doc else None diff --git a/app/discover/events/event_subnet_add.py b/app/discover/events/event_subnet_add.py index b519b1c..a33f7cf 100644 --- a/app/discover/events/event_subnet_add.py +++ b/app/discover/events/event_subnet_add.py @@ -130,7 +130,6 @@ class EventSubnetAdd(EventBase): # Check DHCP enable, if true, scan network. if subnet['enable_dhcp'] is True: # update network - # TODO: #AskCheng - why is this necessary? if len(ApiAccess.regions) == 0: fetcher = ApiFetchRegions() fetcher.set_env(env) diff --git a/app/discover/events/event_subnet_update.py b/app/discover/events/event_subnet_update.py index 9d3c48b..26d1984 100644 --- a/app/discover/events/event_subnet_update.py +++ b/app/discover/events/event_subnet_update.py @@ -93,10 +93,14 @@ class EventSubnetUpdate(EventBase): if subnet['name'] == subnets[key]['name']: subnets[key] = subnet else: - # TODO: #AskCheng shouldn't we remove the old one? + del subnets[key] subnets[subnet['name']] = subnet self.inv.set(network_document) return EventResult(result=True, related_object=subnet['id'], display_context=network_id) + else: + self.log.info( + 'subnet not in network, aborting subnet update') + return EventResult(result=False, retry=False) \ No newline at end of file -- cgit 1.2.3-korg