/// <inheritdoc cref="NetworkingApiBuilder.CreateSubnetAsync" /> public Task <Subnet> CreateSubnetAsync(SubnetCreateDefinition subnet, CancellationToken cancellationToken = default(CancellationToken)) { return(_networkingApiBuilder .CreateSubnetAsync(subnet, cancellationToken) .SendAsync() .ReceiveJson <Subnet>()); }
public async Task <IEnumerable <Subnet> > CreateSubnets(Network network) { // Rackspace only allows 1 ipv4 and ipv6 subnet per network SubnetCreateDefinition ipv6Subnet = new SubnetCreateDefinition(network.Id, IPVersion.IPv6, "2001:db8::/32"); var definitions = new[] { BuildSubnet(network), ipv6Subnet }; return(await CreateSubnets(definitions)); }
public async Task Run(string username, string apiKey, string region) { // Configure authentication var identity = new CloudIdentity { Username = username, APIKey = apiKey }; var identityService = new CloudIdentityProvider(identity); var networkService = new CloudNetworkService(identityService, region); Console.WriteLine("Creating Sample Network... "); var networkDefinition = new NetworkDefinition {Name = "Sample"}; var sampleNetwork = await networkService.CreateNetworkAsync(networkDefinition); Console.WriteLine("Adding a subnet to Sample Network..."); var subnetDefinition = new SubnetCreateDefinition(sampleNetwork.Id, IPVersion.IPv4, "192.0.2.0/24") { Name = "Sample" }; var sampleSubnet = await networkService.CreateSubnetAsync(subnetDefinition); Console.WriteLine("Attaching a port to Sample Network..."); var portDefinition = new PortCreateDefinition(sampleNetwork.Id) { Name = "Sample" }; var samplePort = await networkService.CreatePortAsync(portDefinition); Console.WriteLine("Listing Networks..."); var networks = await networkService.ListNetworksAsync(); foreach (Network network in networks) { Console.WriteLine($"{network.Id}\t\t\t{network.Name}"); } Console.WriteLine(); Console.WriteLine("Sample Network Information:"); Console.WriteLine(); Console.WriteLine($"Network Id: {sampleNetwork.Id}"); Console.WriteLine($"Network Name: {sampleNetwork.Name}"); Console.WriteLine($"Network Status: {sampleNetwork.Status}"); Console.WriteLine(); Console.WriteLine($"Subnet Id: {sampleSubnet.Id}"); Console.WriteLine($"Subnet Name: {sampleSubnet.Name}"); Console.WriteLine($"Subnet IPs: {sampleSubnet.AllocationPools.First().Start} - {sampleSubnet.AllocationPools.First().End}"); Console.WriteLine(); Console.WriteLine($"Port Id: {samplePort.Id}"); Console.WriteLine($"Port Name: {samplePort.Name}"); Console.WriteLine($"Port Address: {samplePort.MACAddress}"); Console.WriteLine($"Port Status: {samplePort.Status}"); Console.WriteLine(); Console.WriteLine("Deleting Sample Network..."); await networkService.DeletePortAsync(samplePort.Id); await networkService.DeleteNetworkAsync(sampleNetwork.Id); }
public async Task <Subnet> CreateSubnet(SubnetCreateDefinition definition) { var subnet = await _cloudNetworkService.CreateSubnetAsync(definition); Register(subnet); await Task.Delay(TimeSpan.FromMilliseconds(500)); return(subnet); }
public void CreateSubnet() { using (var httpTest = new HttpTest()) { Identifier networkId = Guid.NewGuid(); Identifier subnetId = Guid.NewGuid(); httpTest.RespondWithJson(new Subnet { Id = subnetId }); var definition = new SubnetCreateDefinition(networkId, IPVersion.IPv4, "10.0.0.0/24"); var subnet = _cloudNetworkService.CreateSubnet(definition); httpTest.ShouldHaveCalled("*/subnets"); Assert.NotNull(subnet); Assert.Equal(subnetId, subnet.Id); } }
public async void CreateSubnetTest() { var network = await _testData.CreateNetwork(); var definition = new SubnetCreateDefinition(network.Id, IPVersion.IPv4, "192.168.3.0/24") { Name = TestData.GenerateName(), GatewayIP = "192.168.3.1", AllocationPools = { new AllocationPool("192.168.3.10", "192.168.3.50") }, Nameservers = { "8.8.8.8" }, HostRoutes = { new HostRoute("1.2.3.4/24", "10.0.0.1") } }; Trace.WriteLine(string.Format("Creating subnet named: {0}", definition.Name)); var subnet = await _testData.CreateSubnet(definition); Trace.WriteLine("Verifying subnet matches requested definition..."); Assert.NotNull(subnet); Assert.Equal(definition.NetworkId, subnet.NetworkId); Assert.Equal(definition.Name, subnet.Name); Assert.Equal(definition.CIDR, subnet.CIDR); Assert.Equal(definition.IPVersion, subnet.IPVersion); Assert.Equal(definition.GatewayIP, subnet.GatewayIP); Assert.Equal(definition.AllocationPools, subnet.AllocationPools); Assert.Equal(definition.Nameservers, subnet.Nameservers); Assert.Equal(definition.HostRoutes, subnet.HostRoutes); }
/// <inheritdoc cref="NetworkingApiBuilder.CreateSubnetAsync" /> public Task<Subnet> CreateSubnetAsync(SubnetCreateDefinition subnet, CancellationToken cancellationToken = default(CancellationToken)) { return _networkingApiBuilder .CreateSubnetAsync(subnet, cancellationToken) .SendAsync() .ReceiveJson<Subnet>(); }
/// <inheritdoc cref="OpenStack.Synchronous.NetworkingServiceExtensions.CreateSubnet"/> public static Subnet CreateSubnet(this CloudNetworkService cloudNetworkService, SubnetCreateDefinition subnet) { return cloudNetworkService.CreateSubnetAsync(subnet).ForceSynchronous(); }
public async Task<Subnet> CreateSubnet(SubnetCreateDefinition definition) { var subnet = await _cloudNetworkService.CreateSubnetAsync(definition); Register(subnet); await Task.Delay(TimeSpan.FromMilliseconds(500)); return subnet; }
public async Task<IEnumerable<Subnet>> CreateSubnets(Network network) { // Rackspace only allows 1 ipv4 and ipv6 subnet per network SubnetCreateDefinition ipv6Subnet = new SubnetCreateDefinition(network.Id, IPVersion.IPv6, "2001:db8::/32"); var definitions = new[] {BuildSubnet(network), ipv6Subnet }; return await CreateSubnets(definitions); }