vcloud-walker 3.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. data/.gitignore +9 -0
  2. data/Gemfile +12 -0
  3. data/LICENSE +20 -0
  4. data/README.md +55 -0
  5. data/Rakefile +21 -0
  6. data/bin/vcloud-walk +41 -0
  7. data/docs/examples/catalogs.json +40 -0
  8. data/docs/examples/edgegateways.json +285 -0
  9. data/docs/examples/networks.json +53 -0
  10. data/docs/examples/vdcs.json +221 -0
  11. data/jenkins.sh +9 -0
  12. data/jenkins_integration_tests.sh +11 -0
  13. data/lib/vcloud/walker/fog_interface.rb +48 -0
  14. data/lib/vcloud/walker/resource/catalog.rb +29 -0
  15. data/lib/vcloud/walker/resource/catalog_item.rb +25 -0
  16. data/lib/vcloud/walker/resource/collection.rb +13 -0
  17. data/lib/vcloud/walker/resource/entity.rb +27 -0
  18. data/lib/vcloud/walker/resource/gateway_ipsec_vpn_service.rb +46 -0
  19. data/lib/vcloud/walker/resource/network.rb +38 -0
  20. data/lib/vcloud/walker/resource/organization.rb +45 -0
  21. data/lib/vcloud/walker/resource/vapp.rb +46 -0
  22. data/lib/vcloud/walker/resource/vdc.rb +35 -0
  23. data/lib/vcloud/walker/resource/vm.rb +85 -0
  24. data/lib/vcloud/walker/resource.rb +11 -0
  25. data/lib/vcloud/walker/vcloud_session.rb +13 -0
  26. data/lib/vcloud/walker/version.rb +5 -0
  27. data/lib/vcloud/walker.rb +23 -0
  28. data/scripts/configure_walker_ci_vse.rb +31 -0
  29. data/scripts/data/walker_ci/carrenza.yaml +17 -0
  30. data/scripts/data/walker_ci/skyscape.yaml +17 -0
  31. data/scripts/generate_fog_conf_file.sh +6 -0
  32. data/spec/fog_interface_spec.rb +93 -0
  33. data/spec/integration/vcloud_walker_spec.rb +74 -0
  34. data/spec/spec_helper.rb +45 -0
  35. data/spec/stubs/service_layer_stub.rb +109 -0
  36. data/spec/stubs/stubs.rb +46 -0
  37. data/spec/vcloud/walker_spec.rb +59 -0
  38. data/spec/walk/catalogs_spec.rb +31 -0
  39. data/spec/walk/entity_spec.rb +69 -0
  40. data/spec/walk/gateway_ipsec_vpn_service_spec.rb +157 -0
  41. data/spec/walk/network_spec.rb +70 -0
  42. data/spec/walk/organization_spec.rb +53 -0
  43. data/spec/walk/vapp_spec.rb +24 -0
  44. data/spec/walk/vdcs_spec.rb +30 -0
  45. data/spec/walk/vm_spec.rb +122 -0
  46. data/vcloud-walker.gemspec +31 -0
  47. metadata +274 -0
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ Gemfile.lock
2
+ .bundle/
3
+ coverage/
4
+ vendor/
5
+ .idea/
6
+ out/
7
+ pkg/
8
+ fog_integration_test.config
9
+ *.un~
data/Gemfile ADDED
@@ -0,0 +1,12 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ if ENV['VCLOUD_WALKER_DEV_FOG_MASTER']
6
+ gem 'fog', :git => 'git@github.com:fog/fog.git', :branch => 'master'
7
+ gem 'vcloud-core', :git => 'git@github.com:alphagov/vcloud-core.git', :branch => 'master'
8
+ elsif ENV['VCLOUD_WALKER_DEV_FOG_LOCAL']
9
+ gem 'fog', :path => '../fog'
10
+ gem 'vcloud-core', :path => '../vcloud-core'
11
+ end
12
+
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ The MIT License (MIT)
2
+ Copyright (c) 2013 Government Digital Service
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ of this software and associated documentation files (the "Software"), to deal
6
+ in the Software without restriction, including without limitation the rights
7
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the Software is
9
+ furnished to do so, subject to the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in all
12
+ copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
19
+ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
20
+ OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,55 @@
1
+ # VCloud Walker
2
+
3
+ Vcloud-walker is a command line tool, to describe different VMware vCloud Director 5.1 entities. It uses Fog under the hood.
4
+
5
+ ## Usage
6
+ To find usage, run `vcloud-walk`.
7
+
8
+ You can perform following operations with walker.
9
+
10
+ #### Walk vdcs:
11
+ vcloud-walk vdcs
12
+
13
+ describes all vdcs within given organization. This includes vapp, vm and network information.
14
+
15
+ #### Walk catalogs:
16
+ vcloud-walk catalogs
17
+
18
+ describes all catalogs and catalog items within given organization.
19
+
20
+ #### Walk organization networks:
21
+ vcloud-walk networks
22
+
23
+ describes all organization networks.
24
+
25
+ #### Walk edgegateways:
26
+ vcloud-walk edgegateways
27
+
28
+ describes all edgegateway for given organization. Each edgegateway includes configuration for firewall, load balancer and nat services.
29
+
30
+ #### Walk entire organization:
31
+ vcloud-walk organization
32
+
33
+ describes the entire organization, which includes edgegateway, catalogs, networks and vdcs within an organization.
34
+
35
+ ### Credentials
36
+
37
+ You will need to specify the credentials for your VMware environment. As Vcloud-walker uses fog to query the VMware api, you will need to create a `.fog` file containing these credentials.
38
+
39
+ An example of .fog file is:
40
+ ````
41
+ default:
42
+ vcloud_director_username: 'user_id@org_id'
43
+ vcloud_director_password: 'password'
44
+ vcloud_director_host: 'api_endpoint'
45
+ ````
46
+
47
+ To understand more about `.fog` files, visit the 'Credentials' section here => http://fog.io/about/getting_started.html.
48
+
49
+ ### Output
50
+
51
+ Walker can output data in JSON or YAML format. The default output format is JSON.
52
+ You can use command line option ```--yaml``` for yaml output.
53
+
54
+ Find sample json output in docs/examples directory.
55
+
data/Rakefile ADDED
@@ -0,0 +1,21 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rake/testtask'
3
+ require 'rspec/core/rake_task'
4
+ require 'vcloud/walker/version'
5
+
6
+ RSpec::Core::RakeTask.new(:spec) do |task|
7
+ ENV['COVERAGE'] = 'true'
8
+ task.pattern = FileList['spec/**/*_spec.rb'] - FileList['spec/integration/*_spec.rb']
9
+ end
10
+
11
+ RSpec::Core::RakeTask.new(:integration_test) do |task|
12
+ task.pattern = FileList['spec/integration/*_spec.rb']
13
+ end
14
+
15
+ task :default => :spec
16
+
17
+ require "gem_publisher"
18
+ task :publish_gem do |t|
19
+ gem = GemPublisher.publish_if_updated("vcloud-walker.gemspec", :rubygems)
20
+ puts "Published #{gem}" if gem
21
+ end
data/bin/vcloud-walk ADDED
@@ -0,0 +1,41 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'bundler/setup'
5
+ require 'methadone'
6
+
7
+ require 'json'
8
+ require 'vcloud/walker'
9
+
10
+ class App
11
+ include Methadone::Main
12
+ include Methadone::CLILogging
13
+ include Vcloud
14
+
15
+ main do |resource_to_walk|
16
+ walker_output = Vcloud::Walker.walk(resource_to_walk)
17
+ options[:yaml] ? print(walker_output.to_yaml) : print(JSON.pretty_generate walker_output)
18
+ end
19
+
20
+ on("--verbose", "Verbose output")
21
+ on("--debug", "Debugging output")
22
+ on("--yaml", "Yaml output")
23
+
24
+ arg :resource_to_walk
25
+
26
+ description '
27
+ Vcloud-walker is a command line tool, to describe different VMware vCloud Director 5.1 resources. It uses Fog under the hood.
28
+
29
+ Resources that can be walked using vcloud-walker are:
30
+ catalogs
31
+ vdcs
32
+ networks
33
+ edgegateways
34
+ organization
35
+
36
+ See https://github.com/alphagov/vcloud-walker for more info'
37
+
38
+ version Vcloud::Walker::VERSION
39
+
40
+ go!
41
+ end
@@ -0,0 +1,40 @@
1
+ [
2
+ {
3
+ "id": "bf3dc47a-4138-4154-91ba-d0fde3c94f32",
4
+ "name": "walker-ci",
5
+ "description": "",
6
+ "items": [
7
+ {
8
+ "id": "13afd303-1a70-4040-a508-e56cf2d1f483",
9
+ "name": "ubuntu-precise-image-2",
10
+ "description": "",
11
+ "vapp_template_id": "vappTemplate-c390e7a9-b8d5-402b-b71f-7cbeea545621"
12
+ },
13
+ {
14
+ "id": "89946d4a-7371-4a00-9775-73569bb62299",
15
+ "name": "ubuntu-precise-201309091031",
16
+ "description": "",
17
+ "vapp_template_id": "vappTemplate-0015359d-07ca-442a-9314-fbb52536cb8a"
18
+ }
19
+ ]
20
+ },
21
+ {
22
+ "id": "9999c6c8-52f9-4460-b0ad-219c322b3964",
23
+ "name": "Windows Templates",
24
+ "description": "",
25
+ "items": [
26
+ {
27
+ "id": "11760eb3-a4a3-415d-9274-ee195ae2d587",
28
+ "name": "Windows_2008_R2_STD_50GB_LargeHighMem_v1.0.2",
29
+ "description": "Public templatePassword \"Windows#1\"\n------------------------------------------------\nSkyscape Windows 2008 R2\nLarge High Memory Machine Size - 8 vCPU 32GB RAM\n50GB HDD\nv1.0.2",
30
+ "vapp_template_id": "vappTemplate-b01c681b-e66f-46fb-b0ec-aec37fad7d9c"
31
+ },
32
+ {
33
+ "id": "19d115de-1d19-42d7-8abc-57f7f8554086",
34
+ "name": "Windows_2008_R2_ENT_50GB_Medium_v1.0.2",
35
+ "description": "Public templatePassword \"Windows#1\"\n------------------------------------------------\nSkyscape Windows 2008 R2\nMedium Machine Size - 4 vCPU 8GB RAM\n50GB HDD\nv1.0.2",
36
+ "vapp_template_id": "vappTemplate-699c8fbb-8850-4ce2-a361-006c73a5b686"
37
+ }
38
+ ]
39
+ }
40
+ ]
@@ -0,0 +1,285 @@
1
+ [
2
+ {
3
+ "xmlns": "http://www.vmware.com/vcloud/v1.5",
4
+ "xmlns_xsi": "http://www.w3.org/2001/XMLSchema-instance",
5
+ "status": "1",
6
+ "name": "Test Edgegateway",
7
+ "id": "urn:vcloud:gateway:c1b44ae3-7858-4c54-8fcd-fdc913d8314e",
8
+ "type": "application/vnd.vmware.admin.edgeGateway+xml",
9
+ "href": "https://api.vcd.portal.skyscapecloud.com/api/admin/edgeGateway/c1b44ae3-7858-4c54-8fcd-fdc913d8314e",
10
+ "xsi_schemaLocation": "http://www.vmware.com/vcloud/v1.5 http://api.vcd.portal.skyscapecloud.com/api/v1.5/schema/master.xsd",
11
+ "Link": [
12
+ {
13
+ "rel": "up",
14
+ "type": "application/vnd.vmware.vcloud.vdc+xml",
15
+ "href": "https://api.vcd.portal.skyscapecloud.com/api/vdc/074aea1e-a5e9-4dd1-a028-40db8c98d237"
16
+ },
17
+ {
18
+ "rel": "edgeGateway:redeploy",
19
+ "href": "https://api.vcd.portal.skyscapecloud.com/api/admin/edgeGateway/c1b44ae3-7858-4c54-8fcd-fdc913d8314e/action/redeploy"
20
+ },
21
+ {
22
+ "rel": "edgeGateway:configureServices",
23
+ "type": "application/vnd.vmware.admin.edgeGatewayServiceConfiguration+xml",
24
+ "href": "https://api.vcd.portal.skyscapecloud.com/api/admin/edgeGateway/c1b44ae3-7858-4c54-8fcd-fdc913d8314e/action/configureServices"
25
+ },
26
+ {
27
+ "rel": "edgeGateway:reapplyServices",
28
+ "href": "https://api.vcd.portal.skyscapecloud.com/api/admin/edgeGateway/c1b44ae3-7858-4c54-8fcd-fdc913d8314e/action/reapplyServices"
29
+ },
30
+ {
31
+ "rel": "edgeGateway:syncSyslogSettings",
32
+ "href": "https://api.vcd.portal.skyscapecloud.com/api/admin/edgeGateway/c1b44ae3-7858-4c54-8fcd-fdc913d8314e/action/syncSyslogServerSettings"
33
+ }
34
+ ],
35
+ "Description": "",
36
+ "Configuration": {
37
+ "GatewayBackingConfig": "compact",
38
+ "GatewayInterfaces": {
39
+ "GatewayInterface": [
40
+ {
41
+ "Name": "NetworkTest2",
42
+ "DisplayName": "NetworkTest2",
43
+ "Network": {
44
+ "type": "application/vnd.vmware.admin.network+xml",
45
+ "name": "NetworkTest2",
46
+ "href": "https://api.vcd.portal.skyscapecloud.com/api/admin/network/61cf57b5-544f-4fdb-aad0-8448926f4060"
47
+ },
48
+ "InterfaceType": "internal",
49
+ "SubnetParticipation": {
50
+ "Gateway": "192.168.1.1",
51
+ "Netmask": "255.255.255.240",
52
+ "IpAddress": "192.168.1.1"
53
+ },
54
+ "ApplyRateLimit": "false",
55
+ "UseForDefaultRoute": "false"
56
+ },
57
+ {
58
+ "Name": "nft00012i2",
59
+ "DisplayName": "nft00012i2",
60
+ "Network": {
61
+ "type": "application/vnd.vmware.admin.network+xml",
62
+ "name": "nft00012i2",
63
+ "href": "https://api.vcd.portal.skyscapecloud.com/api/admin/network/44265cc3-6d63-4ea9-ac72-4905b5aa65d8"
64
+ },
65
+ "InterfaceType": "uplink",
66
+ "SubnetParticipation": {
67
+ "Gateway": "37.26.89.185",
68
+ "Netmask": "255.255.255.248",
69
+ "IpAddress": "37.26.89.99",
70
+ "IpRanges": {
71
+ "IpRange": {
72
+ "StartAddress": "37.26.89.100",
73
+ "EndAddress": "37.26.89.199"
74
+ }
75
+ }
76
+ },
77
+ "ApplyRateLimit": "false",
78
+ "InRateLimit": "100.0",
79
+ "OutRateLimit": "100.0",
80
+ "UseForDefaultRoute": "true"
81
+ },
82
+ {
83
+ "Name": "Default",
84
+ "DisplayName": "Default",
85
+ "Network": {
86
+ "type": "application/vnd.vmware.admin.network+xml",
87
+ "name": "Default",
88
+ "href": "https://api.vcd.portal.skyscapecloud.com/api/admin/network/ffa5aa5a-a5a1-4cdb-891f-1a92af7ef550"
89
+ },
90
+ "InterfaceType": "internal",
91
+ "SubnetParticipation": {
92
+ "Gateway": "192.168.2.1",
93
+ "Netmask": "255.255.255.240",
94
+ "IpAddress": "192.168.2.1"
95
+ },
96
+ "ApplyRateLimit": "false",
97
+ "UseForDefaultRoute": "false"
98
+ }
99
+ ]
100
+ },
101
+ "EdgeGatewayServiceConfiguration": {
102
+ "FirewallService": {
103
+ "IsEnabled": "true",
104
+ "DefaultAction": "allow",
105
+ "LogDefaultAction": "false",
106
+ "FirewallRule": [
107
+ {
108
+ "Id": "1",
109
+ "IsEnabled": "true",
110
+ "MatchOnTranslate": "false",
111
+ "Description": "description",
112
+ "Policy": "allow",
113
+ "Protocols": {
114
+ "Tcp": "true"
115
+ },
116
+ "Port": "22",
117
+ "DestinationPortRange": "22",
118
+ "DestinationIp": "internal",
119
+ "SourcePort": "22",
120
+ "SourcePortRange": "22",
121
+ "SourceIp": "external",
122
+ "EnableLogging": "false"
123
+ }
124
+ ]
125
+ },
126
+ "NatService": {
127
+ "IsEnabled": "true",
128
+ "NatRule": [
129
+ {
130
+ "RuleType": "SNAT",
131
+ "IsEnabled": "true",
132
+ "Id": "65538",
133
+ "GatewayNatRule": {
134
+ "Interface": {
135
+ "type": "application/vnd.vmware.admin.network+xml",
136
+ "name": "nft00012i2",
137
+ "href": "https://api.vcd.portal.skyscapecloud.com/api/admin/network/44265cc3-6d63-4ea9-ac72-4905b5aa65d8"
138
+ },
139
+ "OriginalIp": "192.168.2.2",
140
+ "TranslatedIp": "37.26.89.189"
141
+ }
142
+ },
143
+ {
144
+ "RuleType": "DNAT",
145
+ "IsEnabled": "true",
146
+ "Id": "65539",
147
+ "GatewayNatRule": {
148
+ "Interface": {
149
+ "type": "application/vnd.vmware.admin.network+xml",
150
+ "name": "nft00012i2",
151
+ "href": "https://api.vcd.portal.skyscapecloud.com/api/admin/network/44265cc3-6d63-4ea9-ac72-4905b5aa65d8"
152
+ },
153
+ "OriginalIp": "37.26.89.189",
154
+ "OriginalPort": "22",
155
+ "TranslatedIp": "192.168.2.2",
156
+ "TranslatedPort": "22",
157
+ "Protocol": "tcp"
158
+ }
159
+ }
160
+ ]
161
+ },
162
+ "LoadBalancerService": {
163
+ "IsEnabled": "false",
164
+ "Pool": [
165
+ {
166
+ "Name": "app-pool",
167
+ "Description": "app pool 1",
168
+ "ServicePort": [
169
+ {
170
+ "IsEnabled": "true",
171
+ "Protocol": "HTTP",
172
+ "Algorithm": "ROUND_ROBIN",
173
+ "Port": "80",
174
+ "HealthCheckPort": "80",
175
+ "HealthCheck": {
176
+ "Mode": "HTTP",
177
+ "Uri": "/",
178
+ "HealthThreshold": "2",
179
+ "UnhealthThreshold": "3",
180
+ "Interval": "5",
181
+ "Timeout": "15"
182
+ }
183
+ },
184
+ {
185
+ "IsEnabled": "true",
186
+ "Protocol": "HTTPS",
187
+ "Algorithm": "ROUND_ROBIN",
188
+ "Port": "443",
189
+ "HealthCheckPort": "443",
190
+ "HealthCheck": {
191
+ "Mode": "SSL",
192
+ "HealthThreshold": "2",
193
+ "UnhealthThreshold": "3",
194
+ "Interval": "5",
195
+ "Timeout": "15"
196
+ }
197
+ },
198
+ {
199
+ "IsEnabled": "false",
200
+ "Protocol": "TCP",
201
+ "Algorithm": "ROUND_ROBIN",
202
+ "Port": "",
203
+ "HealthCheckPort": "",
204
+ "HealthCheck": {
205
+ "Mode": "TCP",
206
+ "HealthThreshold": "2",
207
+ "UnhealthThreshold": "3",
208
+ "Interval": "5",
209
+ "Timeout": "15"
210
+ }
211
+ }
212
+ ],
213
+ "Member": [
214
+ {
215
+ "IpAddress": "37.26.89.100",
216
+ "Weight": "1",
217
+ "ServicePort": [
218
+ {
219
+ "Protocol": "HTTP",
220
+ "Port": "",
221
+ "HealthCheckPort": ""
222
+ },
223
+ {
224
+ "Protocol": "HTTPS",
225
+ "Port": "",
226
+ "HealthCheckPort": ""
227
+ },
228
+ {
229
+ "Protocol": "TCP",
230
+ "Port": "",
231
+ "HealthCheckPort": ""
232
+ }
233
+ ]
234
+ }
235
+ ],
236
+ "Operational": "false"
237
+ }
238
+ ],
239
+ "VirtualServer": [
240
+ {
241
+ "IsEnabled": "true",
242
+ "Name": "web-server-1",
243
+ "Interface": {
244
+ "type": "application/vnd.vmware.vcloud.orgVdcNetwork+xml",
245
+ "name": "nft00012i2",
246
+ "href": "https://api.vcd.portal.skyscapecloud.com/api/admin/network/44265cc3-6d63-4ea9-ac72-4905b5aa65d8"
247
+ },
248
+ "IpAddress": "37.26.89.100",
249
+ "ServiceProfile": [
250
+ {
251
+ "IsEnabled": "false",
252
+ "Protocol": "HTTP",
253
+ "Port": "80",
254
+ "Persistence": {
255
+ "Method": ""
256
+ }
257
+ },
258
+ {
259
+ "IsEnabled": "true",
260
+ "Protocol": "HTTPS",
261
+ "Port": "443",
262
+ "Persistence": {
263
+ "Method": "SSL_SESSION_ID"
264
+ }
265
+ },
266
+ {
267
+ "IsEnabled": "false",
268
+ "Protocol": "TCP",
269
+ "Port": "",
270
+ "Persistence": {
271
+ "Method": ""
272
+ }
273
+ }
274
+ ],
275
+ "Logging": "false",
276
+ "Pool": "app-pool"
277
+ }
278
+ ]
279
+ }
280
+ },
281
+ "HaEnabled": "false",
282
+ "UseDefaultRouteForDnsRelay": "false"
283
+ }
284
+ }
285
+ ]
@@ -0,0 +1,53 @@
1
+ [
2
+ {
3
+ "id": "61cf57b5-544f-4fdb-aad0-8448926f4060",
4
+ "name": "NetworkTest2",
5
+ "description": "Network Test 2",
6
+ "is_inherited": false,
7
+ "gateway": "192.168.1.1",
8
+ "netmask": "255.255.255.240",
9
+ "dns1": "8.8.8.8",
10
+ "dns2": "8.8.4.4",
11
+ "dns_suffix": "tester2.networktest",
12
+ "ip_ranges": [
13
+ {
14
+ "start_address": "192.168.1.2",
15
+ "end_address": "192.168.1.14"
16
+ }
17
+ ]
18
+ },
19
+ {
20
+ "id": "a3568eee-caaa-480d-8b13-f7df33e369a6",
21
+ "name": "NetworkTest",
22
+ "description": "Test network",
23
+ "is_inherited": false,
24
+ "gateway": "192.168.0.1",
25
+ "netmask": "255.255.255.0",
26
+ "dns1": "8.8.8.8",
27
+ "dns2": "8.8.4.4",
28
+ "dns_suffix": "tester.networktest",
29
+ "ip_ranges": [
30
+ {
31
+ "start_address": "192.168.0.2",
32
+ "end_address": "192.168.0.254"
33
+ }
34
+ ]
35
+ },
36
+ {
37
+ "id": "ffa5aa5a-a5a1-4cdb-891f-1a92af7ef550",
38
+ "name": "Default",
39
+ "description": "default network",
40
+ "is_inherited": false,
41
+ "gateway": "192.168.2.1",
42
+ "netmask": "255.255.255.240",
43
+ "dns1": "8.8.8.8",
44
+ "dns2": "8.8.4.4",
45
+ "dns_suffix": "tester.default",
46
+ "ip_ranges": [
47
+ {
48
+ "start_address": "192.168.2.2",
49
+ "end_address": "192.168.2.14"
50
+ }
51
+ ]
52
+ }
53
+ ]