Example #1
0
        public async Task CanDeleteImageMetadata()
        {
            var metadata = new Dictionary <string, string>()
            {
                { "item1", "value1" }, { "item2", "value2" }
            };
            var created = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(10));
            var updated = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(1));
            var imageId = "12345";
            var image   = new ComputeImage(imageId, "tiny",
                                           new Uri("http://testcomputeendpoint.com/v2/1234567890/images/12345"),
                                           new Uri("http://testcomputeendpoint.com/1234567890/images/12345"), metadata,
                                           "ACTIVE", created, updated, 10, 512, 100);

            this.simulator.Images.Add(image);

            var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            var resp = await client.DeleteImageMetadata(imageId, "item1");

            Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode);

            Assert.AreEqual(1, image.Metadata.Count);
            Assert.AreEqual("value2", image.Metadata["item2"]);
        }
Example #2
0
        public async Task AssignFloatingIpFormsCorrectUrlAndMethod()
        {
            var client =
                new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);
            var serverId = "12345";
            await client.AssignFloatingIp(serverId, "172.0.0.1");

            Assert.AreEqual(string.Format("{0}/servers/{1}/action", endpoint, serverId), this.simulator.Uri.ToString());
            Assert.AreEqual(HttpMethod.Post, this.simulator.Method);
        }
Example #3
0
        public async Task AssignFloatingIpIncludesContentTypeHeader()
        {
            var client =
                new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            await client.AssignFloatingIp("12345", "172.0.0.1");

            Assert.IsTrue(this.simulator.ContentType != string.Empty);
            Assert.AreEqual("application/json", this.simulator.ContentType);
        }
Example #4
0
        public async Task AssignFloatingIpIncludesAuthHeader()
        {
            var client =
                new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            await client.AssignFloatingIp("12345", "172.0.0.1");

            Assert.IsTrue(this.simulator.Headers.ContainsKey("X-Auth-Token"));
            Assert.AreEqual(this.authId, this.simulator.Headers["X-Auth-Token"]);
        }
Example #5
0
        public async Task GetComputeFlavorsFormsCorrectUrlAndMethod()
        {
            var client =
                new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            await client.GetFlavors();

            Assert.AreEqual(string.Format("{0}/flavors", endpoint), this.simulator.Uri.ToString());
            Assert.AreEqual(HttpMethod.Get, this.simulator.Method);
        }
Example #6
0
        public async Task CreateComputeServerFormsCorrectUrlAndMethod()
        {
            var client =
                new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            await client.CreateServer("MyServer", "1245", "2", "54321", "key", new List <string>() { "MyGroup" });

            Assert.AreEqual(string.Format("{0}/servers", endpoint), this.simulator.Uri.ToString());
            Assert.AreEqual(HttpMethod.Post, this.simulator.Method);
        }
Example #7
0
        public async Task CreateComputeServerIncludesContentTypeHeader()
        {
            var client =
                new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            await client.CreateServer("MyServer", "1245", "2", "54321", "key", new List <string>() { "MyGroup" });

            Assert.IsTrue(this.simulator.ContentType != string.Empty);
            Assert.AreEqual("application/json", this.simulator.ContentType);
        }
Example #8
0
        public async Task CreateComputeServerIncludesAuthHeader()
        {
            var client =
                new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            await client.CreateServer("MyServer", "1245", "2", "54321", "key", new List <string>() { "MyGroup" });

            Assert.IsTrue(this.simulator.Headers.ContainsKey("X-Auth-Token"));
            Assert.AreEqual(this.authId, this.simulator.Headers["X-Auth-Token"]);
        }
Example #9
0
        public async Task GetComputeImageMetadataIncludesAuthHeader()
        {
            var client =
                new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            await client.GetImageMetadata("12345");

            Assert.IsTrue(this.simulator.Headers.ContainsKey("X-Auth-Token"));
            Assert.AreEqual(this.authId, this.simulator.Headers["X-Auth-Token"]);
        }
