Ejemplo n.º 1
0
        protected SimpleServer GetServerByNameOrCreate(string serverName, bool forceCreateServer = true)
        {
            var os      = new OpenStackMember(UserName, Password, TenantName); // with tenant
            var servers = os.ListServersDetails().Where <Server>(x =>
            {
                var metadata = x.GetMetadata();
                if (!metadata.ContainsKey("loginname"))
                {
                    return(false);
                }
                return(metadata["loginname"] == serverName);
            });

            if (servers != null && servers.Count() > 0)
            {
                return(servers.First <Server>());
            }
            else
            {
                if (!forceCreateServer)
                {
                    throw new ArgumentException("no item found");
                }

                // create server
                var       image   = os.ListImages().First();
                var       network = os.ListNetworks().Where <Network>(x => x.Name.Contains("ext_")).First <Network>();
                NewServer server  = os.CreateServer(serverName, image.Id, GetFlavorByName("g-1gb").Id, "YKJkd2-GF%x1O", keyname: null, nametag: "test nametag", networks: (new String[] { network.Id }));
                Trace.WriteLine(String.Format("server creation transferred : {0}", DateTime.Now));
                Assert.IsNotNull(server);
                Assert.IsNotNull(server.AdminPassword);
                Trace.WriteLine(string.Format("ServerName : {0}", serverName));
                Trace.WriteLine(string.Format("AdminPassword : {0}", server.AdminPassword));

                // wait for activate
                os.ServersProvider.WaitForServerActive(server.Id);
                Trace.WriteLine(String.Format("server activated : {0}", DateTime.Now));

                servers = os.ListServersDetails().Where <Server>(x =>
                {
                    var metadata = x.GetMetadata();
                    if (!metadata.ContainsKey("loginname"))
                    {
                        return(false);
                    }
                    return(metadata["loginname"] == serverName);
                });
                if (servers != null && servers.Count() > 0)
                {
                    return(servers.First <SimpleServer>());
                }
                else
                {
                    throw new ArgumentException("server creation faild");
                }
            }
        }
        public void ListNetworksTest()
        {
            var os       = new OpenStackMember(UserName, Password, TenantName, TenantId);
            var networks = os.ListNetworks();

            Assert.IsNotNull(networks);
            foreach (var n in networks)
            {
                Trace.WriteLine(string.Format("networkid : {0}, name : {1}", n.Id, n.Name));
            }
        }
        public void GetNetworkTest()
        {
            var os       = new OpenStackMember(UserName, Password, TenantName, TenantId);
            var networks = os.ListNetworks();

            Assert.IsNotNull(networks);
            foreach (var n in networks)
            {
                var network = os.GetNetwork(n.Id);
                Assert.IsNotNull(network);
            }
        }
        private string GetInterfaceAttachmentIdByTesterName(string testerName = null)
        {
            testerName = testerName ?? TesterName;

            var os = new OpenStackMember(UserName, Password, TenantName);

            IEnumerable <Network> networks = os.ListNetworks();
            Network n = networks.Where <Network>(x => x.Name == testerName).FirstOrDefault <Network>();

            if (n == null)
            {
                try
                {
                    n = os.CreateNetwork(testerName);
                    Trace.WriteLine(string.Format("network added : {0}", DateTime.Now));
                    Trace.WriteLine(string.Format("NetworkId : {0}, Name : {1}", n.Id, n.Name));
                }
                catch (Exception)
                {
                    throw;
                }
            }
            IEnumerable <Port> ports = os.ListPorts();
            Port p = ports.Where <Port>(x => x.Name == testerName).FirstOrDefault <Port>();

            if (p == null)
            {
                try
                {
                    p = os.CreatePort(n.Id);
                    Trace.WriteLine(string.Format("port added : {0}", DateTime.Now));
                    Trace.WriteLine(string.Format("PortId : {0}, Name : {1}", p.Id, p.Name));
                }
                catch (Exception)
                {
                    throw;
                }
            }

            return(p.Id);
        }