epc 1.0.3 → 1.0.4

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 (196) hide show
  1. data/lib/epc.rb +25 -5
  2. data/lib/epc/client/json_client.rb +4 -4
  3. data/lib/epc/command/archive_command.rb +7 -6
  4. data/lib/epc/command/attachto_command.rb +13 -0
  5. data/lib/epc/command/base_command.rb +120 -29
  6. data/lib/epc/command/config/create_config_command.rb +7 -11
  7. data/lib/epc/command/config/delete_config_command.rb +5 -5
  8. data/lib/epc/command/config/list_configs_command.rb +5 -5
  9. data/lib/epc/command/config/update_config_command.rb +11 -10
  10. data/lib/epc/command/copy_command.rb +14 -0
  11. data/lib/epc/command/create_command.rb +9 -5
  12. data/lib/epc/command/delete_command.rb +9 -9
  13. data/lib/epc/command/{copy_deployment_command.rb → deployment/copy_deployment_command.rb} +6 -5
  14. data/lib/epc/command/deployment/create_deployment_command.rb +15 -15
  15. data/lib/epc/command/deployment/list_deployments_command.rb +2 -4
  16. data/lib/epc/command/deployment/show_deployment_command.rb +5 -7
  17. data/lib/epc/command/deployment/submit_deployment_command.rb +15 -0
  18. data/lib/epc/command/deployment/update_deployment_command.rb +5 -14
  19. data/lib/epc/command/deployment/vote_deployment_command.rb +23 -0
  20. data/lib/epc/command/deploymentstage/list_deploymentstages_command.rb +1 -1
  21. data/lib/epc/command/detachfrom_command.rb +13 -0
  22. data/lib/epc/command/group/create_group_command.rb +3 -3
  23. data/lib/epc/command/group/delete_group_command.rb +4 -5
  24. data/lib/epc/command/group/show_group_command.rb +2 -3
  25. data/lib/epc/command/group/update_group_command.rb +9 -7
  26. data/lib/epc/command/library/create_library_command.rb +1 -2
  27. data/lib/epc/command/library/delete_library_command.rb +4 -5
  28. data/lib/epc/command/library/list_libraries_command.rb +1 -1
  29. data/lib/epc/command/librarylanguage/create_librarylanguage_command.rb +1 -1
  30. data/lib/epc/command/librarylanguage/delete_librarylanguage_command.rb +3 -5
  31. data/lib/epc/command/librarylanguage/list_librarylanguages_command.rb +1 -1
  32. data/lib/epc/command/librarylanguage/update_librarylanguage_command.rb +4 -5
  33. data/lib/epc/command/libraryset/create_libraryset_command.rb +5 -4
  34. data/lib/epc/command/libraryset/delete_libraryset_command.rb +4 -6
  35. data/lib/epc/command/libraryset/list_librarysets_command.rb +2 -2
  36. data/lib/epc/command/libraryset/show_libraryset_command.rb +3 -3
  37. data/lib/epc/command/libraryset/update_libraryset_command.rb +4 -3
  38. data/lib/epc/command/list_command.rb +10 -14
  39. data/lib/epc/command/list_objecttypes_command.rb +1 -1
  40. data/lib/epc/command/objectrole/create_objectrole_command.rb +4 -5
  41. data/lib/epc/command/objectrole/list_objectroles_command.rb +3 -8
  42. data/lib/epc/command/objectrole/update_objectrole_command.rb +3 -1
  43. data/lib/epc/command/permission/list_permissions_command.rb +1 -1
  44. data/lib/epc/command/permissiongroup/list_permissiongroups_command.rb +1 -1
  45. data/lib/epc/command/plugin/create_plugin_command.rb +1 -2
  46. data/lib/epc/command/plugin/delete_plugin_command.rb +4 -6
  47. data/lib/epc/command/plugin/list_plugins_command.rb +1 -1
  48. data/lib/epc/command/plugin/show_plugin_command.rb +2 -5
  49. data/lib/epc/command/plugin/update_plugin_command.rb +2 -6
  50. data/lib/epc/command/project/archive_project_command.rb +3 -12
  51. data/lib/epc/command/project/attachto_project_command.rb +133 -0
  52. data/lib/epc/command/project/create_project_command.rb +6 -6
  53. data/lib/epc/command/project/delete_project_command.rb +3 -24
  54. data/lib/epc/command/project/detachfrom_project_command.rb +66 -0
  55. data/lib/epc/command/project/list_projects_command.rb +12 -7
  56. data/lib/epc/command/project/show_project_command.rb +26 -25
  57. data/lib/epc/command/project/show_project_snapshot_command.rb +41 -0
  58. data/lib/epc/command/project/unarchive_project_command.rb +3 -10
  59. data/lib/epc/command/project/update_project_command.rb +5 -18
  60. data/lib/epc/command/projecttype/create_projecttype_command.rb +37 -0
  61. data/lib/epc/command/projecttype/delete_projecttype_command.rb +24 -0
  62. data/lib/epc/command/projecttype/list_projecttypes_command.rb +1 -1
  63. data/lib/epc/command/projecttype/show_projecttype_command.rb +2 -4
  64. data/lib/epc/command/projecttype/update_projecttype_command.rb +61 -0
  65. data/lib/epc/command/push_command.rb +14 -8
  66. data/lib/epc/command/role/create_role_command.rb +26 -3
  67. data/lib/epc/command/role/delete_role_command.rb +3 -5
  68. data/lib/epc/command/role/list_roles_command.rb +7 -3
  69. data/lib/epc/command/role/show_role_command.rb +8 -5
  70. data/lib/epc/command/role/update_role_command.rb +14 -66
  71. data/lib/epc/command/runtime/create_runtime_command.rb +34 -0
  72. data/lib/epc/command/runtime/delete_runtime_command.rb +24 -0
  73. data/lib/epc/command/runtime/list_runtimes_command.rb +2 -2
  74. data/lib/epc/command/runtime/update_runtime_command.rb +49 -0
  75. data/lib/epc/command/runtimetype/list_runtimetypes_command.rb +17 -0
  76. data/lib/epc/command/servicedefinition/create_servicedefinition_command.rb +5 -6
  77. data/lib/epc/command/servicedefinition/delete_servicedefinition_command.rb +18 -0
  78. data/lib/epc/command/servicedefinition/list_servicedefinitions_command.rb +2 -2
  79. data/lib/epc/command/servicetype/list_servicetypes_command.rb +1 -1
  80. data/lib/epc/command/serviceversion/create_serviceversion_command.rb +8 -12
  81. data/lib/epc/command/serviceversion/delete_serviceversion_command.rb +3 -5
  82. data/lib/epc/command/serviceversion/list_serviceversions_command.rb +8 -1
  83. data/lib/epc/command/show_command.rb +8 -9
  84. data/lib/epc/command/show_metrics_command.rb +3 -3
  85. data/lib/epc/command/solution/archive_solution_command.rb +3 -10
  86. data/lib/epc/command/solution/create_solution_command.rb +2 -2
  87. data/lib/epc/command/solution/delete_solution_command.rb +3 -7
  88. data/lib/epc/command/solution/list_solutions_command.rb +11 -3
  89. data/lib/epc/command/solution/show_solution_command.rb +4 -6
  90. data/lib/epc/command/solution/unarchive_solution_command.rb +3 -8
  91. data/lib/epc/command/solution/update_solution_command.rb +4 -6
  92. data/lib/epc/command/submit_command.rb +16 -0
  93. data/lib/epc/command/unarchive_command.rb +7 -6
  94. data/lib/epc/command/update_command.rb +9 -8
  95. data/lib/epc/command/user/create_user_command.rb +2 -3
  96. data/lib/epc/command/user/delete_user_command.rb +3 -5
  97. data/lib/epc/command/user/list_users_command.rb +1 -1
  98. data/lib/epc/command/user/show_user_command.rb +2 -4
  99. data/lib/epc/command/user/update_user_command.rb +3 -14
  100. data/lib/epc/command/userproperty/list_user_properties_command.rb +23 -0
  101. data/lib/epc/command/vote_command.rb +16 -0
  102. data/lib/epc/config.rb +7 -1
  103. data/lib/epc/help.rb +51 -48
  104. data/lib/epc/modules/config.rb +39 -0
  105. data/lib/epc/modules/role.rb +133 -0
  106. data/lib/epc/runner.rb +23 -12
  107. data/lib/epc/version.rb +1 -1
  108. data/test/command/archive_project_command_test.rb +2 -13
  109. data/test/command/archive_solution_command_test.rb +4 -14
  110. data/test/command/copy_deployment_command_test.rb +4 -8
  111. data/test/command/create_config_command_test.rb +23 -23
  112. data/test/command/create_deployment_command_test.rb +33 -32
  113. data/test/command/create_group_command_test.rb +2 -2
  114. data/test/command/create_library_command_test.rb +6 -6
  115. data/test/command/create_librarylanguage_command_test.rb +3 -3
  116. data/test/command/create_libraryset_command_test.rb +6 -26
  117. data/test/command/create_objectrole_command_test.rb +4 -13
  118. data/test/command/create_project_command_test.rb +27 -13
  119. data/test/command/create_role_command_test.rb +3 -2
  120. data/test/command/create_runtime_command_test.rb +37 -0
  121. data/test/command/create_servicedefinition_command_test.rb +4 -17
  122. data/test/command/create_serviceversion_command_test.rb +8 -22
  123. data/test/command/create_solution_command_test.rb +5 -5
  124. data/test/command/create_user_command_test.rb +4 -4
  125. data/test/command/delete_config_command_test.rb +8 -15
  126. data/test/command/delete_library_command_test.rb +3 -4
  127. data/test/command/delete_librarylanguage_command_test.rb +3 -4
  128. data/test/command/delete_libraryset_command_test.rb +3 -4
  129. data/test/command/delete_plugin_command_test.rb +3 -4
  130. data/test/command/delete_project_command_test.rb +2 -10
  131. data/test/command/delete_projecttype_command_test.rb +31 -0
  132. data/test/command/delete_role_command_test.rb +5 -14
  133. data/test/command/delete_runtime_command_test.rb +31 -0
  134. data/test/command/delete_servicedefinition_command_test.rb +31 -0
  135. data/test/command/delete_serviceversion_command_test.rb +3 -2
  136. data/test/command/delete_solution_command_test.rb +3 -16
  137. data/test/command/delete_user_command_test.rb +3 -3
  138. data/test/command/list_config_command_test.rb +1 -0
  139. data/test/command/list_deployments_command_test.rb +11 -41
  140. data/test/command/list_objectroles_command_test.rb +4 -14
  141. data/test/command/list_projects_command_test.rb +0 -14
  142. data/test/command/list_roles_command_test.rb +3 -1
  143. data/test/command/list_runtimes_command_test.rb +2 -3
  144. data/test/command/list_runtimetypes_command_test.rb +29 -0
  145. data/test/command/list_userproperties_command_test.rb +33 -0
  146. data/test/command/push_command_test.rb +9 -1
  147. data/test/command/show_deployment_command_test.rb +36 -0
  148. data/test/command/show_group_command_test.rb +2 -1
  149. data/test/command/show_libraryset_command_test.rb +5 -3
  150. data/test/command/show_metrics_command_test.rb +4 -4
  151. data/test/command/show_plugin_command_test.rb +4 -4
  152. data/test/command/show_project_command_test.rb +5 -17
  153. data/test/command/show_project_snapshot_test.rb +33 -0
  154. data/test/command/show_projecttype_command_test.rb +5 -11
  155. data/test/command/show_role_command_test.rb +5 -12
  156. data/test/command/show_solution_command_test.rb +2 -15
  157. data/test/command/show_user_command_test.rb +4 -3
  158. data/test/command/submit_deployment_command_test.rb +4 -11
  159. data/test/command/unarchive_project_command_test.rb +2 -14
  160. data/test/command/unarchive_solution_command_test.rb +6 -16
  161. data/test/command/update_config_command_test.rb +14 -3
  162. data/test/command/update_deployment_command_test.rb +12 -26
  163. data/test/command/update_group_command_test.rb +2 -10
  164. data/test/command/update_librarylanguage_command_test.rb +5 -3
  165. data/test/command/update_libraryset_command_test.rb +4 -2
  166. data/test/command/update_plugin_command_test.rb +5 -4
  167. data/test/command/update_project_command_test.rb +6 -20
  168. data/test/command/update_role_command_test.rb +11 -8
  169. data/test/command/update_solution_command_test.rb +6 -12
  170. data/test/command/update_user_command_test.rb +3 -19
  171. data/test/command/vote_deployment_command_test.rb +2 -6
  172. metadata +66 -63
  173. data/lib/epc/command/attach_library_command.rb +0 -82
  174. data/lib/epc/command/attach_libraryset_command.rb +0 -31
  175. data/lib/epc/command/attach_runtime_command.rb +0 -26
  176. data/lib/epc/command/bind_service_command.rb +0 -35
  177. data/lib/epc/command/create_dependency_command.rb +0 -43
  178. data/lib/epc/command/dependency/delete_dependency_command.rb +0 -38
  179. data/lib/epc/command/detach_library_command.rb +0 -35
  180. data/lib/epc/command/detach_libraryset_command.rb +0 -8
  181. data/lib/epc/command/list_versions_command.rb +0 -38
  182. data/lib/epc/command/submit_deployment_command.rb +0 -19
  183. data/lib/epc/command/unbind_service_command.rb +0 -42
  184. data/lib/epc/command/undefine_service_command.rb +0 -33
  185. data/lib/epc/command/update_rolepermissions_command.rb +0 -83
  186. data/lib/epc/command/vote_deployment_command.rb +0 -29
  187. data/test/command/attach_library_command_test.rb +0 -124
  188. data/test/command/attach_libraryset_command_test.rb +0 -49
  189. data/test/command/attach_runtime_command_test.rb +0 -44
  190. data/test/command/bind_service_command_test.rb +0 -46
  191. data/test/command/create_dependency_command_test.rb +0 -55
  192. data/test/command/create_plugin_command_test.rb +0 -44
  193. data/test/command/delete_dependency_command_test.rb +0 -42
  194. data/test/command/detach_library_command_test.rb +0 -53
  195. data/test/command/unbind_service_command_test.rb +0 -48
  196. data/test/command/undefine_service_command_test.rb +0 -49
