summaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
authorchenjiankun <chenjiankun1@huawei.com>2017-07-21 02:09:03 +0000
committerchenjiankun <chenjiankun1@huawei.com>2017-07-21 02:09:03 +0000
commitf4319e7750c5e444c4a5d02df32bcbab372c6dfa (patch)
treef1d9233caaa0575da3d9bd37f473f7ed80b52c9c /api
parentacc000cff316fa9883217121a3c30b0e2145a363 (diff)
Add API(v2) to load images
JIRA: YARDSTICK-751 API: /api/v2/yardstick/images/action METHOD: POST PARAMS: { 'action': 'load_image' } Change-Id: I9554f35c679ae2a861c7922080aa54a1ffc5bac7 Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
Diffstat (limited to 'api')
-rw-r--r--api/resources/v2/images.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/api/resources/v2/images.py b/api/resources/v2/images.py
new file mode 100644
index 000000000..dc996742f
--- /dev/null
+++ b/api/resources/v2/images.py
@@ -0,0 +1,44 @@
+import logging
+import subprocess
+import threading
+
+from api import ApiResource
+from yardstick.common.utils import result_handler
+from yardstick.common.utils import source_env
+from yardstick.common import constants as consts
+
+LOG = logging.getLogger(__name__)
+LOG.setLevel(logging.DEBUG)
+
+
+class V2Images(ApiResource):
+
+ def post(self):
+ return self._dispatch_post()
+
+ def load_image(self, args):
+ thread = threading.Thread(target=self._load_images)
+ thread.start()
+ return result_handler(consts.API_SUCCESS, {})
+
+ def _load_images(self):
+ LOG.info('source openrc')
+ source_env(consts.OPENRC)
+
+ LOG.info('clean images')
+ cmd = [consts.CLEAN_IMAGES_SCRIPT]
+ p = subprocess.Popen(cmd, stdout=subprocess.PIPE,
+ cwd=consts.REPOS_DIR)
+ _, err = p.communicate()
+ if p.returncode != 0:
+ LOG.error('clean image failed: %s', err)
+
+ LOG.info('load images')
+ cmd = [consts.LOAD_IMAGES_SCRIPT]
+ p = subprocess.Popen(cmd, stdout=subprocess.PIPE,
+ cwd=consts.REPOS_DIR)
+ _, err = p.communicate()
+ if p.returncode != 0:
+ LOG.error('load image failed: %s', err)
+
+ LOG.info('Done')