stackmate 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. data/README.md +1 -0
  2. data/bin/stackmate.rb +9 -5
  3. data/lib/stackmate/intrinsic_functions.rb +3 -3
  4. data/lib/stackmate/metadata.rb +44 -0
  5. data/lib/stackmate/participants/cloudstack.rb +51 -10
  6. data/lib/stackmate/participants/cloudstack_affinitygroup.rb +4 -1
  7. data/lib/stackmate/participants/cloudstack_autoscalepolicy.rb +4 -1
  8. data/lib/stackmate/participants/cloudstack_autoscalevmgroup.rb +4 -1
  9. data/lib/stackmate/participants/cloudstack_autoscalevmprofile.rb +4 -1
  10. data/lib/stackmate/participants/cloudstack_condition.rb +4 -1
  11. data/lib/stackmate/participants/cloudstack_egressfirewallrule.rb +4 -1
  12. data/lib/stackmate/participants/cloudstack_firewallrule.rb +4 -1
  13. data/lib/stackmate/participants/cloudstack_globalloadbalancerrule.rb +4 -1
  14. data/lib/stackmate/participants/cloudstack_instancegroup.rb +4 -1
  15. data/lib/stackmate/participants/cloudstack_ipaddress.rb +4 -1
  16. data/lib/stackmate/participants/cloudstack_ipforwardingrule.rb +4 -1
  17. data/lib/stackmate/participants/cloudstack_iptonic.rb +4 -1
  18. data/lib/stackmate/participants/cloudstack_iso.rb +4 -1
  19. data/lib/stackmate/participants/cloudstack_lbhealthcheckpolicy.rb +4 -1
  20. data/lib/stackmate/participants/cloudstack_lbstickinesspolicy.rb +4 -1
  21. data/lib/stackmate/participants/cloudstack_loadbalancer.rb +4 -1
  22. data/lib/stackmate/participants/cloudstack_loadbalancerrule.rb +4 -1
  23. data/lib/stackmate/participants/cloudstack_network.rb +4 -1
  24. data/lib/stackmate/participants/cloudstack_networkacl.rb +4 -1
  25. data/lib/stackmate/participants/cloudstack_networkacllist.rb +4 -1
  26. data/lib/stackmate/participants/cloudstack_nictovirtualmachine.rb +5 -2
  27. data/lib/stackmate/participants/cloudstack_portforwardingrule.rb +4 -1
  28. data/lib/stackmate/participants/cloudstack_project.rb +4 -1
  29. data/lib/stackmate/participants/cloudstack_remoteaccessvpn.rb +4 -1
  30. data/lib/stackmate/participants/cloudstack_securitygroup.rb +4 -1
  31. data/lib/stackmate/participants/cloudstack_securitygroupegress.rb +4 -1
  32. data/lib/stackmate/participants/cloudstack_securitygroupingress.rb +4 -1
  33. data/lib/stackmate/participants/cloudstack_snapshot.rb +4 -1
  34. data/lib/stackmate/participants/cloudstack_snapshotpolicy.rb +4 -1
  35. data/lib/stackmate/participants/cloudstack_sshkeypair.rb +4 -1
  36. data/lib/stackmate/participants/cloudstack_staticnat.rb +4 -1
  37. data/lib/stackmate/participants/cloudstack_staticroute.rb +4 -1
  38. data/lib/stackmate/participants/cloudstack_tags.rb +4 -1
  39. data/lib/stackmate/participants/cloudstack_template.rb +4 -1
  40. data/lib/stackmate/participants/cloudstack_togloballoadbalancerrule.rb +4 -1
  41. data/lib/stackmate/participants/cloudstack_toloadbalancerrule.rb +4 -1
  42. data/lib/stackmate/participants/cloudstack_virtualmachine.rb +257 -281
  43. data/lib/stackmate/participants/cloudstack_virtualmachineops.rb +5 -2
  44. data/lib/stackmate/participants/cloudstack_vmsnapshot.rb +4 -1
  45. data/lib/stackmate/participants/cloudstack_volume.rb +4 -1
  46. data/lib/stackmate/participants/cloudstack_volumeops.rb +86 -90
  47. data/lib/stackmate/participants/cloudstack_vpc.rb +4 -1
  48. data/lib/stackmate/participants/cloudstack_vpnconnection.rb +4 -1
  49. data/lib/stackmate/participants/cloudstack_vpncustomergateway.rb +4 -1
  50. data/lib/stackmate/participants/cloudstack_vpngateway.rb +4 -1
  51. data/lib/stackmate/participants/cloudstack_vpnuser.rb +4 -1
  52. data/lib/stackmate/participants/common.rb +4 -2
  53. data/lib/stackmate/resolver.rb +28 -1
  54. data/lib/stackmate/stack_executor.rb +9 -5
  55. data/lib/stackmate/stack_server.rb +60 -0
  56. data/lib/stackmate/stackpi.rb +2 -7
  57. data/lib/stackmate/version.rb +1 -1
  58. data/lib/stackmate/waitcondition_server.rb +4 -6
  59. metadata +4 -2