@@ -0,0 +1,133 @@
1
+ module EPC::Command
2
+ module Role
3
+ def self.included(base)
4
+ base.send :include, InstanceMethods
5
+ end
6
+
7
+ module InstanceMethods
8
+
9
+ def batch_add(role_id, data)
10
+ users = data["users"] rescue []
11
+ users.each do |user|
12
+ add_user(role_id, user["id"])
13
+ end
14
+
15
+ groups = data["user_groups"] rescue []
16
+ groups.each do |group|
17
+ add_group(role_id, group["id"])
18
+ end
19
+
20
+ grants = data["grants"] rescue []
21
+ grants.each do |grant|
22
+ add_grant(role_id, [grant["secured_type"], grant["action"], grant["secured_id"]].join(":"))
23
+ end
24
+
25
+ end
26
+
27
+ def add_user(role_id, user)
28
+ user_id = retrieve_identifier_for("User", user)
29
+ params = []
30
+ params << {:member_id => user_id.to_i, :member_type => "User"}
31
+
32
+ status, response, headers = client.put(EPC::Config::ROLES_PATH + "/#{role_id}/assign_members", {:role_memberships => params})
33
+ if status.successful?
34
+ say("User [#{user}] added to role")
35
+ else
36
+ say("Failed to add [#{user}]: [#{response[:message]}]")
37
+ end
38
+ return status
39
+ end
40
+
41
+
42
+ def remove_user(role_id, user)
43
+ user_id = retrieve_identifier_for("User", user)
44
+ status, response, headers = client.delete(EPC::Config::ROLES_PATH + "/#{role_id}/remove_member", {:member_id => @options[:remove_user], :member_type => "User"})
45
+
46
+ if status.successful?
47
+ say("User [#{user}] removed from role")
48
+ else
49
+ say("Failed to remove [#{user}]: [#{response[:message]}]")
50
+ end
51
+
52
+ return status
53
+ end
54
+
55
+ def add_group(role_id, group)
56
+ group_id = retrieve_identifier_for("UserGroup", group)
57
+ params = []
58
+ params << {:member_id => group_id.to_i, :member_type => "UserGroup"}
59
+
60
+ status, response, headers = client.put(EPC::Config::ROLES_PATH + "/#{role_id}/assign_members", {:role_memberships => params})
61
+ if status.successful?
62
+ say("Group [#{group}] added to role")
63
+ else
64
+ say("Failed to add [#{group}]: [#{response[:message]}]")
65
+ end
66
+
67
+ return status
68
+ end
69
+
70
+ def remove_group(role_id, group)
71
+ group_id = retrieve_identifier_for("UserGroup", group)
72
+ status, response, headers = client.delete(EPC::Config::ROLES_PATH + "/#{role_id}/remove_member", {:member_id => group_id, :member_type => "UserGroup"})
73
+ if status.successful?
74
+ say("Group [#{group}] removed from role")
75
+ else
76
+ say("Failed to remove [#{group}]: [#{response[:message]}]")
77
+ end
78
+
79
+ return status
80
+ end
81
+
82
+ def add_grant(role_id, grant)
83
+ secured_type, action, secured_id = grant.split(":")
84
+ raise FatalError, "Grant incorrectly specified" if secured_type.blank? || action.blank?
85
+
86
+ params = {}
87
+ params[:grant_action] = action
88
+ params[:permitted_type] = "Role"
89
+ params[:permitted_id] = role_id.to_i
90
+ params[:secured_type] = secured_type
91
+ params[:secured_id] = secured_id if secured_id.present?
92
+
93
+ status, response, headers = client.post(EPC::Config::GRANTS_PATH, params)
94
+
95
+ if status.successful?
96
+ say("Role permission updated")
97
+ else
98
+ say("Request failed: [#{response[:message]}]")
99
+ end
100
+ return status
101
+ end
102
+
103
+ def remove_grant(role_id, grant)
104
+ secured_type, action, secured_id = grant.split(":")
105
+ status, response, headers = client.get(EPC::Config::ROLES_PATH + "/#{role_id}/grants")
106
+
107
+ if status.successful?
108
+ grant_id = response.detect do |g|
109
+ found = (g[:action] == action)
110
+ found = found && (g[:secured_type].to_s == secured_type)
111
+ if secured_id.blank?
112
+ found = found && g[:secured_id].blank?
113
+ else
114
+ found = found && (g[:secured_id].to_s == secured_id)
115
+ end
116
+ found
117
+ end[:id] rescue nil
118
+
119
+ raise FatalError, "Permission couldn't be determined" if grant_id.blank?
120
+
121
+ status, response, headers = client.delete(EPC::Config::GRANTS_PATH + "/#{grant_id}")
122
+
123
+ if status.successful?
124
+ say("Role permission deleted")
125
+ else
126
+ say("Request failed: [#{response[:message]}]")
127
+ end
128
+ end
129
+ return status
130
+ end
131
+ end
132
+ end
133
+ end
@@ -13,7 +13,7 @@ class EPC::Runner
13
13
  def initialize(args = [])
