stackmate 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+