@@ -21,6 +21,7 @@ module StackMate
21
21
  p args
22
22
  result_obj = make_sync_request('createInstanceGroup',args)
23
23
  resource_obj = result_obj['InstanceGroup'.downcase]
24
+
24
25
  #doing it this way since it is easier to change later, rather than cloning whole object
25
26
  resource_obj.each_key do |k|
26
27
  val = resource_obj[k]
@@ -30,6 +31,7 @@ module StackMate
30
31
  workitem[@name][k] = val
31
32
  end
32
33
  set_tags(@props['tags'],workitem[@name]['physical_id'],"InstanceGroup") if @props.has_key?('tags')
34
+ set_metadata if workitem['Resources'][@name].has_key?('Metadata')
33
35
  workitem['ResolvedNames'][@name] = name_cs
34
36
  workitem['IdMap'][workitem[@name]['physical_id']] = @name
35
37
 
@@ -54,6 +56,7 @@ module StackMate
54
56
  if (!(result_obj['error'] == true))
55
57
  logger.info("Successfully deleted resource #{@name}")
56
58
  else
59
+ workitem[@name]['delete_error'] = true
57
60
  logger.info("CloudStack error while deleting resource #{@name}")
58
61
  end
59
62
  else
@@ -110,4 +113,4 @@ module StackMate
110
113
  end
111
114
  end
112
115
  end
113
-
116
+
@@ -25,6 +25,7 @@ module StackMate
25
25
  p args
26
26
  result_obj = make_async_request('associateIpAddress',args)
27
27
  resource_obj = result_obj['IpAddress'.downcase]
28
+
28
29
  #doing it this way since it is easier to change later, rather than cloning whole object
29
30
  resource_obj.each_key do |k|
30
31
  val = resource_obj[k]
@@ -34,6 +35,7 @@ module StackMate
34
35
  workitem[@name][k] = val
35
36
  end
36
37
  set_tags(@props['tags'],workitem[@name]['physical_id'],"IpAddress") if @props.has_key?('tags')
38
+ set_metadata if workitem['Resources'][@name].has_key?('Metadata')
37
39
  workitem['ResolvedNames'][@name] = name_cs
38
40
  workitem['IdMap'][workitem[@name]['physical_id']] = @name
39
41
 
@@ -58,6 +60,7 @@ module StackMate
58
60
  if (!(result_obj['error'] == true))
59
61
  logger.info("Successfully deleted resource #{@name}")
60
62
  else
63
+ workitem[@name]['delete_error'] = true
61
64
  logger.info("CloudStack error while deleting resource #{@name}")
62
65
  end
63
66
  else
@@ -146,4 +149,4 @@ module StackMate
146
149
  end
147
150
  end