14
14
  @args = args
15
15
  @options = Hash.new
16
- @parent_commands = %w(list define undefine refresh approve deny bind unbind attach detach submit copy set request)
16
+ @parent_commands = %w(define undefine refresh approve deny bind unbind attach detach request)
17
17
  end
18
18
 
19
19
  def run
@@ -35,14 +35,17 @@ class EPC::Runner
35
35
  say(ex.to_s)
36
36
  exit 1
37
37
  rescue FatalError => ex
38
- command_name = EPC::Config.underscore(command_klass.class.to_s.split("::").last)
39
- # say("USAGE: " + EPC::Help::COMMAND_USAGES[command_name.split("_")[0...-1].join("_").to_sym])
38
+ command_name = EPC::Config.underscore(command_klass.klass_name.to_s.split("::").last)
39
+ say("USAGE: " + EPC::Help::COMMAND_USAGES[command_name.split("_")[0...-1].join("_").to_sym])
40
40
  say(ex.to_s)
41
41
  exit 1
42
- # rescue ArgumentError => ex
43
- # command_name = EPC::Config.underscore(command_klass.class.to_s.split("::").last)
44
- # say("Wrong number of attributes for #{command_name}")
45
- # # say("USAGE: " + EPC::Help::COMMAND_USAGES[command_name.split("_")[0...-1].join("_").to_sym])
42
+ rescue ArgumentError => ex
43
+ command_name = EPC::Config.underscore(command_klass.klass_name.to_s.split("::").last)
44
+ say("Wrong number of attributes for #{command_name}")
45
+ say("USAGE: " + EPC::Help::COMMAND_USAGES[command_name.split("_")[0...-1].join("_").to_sym])
46
+ exit 1
47
+ rescue NameError => ex
48
+ say "No such command"
46
49
  exit 1
