예제 #1
0
파일: images.py 프로젝트: altai/altai-api
def _image_to_view(image, tenant=None):
    result = link_for_image(image.id, image.name)
    result.update({
        u'status':
        image.status,
        u'disk-format':
        image.disk_format,
        u'container-format':
        image.container_format,
        u'created':
        timestamp_from_openstack(image.created_at),
        u'md5sum':
        image.checksum,
        u'size':
        image.size,
        u'data-href':
        url_for('images.get_image_data', image_id=image.id)
    })
    if image.owner == auth.default_tenant_id():
        result[u'global'] = True
    else:
        result[u'global'] = False
        result[u'project'] = link_for_project(image.owner,
                                              tenant.name if tenant else None)

    if 'kernel_id' in image.properties:
        result['kernel'] = link_for_image(image.properties['kernel_id'])
    if 'ramdisk_id' in image.properties:
        result['ramdisk'] = link_for_image(image.properties['ramdisk_id'])

    return result
예제 #2
0
def _instance_to_view(server):
    client = admin_client_set()
    project_link = link_for_project(server.tenant_id)
    flavor = client.compute.flavors.get(server.flavor["id"])
    user_link = link_for_user_id(server.user_id)
    image_link = link_for_image(server.image["id"])
    instancedata = InstanceDataDAO.get(server.id)

    href_for = lambda endpoint: url_for(endpoint, instance_id=server.id)

    result = {
        u"id": server.id,
        u"href": href_for("instances.get_instance"),
        u"name": server.name,
        u"project": project_link,
        u"created-by": user_link,
        u"image": image_link,
        u"instance-type": {
            u"id": flavor.id,
            u"name": flavor.name,
            u"href": url_for("instance_types.get_instance_type", instance_type_id=flavor.id),
        },
        u"created": timestamp_from_openstack(server.created),
        u"state": server.status,
        u"ipv4": [elem["addr"] for val in server.addresses.itervalues() for elem in val if elem["version"] == 4],
        u"links": {
            u"reboot": href_for("instances.reboot_instance"),
            u"reset": href_for("instances.reset_instance"),
            u"remove": href_for("instances.remove_instance"),
            u"vnc": href_for("instances.instance_vnc_console"),
            u"console-output": href_for("instances.instance_console_output"),
            u"fw-rules": href_for("instance_fw_rule_sets" ".list_instance_fw_rule_sets"),
        },
    }
    if instancedata:
        if instancedata.expires_at is not None:
            result[u"expires-at"] = instancedata.expires_at
        if instancedata.remind_at is not None:
            result[u"remind-at"] = instancedata.remind_at
    if g.is_admin and hasattr(server, _HOST_ATTRIBUTE):
        result["node"] = link_for_node(getattr(server, _HOST_ATTRIBUTE))
    return result
예제 #3
0
파일: images.py 프로젝트: altai/altai-api
def _image_to_view(image, tenant=None):
    result = link_for_image(image.id, image.name)
    result.update({
        u'status': image.status,
        u'disk-format': image.disk_format,
        u'container-format': image.container_format,
        u'created': timestamp_from_openstack(image.created_at),
        u'md5sum': image.checksum,
        u'size': image.size,
        u'data-href': url_for('images.get_image_data', image_id=image.id)
    })
    if image.owner == auth.default_tenant_id():
        result[u'global'] = True
    else:
        result[u'global'] = False
        result[u'project'] = link_for_project(image.owner,
                                              tenant.name if tenant else None)

    if 'kernel_id' in image.properties:
        result['kernel'] = link_for_image(image.properties['kernel_id'])
    if 'ramdisk_id' in image.properties:
        result['ramdisk'] = link_for_image(image.properties['ramdisk_id'])

    return result
예제 #4
0
 def test_timestamp_with_microseconds_can_be_parsed(self):
     value = "2012-09-13T15:00:42.000Z"
     expected = datetime(2012, 9, 13, 15, 0, 42)
     self.assertEquals(expected, timestamp_from_openstack(value))
예제 #5
0
 def test_timestamp_without_zone_can_be_parsed(self):
     value = "2012-09-13T15:00:42"
     expected = datetime(2012, 9, 13, 15, 0, 42)
     self.assertEquals(expected, timestamp_from_openstack(value))
예제 #6
0
 def test_timestamp_with_microseconds_can_be_parsed(self):
     value = "2012-09-13T15:00:42.000Z"
     expected = datetime(2012, 9, 13, 15, 0, 42)
     self.assertEquals(expected, timestamp_from_openstack(value))
예제 #7
0
 def test_timestamp_without_zone_can_be_parsed(self):
     value = "2012-09-13T15:00:42"
     expected = datetime(2012, 9, 13, 15, 0, 42)
     self.assertEquals(expected, timestamp_from_openstack(value))