Merge "bottlenecks offiline support"
authorYu Yang (Gabriel) <Gabriel.yuyang@huawei.com>
Mon, 12 Mar 2018 02:51:26 +0000 (02:51 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Mon, 12 Mar 2018 02:51:26 +0000 (02:51 +0000)
1  2 
utils/env_prepare/stack_prepare.py

@@@ -14,6 -14,7 +14,7 @@@ from utils.logger import Logge
  from utils.parser import Parser as config
  import utils.infra_setup.heat.manager as utils
  import utils.infra_setup.runner.docker_env as docker_env
+ import utils.infra_setup.heat.manager as client_manager
  
  LOG = Logger(__name__).getLogger()
  
@@@ -37,16 -38,6 +38,6 @@@ def _prepare_env_daemon(test_yardstick)
                              config.bottlenecks_config["yardstick_rc_dir"])
          docker_env.docker_exec_cmd(yardstick_contain,
                                     cmd)
-         file_orig = ("/home/opnfv/repos/yardstick/etc"
-                      "/yardstick/yardstick.conf.sample")
-         file_after = "/etc/yardstick/yardstick.conf"
-         cmd = "cp %s %s" % (file_orig,
-                             file_after)
-         docker_env.docker_exec_cmd(yardstick_contain,
-                                    cmd)
-         cmd = "sed -i '12s/http/file/g' /etc/yardstick/yardstick.conf"
-         docker_env.docker_exec_cmd(yardstick_contain,
-                                    cmd)
  
      # update the external_network
      _source_file(rc_file)
@@@ -84,6 -75,7 +75,6 @@@ def _source_file(rc_file)
                           shell=True)
      output = p.communicate()[0]
      output_lines = output.splitlines()
 -    del output_lines[5]
      env = dict((line.split('=', 1) for line in output_lines))
      os.environ.update(env)
      return env
@@@ -104,3 -96,30 +95,30 @@@ def _append_external_network(rc_file)
          except OSError as e:
              if e.errno != errno.EEXIST:
                  raise
+ def prepare_image(image_name, image_dir):
+     glance_client = client_manager._get_glance_client()
+     if not os.path.isfile(image_dir):
+         LOG.error("Error: file %s does not exist.", image_dir)
+         return None
+     try:
+         images = glance_client.images.list()
+         image_id = next((i.id for i in images if i.name == image_name), None)
+         if image_id is not None:
+             LOG.info("Image %s already exists.", image_name)
+         else:
+             LOG.info("Creating image '%s' from '%s'...", image_name, image_dir)
+             image = glance_client.images.create(
+                 name=image_name, visibility="public", disk_format="qcow2",
+                 container_format="bare")
+             image_id = image.id
+             with open(image_dir) as image_data:
+                 glance_client.images.upload(image_id, image_data)
+         return image_id
+     except Exception:  # pylint: disable=broad-except
+         LOG.error(
+             "Error [create_glance_image(glance_client, '%s', '%s')]",
+             image_name, image_dir)
+         return None