1+ using System ;
2+ using System . Linq ;
3+ using System . Threading . Tasks ;
4+ using net . openstack . Core . Domain ;
5+ using net . openstack . Providers . Rackspace ;
6+ using Rackspace . CloudNetworks ;
7+ using Rackspace . CloudNetworks . v2 ;
8+
9+ public class CloudServerSamples : ISample
10+ {
11+ public async Task Run ( string username , string apiKey , string region )
12+ {
13+ const string region = "RegionOne" ;
14+ // Configure authentication
15+ var user = new CloudIdentityWithProject
16+ {
17+ Username = "user-name" ,
18+ Password = "password" ,
19+ ProjectName = "project-name"
20+ } ;
21+ var identity = new CloudIdentityProvider ( user ) ;
22+ var compute = new ComputeService ( identity , region ) ;
23+
24+ // Create a new server
25+
26+ var results = await compute . ListServersAsync ( ) ;
27+ foreach
28+
29+ Console . WriteLine ( "Creating Sample Network... " ) ;
30+ var networkDefinition = new NetworkDefinition { Name = "Sample" } ;
31+ var sampleNetwork = await networks . CreateNetworkAsync ( networkDefinition ) ;
32+
33+ Console . WriteLine ( "Adding a subnet to Sample Network..." ) ;
34+ var subnetDefinition = new SubnetCreateDefinition ( sampleNetwork . Id , IPVersion . IPv4 , "192.0.2.0/24" )
35+ {
36+ Name = "Sample"
37+ } ;
38+ var sampleSubnet = await networks . CreateSubnetAsync ( subnetDefinition ) ;
39+
40+ Console . WriteLine ( "Attaching a port to Sample Network..." ) ;
41+ var portDefinition = new PortCreateDefinition ( sampleNetwork . Id )
42+ {
43+ Name = "Sample"
44+ } ;
45+ var samplePort = await networks . CreatePortAsync ( portDefinition ) ;
46+
47+ Console . WriteLine ( "Listing Networks..." ) ;
48+ var networks = await networks . ListNetworksAsync ( ) ;
49+ foreach ( Network network in networks )
50+ {
51+ Console . WriteLine ( $ "{ network . Id } \t \t \t { network . Name } ") ;
52+ }
53+
54+ Console . WriteLine ( ) ;
55+ Console . WriteLine ( "Sample Network Information:" ) ;
56+ Console . WriteLine ( ) ;
57+ Console . WriteLine ( $ "Network Id: { sampleNetwork . Id } ") ;
58+ Console . WriteLine ( $ "Network Name: { sampleNetwork . Name } ") ;
59+ Console . WriteLine ( $ "Network Status: { sampleNetwork . Status } ") ;
60+ Console . WriteLine ( ) ;
61+ Console . WriteLine ( $ "Subnet Id: { sampleSubnet . Id } ") ;
62+ Console . WriteLine ( $ "Subnet Name: { sampleSubnet . Name } ") ;
63+ Console . WriteLine ( $ "Subnet IPs: { sampleSubnet . AllocationPools . First ( ) . Start } - { sampleSubnet . AllocationPools . First ( ) . End } ") ;
64+ Console . WriteLine ( ) ;
65+ Console . WriteLine ( $ "Port Id: { samplePort . Id } ") ;
66+ Console . WriteLine ( $ "Port Name: { samplePort . Name } ") ;
67+ Console . WriteLine ( $ "Port Address: { samplePort . MACAddress } ") ;
68+ Console . WriteLine ( $ "Port Status: { samplePort . Status } ") ;
69+ Console . WriteLine ( ) ;
70+
71+ Console . WriteLine ( "Deleting Sample Network..." ) ;
72+ await networks . DeletePortAsync ( samplePort . Id ) ;
73+ await networks . DeleteNetworkAsync ( sampleNetwork . Id ) ;
74+ }
75+
76+ public void PrintTasks ( )
77+ {
78+ Console . WriteLine ( "This sample will perform the following tasks:" ) ;
79+ Console . WriteLine ( "\t * Create a network" ) ;
80+ Console . WriteLine ( "\t * Add a subnet to the network" ) ;
81+ Console . WriteLine ( "\t * Attach a port to the network" ) ;
82+ Console . WriteLine ( "\t * Delete the network" ) ;
83+ }
84+
85+ }
0 commit comments