From f4319e7750c5e444c4a5d02df32bcbab372c6dfa Mon Sep 17 00:00:00 2001 From: chenjiankun Date: Fri, 21 Jul 2017 02:09:03 +0000 Subject: 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 --- api/resources/v2/images.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 api/resources/v2/images.py (limited to 'api') 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') -- cgit 1.2.3-korg