148
151
  end
149
-
152
+
@@ -23,6 +23,7 @@ module StackMate
23
23
  p args
24
24
  result_obj = make_async_request('createIpForwardingRule',args)
25
25
  resource_obj = result_obj['IpForwardingRule'.downcase]
26
+
26
27
  #doing it this way since it is easier to change later, rather than cloning whole object
27
28
  resource_obj.each_key do |k|
28
29
  val = resource_obj[k]
@@ -32,6 +33,7 @@ module StackMate
32
33
  workitem[@name][k] = val
33
34
  end
34
35
  set_tags(@props['tags'],workitem[@name]['physical_id'],"IpForwardingRule") if @props.has_key?('tags')
36
+ set_metadata if workitem['Resources'][@name].has_key?('Metadata')
35
37
  workitem['ResolvedNames'][@name] = name_cs
36
38
  workitem['IdMap'][workitem[@name]['physical_id']] = @name
37
39
 
@@ -56,6 +58,7 @@ module StackMate
56
58
  if (!(result_obj['error'] == true))
57
59
  logger.info("Successfully deleted resource #{@name}")
58
60
  else
61
+ workitem[@name]['delete_error'] = true
59
62
  logger.info("CloudStack error while deleting resource #{@name}")
60
63
  end
61
64
  else
@@ -128,4 +131,4 @@ module StackMate
128
131
  end
129
132
  end
130
133
  end
131
-
134
+
@@ -19,6 +19,7 @@ module StackMate
19
19
  p args
20
20
  result_obj = make_async_request('addIpToNic',args)
21
21
  resource_obj = result_obj['IpToNic'.downcase]
22
+
22
23
  #doing it this way since it is easier to change later, rather than cloning whole object
23
24
  resource_obj.each_key do |k|
24
25
  val = resource_obj[k]
@@ -28,6 +29,7 @@ module StackMate
28
29
  workitem[@name][k] = val
29
30
  end
30
31
  set_tags(@props['tags'],workitem[@name]['physical_id'],"IpToNic") if @props.has_key?('tags')
32
+ set_metadata if workitem['Resources'][@name].has_key?('Metadata')
31
33
  workitem['ResolvedNames'][@name] = name_cs
32
34
  workitem['IdMap'][workitem[@name]['physical_id']] = @name
33
35
 
@@ -52,6 +54,7 @@ module StackMate
52
54
  if (!(result_obj['error'] == true))
53
55
  logger.info("Successfully deleted resource #{@name}")
54
56
  else
57
+ workitem[@name]['delete_error'] = true
55
58
  logger.info("CloudStack error while deleting resource #{@name}")
56
59
  end
57
60
  else
@@ -92,4 +95,4 @@ module StackMate
92
95
  end
93
96
  end
94
97
  end
95
-
98
+
@@ -19,6 +19,7 @@ module StackMate
19
19
  p args
20
20
  result_obj = make_async_request('attachIso',args)
21
21
  resource_obj = result_obj['Iso'.downcase]
22
+
22
23
  #doing it this way since it is easier to change later, rather than cloning whole object
23
24
  resource_obj.each_key do |k|
24
25
  val = resource_obj[k]
@@ -28,6 +29,7 @@ module StackMate
28
29
  workitem[@name][k] = val
29
30
  end
30
31
  set_tags(@props['tags'],workitem[@name]['physical_id'],"Iso") if @props.has_key?('tags')
32
+ set_metadata if workitem['Resources'][@name].has_key?('Metadata')
31
33
  workitem['ResolvedNames'][@name] = name_cs
32
34
  workitem['IdMap'][workitem[@name]['physical_id']] = @name
33
35
 
@@ -52,6 +54,7 @@ module StackMate
52
54
  if (!(result_obj['error'] == true))
53
55
  logger.info("Successfully deleted resource #{@name}")
54
56
  else