47
50
  rescue BaseClient::HTTPException => ex
48
51
  say(ex.to_s)
@@ -78,7 +81,7 @@ class EPC::Runner
78
81
  opts.on('--down-script FILE') { |file| @options[:down_script] = file}
79
82
  opts.on('--required') { |required| @options[:required] = true }
80
83
  opts.on('--f FILE') { |file| @options[:file] = file }
81
- opts.on('--file FILE') { |file| @options[:file] = file }
84
+ opts.on('--file FILE') { |file| @options[:file] = file }
82
85
  opts.on('--force') { |force| @options[:force] = true }
83
86
  opts.on('-s NAME') { |name| @options[:solution_name] = name}
84
87
  opts.on('-S NAME') { |name| @options[:stage_name] = name}
@@ -129,8 +132,15 @@ class EPC::Runner
129
132
  opts.on('--timeout TIMEOUT') { |timeout| @options[:timeout] = timeout}
130
133
  opts.on('--extensions') { |ext| @options[:extensions] = true}
131
134
  opts.on('--inherited') { |inherited| @options[:inherited] = true}
135
+ opts.on('--archived') { |archived| @options[:archived] = true}
136
+ opts.on('--memory') { |memory| @options[:memory] = memory}
132
137
  opts.on('--configuration CONFIGURATION') { |configuration| @options[:configuration] = configuration}
