aboutsummaryrefslogtreecommitdiffstats
path: root/moon_manager/moon_manager/plugins/moon_nova_plugin.py
diff options
context:
space:
mode:
Diffstat (limited to 'moon_manager/moon_manager/plugins/moon_nova_plugin.py')
-rw-r--r--moon_manager/moon_manager/plugins/moon_nova_plugin.py71
1 files changed, 71 insertions, 0 deletions
diff --git a/moon_manager/moon_manager/plugins/moon_nova_plugin.py b/moon_manager/moon_manager/plugins/moon_nova_plugin.py
new file mode 100644
index 00000000..0848152e
--- /dev/null
+++ b/moon_manager/moon_manager/plugins/moon_nova_plugin.py
@@ -0,0 +1,71 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+"""
+Plugin to request OpenStack infrastructure:
+- Nova
+"""
+
+from moon_manager.plugins.moon_openstack_plugin import *
+
+LOGGER = logging.getLogger("moon.manager.plugins.moon_nova_plugin")
+
+PLUGIN_TYPE = "information"
+_ = str
+
+# Nova exceptions
+
+
+class NovaError(MoonError):
+ description = _("There is an error connecting to Nova.")
+ code = 400
+ title = 'Nova error'
+ logger = "ERROR"
+
+
+class NovaProjectError(NovaError):
+ description = _("There is an error retrieving projects from the Nova service.")
+ code = 400
+ title = 'Nova project error'
+ logger = "ERROR"
+
+
+class NovaUserError(NovaError):
+ description = _("There is an error retrieving users from the Nova service.")
+ code = 400
+ title = 'Nova user error'
+ logger = "ERROR"
+
+
+class NovaUserConflict(NovaUserError):
+ description = _("A user with that name already exist.")
+ code = 400
+ title = 'Nova user error'
+ logger = "ERROR"
+
+
+class NovaConnector(OpenStackConnector):
+
+ def get_items(self, item_id=None, **kwargs):
+ return self._get(endpoint="/servers", _exception=NovaProjectError)
+
+ def add_item(self, object_id=None, **kwargs):
+ raise NotImplementedError() # pragma: no cover
+
+ def update_item(self, item_id, **kwargs):
+ raise NotImplementedError() # pragma: no cover
+
+ def delete_item(self, item_id, **kwargs):
+ raise NotImplementedError() # pragma: no cover
+
+
+class Connector(NovaConnector):
+ pass