57
+ workitem[@name]['delete_error'] = true
55
58
  logger.info("CloudStack error while deleting resource #{@name}")
56
59
  end
57
60
  else
@@ -92,4 +95,4 @@ module StackMate
92
95
  end
93
96
  end
94
97
  end
95
-
98
+
@@ -24,6 +24,7 @@ module StackMate
24
24
  p args
25
25
  result_obj = make_async_request('createLBHealthCheckPolicy',args)
26
26
  resource_obj = result_obj['LBHealthCheckPolicy'.downcase]
27
+
27
28
  #doing it this way since it is easier to change later, rather than cloning whole object
28
29
  resource_obj.each_key do |k|
29
30
  val = resource_obj[k]
@@ -33,6 +34,7 @@ module StackMate
33
34
  workitem[@name][k] = val
34
35
  end
35
36
  set_tags(@props['tags'],workitem[@name]['physical_id'],"LBHealthCheckPolicy") if @props.has_key?('tags')
37
+ set_metadata if workitem['Resources'][@name].has_key?('Metadata')
36
38
  workitem['ResolvedNames'][@name] = name_cs
37
39
  workitem['IdMap'][workitem[@name]['physical_id']] = @name
38
40
 
@@ -57,6 +59,7 @@ module StackMate
57
59
  if (!(result_obj['error'] == true))
58
60
  logger.info("Successfully deleted resource #{@name}")
59
61
  else
62
+ workitem[@name]['delete_error'] = true
60
63
  logger.info("CloudStack error while deleting resource #{@name}")
61
64
  end
62
65
  else
@@ -137,4 +140,4 @@ module StackMate
137
140
  end
138
141
  end
139
142
  end
140
-
143
+
@@ -22,6 +22,7 @@ module StackMate
22
22
  p args
23
23
  result_obj = make_async_request('createLBStickinessPolicy',args)
24
24
  resource_obj = result_obj['LBStickinessPolicy'.downcase]
25
+
25
26
  #doing it this way since it is easier to change later, rather than cloning whole object
26
27
  resource_obj.each_key do |k|
27
28
  val = resource_obj[k]
@@ -31,6 +32,7 @@ module StackMate
31
32
  workitem[@name][k] = val
32
33
  end
33
34
  set_tags(@props['tags'],workitem[@name]['physical_id'],"LBStickinessPolicy") if @props.has_key?('tags')
35
+ set_metadata if workitem['Resources'][@name].has_key?('Metadata')
34
36
  workitem['ResolvedNames'][@name] = name_cs
35
37
  workitem['IdMap'][workitem[@name]['physical_id']] = @name
36
38
 
@@ -55,6 +57,7 @@ module StackMate
55
57
  if (!(result_obj['error'] == true))
56
58
  logger.info("Successfully deleted resource #{@name}")
57
59
  else
60
+ workitem[@name]['delete_error'] = true
58
61
  logger.info("CloudStack error while deleting resource #{@name}")
59
62
  end
60
63
  else
@@ -119,4 +122,4 @@ module StackMate
119
122
  end
120
123
  end
121
124
  end
122
-
125
+
@@ -26,6 +26,7 @@ module StackMate
26
26
  p args
27
27
  result_obj = make_async_request('createLoadBalancer',args)
28
28
  resource_obj = result_obj['LoadBalancer'.downcase]
29
+
29
30
  #doing it this way since it is easier to change later, rather than cloning whole object
30
31
  resource_obj.each_key do |k|
31
32
  val = resource_obj[k]
@@ -35,6 +36,7 @@ module StackMate
35
36
  workitem[@name][k] = val
36
37
  end
37
38
  set_tags(@props['tags'],workitem[@name]['physical_id'],"LoadBalancer") if @props.has_key?('tags')
39
+ set_metadata if workitem['Resources'][@name].has_key?('Metadata')
38
40
  workitem['ResolvedNames'][@name] = name_cs
