/// <summary> /// Convert a CaaS Server type to an OpenStack server type. /// </summary> /// <remarks> /// Anthony, 4/13/2015. /// </remarks> /// <param name="request"> /// The request to act on. /// </param> /// <param name="server"> /// The server. /// </param> /// <param name="tenantId"> /// The tenantId. /// </param> /// <returns> /// A BaseServer. /// </returns> public static BaseServer CaaSServerToServer(this HttpRequestMessage request, ServerWithBackupType server, string tenantId) { return new BaseServer { Id = Guid.Parse(server.id), Name = server.name, Links = new[] { new RestLink(ServerUriFactory.GetServerUri(request.RequestUri.Host, tenantId, server.id), RestLink.Self) } }; }
/// <summary> /// Convert a CaaS Server type to an OpenStack server type. (detailed). /// </summary> /// <remarks> /// Anthony, 4/13/2015. /// </remarks> /// <param name="request"> /// The request to act on. /// </param> /// <param name="server"> /// The server. /// </param> /// <param name="tenantId"> /// The tenantId. /// </param> /// <returns> /// A ServerDetail. /// </returns> public static ServerDetail CaaSServerToServerDetail(this HttpRequestMessage request, ServerWithBackupType server, string tenantId) { return new ServerDetail { AccessIPv4 = server.privateIp, AccessIPv6 = string.Empty, // IPv6 not supported at present- MCP2.0 API will CreatedDate = server.created.ToString("s"), HostId = server.name, Id = Guid.Parse(server.id), Image = new Models.image.ServerImage { Id = server.sourceImageId, Links = new[] { new RestLink( ImageUriFactory.GetImageUri(request.RequestUri.Host, tenantId, server.sourceImageId), RestLink.Bookmark ) } }, IpAddressCollection = new IpAddressCollection { PrivateAddresses = new[] { new IpAddress(server.privateIp) }, PublicAddresses = new[] { new IpAddress(server.publicIp) } }, Flavor = new Flavor(), Name = server.name, Links = new[] { new RestLink(ServerUriFactory.GetServerUri(request.RequestUri.Host, tenantId, server.id), RestLink.Self) }, UserId = request.GetRequestContext().Principal.Identity.Name, TenantId = tenantId, Metadata = new { MyServerName = server.name }, // TODO: decide what metadata should be shown. Status = ServerStatus.Active // TODO : Map CaaS status. }; }