Fix bug 564 33/7333/1
authorAdam Israel <adam.israel@canonical.com>
Tue, 19 Mar 2019 20:33:30 +0000 (16:33 -0400)
committerAdam Israel <adam.israel@canonical.com>
Tue, 19 Mar 2019 20:35:58 +0000 (16:35 -0400)
This fixes bug 684, which noted that the workload message was not being
passed to the callback when removing charms.

This also fixes some lint errors and adds tear-down of the per-ns model
in integration tests

Change-Id: I83be9e3d951cf10a7479ea2e55074526403cf674
Signed-off-by: Adam Israel <adam.israel@canonical.com>
n2vc/vnf.py
tests/base.py
tests/test_model.py

index 6e4aaf3..2830571 100644 (file)
@@ -769,11 +769,11 @@ class N2VC:
 
                 await self.disconnect_model(self.monitors[model_name])
 
-                # Notify the callback that this charm has been removed.
                 self.notify_callback(
                     model_name,
                     application_name,
                     "removed",
+                    "Removing charm {}".format(application_name),
                     callback,
                     *callback_args,
                 )
@@ -819,7 +819,7 @@ class N2VC:
 
         # Do not delete the default model. The default model was used by all
         # Network Services, prior to the implementation of a model per NS.
-        if ns_uuid.lower() is "default":
+        if ns_uuid.lower() == "default":
             return False
 
         if not self.authenticated:
@@ -832,7 +832,7 @@ class N2VC:
 
         try:
             await self.controller.destroy_models(ns_uuid)
-        except JujuError as e:
+        except JujuError:
             raise NetworkServiceDoesNotExist(
                 "The Network Service '{}' does not exist".format(ns_uuid)
             )
index e4111eb..4d26a7f 100644 (file)
@@ -568,12 +568,17 @@ class TestN2VC(object):
                     )
                     subprocess.check_call(shlex.split(cmd))
 
-                self.artifacts[charm] = {
-                    'tmpdir': builds,
-                    'charm': "{}/builds/{}".format(builds, charm),
-                }
             except subprocess.CalledProcessError as e:
-                raise Exception("charm build failed: {}.".format(e))
+                # charm build will return error code 100 if the charm fails
+                # the auto-run of charm proof, which we can safely ignore for
+                # our CI charms.
+                if e.returncode != 100:
+                    raise Exception("charm build failed: {}.".format(e))
+
+            self.artifacts[charm] = {
+                'tmpdir': builds,
+                'charm': "{}/builds/{}".format(builds, charm),
+            }
 
         return self.artifacts[charm]['charm']
 
@@ -897,6 +902,7 @@ class TestN2VC(object):
                             application,
                         ):
                             break
+                    await self.n2vc.DestroyNetworkService(self.ns_name)
 
                     # Need to wait for the charm to finish, because native charms
                     if self.state[application]['container']:
index b54a7bb..ff164fa 100644 (file)
@@ -2,10 +2,8 @@
 Test N2VC's ssh key generation
 """
 import n2vc
-import os
 import pytest
 from . import base
-import tempfile
 import uuid