39
41
  workitem['IdMap'][workitem[@name]['physical_id']] = @name
40
42
 
@@ -59,6 +61,7 @@ module StackMate
59
61
  if (!(result_obj['error'] == true))
60
62
  logger.info("Successfully deleted resource #{@name}")
61
63
  else
64
+ workitem[@name]['delete_error'] = true
62
65
  logger.info("CloudStack error while deleting resource #{@name}")
63
66
  end
64
67
  else
@@ -155,4 +158,4 @@ module StackMate
155
158
  end
156
159
  end
157
160
  end
158
-
161
+
@@ -29,6 +29,7 @@ module StackMate
29
29
  p args
30
30
  result_obj = make_async_request('createLoadBalancerRule',args)
31
31
  resource_obj = result_obj['LoadBalancerRule'.downcase]
32
+
32
33
  #doing it this way since it is easier to change later, rather than cloning whole object
33
34
  resource_obj.each_key do |k|
34
35
  val = resource_obj[k]
@@ -38,6 +39,7 @@ module StackMate
38
39
  workitem[@name][k] = val
39
40
  end
40
41
  set_tags(@props['tags'],workitem[@name]['physical_id'],"LoadBalancerRule") if @props.has_key?('tags')
42
+ set_metadata if workitem['Resources'][@name].has_key?('Metadata')
41
43
  workitem['ResolvedNames'][@name] = name_cs
42
44
  workitem['IdMap'][workitem[@name]['physical_id']] = @name
43
45
 
@@ -62,6 +64,7 @@ module StackMate
62
64
  if (!(result_obj['error'] == true))
63
65
  logger.info("Successfully deleted resource #{@name}")
64
66
  else
67
+ workitem[@name]['delete_error'] = true
65
68
  logger.info("CloudStack error while deleting resource #{@name}")
66
69
  end
67
70
  else
@@ -182,4 +185,4 @@ module StackMate
182
185
  end
183
186
  end
184
187
  end
185
-
188
+
@@ -41,6 +41,7 @@ module StackMate
41
41
  p args
42
42
  result_obj = make_sync_request('createNetwork',args)
43
43
  resource_obj = result_obj['Network'.downcase]
44
+
44
45
  #doing it this way since it is easier to change later, rather than cloning whole object
45
46
  resource_obj.each_key do |k|
46
47
  val = resource_obj[k]
@@ -50,6 +51,7 @@ module StackMate
50
51
  workitem[@name][k] = val
51
52
  end
52
53
  set_tags(@props['tags'],workitem[@name]['physical_id'],"Network") if @props.has_key?('tags')
54
+ set_metadata if workitem['Resources'][@name].has_key?('Metadata')
53
55
  workitem['ResolvedNames'][@name] = name_cs
54
56
  workitem['IdMap'][workitem[@name]['physical_id']] = @name
55
57
 
@@ -74,6 +76,7 @@ module StackMate
74
76
  if (!(result_obj['error'] == true))
75
77
  logger.info("Successfully deleted resource #{@name}")
76
78
  else
79
+ workitem[@name]['delete_error'] = true
77
80
  logger.info("CloudStack error while deleting resource #{@name}")
78
81
  end
79
82
  else
@@ -290,4 +293,4 @@ module StackMate
290
293
  end
291
294
  end
292
295
  end
293
-
296
+
@@ -28,6 +28,7 @@ module StackMate
28
28
  p args
29
29
  result_obj = make_async_request('createNetworkACL',args)
30
30
  resource_obj = result_obj['NetworkACL'.downcase]
31
+
31
32
  #doing it this way since it is easier to change later, rather than cloning whole object
32
33
  resource_obj.each_key do |k|
33
34
  val = resource_obj[k]
@@ -37,6 +38,7 @@ module StackMate
37
38
  workitem[@name][k] = val
38
39
  end
39
40
  set_tags(@props['tags'],workitem[@name]['physical_id'],"NetworkACL") if @props.has_key?('tags')