Example #10
0
        public async Task DeleteComputeServerFormsCorrectUrlAndMethod()
        {
            var serverId = "1";
            var client   =
                new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            await client.DeleteServer(serverId);

            Assert.AreEqual(string.Format("{0}/servers/{1}", endpoint, serverId), this.simulator.Uri.ToString());
            Assert.AreEqual(HttpMethod.Delete, this.simulator.Method);
        }
Example #11
0
        public async Task GetComputeImageMetadataFormsCorrectUrlAndMethod()
        {
            var imageId = "12345";
            var client  =
                new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            await client.GetImageMetadata(imageId);

            Assert.AreEqual(string.Format("{0}/images/{1}/metadata", endpoint, imageId), this.simulator.Uri.ToString());
            Assert.AreEqual(HttpMethod.Get, this.simulator.Method);
        }
Example #12
0
        public async Task GetComputeKeyPairFormsCorrectUrlAndMethod()
        {
            var keyPairName = "1";
            var client      =
                new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            await client.GetKeyPair(keyPairName);

            Assert.AreEqual(string.Format("{0}/os-keypairs/{1}", endpoint, keyPairName), this.simulator.Uri.ToString());
            Assert.AreEqual(HttpMethod.Get, this.simulator.Method);
        }
Example #13
0
        public async Task CanAssignFloatingIp()
        {
            var serverId = "12345";
            var server   = new ComputeServer(serverId, "tiny",
                                             new Uri("http://testcomputeendpoint.com/v2/1234567890/servers/1"),
                                             new Uri("http://testcomputeendpoint.com/1234567890/servers/1"), new Dictionary <string, string>());

            this.simulator.Servers.Add(server);
            var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            var resp = await client.AssignFloatingIp(serverId, "172.0.0.1");

            Assert.AreEqual(HttpStatusCode.Accepted, resp.StatusCode);
        }
Example #14
0
        public async Task UpdateComputeImageMetadataSetsCorrectContentType()
        {
            var metadata = new Dictionary <string, string>()
            {
                { "item1", "value1" }, { "item2", "value2" }
            };
            var imageId = "12345";
            var client  =
                new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            await client.UpdateImageMetadata(imageId, metadata);

            Assert.AreEqual("application/json", this.simulator.ContentType);
        }
Example #15
0
        public async Task UpdateComputeImageMetadataIncludesAuthHeader()
        {
            var metadata = new Dictionary <string, string>()
            {
                { "item1", "value1" }, { "item2", "value2" }
            };
            var client =
                new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            await client.UpdateImageMetadata("12345", metadata);

            Assert.IsTrue(this.simulator.Headers.ContainsKey("X-Auth-Token"));
            Assert.AreEqual(this.authId, this.simulator.Headers["X-Auth-Token"]);
        }
Example #16
0
        public async Task UpdateComputeImageMetadataFormsCorrectUrlAndMethod()
        {
            var metadata = new Dictionary <string, string>()
            {
                { "item1", "value1" }, { "item2", "value2" }
            };
            var imageId = "12345";
            var client  =
                new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            await client.UpdateImageMetadata(imageId, metadata);

            Assert.AreEqual(string.Format("{0}/images/{1}/metadata", endpoint, imageId), this.simulator.Uri.ToString());
            Assert.AreEqual(HttpMethod.Post, this.simulator.Method);
        }
Example #17
0
        public async Task CanGetFlavors()
        {
            this.simulator.Flavors.Add(new ComputeFlavor("1", "tiny", "4", "2", "10", new Uri("http://testcomputeendpoint.com/v2/1234567890/flavors/1"), new Uri("http://testcomputeendpoint.com/1234567890/flavors/1"), new Dictionary <string, string>()));

            var client =
                new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            var resp = await client.GetFlavors();

            Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode);

            var respContent = TestHelper.GetStringFromStream(resp.Content);

            Assert.IsTrue(respContent.Length > 0);
        }
