epc 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
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