41
+ set_metadata if workitem['Resources'][@name].has_key?('Metadata')
40
42
  workitem['ResolvedNames'][@name] = name_cs
41
43
  workitem['IdMap'][workitem[@name]['physical_id']] = @name
42
44
 
@@ -61,6 +63,7 @@ module StackMate
61
63
  if (!(result_obj['error'] == true))
62
64
  logger.info("Successfully deleted resource #{@name}")
63
65
  else
66
+ workitem[@name]['delete_error'] = true
64
67
  logger.info("CloudStack error while deleting resource #{@name}")
65
68
  end
66
69
  else
@@ -173,4 +176,4 @@ module StackMate
173
176
  end
174
177
  end
175
178
  end
176
-
179
+
@@ -20,6 +20,7 @@ module StackMate
20
20
  p args
21
21
  result_obj = make_async_request('createNetworkACLList',args)
22
22
  resource_obj = result_obj['NetworkACLList'.downcase]
23
+
23
24
  #doing it this way since it is easier to change later, rather than cloning whole object
24
25
  resource_obj.each_key do |k|
25
26
  val = resource_obj[k]
@@ -29,6 +30,7 @@ module StackMate
29
30
  workitem[@name][k] = val
30
31
  end
31
32
  set_tags(@props['tags'],workitem[@name]['physical_id'],"NetworkACLList") if @props.has_key?('tags')
33
+ set_metadata if workitem['Resources'][@name].has_key?('Metadata')
32
34
  workitem['ResolvedNames'][@name] = name_cs
33
35
  workitem['IdMap'][workitem[@name]['physical_id']] = @name
34
36
 
@@ -53,6 +55,7 @@ module StackMate
53
55
  if (!(result_obj['error'] == true))
54
56
  logger.info("Successfully deleted resource #{@name}")
55
57
  else
58
+ workitem[@name]['delete_error'] = true
56
59
  logger.info("CloudStack error while deleting resource #{@name}")
57
60
  end
58
61
  else
@@ -101,4 +104,4 @@ module StackMate
101
104
  end
102
105
  end
103
106
  end
104
-
107
+
@@ -20,6 +20,7 @@ module StackMate
20
20
  p args
21
21
  result_obj = make_async_request('addNicToVirtualMachine',args)
22
22
  resource_obj = result_obj['NicToVirtualMachine'.downcase]
23
+
23
24
  #doing it this way since it is easier to change later, rather than cloning whole object
24
25
  resource_obj.each_key do |k|
25
26
  val = resource_obj[k]
@@ -28,7 +29,8 @@ module StackMate
28
29
  end
29
30
  workitem[@name][k] = val
30
31
  end
31
- set_tags(@props['tags'],workitem[@name]['physical_id'],"NicToVirtualMachine") if @props.has_key?('tags')
32
+ set_tags(@props['tags'],workitem[@name]['physical_id'],"UserVM") if @props.has_key?('tags')
33
+ set_metadata if workitem['Resources'][@name].has_key?('Metadata')
32
34
  workitem['ResolvedNames'][@name] = name_cs
33
35
  workitem['IdMap'][workitem[@name]['physical_id']] = @name
34
36
 
@@ -53,6 +55,7 @@ module StackMate
53
55
  if (!(result_obj['error'] == true))
54
56
  logger.info("Successfully deleted resource #{@name}")
55
57
  else
58
+ workitem[@name]['delete_error'] = true
56
59
  logger.info("CloudStack error while deleting resource #{@name}")
57
60
  end
58
61
  else
@@ -101,4 +104,4 @@ module StackMate
101
104
  end
102
105
  end
103
106
  end
104
-
107
+
@@ -28,6 +28,7 @@ module StackMate
28
28
  p args
29
29
  result_obj = make_async_request('createPortForwardingRule',args)
30
30
  resource_obj = result_obj['PortForwardingRule'.downcase]
