From de56abb7bd729c79fd6bdd8c4e3dec5a44cf4cf2 Mon Sep 17 00:00:00 2001 From: Abhijit Gadgil Date: Wed, 16 Nov 2016 13:09:16 +0530 Subject: [PATCH] #15 Updated FIXMEs based on review comments. --- .../openstack/command/operations/connectivity_operation.py | 3 ++- .../domain/services/neutron/neutron_network_service.py | 3 +++ .../domain/services/nova/nova_instance_service.py | 7 +++++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/package/cloudshell/cp/openstack/command/operations/connectivity_operation.py b/package/cloudshell/cp/openstack/command/operations/connectivity_operation.py index 8aab974..e7cb08e 100644 --- a/package/cloudshell/cp/openstack/command/operations/connectivity_operation.py +++ b/package/cloudshell/cp/openstack/command/operations/connectivity_operation.py @@ -195,8 +195,9 @@ def _do_remove_vlan_actions(self, openstack_session, cp_resource_model, vlan_act remove_results.append(action_result) results += remove_results - + # We should just remove subnet(s) and net from Openstack now (If any exception that gets logged) + # FIXME: Add synchronization here, when moved to a domain service. self.network_service.remove_subnet_and_net(openstack_session=openstack_session, network=net, logger=logger) diff --git a/package/cloudshell/cp/openstack/domain/services/neutron/neutron_network_service.py b/package/cloudshell/cp/openstack/domain/services/neutron/neutron_network_service.py index eb8d793..314c0e8 100644 --- a/package/cloudshell/cp/openstack/domain/services/neutron/neutron_network_service.py +++ b/package/cloudshell/cp/openstack/domain/services/neutron/neutron_network_service.py @@ -98,9 +98,12 @@ def remove_subnet_and_net(self, openstack_session, network, logger): :return: """ + # FIXME: What happens if multiple threads call this? client = neutron_client.Client(session=openstack_session) try: + # FIXME: This whole block should be synchronized. + for subnet in network['subnets']: client.delete_subnet(subnet) diff --git a/package/cloudshell/cp/openstack/domain/services/nova/nova_instance_service.py b/package/cloudshell/cp/openstack/domain/services/nova/nova_instance_service.py index a50aef2..19ccee4 100644 --- a/package/cloudshell/cp/openstack/domain/services/nova/nova_instance_service.py +++ b/package/cloudshell/cp/openstack/domain/services/nova/nova_instance_service.py @@ -184,6 +184,9 @@ def get_instance_from_instance_id(self, openstack_session, instance_id, logger, except Exception: raise + # FIXME: Both the methods should return some kind of an object + # result: Success/Failure + # Error Message: To be displayed. def attach_nic_to_net(self, openstack_session, instance_id, net_id, logger): """ @@ -205,6 +208,7 @@ def attach_nic_to_net(self, openstack_session, instance_id, net_id, logger): iface_mac = res.to_dict().get('mac_addr') iface_portid = res.to_dict().get('port_id') iface_ip = res.to_dict().get('fixed_ips')[0]['ip_address'] + # FIXME: return a json string (easier to access subsequently) result = "/".join([iface_ip, iface_portid, iface_mac]) return result except Exception as e: @@ -221,10 +225,9 @@ def detach_nic_from_instance(self, openstack_session, instance_id, port_id, logg :param LoggingSesssionContext logger: :return bool: Success or Failure """ - + logger.info("Detaching port {0} from Instance {1}".format(port_id, instance_id)) - instance = self.get_instance_from_instance_id(openstack_session=openstack_session, instance_id=instance_id, logger=logger)