private async Task<CloudServersServerNode> CreateServerNodeAsync(CloudServersProvider provider, Server server, FlavorDetails[] flavors, ServerImage[] images) { FlavorDetails flavor = flavors.FirstOrDefault(i => server.Flavor != null && string.Equals(server.Flavor.Id, i.Id, StringComparison.OrdinalIgnoreCase)); try { if (flavor == null && server.Flavor != null) flavor = await Task.Run(() => provider.GetFlavor(server.Flavor.Id)); } catch (ResponseException) { // ignore flavor = null; } ServerImage image = images.FirstOrDefault(i => server.Image != null && string.Equals(server.Image.Id, i.Id, StringComparison.OrdinalIgnoreCase)); try { if (image == null && server.Image != null) image = await Task.Run(() => provider.GetImage(server.Image.Id)); } catch (ResponseException) { // ignore image = null; } return new CloudServersServerNode(provider, server, flavor, image); }
public void TestGetFlavor() { IComputeProvider provider = new CloudServersProvider(Bootstrapper.Settings.TestIdentity); IEnumerable <FlavorDetails> flavors = ListAllFlavorsWithDetails(provider); Assert.IsNotNull(flavors); if (!flavors.Any()) { Assert.Inconclusive("The test could not proceed because the specified account and/or region does not appear to contain any configured flavors."); } foreach (FlavorDetails flavor in flavors) { Assert.IsNotNull(flavor); FlavorDetails details = provider.GetFlavor(flavor.Id); Assert.AreEqual(flavor.Disabled, details.Disabled); Assert.AreEqual(flavor.DiskSizeInGB, details.DiskSizeInGB); Assert.AreEqual(flavor.Id, details.Id); //Assert.AreEqual(flavor.Links, details.Links); Assert.AreEqual(flavor.Name, details.Name); Assert.AreEqual(flavor.RAMInMB, details.RAMInMB); Assert.AreEqual(flavor.VirtualCPUCount, details.VirtualCPUCount); } }
public void TestGetFlavor() { IComputeProvider provider = new CloudServersProvider(Bootstrapper.Settings.TestIdentity); IEnumerable<FlavorDetails> flavors = ListAllFlavorsWithDetails(provider); Assert.IsNotNull(flavors); if (!flavors.Any()) Assert.Inconclusive("The test could not proceed because the specified account and/or region does not appear to contain any configured flavors."); foreach (FlavorDetails flavor in flavors) { Assert.IsNotNull(flavor); FlavorDetails details = provider.GetFlavor(flavor.Id); Assert.AreEqual(flavor.Disabled, details.Disabled); Assert.AreEqual(flavor.DiskSizeInGB, details.DiskSizeInGB); Assert.AreEqual(flavor.Id, details.Id); //Assert.AreEqual(flavor.Links, details.Links); Assert.AreEqual(flavor.Name, details.Name); Assert.AreEqual(flavor.RAMInMB, details.RAMInMB); Assert.AreEqual(flavor.VirtualCPUCount, details.VirtualCPUCount); } }
public static void Main(string[] args) { // step-1 var username = "******"; var password = "******"; var project_name = "your_project_name"; var project_id = "your_project_id"; var auth_url = "http://controller:5000/v2.0"; var region = "your_region_name"; var networkid = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"; var identity = new CloudIdentityWithProject () { Username = username, Password = password, ProjectId = new ProjectId(project_id), ProjectName = project_name }; var identityProvider = new OpenStackIdentityProvider ( new Uri (auth_url)); var conn = new CloudServersProvider (identity, identityProvider); // step-2 var images = conn.ListImages (region: region); foreach (var image in images) { Console.WriteLine (string.Format( "Image Id: {0} - Image Name: {1}", image.Id, image.Name)); } // step-3 var flavors = conn.ListFlavors (region: region); foreach (var flavor in flavors) { Console.WriteLine (string.Format( "Flavor Id: {0} - Flavor Name: {1}", flavor.Id, flavor.Name)); } // step-4 var image_id = "97f55846-6ea5-4e9d-b437-bda97586bd0c"; var _image = conn.GetImage(image_id, region:region); Console.WriteLine (string.Format( "Image Id: {0} - Image Name: {1}", _image.Id, _image.Name)); // step-5 var flavor_id = "42"; var _flavor = conn.GetFlavor (flavor_id, region: region); Console.WriteLine (string.Format( "Flavor Id: {0} - Flavor Name: {1}", _flavor.Id, _flavor.Name)); // step-6 var instance_name = "testing"; var testing_instance = conn.CreateServer (instance_name, _image.Id, _flavor.Id, region: region, networks: new List<String> () { networkid }); Console.WriteLine (string.Format( "Instance Id: {0} at {1}", testing_instance.Id, testing_instance.Links )); // step-7 var instances = conn.ListServers(region:region); foreach (var instance in instances) { Console.WriteLine (string.Format( "Instance Id: {0} at {1}", testing_instance.Id, testing_instance.Links)); } // step-8 conn.DeleteServer(testing_instance.Id, region:region); // step-9 // step-10 // step-11 // step-12 // step-13 // step-14 // step-15 Console.Read (); }
public static void Main(string[] args) { // step-1 var username = "******"; var password = "******"; var project_name = "your_project_name"; var project_id = "your_project_id"; var auth_url = "http://controller:5000/v2.0"; var region = "your_region_name"; var networkid = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"; var identity = new CloudIdentityWithProject() { Username = username, Password = password, ProjectId = new ProjectId(project_id), ProjectName = project_name }; var identityProvider = new OpenStackIdentityProvider( new Uri(auth_url)); var conn = new CloudServersProvider(identity, identityProvider); // step-2 var images = conn.ListImages(region: region); foreach (var image in images) { Console.WriteLine(string.Format( "Image Id: {0} - Image Name: {1}", image.Id, image.Name)); } // step-3 var flavors = conn.ListFlavors(region: region); foreach (var flavor in flavors) { Console.WriteLine(string.Format( "Flavor Id: {0} - Flavor Name: {1}", flavor.Id, flavor.Name)); } // step-4 var image_id = "97f55846-6ea5-4e9d-b437-bda97586bd0c"; var _image = conn.GetImage(image_id, region: region); Console.WriteLine(string.Format( "Image Id: {0} - Image Name: {1}", _image.Id, _image.Name)); // step-5 var flavor_id = "2"; var _flavor = conn.GetFlavor(flavor_id, region: region); Console.WriteLine(string.Format( "Flavor Id: {0} - Flavor Name: {1}", _flavor.Id, _flavor.Name)); // step-6 var instance_name = "testing"; var testing_instance = conn.CreateServer(instance_name, _image.Id, _flavor.Id, region: region, networks: new List <String> () { networkid }); Console.WriteLine(string.Format( "Instance Id: {0} at {1}", testing_instance.Id, testing_instance.Links )); // step-7 var instances = conn.ListServers(region: region); foreach (var instance in instances) { Console.WriteLine(string.Format( "Instance Id: {0} at {1}", testing_instance.Id, testing_instance.Links)); } // step-8 conn.DeleteServer(testing_instance.Id, region: region); // step-9 // step-10 // step-11 // step-12 // step-13 // step-14 // step-15 Console.Read(); }