Exemple #1
0
def get_ami(version, channel, region, instance_type):

    def resolve_current_version():
        version_file_url = release_metadata_url(channel, "current", version_file_name)
        version_metadata_file = utils.download_file_as_string(version_file_url)
        version_metadata_lines = version_metadata_file.split('\n')
        version_kv_pair = [ line for line in version_metadata_lines if line.startswith('COREOS_VERSION=') ][0]
        return version_kv_pair[15:]

    def version_as_float(numeric_version):
        return float(numeric_version[:numeric_version.rfind("."):])

    current_version = resolve_current_version()

    if version != "current" and version_as_float(current_version) != version_as_float(version):
        msg = "Current coreOS {0} channel version {1} differs from specified {2}, press 'i' to ignore it or 'e' to exit"
        choice = confirm_version_change(msg.format(channel, current_version, version))
        if not choice == 'i':
            sys.exit(0)

    ami_file_output = utils.download_file_as_string(release_metadata_url(channel, version, ami_list_file_name))
    amis = json.loads(ami_file_output)
    image_type = image_types[instance_type.split('.')[0]]
    return [ ami for ami in amis['amis'] if ami['name'] == region ][0][image_type]
Exemple #2
0
 def resolve_current_version():
     version_file_url = release_metadata_url(channel, "current", version_file_name)
     version_metadata_file = utils.download_file_as_string(version_file_url)
     version_metadata_lines = version_metadata_file.split('\n')
     version_kv_pair = [ line for line in version_metadata_lines if line.startswith('COREOS_VERSION=') ][0]
     return version_kv_pair[15:]
 def assert_ami_matches(self, version, channel, region, instance_type, category):
     ami = coreos.get_ami(version, channel, region, instance_type)
     ami_file = utils.download_file_as_string(coreos.release_metadata_url(channel, version, coreos.ami_list_file_name))
     stable_current_amis = json.loads(ami_file)
     expected_ami = [ ami for ami in stable_current_amis['amis'] if ami['name'] == region ][0][category]
     self.assertEqual(ami, expected_ami)