public void UpdateServerHardWare()
        {
            Config.waitServerReady(server.Id);
            //setup initial values for update
            float Ram     = 8;
            var   request = new POCO.Requests.Servers.UpdateHardwareRequest()
            {
                Ram = (int)Ram,
            };

            Ram = request.Ram.Value;
            var result = client.ServersHardware.Update(request, server.Id);

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Hardware.CoresPerProcessor);
            Config.waitServerReady(server.Id);
            var resultserver = client.Servers.Show(result.Id);

            //check if the values are updated as expected
            Assert.AreEqual(resultserver.Hardware.Ram, Ram);
        }
Ejemplo n.º 2
0
        public void UpdateServerHardWare()
        {
            var random  = new Random();
            var servers = client.Servers.Get().Where(ser => ser.Name.Contains("ServerTest")).ToList();
            var server  = servers[random.Next(servers.Count - 1)];
            //setup initial values for update
            int   CoresPerProcessor = 4;
            float Ram   = 4;
            int   Vcore = 4;

            //search for an appropriate server for udpating
            foreach (var item in servers)
            {
                server = client.Servers.Show(item.Id);
                //cannot update servers with snapshots
                //cannot hot update servers with linux system installed
                if (server.Status.State == ServerState.DEPLOYING || server.Snapshot != null || server.Image.Name.Contains("ub") || server.Image.Name.Contains("centos"))
                {
                    continue;
                }
                //check if server current values are less than the updated values for hot update
                if (server.Hardware.CoresPerProcessor < CoresPerProcessor && server.Hardware.Ram < Ram && server.Hardware.Vcore < Vcore)
                {
                    server = item;
                    break;
                }
                //else increase the already existing values
                else
                {
                    CoresPerProcessor = server.Hardware.CoresPerProcessor + 1;
                    Ram   = server.Hardware.Ram + (float)2.0;
                    Vcore = server.Hardware.Vcore + 2;
                    break;
                }
            }
            //if the updated values exceed any of the limits stop the update
            CoresPerProcessor = server.Hardware.CoresPerProcessor + 1;
            Ram   = server.Hardware.Ram + (float)2.0;
            Vcore = server.Hardware.Vcore + 2;
            if (CoresPerProcessor > 16 || Ram > 128 || Vcore > 16 || CoresPerProcessor > Vcore)
            {
                return;
            }
            if (server.Status.State != ServerState.DEPLOYING && server.Snapshot == null && !server.Image.Name.Contains("ub") && !server.Image.Name.Contains("centos"))
            {
                var request = new POCO.Requests.Servers.UpdateHardwareRequest()
                {
                    CoresPerProcessor = server.Hardware.Vcore > 1 ? server.Hardware.Vcore / 2 : 1,
                    Ram   = (int)Ram,
                    Vcore = server.Hardware.Vcore
                };

                CoresPerProcessor = request.CoresPerProcessor;
                Vcore             = request.Vcore;
                Ram = request.Ram;
                var result = client.ServersHardware.Update(request, server.Id);
                Assert.IsNotNull(result);
                Assert.IsNotNull(result.Hardware.CoresPerProcessor);
                //give the server time to update
                var resultserver = client.Servers.Show(result.Id);
                while (resultserver.Status.Percent > 0)
                {
                    Thread.Sleep(5000);
                    resultserver = client.Servers.Show(result.Id);
                }
                //check if the values are updated as expected
                Assert.AreEqual(resultserver.Hardware.CoresPerProcessor, CoresPerProcessor);
                Assert.AreEqual(resultserver.Hardware.Ram, Ram);
                Assert.AreEqual(resultserver.Hardware.Vcore, Vcore);
            }
        }
        public void UpdateServerHardWare()
        {
            var random = new Random();
            var servers = client.Servers.Get().Where(ser => ser.Name.Contains("ServerTest")).ToList();
            var server = servers[random.Next(servers.Count - 1)];
            //setup initial values for update
            int CoresPerProcessor = 4;
            float Ram = 4;
            int Vcore = 4;
            //search for an appropriate server for udpating
            foreach (var item in servers)
            {
                server = client.Servers.Show(item.Id);
                //cannot update servers with snapshots
                //cannot hot update servers with linux system installed
                if (server.Status.State == ServerState.DEPLOYING || server.Snapshot != null || server.Image.Name.Contains("ub") || server.Image.Name.Contains("centos"))
                {
                    continue;
                }
                //check if server current values are less than the updated values for hot update
                if (server.Hardware.CoresPerProcessor < CoresPerProcessor && server.Hardware.Ram < Ram && server.Hardware.Vcore < Vcore)
                {
                    server = item;
                    break;
                }
                //else increase the already existing values
                else
                {
                    CoresPerProcessor = server.Hardware.CoresPerProcessor + 1;
                    Ram = server.Hardware.Ram + (float)2.0;
                    Vcore = server.Hardware.Vcore + 2;
                    break;
                }
            }
            //if the updated values exceed any of the limits stop the update
            CoresPerProcessor = server.Hardware.CoresPerProcessor + 1;
            Ram = server.Hardware.Ram + (float)2.0;
            Vcore = server.Hardware.Vcore + 2;
            if (CoresPerProcessor > 16 || Ram > 128 || Vcore > 16 || CoresPerProcessor > Vcore)
            {
                return;
            }
            if (server.Status.State != ServerState.DEPLOYING && server.Snapshot == null && !server.Image.Name.Contains("ub") && !server.Image.Name.Contains("centos"))
            {

                var request = new POCO.Requests.Servers.UpdateHardwareRequest()
                    {
                        CoresPerProcessor = server.Hardware.Vcore > 1 ? server.Hardware.Vcore / 2 : 1,
                        Ram = (int)Ram,
                        Vcore = server.Hardware.Vcore
                    };

                CoresPerProcessor = request.CoresPerProcessor;
                Vcore = request.Vcore;
                Ram = request.Ram;
                var result = client.ServersHardware.Update(request, server.Id);
                Assert.IsNotNull(result);
                Assert.IsNotNull(result.Hardware.CoresPerProcessor);
                //give the server time to update
                var resultserver = client.Servers.Show(result.Id);
                while (resultserver.Status.Percent > 0)
                {
                    Thread.Sleep(5000);
                    resultserver = client.Servers.Show(result.Id);
                }
                //check if the values are updated as expected
                Assert.AreEqual(resultserver.Hardware.CoresPerProcessor, CoresPerProcessor);
                Assert.AreEqual(resultserver.Hardware.Ram, Ram);
                Assert.AreEqual(resultserver.Hardware.Vcore, Vcore);
            }
        }