Example #18
0
        public async Task CreateComputeServerWithKeyNameFormsCorrectBody()
        {
            var client =
                new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            var serverName   = "MyServer";
            var keyName      = "MyKey";
            var imageId      = "12345";
            var flavorId     = "2";
            var networkId    = "54321";
            var secGroupName = "MyGroup";

            await client.CreateServer(serverName, imageId, flavorId, networkId, keyName, new List <string>() { secGroupName });

            this.simulator.Content.Position = 0;
            var reqContent = TestHelper.GetStringFromStream(this.simulator.Content);

            var srvObj = JObject.Parse(reqContent);

            Assert.IsNotNull(srvObj["server"]);
            Assert.IsNotNull(srvObj["server"]["name"]);
            Assert.AreEqual(serverName, (string)srvObj["server"]["name"]);

            Assert.IsNotNull(srvObj["server"]["imageRef"]);
            Assert.AreEqual(imageId, (string)srvObj["server"]["imageRef"]);

            Assert.IsNotNull(srvObj["server"]["flavorRef"]);
            Assert.AreEqual(flavorId, (string)srvObj["server"]["flavorRef"]);

            Assert.IsNotNull(srvObj["server"]["max_count"]);
            Assert.AreEqual(1, (int)srvObj["server"]["max_count"]);

            Assert.IsNotNull(srvObj["server"]["min_count"]);
            Assert.AreEqual(1, (int)srvObj["server"]["min_count"]);

            Assert.IsNotNull(srvObj["server"]["key_name"]);
            Assert.AreEqual(keyName, (string)srvObj["server"]["key_name"]);

            Assert.IsNotNull(srvObj["server"]["networks"]);
            Assert.IsNotNull(srvObj["server"]["networks"][0]);
            Assert.IsNotNull(srvObj["server"]["networks"][0]["uuid"]);
            Assert.AreEqual(networkId, (string)srvObj["server"]["networks"][0]["uuid"]);

            Assert.IsNotNull(srvObj["server"]["security_groups"]);
            Assert.IsNotNull(srvObj["server"]["security_groups"][0]);
            Assert.IsNotNull(srvObj["server"]["security_groups"][0]["name"]);
            Assert.AreEqual(secGroupName, (string)srvObj["server"]["security_groups"][0]["name"]);
        }
Example #19
0
        public async Task CanGetKeyPair()
        {
            var keyPairName = "Key1";
            var keyPair     = new ComputeKeyPair(keyPairName, "12345", "ABCDEF");

            this.simulator.KeyPairs.Add(keyPair);

            var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            var resp = await client.GetKeyPair(keyPairName);

            Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode);

            var respContent = TestHelper.GetStringFromStream(resp.Content);

            Assert.IsTrue(respContent.Length > 0);
        }
Example #20
0
        public async Task CanDeleteImage()
        {
            var imageId = "12345";
            var created = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(10));
            var updated = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(1));

            this.simulator.Images.Add(new ComputeImage(imageId, "tiny",
                                                       new Uri("http://testcomputeendpoint.com/v2/1234567890/flavors/1"),
                                                       new Uri("http://testcomputeendpoint.com/1234567890/flavors/1"), new Dictionary <string, string>(), "ACTIVE", created, updated, 10, 512, 100));

            var client =
                new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            var resp = await client.DeleteImage(imageId);

            Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode);
            Assert.IsFalse(this.simulator.Images.Any());
        }
Example #21
0
        public async Task AssignFloatingIpFormsCorrectBody()
        {
            var client =
                new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            var serverId  = "12345";
            var ipAddress = "172.0.0.1";

            await client.AssignFloatingIp(serverId, ipAddress);

            this.simulator.Content.Position = 0;
            var reqContent = TestHelper.GetStringFromStream(this.simulator.Content);

            var body = JObject.Parse(reqContent);

            Assert.IsNotNull(body["addFloatingIp"]);
            Assert.IsNotNull(body["addFloatingIp"]["address"]);
            Assert.AreEqual(ipAddress, (string)body["addFloatingIp"]["address"]);
        }
Example #22
0
        public async Task CanCreateComputeServer()
        {
            var srvName = "MyServer";

            var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            var resp = await client.CreateServer(srvName, "1245", "2", "54321", string.Empty, new List <string>() { "MyGroup" });

            Assert.AreEqual(HttpStatusCode.Accepted, resp.StatusCode);

            var respContent = TestHelper.GetStringFromStream(resp.Content);

            Assert.IsTrue(respContent.Length > 0);

            Assert.IsTrue(this.simulator.Servers.Count == 1);

            var resSrv = this.simulator.Servers.First();

            Assert.AreEqual(srvName, resSrv.Name);
        }