133
- opts.on('--executions executions') { |executions| @options[:executions] = executions}
138
+ opts.on('--agility-topology ID') { |id| @options[:agility_topology] = id}
139
+ opts.on('--agility-environment ID') { |id| @options[:agility_environment] = id}
140
+ opts.on('--executions executions') { |executions| @options[:executions] = executions}
141
+ opts.on('--backwards-compatible') { |val| @options[:backwards_compatible] = true}
142
+ opts.on('--reversible') { |val| @options[:reversible] = true}
143
+ opts.on('--direct-deploy FILE') { |file| @options[:direct_deploy] = file}
134
144
 
135
145
  opts.on('-p NAME') do |name|
136
146
  if @options[:project_name].nil?
@@ -161,16 +171,17 @@ class EPC::Runner
161
171
  exit 0
162
172
  else
163
173
  if command_name == "approve" || command_name == "deny"
164
- @args.shift
165
- klass_name = "EPC::Command::VoteDeploymentCommand"
174
+ klass_name = "EPC::Command::VoteCommand"
166
175
  @options[:approval] = command_name
167
176
  elsif @parent_commands.include?(command_name)
168
177
  subcommand_name = @args.shift.gsub("-", "")
169
178
  klass_name = "EPC::Command::#{command_name.to_s.capitalize}#{subcommand_name.to_s.capitalize}Command"
179
+ elsif command_name == "snapshot"
180
+ klass_name = "EPC::Command::ShowProjectSnapshotCommand"
170
181
  else
171
182
  klass_name = "EPC::Command::#{command_name.to_s.capitalize}Command"
172
183
  end
173
- command_klass = eval(klass_name).new(client, @options)
184
+ command_klass = eval(klass_name.gsub("-", "")).new(client, @options)
174
185
  end
175
186
  rescue NameError => ex
176
187
  say("No such command: #{command_name} #{subcommand_name}")
@@ -1,3 +1,3 @@
1
1
  module Epc
2
- VERSION = "1.0.3"
2
+ VERSION = "1.0.4"
3
3
  end
@@ -1,24 +1,13 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class ArchiveProjectCommandTest < Test::Unit::TestCase
4
- context "checks" do
5
- setup do
6
- @mock_client = mock("Client")
7
- @command = EPC::Command::ArchiveProjectCommand.new(@mock_client)
8
- end
9
4
 
10
- should "fail if no project id specified" do
11
- assert_raise EPC::Error::FatalError do
12
- assert_equal 1, @command.execute
13
- end
14
- end
15
- end
16
5
  context "archiving" do
17
6
  setup do
18
7
  @mock_client = mock("Client")
