本文整理汇总了Python中nova.api.ec2.ec2utils.image_type函数的典型用法代码示例。如果您正苦于以下问题:Python image_type函数的具体用法?Python image_type怎么用?Python image_type使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了image_type函数的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_get_ec2_ids
def test_get_ec2_ids(self):
expected = {
'instance-id': 'ec2-inst-id',
'ami-id': 'ec2-ami-id',
'kernel-id': 'ami-kernel-ec2-kernelid',
'ramdisk-id': 'ami-ramdisk-ec2-ramdiskid',
}
inst = {
'uuid': 'fake-uuid',
'kernel_id': 'ec2-kernelid',
'ramdisk_id': 'ec2-ramdiskid',
'image_ref': 'fake-image',
}
self.mox.StubOutWithMock(ec2utils, 'id_to_ec2_inst_id')
self.mox.StubOutWithMock(ec2utils, 'glance_id_to_ec2_id')
self.mox.StubOutWithMock(ec2utils, 'image_type')
ec2utils.id_to_ec2_inst_id(inst['uuid']).AndReturn(
expected['instance-id'])
ec2utils.glance_id_to_ec2_id(self.context,
inst['image_ref']).AndReturn(
expected['ami-id'])
for image_type in ['kernel', 'ramdisk']:
image_id = inst['%s_id' % image_type]
ec2utils.image_type(image_type).AndReturn('ami-' + image_type)
ec2utils.glance_id_to_ec2_id(self.context, image_id,
'ami-' + image_type).AndReturn(
'ami-%s-ec2-%sid' % (image_type, image_type))
self.mox.ReplayAll()
result = self.conductor.get_ec2_ids(self.context, inst)
self.assertEqual(result, expected)
示例2: test_get_ec2_ids
def test_get_ec2_ids(self):
expected = {
"instance-id": "ec2-inst-id",
"ami-id": "ec2-ami-id",
"kernel-id": "ami-kernel-ec2-kernelid",
"ramdisk-id": "ami-ramdisk-ec2-ramdiskid",
}
inst = {
"uuid": "fake-uuid",
"kernel_id": "ec2-kernelid",
"ramdisk_id": "ec2-ramdiskid",
"image_ref": "fake-image",
}
self.mox.StubOutWithMock(ec2utils, "id_to_ec2_inst_id")
self.mox.StubOutWithMock(ec2utils, "glance_id_to_ec2_id")
self.mox.StubOutWithMock(ec2utils, "image_type")
ec2utils.id_to_ec2_inst_id(inst["uuid"]).AndReturn(expected["instance-id"])
ec2utils.glance_id_to_ec2_id(self.context, inst["image_ref"]).AndReturn(expected["ami-id"])
for image_type in ["kernel", "ramdisk"]:
image_id = inst["%s_id" % image_type]
ec2utils.image_type(image_type).AndReturn("ami-" + image_type)
ec2utils.glance_id_to_ec2_id(self.context, image_id, "ami-" + image_type).AndReturn(
"ami-%s-ec2-%sid" % (image_type, image_type)
)
self.mox.ReplayAll()
result = self.conductor.get_ec2_ids(self.context, inst)
self.assertEqual(result, expected)
示例3: __init__
def __init__(self, instance, address=None):
self.instance = instance
ctxt = context.get_admin_context()
services = db.service_get_all_by_host(ctxt.elevated(), instance["host"])
self.availability_zone = ec2utils.get_availability_zone_by_host(services, instance["host"])
self.ip_info = ec2utils.get_ip_info_for_instance(ctxt, instance)
self.security_groups = db.security_group_get_by_instance(ctxt, instance["id"])
self.mappings = _format_instance_mapping(ctxt, instance)
if instance.get("user_data", None) is not None:
self.userdata_b64 = base64.b64decode(instance["user_data"])
else:
self.userdata_b64 = None
self.ec2_ids = {}
self.ec2_ids["instance-id"] = ec2utils.id_to_ec2_inst_id(instance["id"])
self.ec2_ids["ami-id"] = ec2utils.glance_id_to_ec2_id(ctxt, instance["image_ref"])
for image_type in ["kernel", "ramdisk"]:
if self.instance.get("%s_id" % image_type):
image_id = self.instance["%s_id" % image_type]
ec2_image_type = ec2utils.image_type(image_type)
ec2_id = ec2utils.glance_id_to_ec2_id(ctxt, image_id, ec2_image_type)
self.ec2_ids["%s-id" % image_type] = ec2_id
self.address = address
示例4: get_ec2_ids
def get_ec2_ids(self, context, instance):
ec2_ids = {}
ec2_ids["instance-id"] = ec2utils.id_to_ec2_inst_id(instance["uuid"])
ec2_ids["ami-id"] = ec2utils.glance_id_to_ec2_id(context, instance["image_ref"])
for image_type in ["kernel", "ramdisk"]:
image_id = instance.get("%s_id" % image_type)
if image_id is not None:
ec2_image_type = ec2utils.image_type(image_type)
ec2_id = ec2utils.glance_id_to_ec2_id(context, image_id, ec2_image_type)
ec2_ids["%s-id" % image_type] = ec2_id
return ec2_ids
示例5: get_ec2_ids
def get_ec2_ids(self, context, instance):
ec2_ids = {}
ec2_ids['instance-id'] = ec2utils.id_to_ec2_inst_id(instance['uuid'])
ec2_ids['ami-id'] = ec2utils.glance_id_to_ec2_id(context,
instance['image_ref'])
for image_type in ['kernel', 'ramdisk']:
if '%s_id' % image_type in instance:
image_id = instance['%s_id' % image_type]
ec2_image_type = ec2utils.image_type(image_type)
ec2_id = ec2utils.glance_id_to_ec2_id(context, image_id,
ec2_image_type)
ec2_ids['%s-id' % image_type] = ec2_id
return ec2_ids
示例6: _get_ec2_ids
def _get_ec2_ids(context, instance):
ec2_ids = {}
ec2_ids['instance_id'] = ec2utils.id_to_ec2_inst_id(instance.uuid)
ec2_ids['ami_id'] = ec2utils.glance_id_to_ec2_id(context,
instance.image_ref)
for image_type in ['kernel', 'ramdisk']:
image_id = getattr(instance, '%s_id' % image_type)
ec2_id = None
if image_id is not None:
ec2_image_type = ec2utils.image_type(image_type)
ec2_id = ec2utils.glance_id_to_ec2_id(context, image_id,
ec2_image_type)
ec2_ids['%s_id' % image_type] = ec2_id
return ec2_ids
示例7: __init__
def __init__(self, instance, address=None):
self.instance = instance
ctxt = context.get_admin_context()
services = db.service_get_all_by_host(ctxt.elevated(),
instance['host'])
self.availability_zone = ec2utils.get_availability_zone_by_host(
services, instance['host'])
self.ip_info = ec2utils.get_ip_info_for_instance(ctxt, instance)
self.security_groups = db.security_group_get_by_instance(ctxt,
instance['id'])
self.mappings = _format_instance_mapping(ctxt, instance)
if instance.get('user_data', None) is not None:
self.userdata_b64 = base64.b64decode(instance['user_data'])
else:
self.userdata_b64 = None
self.ec2_ids = {}
self.ec2_ids['instance-id'] = ec2utils.id_to_ec2_id(instance['id'])
self.ec2_ids['ami-id'] = ec2utils.glance_id_to_ec2_id(ctxt,
instance['image_ref'])
for image_type in ['kernel', 'ramdisk']:
if self.instance.get('%s_id' % image_type):
image_id = self.instance['%s_id' % image_type]
image_type = ec2utils.image_type(image_type)
ec2_id = ec2utils.glance_id_to_ec2_id(ctxt, image_id,
image_type)
self.ec2_ids['%s-id' % image_type] = ec2_id
self.address = address
示例8: get_metadata
def get_metadata(self, address):
ctxt = context.get_admin_context()
search_opts = {"fixed_ip": address, "deleted": False}
try:
instance_ref = self.compute_api.get_all(ctxt, search_opts=search_opts)
except exception.NotFound:
instance_ref = None
if not instance_ref:
return None
# This ensures that all attributes of the instance
# are populated.
instance_ref = db.instance_get(ctxt, instance_ref[0]["id"])
mpi = self._get_mpi_data(ctxt, instance_ref["project_id"])
hostname = "%s.%s" % (instance_ref["hostname"], FLAGS.dhcp_domain)
host = instance_ref["host"]
services = db.service_get_all_by_host(ctxt.elevated(), host)
availability_zone = ec2utils.get_availability_zone_by_host(services, host)
ip_info = ec2utils.get_ip_info_for_instance(ctxt, instance_ref)
floating_ips = ip_info["floating_ips"]
floating_ip = floating_ips and floating_ips[0] or ""
ec2_id = ec2utils.id_to_ec2_id(instance_ref["id"])
image_ec2_id = ec2utils.image_ec2_id(instance_ref["image_ref"])
security_groups = db.security_group_get_by_instance(ctxt, instance_ref["id"])
security_groups = [x["name"] for x in security_groups]
mappings = self._format_instance_mapping(ctxt, instance_ref)
data = {
"user-data": base64.b64decode(instance_ref["user_data"]),
"meta-data": {
"ami-id": image_ec2_id,
"ami-launch-index": instance_ref["launch_index"],
"ami-manifest-path": "FIXME",
"block-device-mapping": mappings,
"hostname": hostname,
"instance-action": "none",
"instance-id": ec2_id,
"instance-type": instance_ref["instance_type"]["name"],
"local-hostname": hostname,
"local-ipv4": address,
"placement": {"availability-zone": availability_zone},
"public-hostname": hostname,
"public-ipv4": floating_ip,
"reservation-id": instance_ref["reservation_id"],
"security-groups": security_groups,
"mpi": mpi,
},
}
# public-keys should be in meta-data only if user specified one
if instance_ref["key_name"]:
data["meta-data"]["public-keys"] = {
"0": {"_name": instance_ref["key_name"], "openssh-key": instance_ref["key_data"]}
}
for image_type in ["kernel", "ramdisk"]:
if instance_ref.get("%s_id" % image_type):
ec2_id = ec2utils.image_ec2_id(instance_ref["%s_id" % image_type], ec2utils.image_type(image_type))
data["meta-data"]["%s-id" % image_type] = ec2_id
if False: # TODO(vish): store ancestor ids
data["ancestor-ami-ids"] = []
if False: # TODO(vish): store product codes
data["product-codes"] = []
return data
示例9: __init__
def __init__(self, instance, address=None, content=[], extra_md=None):
"""Creation of this object should basically cover all time consuming
collection. Methods after that should not cause time delays due to
network operations or lengthy cpu operations.
The user should then get a single instance and make multiple method
calls on it.
"""
self.instance = instance
self.extra_md = extra_md
ctxt = context.get_admin_context()
services = db.service_get_all_by_host(ctxt.elevated(),
instance['host'])
self.availability_zone = ec2utils.get_availability_zone_by_host(
services, instance['host'])
self.ip_info = ec2utils.get_ip_info_for_instance(ctxt, instance)
self.security_groups = db.security_group_get_by_instance(ctxt,
instance['id'])
self.mappings = _format_instance_mapping(ctxt, instance)
if instance.get('user_data', None) is not None:
self.userdata_raw = base64.b64decode(instance['user_data'])
else:
self.userdata_raw = None
self.ec2_ids = {}
self.ec2_ids['instance-id'] = ec2utils.id_to_ec2_inst_id(
instance['id'])
self.ec2_ids['ami-id'] = ec2utils.glance_id_to_ec2_id(ctxt,
instance['image_ref'])
for image_type in ['kernel', 'ramdisk']:
if self.instance.get('%s_id' % image_type):
image_id = self.instance['%s_id' % image_type]
ec2_image_type = ec2utils.image_type(image_type)
ec2_id = ec2utils.glance_id_to_ec2_id(ctxt, image_id,
ec2_image_type)
self.ec2_ids['%s-id' % image_type] = ec2_id
self.address = address
# expose instance metadata.
self.launch_metadata = {}
for item in instance.get('metadata', []):
self.launch_metadata[item['key']] = item['value']
self.uuid = instance.get('uuid')
self.content = {}
self.files = []
# get network info, and the rendered network template
ctxt = context.get_admin_context()
network_info = network.API().get_instance_nw_info(ctxt, instance)
self.network_config = None
cfg = netutils.get_injected_network_template(network_info)
if cfg:
key = "%04i" % len(self.content)
self.content[key] = cfg
self.network_config = {"name": "network_config",
'content_path': "/%s/%s" % (CONTENT_DIR, key)}
# 'content' is passed in from the configdrive code in
# nova/virt/libvirt/driver.py. Thats how we get the injected files
# (personalities) in. AFAIK they're not stored in the db at all,
# so are not available later (web service metadata time).
for (path, contents) in content:
key = "%04i" % len(self.content)
self.files.append({'path': path,
'content_path': "/%s/%s" % (CONTENT_DIR, key)})
self.content[key] = contents
示例10: get_metadata
def get_metadata(self, address):
ctxt = context.get_admin_context()
search_opts = {'fixed_ip': address, 'deleted': False}
try:
instance_ref = self.compute_api.get_all(ctxt,
search_opts=search_opts)
except exception.NotFound:
instance_ref = None
if not instance_ref:
return None
# This ensures that all attributes of the instance
# are populated.
instance_ref = db.instance_get(ctxt, instance_ref[0]['id'])
mpi = self._get_mpi_data(ctxt, instance_ref['project_id'])
hostname = "%s.%s" % (instance_ref['hostname'], FLAGS.dhcp_domain)
host = instance_ref['host']
services = db.service_get_all_by_host(ctxt.elevated(), host)
availability_zone = ec2utils.get_availability_zone_by_host(services,
host)
ip_info = ec2utils.get_ip_info_for_instance(ctxt, instance_ref)
floating_ips = ip_info['floating_ips']
floating_ip = floating_ips and floating_ips[0] or ''
ec2_id = ec2utils.id_to_ec2_id(instance_ref['id'])
image_ec2_id = ec2utils.image_ec2_id(instance_ref['image_ref'])
security_groups = db.security_group_get_by_instance(ctxt,
instance_ref['id'])
security_groups = [x['name'] for x in security_groups]
mappings = self._format_instance_mapping(ctxt, instance_ref)
data = {
'user-data': base64.b64decode(instance_ref['user_data']),
'meta-data': {
'ami-id': image_ec2_id,
'ami-launch-index': instance_ref['launch_index'],
'ami-manifest-path': 'FIXME',
'block-device-mapping': mappings,
'hostname': hostname,
'instance-action': 'none',
'instance-id': ec2_id,
'instance-type': instance_ref['instance_type']['name'],
'local-hostname': hostname,
'local-ipv4': address,
'placement': {'availability-zone': availability_zone},
'public-hostname': hostname,
'public-ipv4': floating_ip,
'reservation-id': instance_ref['reservation_id'],
'security-groups': security_groups,
'mpi': mpi}}
# public-keys should be in meta-data only if user specified one
if instance_ref['key_name']:
data['meta-data']['public-keys'] = {
'0': {'_name': instance_ref['key_name'],
'openssh-key': instance_ref['key_data']}}
for image_type in ['kernel', 'ramdisk']:
if instance_ref.get('%s_id' % image_type):
ec2_id = ec2utils.image_ec2_id(
instance_ref['%s_id' % image_type],
ec2utils.image_type(image_type))
data['meta-data']['%s-id' % image_type] = ec2_id
if False: # TODO(vish): store ancestor ids
data['ancestor-ami-ids'] = []
if False: # TODO(vish): store product codes
data['product-codes'] = []
return data
示例11: get_metadata
def get_metadata(self, address):
if not address:
raise exception.FixedIpNotFoundForAddress(address=address)
cache_key = 'metadata-%s' % address
data = self._cache.get(cache_key)
if data:
return data
ctxt = context.get_admin_context()
try:
fixed_ip = self.network_api.get_fixed_ip_by_address(ctxt, address)
instance_ref = db.instance_get(ctxt, fixed_ip['instance_id'])
except exception.NotFound:
return None
hostname = "%s.%s" % (instance_ref['hostname'], FLAGS.dhcp_domain)
host = instance_ref['host']
services = db.service_get_all_by_host(ctxt.elevated(), host)
availability_zone = ec2utils.get_availability_zone_by_host(services,
host)
ip_info = ec2utils.get_ip_info_for_instance(ctxt, instance_ref)
floating_ips = ip_info['floating_ips']
floating_ip = floating_ips and floating_ips[0] or ''
ec2_id = ec2utils.id_to_ec2_id(instance_ref['id'])
image_id = instance_ref['image_ref']
ctxt = context.get_admin_context()
image_ec2_id = ec2utils.glance_id_to_ec2_id(ctxt, image_id)
security_groups = db.security_group_get_by_instance(ctxt,
instance_ref['id'])
security_groups = [x['name'] for x in security_groups]
mappings = self._format_instance_mapping(ctxt, instance_ref)
data = {
'user-data': base64.b64decode(instance_ref['user_data']),
'meta-data': {
'ami-id': image_ec2_id,
'ami-launch-index': instance_ref['launch_index'],
'ami-manifest-path': 'FIXME',
'block-device-mapping': mappings,
'hostname': hostname,
'instance-action': 'none',
'instance-id': ec2_id,
'instance-type': instance_ref['instance_type']['name'],
'local-hostname': hostname,
'local-ipv4': address,
'placement': {'availability-zone': availability_zone},
'public-hostname': hostname,
'public-ipv4': floating_ip,
'reservation-id': instance_ref['reservation_id'],
'security-groups': security_groups}}
# public-keys should be in meta-data only if user specified one
if instance_ref['key_name']:
data['meta-data']['public-keys'] = {
'0': {'_name': instance_ref['key_name'],
'openssh-key': instance_ref['key_data']}}
for image_type in ['kernel', 'ramdisk']:
if instance_ref.get('%s_id' % image_type):
image_id = instance_ref['%s_id' % image_type]
image_type = ec2utils.image_type(image_type)
ec2_id = ec2utils.glance_id_to_ec2_id(ctxt,
image_id,
image_type)
data['meta-data']['%s-id' % image_type] = ec2_id
if False: # TODO(vish): store ancestor ids
data['ancestor-ami-ids'] = []
if False: # TODO(vish): store product codes
data['product-codes'] = []
self._cache.set(cache_key, data, 15)
return data