summaryrefslogtreecommitdiff
path: root/ci-script.py
diff options
context:
space:
mode:
Diffstat (limited to 'ci-script.py')
-rwxr-xr-xci-script.py118
1 files changed, 0 insertions, 118 deletions
diff --git a/ci-script.py b/ci-script.py
deleted file mode 100755
index 678f3b6..0000000
--- a/ci-script.py
+++ /dev/null
@@ -1,118 +0,0 @@
-#!/usr/bin/env python2
-
-from __future__ import print_function
-from libs.environment import *
-from libs.glance import *
-from libs.keystone import *
-import argparse
-import glob
-import os
-import subprocess
-import sys
-import yaml
-
-
-def run_shell_command(cmd):
- return subprocess.check_output(cmd, shell=True)
-
-
-def read_manifests(env):
- manifests = {}
- manifests_glob = "%s/*.yaml" % env.manifests_path
- for manifest_file in glob.glob(manifests_glob):
- with open(manifest_file, "r") as myfile:
- manifest = yaml.load(myfile.read())
- if manifest["image_name"] in manifests:
- raise Exception("Duplicate image name in manifests: %s" % manifest["image_name"])
- manifests[manifest["image_name"]] = manifest
- return manifests
-
-
-def check_image_tag_current(glance, manifest):
- image = glance.find("%s.%s" % (manifest["image_name"], manifest["image_type"]))
- return image and str(manifest["tag"]) in image.tags
-
-
-def create_image(env, manifest):
- cmd = "disk-image-create %s -t %s -o /tmp/%s.%s 2>&1" % (manifest["elements"], manifest["image_type"], manifest["image_name"], manifest["image_type"])
- environ = manifest["extra_envs"] if "extra_envs" in manifest else {}
- environ["ELEMENTS_PATH"] = env.elements_path
- p = subprocess.Popen([cmd], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=environ)
- out, err = p.communicate()
- if p.returncode != 0:
- raise Exception("Error running diskimage-builder:\n%s\n%s" % (out, err))
-
-
-def main(args):
- env = Environment(args.os_auth_url,
- args.os_project_name,
- args.os_region,
- args.os_username,
- args.os_password,
- args.os_project_domain_name,
- args.os_user_domain_name,
- args.os_identity_api_version,
- args.os_image_api_version,
- args.elements_path,
- args.manifests_path)
- manifests = read_manifests(env)
- keystone = Keystone(env)
- glance = Glance(keystone, endpoint_type="publicURL")
- for image_name, manifest in manifests.items():
- if not check_image_tag_current(glance, manifest):
- create_image(env, manifest)
- glance.upload("%s.%s" % (manifest["image_name"], manifest["image_type"]),
- manifest["image_type"],
- "/tmp/%s.%s" % (manifest["image_name"], manifest["image_type"]),
- manifest["tag"])
-
-
-if __name__ == "__main__":
- parser = argparse.ArgumentParser(description="Image Foundry CI Process")
- parser.add_argument("--os-auth-url",
- required=False,
- default=os.environ.get("OS_AUTH_URL", None),
- help="OpenStack openrc environment variable: OS_AUTH_URL")
- parser.add_argument("--os-project-name",
- required=False,
- default=os.environ.get("OS_PROJECT_NAME", None),
- help="OpenStack openrc environment variable: OS_PROJECT_NAME")
- parser.add_argument("--os-region",
- required=False,
- default=os.environ.get("OS_REGION", None),
- help="OpenStack openrc environment variable: OS_REGION")
- parser.add_argument("--os-username",
- required=False,
- default=os.environ.get("OS_USERNAME", None),
- help="OpenStack openrc environment variable: OS_USERNAME")
- parser.add_argument("--os-password",
- required=False,
- default=os.environ.get("OS_PASSWORD", None),
- help="OpenStack openrc environment variable: OS_PASSWORD")
- parser.add_argument("--os-project-domain-name",
- required=False,
- default=os.environ.get("OS_PROJECT_DOMAIN_NAME", None),
- help="OpenStack openrc environment variable: OS_PROJECT_DOMAIN_NAME")
- parser.add_argument("--os-user-domain-name",
- required=False,
- default=os.environ.get("OS_USER_DOMAIN_NAME", None),
- help="OpenStack openrc environment variable: OS_USER_DOMAIN_NAME")
- parser.add_argument("--os-identity-api-version",
- required=False,
- default=os.environ.get("OS_IDENTITY_API_VERSION", None),
- help="OpenStack openrc environment variable: OS_IDENTITY_API_VERSION")
- parser.add_argument("--os-image-api-version",
- required=False,
- default=os.environ.get("OS_IMAGE_API_VERSION", None),
- help="OpenStack openrc environment variable: OS_IMAGE_API_VERSION")
- parser.add_argument("--elements-path",
- required=False,
- default=os.environ.get("ELEMENTS_PATH", None),
- help="diskimage-builder environment variable: ELEMENTS_PATH")
- parser.add_argument("--manifests-path",
- required=False,
- default=os.environ.get("MANIFESTS_PATH", None),
- help="image-foundry environment variable: MANIFESTS_PATH")
- args = parser.parse_args()
- main(args)
- sys.exit(0)