19
8
  @command = EPC::Command::ArchiveProjectCommand.new(@mock_client)
20
- @command.expects(:infer_solution_context).returns([1, "FirstSolution"])
21
- @command.expects(:infer_project_context).returns([1, "FirstProject"])
9
+ @command.object_type = "Project"
10
+ @command.object_id = 1
22
11
  end
23
12
 
24
13
  should "fail if status is not 201" do
@@ -1,27 +1,17 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class ArchiveSolutionCommandTest < Test::Unit::TestCase
4
- context "checks" do
5
- setup do
6
- @mock_client = mock("Client")
7
- @command = EPC::Command::ArchiveSolutionCommand.new(@mock_client)
8
- end
9
4
 
10
- should "fail if no solution specified" do
11
- assert_raise EPC::Error::FatalError do
12
- assert_equal 1, @command.execute
13
- end
14
- end
15
- end
16
5
  context "archiving" do
17
6
  setup do
18
7
  @mock_client = mock("Client")
19
8
  @command = EPC::Command::ArchiveSolutionCommand.new(@mock_client)
20
- @command.expects(:infer_solution_context).returns([1, "FirstSolution"])
9
+ @command.object_id = 1
10
+ @command.object_type = "Solution"
21
11
  end
22
12
 
23
13
  should "fail if status is not 201" do
24
- @mock_client.expects(:put).with(EPC::Config::SOLUTIONS_PATH + "/1", {:archived => true, :name => "FirstSolution"}).
14
+ @mock_client.expects(:put).with(EPC::Config::SOLUTIONS_PATH + "/1", {:archived => true}).
25
15
  returns([404, {:message => "Not Found"}, {}])
26
16
 
27
17
  @command.expects(:say).with("Solution could not be archived. Request failed with: [Not Found]")
@@ -29,7 +19,7 @@ class ArchiveSolutionCommandTest < Test::Unit::TestCase
29
19
  end
30
20
 
31
21
  should "archive the solution" do
32
- @mock_client.expects(:put).with(EPC::Config::SOLUTIONS_PATH + "/1", {:archived => true, :name => "FirstSolution"}).
22
+ @mock_client.expects(:put).with(EPC::Config::SOLUTIONS_PATH + "/1", {:archived => true}).
33
23
  returns([200, {}, {}])
34
24
 
35
25
  @command.expects(:say).with("Solution has been archived.")
@@ -8,12 +8,8 @@ class CopyDeploymentCommandTest < Test::Unit::TestCase
8
8
  setup do
9
9
  @mock_client = mock("Client")
10
10
  @command = EPC::Command::CopyDeploymentCommand.new(@mock_client)
11
- end
12
-
13
- should "fail if no deployment id specified" do
14
- assert_raise EPC::Error::FatalError do
15
- assert_equal(@command.execute, 1)
16
- end
11
+ @command.object_id = 1
12
+ @command.object_type = "Deployment"
17
13
  end
18
14
 
19
15
  should "fail if status is not 201" do
@@ -21,7 +17,7 @@ class CopyDeploymentCommandTest < Test::Unit::TestCase
21
17
  returns([404, {:message => "Not Found"}, {}])
22
18
 
23
19
  @command.expects(:say).with("Request failed: [Not Found]")
24
- assert_equal(@command.execute(1, "development"), 404)
20
+ assert_equal(@command.execute(["development"]), 404)
25
21
  end
26
22
 
27
23
  should "report the succesfull creation of new deployment" do
@@ -29,7 +25,7 @@ class CopyDeploymentCommandTest < Test::Unit::TestCase
29
25
  returns([201, {:id => 2}, {}])
30
26
 
31
27
  @command.expects(:say).with("Copied new deployment to the development stage. ID: 2")
32
- assert_equal(@command.execute(1, "development"), 201)
28
+ assert_equal(@command.execute(["development"]), 201)
33
29
 
34
30
  end
35
31
 
@@ -7,13 +7,13 @@ class CreateConfigCommandTest < Test::Unit::TestCase
7
7
  context "adding" do
8
8
  setup do
9
9
  @mock_client = mock("Client")
10
+ EPC::Command::CreateConfigCommand.send :include, EPC::Command::Config
10
11
  @command = EPC::Command::CreateConfigCommand.new(@mock_client)
11
-
12
12
  end
13
13
 
14
14
  should "fail if no key specified" do
15
15
  assert_raise EPC::Error::FatalError do
16
- @command.execute("")
16
+ @command.execute
17
17
  end
18
18
  end
19
19
 
@@ -28,22 +28,21 @@ class CreateConfigCommandTest < Test::Unit::TestCase
28
28
  ).returns([400, {:message => "Not Found"}, {}])
29
29
 
30
30
  @command.expects("say").with("Request failed with message [Not Found]")
31
- assert_equal(@command.execute("", "key1=value1"), 400)
32
-
31
+ assert_equal(@command.execute(["key1=value1"]), 400)
33
32
  end
34
33
 
35
34
 
36
35
  should "add to specified configuration level when option is specified" do
