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,
)
# 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:
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)
)
)
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']
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']: