stackmate 0.0.4 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. data/CHANGELOG.txt +7 -0
  2. data/README.md +25 -8
  3. data/bin/stackmate.rb +57 -53
  4. data/lib/stackmate/aws_attribs.rb +31 -31
  5. data/lib/stackmate/classmap.rb +33 -25
  6. data/lib/stackmate/client.rb +80 -0
  7. data/lib/stackmate/intrinsic_functions.rb +94 -38
  8. data/lib/stackmate/logging.rb +19 -19
  9. data/lib/stackmate/participants/cloudstack.rb +250 -165
  10. data/lib/stackmate/participants/cloudstack_affinitygroup.rb +122 -0
  11. data/lib/stackmate/participants/cloudstack_autoscalepolicy.rb +113 -0
  12. data/lib/stackmate/participants/cloudstack_autoscalevmgroup.rb +86 -0
  13. data/lib/stackmate/participants/cloudstack_autoscalevmprofile.rb +140 -0
  14. data/lib/stackmate/participants/cloudstack_condition.rb +122 -0
  15. data/lib/stackmate/participants/cloudstack_egressfirewallrule.rb +149 -0
  16. data/lib/stackmate/participants/cloudstack_firewallrule.rb +149 -0
  17. data/lib/stackmate/participants/cloudstack_globalloadbalancerrule.rb +158 -0
  18. data/lib/stackmate/participants/cloudstack_instancegroup.rb +113 -0
  19. data/lib/stackmate/participants/cloudstack_ipaddress.rb +149 -0
  20. data/lib/stackmate/participants/cloudstack_ipforwardingrule.rb +131 -0
  21. data/lib/stackmate/participants/cloudstack_iptonic.rb +95 -0
  22. data/lib/stackmate/participants/cloudstack_iso.rb +95 -0
  23. data/lib/stackmate/participants/cloudstack_lbhealthcheckpolicy.rb +140 -0
  24. data/lib/stackmate/participants/cloudstack_lbstickinesspolicy.rb +122 -0
  25. data/lib/stackmate/participants/cloudstack_loadbalancer.rb +158 -0
  26. data/lib/stackmate/participants/cloudstack_loadbalancerrule.rb +185 -0
  27. data/lib/stackmate/participants/cloudstack_network.rb +293 -0
  28. data/lib/stackmate/participants/cloudstack_networkacl.rb +176 -0
  29. data/lib/stackmate/participants/cloudstack_networkacllist.rb +104 -0
  30. data/lib/stackmate/participants/cloudstack_nictovirtualmachine.rb +104 -0
  31. data/lib/stackmate/participants/cloudstack_portforwardingrule.rb +176 -0
  32. data/lib/stackmate/participants/cloudstack_project.rb +113 -0
  33. data/lib/stackmate/participants/cloudstack_remoteaccessvpn.rb +122 -0
  34. data/lib/stackmate/participants/cloudstack_securitygroup.rb +122 -0
  35. data/lib/stackmate/participants/cloudstack_securitygroupegress.rb +185 -0
  36. data/lib/stackmate/participants/cloudstack_securitygroupingress.rb +185 -0
  37. data/lib/stackmate/participants/cloudstack_snapshot.rb +113 -0
  38. data/lib/stackmate/participants/cloudstack_snapshotpolicy.rb +122 -0
  39. data/lib/stackmate/participants/cloudstack_sshkeypair.rb +113 -0
  40. data/lib/stackmate/participants/cloudstack_staticnat.rb +113 -0
  41. data/lib/stackmate/participants/cloudstack_staticroute.rb +95 -0
  42. data/lib/stackmate/participants/cloudstack_tags.rb +113 -0
  43. data/lib/stackmate/participants/cloudstack_template.rb +212 -0
  44. data/lib/stackmate/participants/cloudstack_togloballoadbalancerrule.rb +104 -0
  45. data/lib/stackmate/participants/cloudstack_toloadbalancerrule.rb +95 -0
  46. data/lib/stackmate/participants/cloudstack_virtualmachine.rb +348 -0
  47. data/lib/stackmate/participants/cloudstack_virtualmachineops.rb +95 -0
  48. data/lib/stackmate/participants/cloudstack_vmsnapshot.rb +113 -0
  49. data/lib/stackmate/participants/cloudstack_volume.rb +176 -0
  50. data/lib/stackmate/participants/cloudstack_volumeops.rb +111 -0
  51. data/lib/stackmate/participants/cloudstack_vpc.rb +158 -0
  52. data/lib/stackmate/participants/cloudstack_vpnconnection.rb +95 -0
  53. data/lib/stackmate/participants/cloudstack_vpncustomergateway.rb +176 -0
  54. data/lib/stackmate/participants/cloudstack_vpngateway.rb +86 -0
  55. data/lib/stackmate/participants/cloudstack_vpnuser.rb +122 -0
  56. data/lib/stackmate/participants/common.rb +219 -70
  57. data/lib/stackmate/participants/stacknest.rb +6 -0
  58. data/lib/stackmate/resolver.rb +122 -0
  59. data/lib/stackmate/stack.rb +116 -60
  60. data/lib/stackmate/stack_executor.rb +99 -37
  61. data/lib/stackmate/stackpi.rb +46 -0
  62. data/lib/stackmate/version.rb +1 -1
  63. data/lib/stackmate/waitcondition_server.rb +15 -15
  64. data/lib/stackmate.rb +1 -1
  65. data/stackmate.gemspec +2 -4
  66. metadata +70 -19
@@ -0,0 +1,158 @@
1
+ require 'stackmate/participants/cloudstack'
2
+
3
+ module StackMate
4
+ class CloudStackLoadBalancer < CloudStackResource
5
+
6
+ include Logging
7
+ include Intrinsic
8
+ include Resolver
9
+ def create
10
+ logger.debug("Creating resource #{@name}")
11
+ workitem[@name] = {}
12
+ name_cs = workitem['StackName'] + '-' + @name
13
+ args={}
14
+ begin
15
+ args['sourceport'] = get_sourceport
16
+ args['scheme'] = get_scheme
17
+ args['algorithm'] = get_algorithm
18
+ args['networkid'] = get_networkid
19
+ args['sourceipaddressnetworkid'] = get_sourceipaddressnetworkid
20
+ args['name'] = workitem['StackName'] +'-' +get_name
21
+ args['instanceport'] = get_instanceport
22
+ args['description'] = get_description if @props.has_key?('description')
23
+ args['sourceipaddress'] = get_sourceipaddress if @props.has_key?('sourceipaddress')
24
+
25
+ logger.info("Creating resource #{@name} with following arguments")
26
+ p args
27
+ result_obj = make_async_request('createLoadBalancer',args)
28
+ resource_obj = result_obj['LoadBalancer'.downcase]
29
+ #doing it this way since it is easier to change later, rather than cloning whole object
30
+ resource_obj.each_key do |k|
31
+ val = resource_obj[k]
32
+ if('id'.eql?(k))
33
+ k = 'physical_id'
34
+ end
35
+ workitem[@name][k] = val
36
+ end
37
+ set_tags(@props['tags'],workitem[@name]['physical_id'],"LoadBalancer") if @props.has_key?('tags')
38
+ workitem['ResolvedNames'][@name] = name_cs
39
+ workitem['IdMap'][workitem[@name]['physical_id']] = @name
40
+
41
+ rescue NoMethodError => nme
42
+ logger.error("Create request failed for resource . Cleaning up the stack")
43
+ raise nme
44
+ rescue Exception => e
45
+ logger.error(e.message)
46
+ raise e
47
+ end
48
+
49
+ end
50
+
51
+ def delete
52
+ logger.debug("Deleting resource #{@name}")
53
+ begin
54
+ physical_id = workitem[@name]['physical_id'] if !workitem[@name].nil?
55
+ if(!physical_id.nil?)
56
+ args = {'id' => physical_id
57
+ }
58
+ result_obj = make_async_request('deleteLoadBalancer',args)
59
+ if (!(result_obj['error'] == true))
60
+ logger.info("Successfully deleted resource #{@name}")
61
+ else
62
+ logger.info("CloudStack error while deleting resource #{@name}")
63
+ end
64
+ else
65
+ logger.info("Resource not created in CloudStack. Skipping delete...")
66
+ end
67
+ rescue Exception => e
68
+ logger.error("Unable to delete resorce #{@name}")
69
+ end
70
+ end
71
+
72
+ def on_workitem
73
+ @name = workitem.participant_name
74
+ @props = workitem['Resources'][@name]['Properties']
75
+ @props.downcase_key
76
+ @resolved_names = workitem['ResolvedNames']
77
+ if workitem['params']['operation'] == 'create'
78
+ create
79
+ else
80
+ delete
81
+ end
82
+ reply
83
+ end
84
+
85
+ def get_sourceport
86
+ resolved_sourceport = get_resolved(@props["sourceport"],workitem)
87
+ if resolved_sourceport.nil? || !validate_param(resolved_sourceport,"integer")
88
+ raise "Missing mandatory parameter sourceport for resource #{@name}"
89
+ end
90
+ resolved_sourceport
91
+ end
92
+
93
+ def get_scheme
94
+ resolved_scheme = get_resolved(@props["scheme"],workitem)
95
+ if resolved_scheme.nil? || !validate_param(resolved_scheme,"string")
96
+ raise "Missing mandatory parameter scheme for resource #{@name}"
97
+ end
98
+ resolved_scheme
99
+ end
100
+
101
+ def get_algorithm
102
+ resolved_algorithm = get_resolved(@props["algorithm"],workitem)
103
+ if resolved_algorithm.nil? || !validate_param(resolved_algorithm,"string")
104
+ raise "Missing mandatory parameter algorithm for resource #{@name}"
105
+ end
106
+ resolved_algorithm
107
+ end
108
+
109
+ def get_networkid
110
+ resolved_networkid = get_resolved(@props["networkid"],workitem)
111
+ if resolved_networkid.nil? || !validate_param(resolved_networkid,"uuid")
112
+ raise "Missing mandatory parameter networkid for resource #{@name}"
113
+ end
114
+ resolved_networkid
115
+ end
116
+
117
+ def get_sourceipaddressnetworkid
118
+ resolved_sourceipaddressnetworkid = get_resolved(@props["sourceipaddressnetworkid"],workitem)
119
+ if resolved_sourceipaddressnetworkid.nil? || !validate_param(resolved_sourceipaddressnetworkid,"uuid")
120
+ raise "Missing mandatory parameter sourceipaddressnetworkid for resource #{@name}"
121
+ end
122
+ resolved_sourceipaddressnetworkid
123
+ end
124
+
125
+ def get_name
126
+ resolved_name = get_resolved(@props["name"],workitem)
127
+ if resolved_name.nil? || !validate_param(resolved_name,"string")
128
+ raise "Missing mandatory parameter name for resource #{@name}"
129
+ end
130
+ resolved_name
131
+ end
132
+
133
+ def get_instanceport
134
+ resolved_instanceport = get_resolved(@props["instanceport"],workitem)
135
+ if resolved_instanceport.nil? || !validate_param(resolved_instanceport,"integer")
136
+ raise "Missing mandatory parameter instanceport for resource #{@name}"
137
+ end
138
+ resolved_instanceport
139
+ end
140
+
141
+ def get_description
142
+ resolved_description = get_resolved(@props['description'],workitem)
143
+ if resolved_description.nil? || !validate_param(resolved_description,"string")
144
+ raise "Malformed optional parameter description for resource #{@name}"
145
+ end
146
+ resolved_description
147
+ end
148
+
149
+ def get_sourceipaddress
150
+ resolved_sourceipaddress = get_resolved(@props['sourceipaddress'],workitem)
151
+ if resolved_sourceipaddress.nil? || !validate_param(resolved_sourceipaddress,"string")
152
+ raise "Malformed optional parameter sourceipaddress for resource #{@name}"
153
+ end
154
+ resolved_sourceipaddress
155
+ end
156
+ end
157
+ end
158
+
@@ -0,0 +1,185 @@
1
+ require 'stackmate/participants/cloudstack'
2
+
3
+ module StackMate
4
+ class CloudStackLoadBalancerRule < CloudStackResource
5
+
6
+ include Logging
7
+ include Intrinsic
8
+ include Resolver
9
+ def create
10
+ logger.debug("Creating resource #{@name}")
11
+ workitem[@name] = {}
12
+ name_cs = workitem['StackName'] + '-' + @name
13
+ args={}
14
+ begin
15
+ args['publicport'] = get_publicport
16
+ args['privateport'] = get_privateport
17
+ args['name'] = workitem['StackName'] +'-' +get_name
18
+ args['algorithm'] = get_algorithm
19
+ args['description'] = get_description if @props.has_key?('description')
20
+ args['networkid'] = get_networkid if @props.has_key?('networkid')
21
+ args['openfirewall'] = get_openfirewall if @props.has_key?('openfirewall')
22
+ args['account'] = get_account if @props.has_key?('account')
23
+ args['domainid'] = get_domainid if @props.has_key?('domainid')
24
+ args['publicipid'] = get_publicipid if @props.has_key?('publicipid')
25
+ args['zoneid'] = get_zoneid if @props.has_key?('zoneid')
26
+ args['cidrlist'] = get_cidrlist if @props.has_key?('cidrlist')
27
+
28
+ logger.info("Creating resource #{@name} with following arguments")
29
+ p args
30
+ result_obj = make_async_request('createLoadBalancerRule',args)
31
+ resource_obj = result_obj['LoadBalancerRule'.downcase]
32
+ #doing it this way since it is easier to change later, rather than cloning whole object
33
+ resource_obj.each_key do |k|
34
+ val = resource_obj[k]
35
+ if('id'.eql?(k))
36
+ k = 'physical_id'
37
+ end
38
+ workitem[@name][k] = val
39
+ end
40
+ set_tags(@props['tags'],workitem[@name]['physical_id'],"LoadBalancerRule") if @props.has_key?('tags')
41
+ workitem['ResolvedNames'][@name] = name_cs
42
+ workitem['IdMap'][workitem[@name]['physical_id']] = @name
43
+
44
+ rescue NoMethodError => nme
45
+ logger.error("Create request failed for resource . Cleaning up the stack")
46
+ raise nme
47
+ rescue Exception => e
48
+ logger.error(e.message)
49
+ raise e
50
+ end
51
+
52
+ end
53
+
54
+ def delete
55
+ logger.debug("Deleting resource #{@name}")
56
+ begin
57
+ physical_id = workitem[@name]['physical_id'] if !workitem[@name].nil?
58
+ if(!physical_id.nil?)
59
+ args = {'id' => physical_id
60
+ }
61
+ result_obj = make_async_request('deleteLoadBalancerRule',args)
62
+ if (!(result_obj['error'] == true))
63
+ logger.info("Successfully deleted resource #{@name}")
64
+ else
65
+ logger.info("CloudStack error while deleting resource #{@name}")
66
+ end
67
+ else
68
+ logger.info("Resource not created in CloudStack. Skipping delete...")
69
+ end
70
+ rescue Exception => e
71
+ logger.error("Unable to delete resorce #{@name}")
72
+ end
73
+ end
74
+
75
+ def on_workitem
76
+ @name = workitem.participant_name
77
+ @props = workitem['Resources'][@name]['Properties']
78
+ @props.downcase_key
79
+ @resolved_names = workitem['ResolvedNames']
80
+ if workitem['params']['operation'] == 'create'
81
+ create
82
+ else
83
+ delete
84
+ end
85
+ reply
86
+ end
87
+
88
+ def get_publicport
89
+ resolved_publicport = get_resolved(@props["publicport"],workitem)
90
+ if resolved_publicport.nil? || !validate_param(resolved_publicport,"integer")
91
+ raise "Missing mandatory parameter publicport for resource #{@name}"
92
+ end
93
+ resolved_publicport
94
+ end
95
+
96
+ def get_privateport
97
+ resolved_privateport = get_resolved(@props["privateport"],workitem)
98
+ if resolved_privateport.nil? || !validate_param(resolved_privateport,"integer")
99
+ raise "Missing mandatory parameter privateport for resource #{@name}"
100
+ end
101
+ resolved_privateport
102
+ end
103
+
104
+ def get_name
105
+ resolved_name = get_resolved(@props["name"],workitem)
106
+ if resolved_name.nil? || !validate_param(resolved_name,"string")
107
+ raise "Missing mandatory parameter name for resource #{@name}"
108
+ end
109
+ resolved_name
110
+ end
111
+
112
+ def get_algorithm
113
+ resolved_algorithm = get_resolved(@props["algorithm"],workitem)
114
+ if resolved_algorithm.nil? || !validate_param(resolved_algorithm,"string")
115
+ raise "Missing mandatory parameter algorithm for resource #{@name}"
116
+ end
117
+ resolved_algorithm
118
+ end
119
+
120
+ def get_description
121
+ resolved_description = get_resolved(@props['description'],workitem)
122
+ if resolved_description.nil? || !validate_param(resolved_description,"string")
123
+ raise "Malformed optional parameter description for resource #{@name}"
124
+ end
125
+ resolved_description
126
+ end
127
+
128
+ def get_networkid
129
+ resolved_networkid = get_resolved(@props['networkid'],workitem)
130
+ if resolved_networkid.nil? || !validate_param(resolved_networkid,"uuid")
131
+ raise "Malformed optional parameter networkid for resource #{@name}"
132
+ end
133
+ resolved_networkid
134
+ end
135
+
136
+ def get_openfirewall
137
+ resolved_openfirewall = get_resolved(@props['openfirewall'],workitem)
138
+ if resolved_openfirewall.nil? || !validate_param(resolved_openfirewall,"boolean")
139
+ raise "Malformed optional parameter openfirewall for resource #{@name}"
140
+ end
141
+ resolved_openfirewall
142
+ end
143
+
144
+ def get_account
145
+ resolved_account = get_resolved(@props['account'],workitem)
146
+ if resolved_account.nil? || !validate_param(resolved_account,"string")
147
+ raise "Malformed optional parameter account for resource #{@name}"
148
+ end
149
+ resolved_account
150
+ end
151
+
152
+ def get_domainid
153
+ resolved_domainid = get_resolved(@props['domainid'],workitem)
154
+ if resolved_domainid.nil? || !validate_param(resolved_domainid,"uuid")
155
+ raise "Malformed optional parameter domainid for resource #{@name}"
156
+ end
157
+ resolved_domainid
158
+ end
159
+
160
+ def get_publicipid
161
+ resolved_publicipid = get_resolved(@props['publicipid'],workitem)
162
+ if resolved_publicipid.nil? || !validate_param(resolved_publicipid,"uuid")
163
+ raise "Malformed optional parameter publicipid for resource #{@name}"
164
+ end
165
+ resolved_publicipid
166
+ end
167
+
168
+ def get_zoneid
169
+ resolved_zoneid = get_resolved(@props['zoneid'],workitem)
170
+ if resolved_zoneid.nil? || !validate_param(resolved_zoneid,"uuid")
171
+ raise "Malformed optional parameter zoneid for resource #{@name}"
172
+ end
173
+ resolved_zoneid
174
+ end
175
+
176
+ def get_cidrlist
177
+ resolved_cidrlist = get_resolved(@props['cidrlist'],workitem)
178
+ if resolved_cidrlist.nil? || !validate_param(resolved_cidrlist,"list")
179
+ raise "Malformed optional parameter cidrlist for resource #{@name}"
180
+ end
181
+ resolved_cidrlist
182
+ end
183
+ end
184
+ end
185
+
@@ -0,0 +1,293 @@
1
+ require 'stackmate/participants/cloudstack'
2
+
3
+ module StackMate
4
+ class CloudStackNetwork < CloudStackResource
5
+
6
+ include Logging
7
+ include Intrinsic
8
+ include Resolver
9
+ def create
10
+ logger.debug("Creating resource #{@name}")
11
+ workitem[@name] = {}
12
+ name_cs = workitem['StackName'] + '-' + @name
13
+ args={}
14
+ begin
15
+ args['displaytext'] = get_displaytext
16
+ args['networkofferingid'] = get_networkofferingid
17
+ args['name'] = workitem['StackName'] +'-' +get_name
18
+ args['zoneid'] = get_zoneid
19
+ args['networkdomain'] = get_networkdomain if @props.has_key?('networkdomain')
20
+ args['projectid'] = get_projectid if @props.has_key?('projectid')
21
+ args['startip'] = get_startip if @props.has_key?('startip')
22
+ args['domainid'] = get_domainid if @props.has_key?('domainid')
23
+ args['displaynetwork'] = get_displaynetwork if @props.has_key?('displaynetwork')
24
+ args['startipv6'] = get_startipv6 if @props.has_key?('startipv6')
25
+ args['acltype'] = get_acltype if @props.has_key?('acltype')
26
+ args['endip'] = get_endip if @props.has_key?('endip')
27
+ args['account'] = get_account if @props.has_key?('account')
28
+ args['gateway'] = get_gateway if @props.has_key?('gateway')
29
+ args['vlan'] = get_vlan if @props.has_key?('vlan')
30
+ args['endipv6'] = get_endipv6 if @props.has_key?('endipv6')
31
+ args['ip6cidr'] = get_ip6cidr if @props.has_key?('ip6cidr')
32
+ args['aclid'] = get_aclid if @props.has_key?('aclid')
33
+ args['isolatedpvlan'] = get_isolatedpvlan if @props.has_key?('isolatedpvlan')
34
+ args['ip6gateway'] = get_ip6gateway if @props.has_key?('ip6gateway')
35
+ args['netmask'] = get_netmask if @props.has_key?('netmask')
36
+ args['subdomainaccess'] = get_subdomainaccess if @props.has_key?('subdomainaccess')
37
+ args['vpcid'] = get_vpcid if @props.has_key?('vpcid')
38
+ args['physicalnetworkid'] = get_physicalnetworkid if @props.has_key?('physicalnetworkid')
39
+
40
+ logger.info("Creating resource #{@name} with following arguments")
41
+ p args
42
+ result_obj = make_sync_request('createNetwork',args)
43
+ resource_obj = result_obj['Network'.downcase]
44
+ #doing it this way since it is easier to change later, rather than cloning whole object
45
+ resource_obj.each_key do |k|
46
+ val = resource_obj[k]
47
+ if('id'.eql?(k))
48
+ k = 'physical_id'
49
+ end
50
+ workitem[@name][k] = val
51
+ end
52
+ set_tags(@props['tags'],workitem[@name]['physical_id'],"Network") if @props.has_key?('tags')
53
+ workitem['ResolvedNames'][@name] = name_cs
54
+ workitem['IdMap'][workitem[@name]['physical_id']] = @name
55
+
56
+ rescue NoMethodError => nme
57
+ logger.error("Create request failed for resource . Cleaning up the stack")
58
+ raise nme
59
+ rescue Exception => e
60
+ logger.error(e.message)
61
+ raise e
62
+ end
63
+
64
+ end
65
+
66
+ def delete
67
+ logger.debug("Deleting resource #{@name}")
68
+ begin
69
+ physical_id = workitem[@name]['physical_id'] if !workitem[@name].nil?
70
+ if(!physical_id.nil?)
71
+ args = {'id' => physical_id
72
+ }
73
+ result_obj = make_async_request('deleteNetwork',args)
74
+ if (!(result_obj['error'] == true))
75
+ logger.info("Successfully deleted resource #{@name}")
76
+ else
77
+ logger.info("CloudStack error while deleting resource #{@name}")
78
+ end
79
+ else
80
+ logger.info("Resource not created in CloudStack. Skipping delete...")
81
+ end
82
+ rescue Exception => e
83
+ logger.error("Unable to delete resorce #{@name}")
84
+ end
85
+ end
86
+
87
+ def on_workitem
88
+ @name = workitem.participant_name
89
+ @props = workitem['Resources'][@name]['Properties']
90
+ @props.downcase_key
91
+ @resolved_names = workitem['ResolvedNames']
92
+ if workitem['params']['operation'] == 'create'
93
+ create
94
+ else
95
+ delete
96
+ end
97
+ reply
98
+ end
99
+
100
+ def get_displaytext
101
+ resolved_displaytext = get_resolved(@props["displaytext"],workitem)
102
+ if resolved_displaytext.nil? || !validate_param(resolved_displaytext,"string")
103
+ raise "Missing mandatory parameter displaytext for resource #{@name}"
104
+ end
105
+ resolved_displaytext
106
+ end
107
+
108
+ def get_networkofferingid
109
+ resolved_networkofferingid = get_resolved(@props["networkofferingid"],workitem)
110
+ if resolved_networkofferingid.nil? || !validate_param(resolved_networkofferingid,"uuid")
111
+ raise "Missing mandatory parameter networkofferingid for resource #{@name}"
112
+ end
113
+ resolved_networkofferingid
114
+ end
115
+
116
+ def get_name
117
+ resolved_name = get_resolved(@props["name"],workitem)
118
+ if resolved_name.nil? || !validate_param(resolved_name,"string")
119
+ raise "Missing mandatory parameter name for resource #{@name}"
120
+ end
121
+ resolved_name
122
+ end
123
+
124
+ def get_zoneid
125
+ resolved_zoneid = get_resolved(@props["zoneid"],workitem)
126
+ if resolved_zoneid.nil? || !validate_param(resolved_zoneid,"uuid")
127
+ raise "Missing mandatory parameter zoneid for resource #{@name}"
128
+ end
129
+ resolved_zoneid
130
+ end
131
+
132
+ def get_networkdomain
133
+ resolved_networkdomain = get_resolved(@props['networkdomain'],workitem)
134
+ if resolved_networkdomain.nil? || !validate_param(resolved_networkdomain,"string")
135
+ raise "Malformed optional parameter networkdomain for resource #{@name}"
136
+ end
137
+ resolved_networkdomain
138
+ end
139
+
140
+ def get_projectid
141
+ resolved_projectid = get_resolved(@props['projectid'],workitem)
142
+ if resolved_projectid.nil? || !validate_param(resolved_projectid,"uuid")
143
+ raise "Malformed optional parameter projectid for resource #{@name}"
144
+ end
145
+ resolved_projectid
146
+ end
147
+
148
+ def get_startip
149
+ resolved_startip = get_resolved(@props['startip'],workitem)
150
+ if resolved_startip.nil? || !validate_param(resolved_startip,"string")
151
+ raise "Malformed optional parameter startip for resource #{@name}"
152
+ end
153
+ resolved_startip
154
+ end
155
+
156
+ def get_domainid
157
+ resolved_domainid = get_resolved(@props['domainid'],workitem)
158
+ if resolved_domainid.nil? || !validate_param(resolved_domainid,"uuid")
159
+ raise "Malformed optional parameter domainid for resource #{@name}"
160
+ end
161
+ resolved_domainid
162
+ end
163
+
164
+ def get_displaynetwork
165
+ resolved_displaynetwork = get_resolved(@props['displaynetwork'],workitem)
166
+ if resolved_displaynetwork.nil? || !validate_param(resolved_displaynetwork,"boolean")
167
+ raise "Malformed optional parameter displaynetwork for resource #{@name}"
168
+ end
169
+ resolved_displaynetwork
170
+ end
171
+
172
+ def get_startipv6
173
+ resolved_startipv6 = get_resolved(@props['startipv6'],workitem)
174
+ if resolved_startipv6.nil? || !validate_param(resolved_startipv6,"string")
175
+ raise "Malformed optional parameter startipv6 for resource #{@name}"
176
+ end
177
+ resolved_startipv6
178
+ end
179
+
180
+ def get_acltype
181
+ resolved_acltype = get_resolved(@props['acltype'],workitem)
182
+ if resolved_acltype.nil? || !validate_param(resolved_acltype,"string")
183
+ raise "Malformed optional parameter acltype for resource #{@name}"
184
+ end
185
+ resolved_acltype
186
+ end
187
+
188
+ def get_endip
189
+ resolved_endip = get_resolved(@props['endip'],workitem)
190
+ if resolved_endip.nil? || !validate_param(resolved_endip,"string")
191
+ raise "Malformed optional parameter endip for resource #{@name}"
192
+ end
193
+ resolved_endip
194
+ end
195
+
196
+ def get_account
197
+ resolved_account = get_resolved(@props['account'],workitem)
198
+ if resolved_account.nil? || !validate_param(resolved_account,"string")
199
+ raise "Malformed optional parameter account for resource #{@name}"
200
+ end
201
+ resolved_account
202
+ end
203
+
204
+ def get_gateway
205
+ resolved_gateway = get_resolved(@props['gateway'],workitem)
206
+ if resolved_gateway.nil? || !validate_param(resolved_gateway,"string")
207
+ raise "Malformed optional parameter gateway for resource #{@name}"
208
+ end
209
+ resolved_gateway
210
+ end
211
+
212
+ def get_vlan
213
+ resolved_vlan = get_resolved(@props['vlan'],workitem)
214
+ if resolved_vlan.nil? || !validate_param(resolved_vlan,"string")
215
+ raise "Malformed optional parameter vlan for resource #{@name}"
216
+ end
217
+ resolved_vlan
218
+ end
219
+
220
+ def get_endipv6
221
+ resolved_endipv6 = get_resolved(@props['endipv6'],workitem)
222
+ if resolved_endipv6.nil? || !validate_param(resolved_endipv6,"string")
223
+ raise "Malformed optional parameter endipv6 for resource #{@name}"
224
+ end
225
+ resolved_endipv6
226
+ end
227
+
228
+ def get_ip6cidr
229
+ resolved_ip6cidr = get_resolved(@props['ip6cidr'],workitem)
230
+ if resolved_ip6cidr.nil? || !validate_param(resolved_ip6cidr,"string")
231
+ raise "Malformed optional parameter ip6cidr for resource #{@name}"
232
+ end
233
+ resolved_ip6cidr
234
+ end
235
+
236
+ def get_aclid
237
+ resolved_aclid = get_resolved(@props['aclid'],workitem)
238
+ if resolved_aclid.nil? || !validate_param(resolved_aclid,"uuid")
239
+ raise "Malformed optional parameter aclid for resource #{@name}"
240
+ end
241
+ resolved_aclid
242
+ end
243
+
244
+ def get_isolatedpvlan
245
+ resolved_isolatedpvlan = get_resolved(@props['isolatedpvlan'],workitem)
246
+ if resolved_isolatedpvlan.nil? || !validate_param(resolved_isolatedpvlan,"string")
247
+ raise "Malformed optional parameter isolatedpvlan for resource #{@name}"
248
+ end
249
+ resolved_isolatedpvlan
250
+ end
251
+
252
+ def get_ip6gateway
253
+ resolved_ip6gateway = get_resolved(@props['ip6gateway'],workitem)
254
+ if resolved_ip6gateway.nil? || !validate_param(resolved_ip6gateway,"string")
255
+ raise "Malformed optional parameter ip6gateway for resource #{@name}"
256
+ end
257
+ resolved_ip6gateway
258
+ end
259
+
260
+ def get_netmask
261
+ resolved_netmask = get_resolved(@props['netmask'],workitem)
262
+ if resolved_netmask.nil? || !validate_param(resolved_netmask,"string")
263
+ raise "Malformed optional parameter netmask for resource #{@name}"
264
+ end
265
+ resolved_netmask
266
+ end
267
+
268
+ def get_subdomainaccess
269
+ resolved_subdomainaccess = get_resolved(@props['subdomainaccess'],workitem)
270
+ if resolved_subdomainaccess.nil? || !validate_param(resolved_subdomainaccess,"boolean")
271
+ raise "Malformed optional parameter subdomainaccess for resource #{@name}"
272
+ end
273
+ resolved_subdomainaccess
274
+ end
275
+
276
+ def get_vpcid
277
+ resolved_vpcid = get_resolved(@props['vpcid'],workitem)
278
+ if resolved_vpcid.nil? || !validate_param(resolved_vpcid,"uuid")
279
+ raise "Malformed optional parameter vpcid for resource #{@name}"
280
+ end
281
+ resolved_vpcid
282
+ end
283
+
284
+ def get_physicalnetworkid
285
+ resolved_physicalnetworkid = get_resolved(@props['physicalnetworkid'],workitem)
286
+ if resolved_physicalnetworkid.nil? || !validate_param(resolved_physicalnetworkid,"uuid")
287
+ raise "Malformed optional parameter physicalnetworkid for resource #{@name}"
288
+ end
289
+ resolved_physicalnetworkid
290
+ end
291
+ end
292
+ end
293
+