diff --git a/contrib/plugins/magnum_plugin/magnum-app/io.murano.apps.MagnumApp/Classes/MagnumBayApp.yaml b/contrib/plugins/magnum_plugin/magnum-app/io.murano.apps.MagnumApp/Classes/MagnumBayApp.yaml index 3d0b3b28..e593dbe2 100644 --- a/contrib/plugins/magnum_plugin/magnum-app/io.murano.apps.MagnumApp/Classes/MagnumBayApp.yaml +++ b/contrib/plugins/magnum_plugin/magnum-app/io.murano.apps.MagnumApp/Classes/MagnumBayApp.yaml @@ -79,5 +79,12 @@ Methods: - $._environment.reporter.report_error($, $formatString.format($e.message)) - Rethrow: - $.setAttr(bayId, $bayId) + - $bayStatus: $._magnum.getBayStatus($bayId) + - If: $bayStatus = "CREATE_FAILED" + Then: + - $msg: 'Magnum bay create failed' + - $._environment.reporter.report_error($this, $msg) + - Throw: MagnumBayCreateFailed + Message: $msg - $msg: format('Magnum bay {0} is created', $.name) - $._environment.reporter.report($this, $msg) diff --git a/contrib/plugins/magnum_plugin/magnum_plugin/__init__.py b/contrib/plugins/magnum_plugin/magnum_plugin/__init__.py index daa84b09..6195db82 100644 --- a/contrib/plugins/magnum_plugin/magnum_plugin/__init__.py +++ b/contrib/plugins/magnum_plugin/magnum_plugin/__init__.py @@ -66,11 +66,16 @@ class MagnumClient(object): def delete_baymodel(self, baymodel_id): self._client.baymodels.delete(baymodel_id) + def get_bay_status(self, bay_id): + bays = self._client.bays + bay = bays.get(bay_id) + return bay.status + def create_bay(self, args): bays = self._client.bays bay = bays.create(**args) self._wait_on_status(bays, bay.uuid, [None, "CREATE_IN_PROGRESS"], - ["CREATE_COMPLETE"]) + ["CREATE_COMPLETE", "CREATE_FAILED"]) return bay.uuid def delete_bay(self, bay_id):