Example #23
0
        public async Task CanGetImages()
        {
            var created = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(10));
            var updated = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(1));

            this.simulator.Images.Add(new ComputeImage("1", "tiny",
                                                       new Uri("http://testcomputeendpoint.com/v2/1234567890/flavors/1"),
                                                       new Uri("http://testcomputeendpoint.com/1234567890/flavors/1"), new Dictionary <string, string>(), "ACTIVE", created, updated, 10, 512, 100));

            var client =
                new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            var resp = await client.GetImages();

            Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode);

            var respContent = TestHelper.GetStringFromStream(resp.Content);

            Assert.IsTrue(respContent.Length > 0);
        }
Example #24
0
        public async Task CanGetImageMetadata()
        {
            var imageId  = "12345";
            var created  = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(10));
            var updated  = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(1));
            var metadata = new Dictionary <string, string>()
            {
                { "item1", "value1" }, { "item2", "value2" }
            };

            this.simulator.Images.Add(new ComputeImage(imageId, "tiny",
                                                       new Uri("http://testcomputeendpoint.com/v2/1234567890/flavors/1"),
                                                       new Uri("http://testcomputeendpoint.com/1234567890/flavors/1"), metadata, "ACTIVE", created, updated, 10, 512, 100));

            var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            var resp = await client.GetImageMetadata(imageId);

            Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode);

            var respContent = TestHelper.GetStringFromStream(resp.Content);

            Assert.IsTrue(respContent.Length > 0);

            var jObj      = JObject.Parse(respContent);
            var metaToken = jObj["metadata"];

            Assert.IsNotNull(metaToken);

            var item1 = metaToken["item1"];

            Assert.IsNotNull(item1);
            Assert.AreEqual("value1", item1.Value <string>());

            var item2 = metaToken["item2"];

            Assert.IsNotNull(item2);
            Assert.AreEqual("value2", item2.Value <string>());
        }
Example #25
0
        public async Task CanDeleteServerMetadata()
        {
            var metadata = new Dictionary <string, string>()
            {
                { "item1", "value1" }, { "item2", "value2" }
            };
            var serverId = "1";
            var server   = new ComputeServer(serverId, "tiny",
                                             new Uri("http://testcomputeendpoint.com/v2/1234567890/servers/1"),
                                             new Uri("http://testcomputeendpoint.com/1234567890/servers/1"), metadata);

            this.simulator.Servers.Add(server);

            var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            var resp = await client.DeleteServerMetadata(serverId, "item1");

            Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode);

            Assert.AreEqual(1, server.Metadata.Count);
            Assert.AreEqual("value2", server.Metadata["item2"]);
        }
Example #26
0
        public async Task CanGetServerMetadata()
        {
            var metadata = new Dictionary <string, string>()
            {
                { "item1", "value1" }, { "item2", "value2" }
            };
            var serverId = "1";

            this.simulator.Servers.Add(new ComputeServer(serverId, "tiny",
                                                         new Uri("http://testcomputeendpoint.com/v2/1234567890/servers/1"),
                                                         new Uri("http://testcomputeendpoint.com/1234567890/servers/1"), metadata));

            var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator);

            var resp = await client.GetServerMetadata(serverId);

            Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode);

            var respContent = TestHelper.GetStringFromStream(resp.Content);

            Assert.IsTrue(respContent.Length > 0);

            var jObj      = JObject.Parse(respContent);
            var metaToken = jObj["metadata"];

            Assert.IsNotNull(metaToken);

            var item1 = metaToken["item1"];

            Assert.IsNotNull(item1);
            Assert.AreEqual("value1", item1.Value <string>());

            var item2 = metaToken["item2"];

            Assert.IsNotNull(item2);
            Assert.AreEqual("value2", item2.Value <string>());
        }