[NFVBENCH-62] Add support for non-openstack environments
[nfvbench.git] / nfvbench / chain_clients.py
index fa21359..faf7c2a 100644 (file)
@@ -346,13 +346,18 @@ class BasicStageClient(object):
         for net in self.nets:
             for port in self.ports[net['id']]:
                 if port['device_id'] in vm_ids:
-                    self.neutron.update_port(port['id'], {
-                        'port': {
-                            'security_groups': [],
-                            'port_security_enabled': False,
-                        }
-                    })
-                    LOG.info('Security disabled on port %s', port['id'])
+                    try:
+                        self.neutron.update_port(port['id'], {
+                            'port': {
+                                'security_groups': [],
+                                'port_security_enabled': False,
+                            }
+                        })
+                        LOG.info('Security disabled on port %s', port['id'])
+                    except Exception:
+                        LOG.warning('Failed to disable port security on port %s, ignoring...',
+                                    port['id'])
+
 
     def get_loop_vm_hostnames(self):
         return [getattr(vm, 'OS-EXT-SRV-ATTR:hypervisor_hostname') for vm in self.vms]
@@ -411,7 +416,8 @@ class BasicStageClient(object):
         Creates two networks and spawn a VM which act as a loop VM connected
         with the two networks.
         """
-        self._setup_openstack_clients()
+        if self.cred:
+            self._setup_openstack_clients()
 
     def dispose(self, only_vm=False):
         """
@@ -443,12 +449,15 @@ class EXTStageClient(BasicStageClient):
         super(EXTStageClient, self).setup()
 
         # Lookup two existing networks
-        for net_name in [self.config.external_networks.left, self.config.external_networks.right]:
-            net = self._lookup_network(net_name)
-            if net:
-                self.nets.append(net)
-            else:
-                raise StageClientException('Existing network {} cannot be found.'.format(net_name))
+        if self.cred:
+            for net_name in [self.config.external_networks.left,
+                             self.config.external_networks.right]:
+                net = self._lookup_network(net_name)
+                if net:
+                    self.nets.append(net)
+                else:
+                    raise StageClientException('Existing network {} cannot be found.'.
+                                               format(net_name))
 
 
 class PVPStageClient(BasicStageClient):