31
+
31
32
  #doing it this way since it is easier to change later, rather than cloning whole object
32
33
  resource_obj.each_key do |k|
33
34
  val = resource_obj[k]
@@ -37,6 +38,7 @@ module StackMate
37
38
  workitem[@name][k] = val
38
39
  end
39
40
  set_tags(@props['tags'],workitem[@name]['physical_id'],"PortForwardingRule") if @props.has_key?('tags')
41
+ set_metadata if workitem['Resources'][@name].has_key?('Metadata')
40
42
  workitem['ResolvedNames'][@name] = name_cs
41
43
  workitem['IdMap'][workitem[@name]['physical_id']] = @name
42
44
 
@@ -61,6 +63,7 @@ module StackMate
61
63
  if (!(result_obj['error'] == true))
62
64
  logger.info("Successfully deleted resource #{@name}")
63
65
  else
66
+ workitem[@name]['delete_error'] = true
64
67
  logger.info("CloudStack error while deleting resource #{@name}")
65
68
  end
66
69
  else
@@ -173,4 +176,4 @@ module StackMate
173
176
  end
174
177
  end
175
178
  end
176
-
179
+
@@ -21,6 +21,7 @@ module StackMate
21
21
  p args
22
22
  result_obj = make_async_request('createProject',args)
23
23
  resource_obj = result_obj['Project'.downcase]
24
+
24
25
  #doing it this way since it is easier to change later, rather than cloning whole object
25
26
  resource_obj.each_key do |k|
26
27
  val = resource_obj[k]
@@ -30,6 +31,7 @@ module StackMate
30
31
  workitem[@name][k] = val
31
32
  end
32
33
  set_tags(@props['tags'],workitem[@name]['physical_id'],"Project") if @props.has_key?('tags')
34
+ set_metadata if workitem['Resources'][@name].has_key?('Metadata')
33
35
  workitem['ResolvedNames'][@name] = name_cs
34
36
  workitem['IdMap'][workitem[@name]['physical_id']] = @name
35
37
 
@@ -54,6 +56,7 @@ module StackMate
54
56
  if (!(result_obj['error'] == true))
55
57
  logger.info("Successfully deleted resource #{@name}")
56
58
  else
59
+ workitem[@name]['delete_error'] = true
57
60
  logger.info("CloudStack error while deleting resource #{@name}")
58
61
  end
59
62
  else
@@ -110,4 +113,4 @@ module StackMate
110
113
  end
111
114
  end
112
115
  end
113
-
116
+
@@ -22,6 +22,7 @@ module StackMate
22
22
  p args
23
23
  result_obj = make_async_request('createRemoteAccessVpn',args)
24
24
  resource_obj = result_obj['RemoteAccessVpn'.downcase]
25
+
25
26
  #doing it this way since it is easier to change later, rather than cloning whole object
26
27
  resource_obj.each_key do |k|
27
28
  val = resource_obj[k]
@@ -31,6 +32,7 @@ module StackMate
31
32
  workitem[@name][k] = val
32
33
  end
33
34
  set_tags(@props['tags'],workitem[@name]['physical_id'],"RemoteAccessVpn") if @props.has_key?('tags')
35
+ set_metadata if workitem['Resources'][@name].has_key?('Metadata')
34
36
  workitem['ResolvedNames'][@name] = name_cs
35
37
  workitem['IdMap'][workitem[@name]['physical_id']] = @name
36
38
 
@@ -55,6 +57,7 @@ module StackMate
55
57
  if (!(result_obj['error'] == true))
56
58
  logger.info("Successfully deleted resource #{@name}")
57
59
  else
60
+ workitem[@name]['delete_error'] = true
58
61
  logger.info("CloudStack error while deleting resource #{@name}")
59
62
  end
60
63
  else
@@ -119,4 +122,4 @@ module StackMate
119
122
  end
120
123
  end
121
124
  end
122
-
125
+