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 ();
        }
Exemple #5
0
        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();
        }