37
- command = EPC::Command::CreateConfigCommand.new(@mock_client, {:user => 2})
36
+ @command.options[:user] = 2
38
37
 
39
- command.expects(:extract_configuration_level).returns(["User", 2])
38
+ @command.expects(:extract_configuration_level).returns(["User", 2])
40
39
 
41
40
  @mock_client.expects(:post).with(EPC::Config::CONFIGURATIONS_PATH,
42
41
  {:config_values => [{:name => "key1", :value => "value1", :value_type => "text", :configurable_id => 2, :configurable_type => "User", :required => false, :no_override => nil}]}
43
42
  ).returns([201, {:id => 1}, {}])
44
43
 
45
- command.expects(:say).with("Configuration values saved.")
46
- assert_equal(command.execute("", "key1=value1"), 201)
44
+ @command.expects(:say).with("Configuration values saved.")
45
+ assert_equal(@command.execute(["key1=value1"]), 201)
47
46
 
48
47
  end
49
48
 
@@ -55,46 +54,47 @@ class CreateConfigCommandTest < Test::Unit::TestCase
55
54
  ).returns([201, {:id => 1}, {}])
56
55
 
57
56
  @command.expects(:say).with("Configuration values saved.")
58
- assert_equal(@command.execute("", "key1=value1"), 201)
57
+ assert_equal(@command.execute(["key1=value1"]), 201)
59
58
  end
60
59
 
61
60
  should "add required key when --required flag is supplied" do
62
- command = EPC::Command::CreateConfigCommand.new(@mock_client, {:required => true})
61
+ @command.options[:required] = true
63
62
 
64
- command.expects(:extract_configuration_level).returns(["Project", 1])
63
+ @command.expects(:extract_configuration_level).returns(["Project", 1])
65
64
 
66
65
  @mock_client.expects(:post).with(EPC::Config::CONFIGURATIONS_PATH,
67
66
  {:config_values => [{:name => "key1", :value => "value1", :value_type => "text", :configurable_id => 1, :configurable_type => "Project", :required => true, :no_override => nil}]}
68
67
  ).returns([201, {:id => 1}, {}])
69
68
 
70
- command.expects(:say).with("Configuration values saved.")
71
- assert_equal(command.execute("", "key1=value1"), 201)
69
+ @command.expects(:say).with("Configuration values saved.")
70
+ assert_equal(@command.execute(["key1=value1"]), 201)
72
71
  end
73
72
 
74
73
  should "should accept value-type parameter" do
75
- command = EPC::Command::CreateConfigCommand.new(@mock_client, {:value_type => "URL"})
74
+ @command.options[:value_type] = "URL"
76
75
 
77
- command.expects(:extract_configuration_level).returns(["Project", 1])
76
+ @command.expects(:extract_configuration_level).returns(["Project", 1])
78
77
 
79
78
  @mock_client.expects(:post).with(EPC::Config::CONFIGURATIONS_PATH,
80
79
  {:config_values => [{:name => "key1", :value => "value1", :value_type => "URL", :configurable_id => 1, :configurable_type => "Project", :required => false, :no_override => nil}]}
81
80
  ).returns([201, {:id => 1}, {}])
82
81
 
83
- command.expects(:say).with("Configuration values saved.")
84
- assert_equal(command.execute("", "key1=value1"), 201)
82
+ @command.expects(:say).with("Configuration values saved.")
83
+ assert_equal(@command.execute(["key1=value1"]), 201)
85
84
  end
86
85
 
87
86
  should "should add the stage name parameter" do
88
- command = EPC::Command::CreateConfigCommand.new(@mock_client, {:value_type => "URL", :stage => "Development"})
87
+ @command.options[:value_type] = "URL"
88
+ @command.options[:stage] = "Development"
89
89
 
90
- command.expects(:extract_configuration_level).returns(["Project", 1])
90
+ @command.expects(:extract_configuration_level).returns(["Project", 1])
91
91
 
92
92
  @mock_client.expects(:post).with(EPC::Config::CONFIGURATIONS_PATH,
93
93
  {:config_values => [{:name => "key1", :value => "value1", :value_type => "URL", :configurable_id => 1, :configurable_type => "Project", :required => false, :no_override => nil, :stage_name => "Development"}]}
94
94
  ).returns([201, {:id => 1}, {}])
95
95
 
96
- command.expects(:say).with("Configuration values saved.")
97
- assert_equal(command.execute("", "key1=value1"), 201)
96
+ @command.expects(:say).with("Configuration values saved.")
97
+ assert_equal(@command.execute(["key1=value1"]), 201)
98
98
  end
99
99
 
100
100
  should "read data from external file when prompted to" do
@@ -106,7 +106,7 @@ class CreateConfigCommandTest < Test::Unit::TestCase
106
106
  ).returns([201, {:id => 1}, {}])
107
107
 
108
108
  @command.expects(:say).with("Configuration values saved.")
109
- assert_equal(@command.execute("", "key1=value1"), 201)
109
+ assert_equal(@command.execute(["key1=value1"]), 201)
110
110
  end
111
111
 
112
112
  should "fail if no config values were supplied" do
