Add API(v2) to get openrc info 45/37445/2
authorchenjiankun <chenjiankun1@huawei.com>
Fri, 14 Jul 2017 01:38:47 +0000 (01:38 +0000)
committerchenjiankun <chenjiankun1@huawei.com>
Fri, 14 Jul 2017 04:38:42 +0000 (04:38 +0000)
JIRA: YARDSTICK-721

API: /api/v2/yardstick/environments/openrcs/<openrc_id>
METHOD: GET

Change-Id: I57241381cf50fef0dc4eec3281c01ba106262a5a
Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
api/resources/v2/openrcs.py
api/urls.py

index cbe8946..afabcde 100644 (file)
@@ -18,7 +18,7 @@ LOG = logging.getLogger(__name__)
 LOG.setLevel(logging.DEBUG)
 
 
-class V2Openrc(ApiResource):
+class V2Openrcs(ApiResource):
 
     def post(self):
         return self._dispatch_post()
@@ -34,6 +34,11 @@ class V2Openrc(ApiResource):
         except KeyError:
             return result_handler(consts.API_ERROR, 'environment_id must be provided')
 
+        try:
+            uuid.UUID(environment_id)
+        except ValueError:
+            return result_handler(consts.API_ERROR, 'invalid environment id')
+
         LOG.info('writing openrc: %s', consts.OPENRC)
         makedirs(consts.CONF_DIR)
         upload_file.save(consts.OPENRC)
@@ -70,6 +75,11 @@ class V2Openrc(ApiResource):
         except KeyError:
             return result_handler(consts.API_ERROR, 'environment_id must be provided')
 
+        try:
+            uuid.UUID(environment_id)
+        except ValueError:
+            return result_handler(consts.API_ERROR, 'invalid environment id')
+
         LOG.info('writing openrc: %s', consts.OPENRC)
         makedirs(consts.CONF_DIR)
 
@@ -157,3 +167,24 @@ class V2Openrc(ApiResource):
         makedirs(consts.OPENSTACK_CONF_DIR)
         with open(consts.CLOUDS_CONF, 'w') as f:
             yaml.dump(ansible_conf, f, default_flow_style=False)
+
+
+class V2Openrc(ApiResource):
+
+    def get(self, openrc_id):
+        try:
+            uuid.UUID(openrc_id)
+        except ValueError:
+            return result_handler(consts.API_ERROR, 'invalid openrc id')
+
+        LOG.info('Geting openrc: %s', openrc_id)
+        openrc_handler = V2OpenrcHandler()
+        try:
+            openrc = openrc_handler.get_by_uuid(openrc_id)
+        except ValueError:
+            return result_handler(consts.API_ERROR, 'no such openrc id')
+
+        LOG.info('load openrc content')
+        content = jsonutils.loads(openrc.content)
+
+        return result_handler(consts.API_ERROR, {'openrc': content})
index efb7f89..7fe64b2 100644 (file)
@@ -26,5 +26,6 @@ urlpatterns = [
     Url('/api/v2/yardstick/environments/action', 'v2_environments'),
     Url('/api/v2/yardstick/environments/<environment_id>', 'v2_environment'),
 
-    Url('/api/v2/yardstick/environments/openrcs/action', 'v2_openrc'),
+    Url('/api/v2/yardstick/environments/openrcs/action', 'v2_openrcs'),
+    Url('/api/v2/yardstick/environments/openrcs/<openrc_id>', 'v2_openrc'),
 ]