aboutsummaryrefslogtreecommitdiffstats
path: root/moon_manager/moon_manager/plugins/moon_nova_plugin.py
diff options
context:
space:
mode:
authorThomas Duval <thomas.duval@orange.com>2020-06-03 10:06:52 +0200
committerThomas Duval <thomas.duval@orange.com>2020-06-03 10:06:52 +0200
commit7bb53c64da2dcf88894bfd31503accdd81498f3d (patch)
tree4310e12366818af27947b5e2c80cb162da93a4b5 /moon_manager/moon_manager/plugins/moon_nova_plugin.py
parentcbea4e360e9bfaa9698cf7c61c83c96a1ba89b8c (diff)
Update to new version 5.4HEADstable/jermamaster
Signed-off-by: Thomas Duval <thomas.duval@orange.com> Change-Id: Idcd868133d75928a1ffd74d749ce98503e0555ea
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