@@ -114,7 +114,7 @@ class CreateConfigCommandTest < Test::Unit::TestCase
114
114
  @command.options[:file] = "path_to_file"
115
115
  EPC::Config.expects(:read_content_as_json).returns([])
116
116
  @command.expects(:extract_configuration_level).returns(["Project", 1])
117
- @command.execute("")
117
+ @command.execute
118
118
  end
119
119
 
120
120
  end
@@ -42,7 +42,7 @@ class CreateDeploymentCommandTest < Test::Unit::TestCase
42
42
  @command.expects(:ask_yn).returns("Y")
43
43
  @command.expects(:say).with("Deployment creation failed [Not Found]. Aborting.")
44
44
 
45
- assert_equal(@command.execute("", "Development"), 404)
45
+ assert_equal(@command.execute(["Development"]), 404)
46
46
  end
47
47
 
48
48
  should "report failure if it catches an exception" do
@@ -53,38 +53,39 @@ class CreateDeploymentCommandTest < Test::Unit::TestCase
53
53
  @command.expects(:ask_yn).returns("Y")
54
54
  @command.expects(:say).with("Create deployment failed [Exception Caught (StandardError): failed].")
55
55
 
56
- assert_equal(@command.execute("", "Development"), 1)
56
+ assert_equal(@command.execute(["Development"]), 1)
57
57
  end
58
58
  end
59
59
 
60
- context "deployment replacement" do
61
- setup do
62
- @mock_client = mock("Client")
63
- @command = EPC::Command::CreateDeploymentCommand.new(@mock_client, {:solution_name => "FirstSolution"})
64
- @command.expects(:infer_solution_context).returns([1, "FirstSolution"])
65
- @command.expects(:ask_yn).returns("Y")
66
- @command.options[:replaces] = 1
67
- @command.expects(:create_deployment).returns([200, 2])
68
- end
69
-
70
- should "issue a replacement request to core" do
71
- @mock_client.expects(:put).with(EPC::Config::DEPLOYMENTS_PATH + "/2", :stage_name => "no_change", :replaces_id => 1, :versions => "no_change").
72
- returns([200, {}, {}])
73
- @command.expects(:say).with("Replacement request successful")
74
-
75
- @command.execute
76
- end
77
-
78
- should "notify if replacement request fails" do
79
- @mock_client.expects(:put).with(EPC::Config::DEPLOYMENTS_PATH + "/2", :stage_name => "no_change", :replaces_id => 1, :versions => "no_change").
80
- returns([500, {:message => "System exception"}, {}])
81
- @command.expects(:say).with("Replacement request failed: [System exception]")
82
-
83
- @command.execute
84
- end
85
-
86
-
87
- end
60
+ # context "deployment replacement" do
61
+ # setup do
62
+ # @mock_client = mock("Client")
63
+ # @command = EPC::Command::CreateDeploymentCommand.new(@mock_client, {:solution_name => "FirstSolution"})
64
+ # @command.target_id = "FirstSolution"
65
+ # @command.expects(:infer_solution_context).returns([1, "FirstSolution"])
66
+ # @command.expects(:ask_yn).returns("Y")
67
+ # @command.options[:replaces] = 1
68
+ # @command.expects(:create_deployment).returns([200, 2])
69
+ # end
70
+
71
+ # should "issue a replacement request to core" do
72
+ # @mock_client.expects(:put).with(EPC::Config::DEPLOYMENTS_PATH + "/2", :stage_name => "no_change", :replaces_id => 1, :versions => "no_change").
73
+ # returns([200, {}, {}])
74
+ # @command.expects(:say).with("Replacement request successful")
75
+
76
+ # @command.execute()
77
+ # end
78
+
79
+ # should "notify if replacement request fails" do
80
+ # @mock_client.expects(:put).with(EPC::Config::DEPLOYMENTS_PATH + "/2", :stage_name => "no_change", :replaces_id => 1, :versions => "no_change").
81
+ # returns([500, {:message => "System exception"}, {}])
82
+ # @command.expects(:say).with("Replacement request failed: [System exception]")
83
+
84
+ # @command.execute
85
+ # end
86
+ #
87
+
88
+ # end
88
89
 
89
90
  context "create_deployment" do
90
91
  setup do
@@ -125,12 +126,12 @@ class CreateDeploymentCommandTest < Test::Unit::TestCase
125
126
  end
126
127
 
127
128
  should "return blank results when passed blank data" do
128
- assert_equal(@command.send(:parse_projects, []), [[], []])
129
+ assert_equal(@command.send(:parse_projects, []), [[], [], []])
129
130
  end
130
131
 
131
132
 
132
133
  should "parse projects" do
133
- assert_equal(@command.send(:parse_projects, "1:2:3"), [[{:project_id => "1", :version => "2"}], [{:project_id => "1", :instances => "3"}]])
134
+ assert_equal(@command.send(:parse_projects, "1:2:3:4"), [[{:project_id => "1", :version => "2"}], [{:project_id => "1", :instances => "3"}],[{:project_id => "1", :runtime_memory => "4"}]])
134
135
  end
135
136
  end
136
137
  end