def user_to_view(user, invite=None, send_code=False): roles = user.list_roles() projects = [ link_for_project(r.tenant['id'], r.tenant['name']) for r in roles if _role_is_visible(r) ] is_admin = any((r.role["name"].lower() == 'admin' for r in roles if r.tenant['name'] == app.config['SYSTENANT'])) href = lambda endpoint: url_for(endpoint, user_id=user.id) result = { u'id': user.id, u'href': href('users.get_user'), u'name': user.name, u'email': user.email, u'fullname': getattr(user, 'fullname', ''), u'admin': is_admin, u'projects': projects, u'completed-registration': user.enabled, u'links': { u'ssh-keys': href('users_ssh_keys.list_users_ssh_keys'), u'send-invite': href('users.send_invite_for_user') } } if not user.enabled and invite is None: invite = InvitesDAO.get_for_user(user.id) if invite is not None and not invite.complete: result['invited-at'] = invite.created_at if send_code: result['invitation-code'] = invite.code return result
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
def user_to_view(user, invite=None, send_code=False): roles = user.list_roles() projects = [link_for_project(r.tenant['id'], r.tenant['name']) for r in roles if _role_is_visible(r)] is_admin = any((r.role["name"].lower() == 'admin' for r in roles if r.tenant['name'] == app.config['SYSTENANT'])) href = lambda endpoint: url_for(endpoint, user_id=user.id) result = { u'id': user.id, u'href': href('users.get_user'), u'name': user.name, u'email': user.email, u'fullname': getattr(user, 'fullname', ''), u'admin': is_admin, u'projects': projects, u'completed-registration': user.enabled, u'links': { u'ssh-keys': href('users_ssh_keys.list_users_ssh_keys'), u'send-invite': href('users.send_invite_for_user') } } if not user.enabled and invite is None: invite = InvitesDAO.get_for_user(user.id) if invite is not None and not invite.complete: result['invited-at'] = invite.created_at if send_code: result['invitation-code'] = invite.code return result
def _record_to_dict(record, user_name, project_name): if record.user_id: user_ref = { u'id': record.user_id, u'name': user_name, u'href': url_for('users.get_user', user_id=record.user_id) } else: user_ref = None if record.project_id: project_ref = link_for_project(record.project_id, project_name) else: project_ref = None result = { 'id': record.record_id, 'href': url_for('audit_log.get_log_record', record_id=record.record_id), 'user': user_ref, 'project': project_ref } for name in ('resource', 'method', 'response_status', 'message', 'remote_address', 'timestamp', 'extra'): result[name] = getattr(record, name) return result
def _sg_to_view(secgroup, project_name=None): result = link_for_security_group(secgroup) result.update( (('description', secgroup.description), ('project', link_for_project(secgroup.tenant_id, project_name)), ('rules-href', url_for('fw_rules.list_fw_rules', fw_rule_set_id=secgroup.id)))) return result
def _sg_to_view(secgroup, project_name=None): result = link_for_security_group(secgroup) result.update(( ('description', secgroup.description), ('project', link_for_project(secgroup.tenant_id, project_name)), ('rules-href', url_for('fw_rules.list_fw_rules', fw_rule_set_id=secgroup.id)) )) return result
def _net_to_dict(net): """Convert novaclient.v1_1.Network resource to dict""" d = {} d["id"] = net.id d["href"] = flask.url_for('networks.get_network', net_id=net.id) d["name"] = net.label d["vlan"] = int(net.vlan) d["cidr"] = net.cidr if net.project_id: d["used"] = True d["project"] = link_for_project(net.project_id) else: d["used"] = False return d
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