epc 1.0.3 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/epc.rb +25 -5
- data/lib/epc/client/json_client.rb +4 -4
- data/lib/epc/command/archive_command.rb +7 -6
- data/lib/epc/command/attachto_command.rb +13 -0
- data/lib/epc/command/base_command.rb +120 -29
- data/lib/epc/command/config/create_config_command.rb +7 -11
- data/lib/epc/command/config/delete_config_command.rb +5 -5
- data/lib/epc/command/config/list_configs_command.rb +5 -5
- data/lib/epc/command/config/update_config_command.rb +11 -10
- data/lib/epc/command/copy_command.rb +14 -0
- data/lib/epc/command/create_command.rb +9 -5
- data/lib/epc/command/delete_command.rb +9 -9
- data/lib/epc/command/{copy_deployment_command.rb → deployment/copy_deployment_command.rb} +6 -5
- data/lib/epc/command/deployment/create_deployment_command.rb +15 -15
- data/lib/epc/command/deployment/list_deployments_command.rb +2 -4
- data/lib/epc/command/deployment/show_deployment_command.rb +5 -7
- data/lib/epc/command/deployment/submit_deployment_command.rb +15 -0
- data/lib/epc/command/deployment/update_deployment_command.rb +5 -14
- data/lib/epc/command/deployment/vote_deployment_command.rb +23 -0
- data/lib/epc/command/deploymentstage/list_deploymentstages_command.rb +1 -1
- data/lib/epc/command/detachfrom_command.rb +13 -0
- data/lib/epc/command/group/create_group_command.rb +3 -3
- data/lib/epc/command/group/delete_group_command.rb +4 -5
- data/lib/epc/command/group/show_group_command.rb +2 -3
- data/lib/epc/command/group/update_group_command.rb +9 -7
- data/lib/epc/command/library/create_library_command.rb +1 -2
- data/lib/epc/command/library/delete_library_command.rb +4 -5
- data/lib/epc/command/library/list_libraries_command.rb +1 -1
- data/lib/epc/command/librarylanguage/create_librarylanguage_command.rb +1 -1
- data/lib/epc/command/librarylanguage/delete_librarylanguage_command.rb +3 -5
- data/lib/epc/command/librarylanguage/list_librarylanguages_command.rb +1 -1
- data/lib/epc/command/librarylanguage/update_librarylanguage_command.rb +4 -5
- data/lib/epc/command/libraryset/create_libraryset_command.rb +5 -4
- data/lib/epc/command/libraryset/delete_libraryset_command.rb +4 -6
- data/lib/epc/command/libraryset/list_librarysets_command.rb +2 -2
- data/lib/epc/command/libraryset/show_libraryset_command.rb +3 -3
- data/lib/epc/command/libraryset/update_libraryset_command.rb +4 -3
- data/lib/epc/command/list_command.rb +10 -14
- data/lib/epc/command/list_objecttypes_command.rb +1 -1
- data/lib/epc/command/objectrole/create_objectrole_command.rb +4 -5
- data/lib/epc/command/objectrole/list_objectroles_command.rb +3 -8
- data/lib/epc/command/objectrole/update_objectrole_command.rb +3 -1
- data/lib/epc/command/permission/list_permissions_command.rb +1 -1
- data/lib/epc/command/permissiongroup/list_permissiongroups_command.rb +1 -1
- data/lib/epc/command/plugin/create_plugin_command.rb +1 -2
- data/lib/epc/command/plugin/delete_plugin_command.rb +4 -6
- data/lib/epc/command/plugin/list_plugins_command.rb +1 -1
- data/lib/epc/command/plugin/show_plugin_command.rb +2 -5
- data/lib/epc/command/plugin/update_plugin_command.rb +2 -6
- data/lib/epc/command/project/archive_project_command.rb +3 -12
- data/lib/epc/command/project/attachto_project_command.rb +133 -0
- data/lib/epc/command/project/create_project_command.rb +6 -6
- data/lib/epc/command/project/delete_project_command.rb +3 -24
- data/lib/epc/command/project/detachfrom_project_command.rb +66 -0
- data/lib/epc/command/project/list_projects_command.rb +12 -7
- data/lib/epc/command/project/show_project_command.rb +26 -25
- data/lib/epc/command/project/show_project_snapshot_command.rb +41 -0
- data/lib/epc/command/project/unarchive_project_command.rb +3 -10
- data/lib/epc/command/project/update_project_command.rb +5 -18
- data/lib/epc/command/projecttype/create_projecttype_command.rb +37 -0
- data/lib/epc/command/projecttype/delete_projecttype_command.rb +24 -0
- data/lib/epc/command/projecttype/list_projecttypes_command.rb +1 -1
- data/lib/epc/command/projecttype/show_projecttype_command.rb +2 -4
- data/lib/epc/command/projecttype/update_projecttype_command.rb +61 -0
- data/lib/epc/command/push_command.rb +14 -8
- data/lib/epc/command/role/create_role_command.rb +26 -3
- data/lib/epc/command/role/delete_role_command.rb +3 -5
- data/lib/epc/command/role/list_roles_command.rb +7 -3
- data/lib/epc/command/role/show_role_command.rb +8 -5
- data/lib/epc/command/role/update_role_command.rb +14 -66
- data/lib/epc/command/runtime/create_runtime_command.rb +34 -0
- data/lib/epc/command/runtime/delete_runtime_command.rb +24 -0
- data/lib/epc/command/runtime/list_runtimes_command.rb +2 -2
- data/lib/epc/command/runtime/update_runtime_command.rb +49 -0
- data/lib/epc/command/runtimetype/list_runtimetypes_command.rb +17 -0
- data/lib/epc/command/servicedefinition/create_servicedefinition_command.rb +5 -6
- data/lib/epc/command/servicedefinition/delete_servicedefinition_command.rb +18 -0
- data/lib/epc/command/servicedefinition/list_servicedefinitions_command.rb +2 -2
- data/lib/epc/command/servicetype/list_servicetypes_command.rb +1 -1
- data/lib/epc/command/serviceversion/create_serviceversion_command.rb +8 -12
- data/lib/epc/command/serviceversion/delete_serviceversion_command.rb +3 -5
- data/lib/epc/command/serviceversion/list_serviceversions_command.rb +8 -1
- data/lib/epc/command/show_command.rb +8 -9
- data/lib/epc/command/show_metrics_command.rb +3 -3
- data/lib/epc/command/solution/archive_solution_command.rb +3 -10
- data/lib/epc/command/solution/create_solution_command.rb +2 -2
- data/lib/epc/command/solution/delete_solution_command.rb +3 -7
- data/lib/epc/command/solution/list_solutions_command.rb +11 -3
- data/lib/epc/command/solution/show_solution_command.rb +4 -6
- data/lib/epc/command/solution/unarchive_solution_command.rb +3 -8
- data/lib/epc/command/solution/update_solution_command.rb +4 -6
- data/lib/epc/command/submit_command.rb +16 -0
- data/lib/epc/command/unarchive_command.rb +7 -6
- data/lib/epc/command/update_command.rb +9 -8
- data/lib/epc/command/user/create_user_command.rb +2 -3
- data/lib/epc/command/user/delete_user_command.rb +3 -5
- data/lib/epc/command/user/list_users_command.rb +1 -1
- data/lib/epc/command/user/show_user_command.rb +2 -4
- data/lib/epc/command/user/update_user_command.rb +3 -14
- data/lib/epc/command/userproperty/list_user_properties_command.rb +23 -0
- data/lib/epc/command/vote_command.rb +16 -0
- data/lib/epc/config.rb +7 -1
- data/lib/epc/help.rb +51 -48
- data/lib/epc/modules/config.rb +39 -0
- data/lib/epc/modules/role.rb +133 -0
- data/lib/epc/runner.rb +23 -12
- data/lib/epc/version.rb +1 -1
- data/test/command/archive_project_command_test.rb +2 -13
- data/test/command/archive_solution_command_test.rb +4 -14
- data/test/command/copy_deployment_command_test.rb +4 -8
- data/test/command/create_config_command_test.rb +23 -23
- data/test/command/create_deployment_command_test.rb +33 -32
- data/test/command/create_group_command_test.rb +2 -2
- data/test/command/create_library_command_test.rb +6 -6
- data/test/command/create_librarylanguage_command_test.rb +3 -3
- data/test/command/create_libraryset_command_test.rb +6 -26
- data/test/command/create_objectrole_command_test.rb +4 -13
- data/test/command/create_project_command_test.rb +27 -13
- data/test/command/create_role_command_test.rb +3 -2
- data/test/command/create_runtime_command_test.rb +37 -0
- data/test/command/create_servicedefinition_command_test.rb +4 -17
- data/test/command/create_serviceversion_command_test.rb +8 -22
- data/test/command/create_solution_command_test.rb +5 -5
- data/test/command/create_user_command_test.rb +4 -4
- data/test/command/delete_config_command_test.rb +8 -15
- data/test/command/delete_library_command_test.rb +3 -4
- data/test/command/delete_librarylanguage_command_test.rb +3 -4
- data/test/command/delete_libraryset_command_test.rb +3 -4
- data/test/command/delete_plugin_command_test.rb +3 -4
- data/test/command/delete_project_command_test.rb +2 -10
- data/test/command/delete_projecttype_command_test.rb +31 -0
- data/test/command/delete_role_command_test.rb +5 -14
- data/test/command/delete_runtime_command_test.rb +31 -0
- data/test/command/delete_servicedefinition_command_test.rb +31 -0
- data/test/command/delete_serviceversion_command_test.rb +3 -2
- data/test/command/delete_solution_command_test.rb +3 -16
- data/test/command/delete_user_command_test.rb +3 -3
- data/test/command/list_config_command_test.rb +1 -0
- data/test/command/list_deployments_command_test.rb +11 -41
- data/test/command/list_objectroles_command_test.rb +4 -14
- data/test/command/list_projects_command_test.rb +0 -14
- data/test/command/list_roles_command_test.rb +3 -1
- data/test/command/list_runtimes_command_test.rb +2 -3
- data/test/command/list_runtimetypes_command_test.rb +29 -0
- data/test/command/list_userproperties_command_test.rb +33 -0
- data/test/command/push_command_test.rb +9 -1
- data/test/command/show_deployment_command_test.rb +36 -0
- data/test/command/show_group_command_test.rb +2 -1
- data/test/command/show_libraryset_command_test.rb +5 -3
- data/test/command/show_metrics_command_test.rb +4 -4
- data/test/command/show_plugin_command_test.rb +4 -4
- data/test/command/show_project_command_test.rb +5 -17
- data/test/command/show_project_snapshot_test.rb +33 -0
- data/test/command/show_projecttype_command_test.rb +5 -11
- data/test/command/show_role_command_test.rb +5 -12
- data/test/command/show_solution_command_test.rb +2 -15
- data/test/command/show_user_command_test.rb +4 -3
- data/test/command/submit_deployment_command_test.rb +4 -11
- data/test/command/unarchive_project_command_test.rb +2 -14
- data/test/command/unarchive_solution_command_test.rb +6 -16
- data/test/command/update_config_command_test.rb +14 -3
- data/test/command/update_deployment_command_test.rb +12 -26
- data/test/command/update_group_command_test.rb +2 -10
- data/test/command/update_librarylanguage_command_test.rb +5 -3
- data/test/command/update_libraryset_command_test.rb +4 -2
- data/test/command/update_plugin_command_test.rb +5 -4
- data/test/command/update_project_command_test.rb +6 -20
- data/test/command/update_role_command_test.rb +11 -8
- data/test/command/update_solution_command_test.rb +6 -12
- data/test/command/update_user_command_test.rb +3 -19
- data/test/command/vote_deployment_command_test.rb +2 -6
- metadata +66 -63
- data/lib/epc/command/attach_library_command.rb +0 -82
- data/lib/epc/command/attach_libraryset_command.rb +0 -31
- data/lib/epc/command/attach_runtime_command.rb +0 -26
- data/lib/epc/command/bind_service_command.rb +0 -35
- data/lib/epc/command/create_dependency_command.rb +0 -43
- data/lib/epc/command/dependency/delete_dependency_command.rb +0 -38
- data/lib/epc/command/detach_library_command.rb +0 -35
- data/lib/epc/command/detach_libraryset_command.rb +0 -8
- data/lib/epc/command/list_versions_command.rb +0 -38
- data/lib/epc/command/submit_deployment_command.rb +0 -19
- data/lib/epc/command/unbind_service_command.rb +0 -42
- data/lib/epc/command/undefine_service_command.rb +0 -33
- data/lib/epc/command/update_rolepermissions_command.rb +0 -83
- data/lib/epc/command/vote_deployment_command.rb +0 -29
- data/test/command/attach_library_command_test.rb +0 -124
- data/test/command/attach_libraryset_command_test.rb +0 -49
- data/test/command/attach_runtime_command_test.rb +0 -44
- data/test/command/bind_service_command_test.rb +0 -46
- data/test/command/create_dependency_command_test.rb +0 -55
- data/test/command/create_plugin_command_test.rb +0 -44
- data/test/command/delete_dependency_command_test.rb +0 -42
- data/test/command/detach_library_command_test.rb +0 -53
- data/test/command/unbind_service_command_test.rb +0 -48
- data/test/command/undefine_service_command_test.rb +0 -49
data/lib/epc.rb
CHANGED
@@ -25,6 +25,10 @@ module EPC
|
|
25
25
|
end
|
26
26
|
|
27
27
|
module Command
|
28
|
+
autoload(:Role, "#{ROOT}/epc/modules/role")
|
29
|
+
autoload(:Config, "#{ROOT}/epc/modules/config")
|
30
|
+
|
31
|
+
|
28
32
|
autoload(:BaseCommand, "#{ROOT}/epc/command/base_command")
|
29
33
|
autoload(:BuildCommand, "#{ROOT}/epc/command/build_command")
|
30
34
|
autoload(:ListConfigsCommand, "#{ROOT}/epc/command/config/list_configs_command")
|
@@ -48,7 +52,7 @@ module EPC
|
|
48
52
|
autoload(:UnarchiveSolutionCommand, "#{ROOT}/epc/command/solution/unarchive_solution_command")
|
49
53
|
autoload(:ListServicetypesCommand, "#{ROOT}/epc/command/servicetype/list_servicetypes_command")
|
50
54
|
autoload(:CreateServicedefinitionCommand, "#{ROOT}/epc/command/servicedefinition/create_servicedefinition_command")
|
51
|
-
autoload(:
|
55
|
+
autoload(:DeleteServicedefinitionCommand, "#{ROOT}/epc/command/servicedefinition/delete_servicedefinition_command")
|
52
56
|
autoload(:ListServicedefinitionsCommand, "#{ROOT}/epc/command/servicedefinition/list_servicedefinitions_command")
|
53
57
|
autoload(:CreateServiceversionCommand, "#{ROOT}/epc/command/serviceversion/create_serviceversion_command")
|
54
58
|
autoload(:ListServiceversionsCommand, "#{ROOT}/epc/command/serviceversion/list_serviceversions_command")
|
@@ -59,13 +63,13 @@ module EPC
|
|
59
63
|
autoload(:CreateUserCommand, "#{ROOT}/epc/command/user/create_user_command")
|
60
64
|
autoload(:CreateDeploymentCommand, "#{ROOT}/epc/command/deployment/create_deployment_command")
|
61
65
|
autoload(:ShowDeploymentCommand, "#{ROOT}/epc/command/deployment/show_deployment_command")
|
62
|
-
autoload(:SubmitDeploymentCommand, "#{ROOT}/epc/command/submit_deployment_command")
|
63
|
-
autoload(:VoteDeploymentCommand, "#{ROOT}/epc/command/vote_deployment_command")
|
66
|
+
autoload(:SubmitDeploymentCommand, "#{ROOT}/epc/command/deployment/submit_deployment_command")
|
67
|
+
autoload(:VoteDeploymentCommand, "#{ROOT}/epc/command/deployment/vote_deployment_command")
|
64
68
|
autoload(:ListDeploymentsCommand, "#{ROOT}/epc/command/deployment/list_deployments_command")
|
65
69
|
autoload(:ListDeploymentstagesCommand, "#{ROOT}/epc/command/deploymentstage/list_deploymentstages_command")
|
66
70
|
autoload(:DeployCommand, "#{ROOT}/epc/command/deploy_command")
|
67
71
|
autoload(:UndeployCommand, "#{ROOT}/epc/command/undeploy_command")
|
68
|
-
autoload(:CopyDeploymentCommand, "#{ROOT}/epc/command/copy_deployment_command")
|
72
|
+
autoload(:CopyDeploymentCommand, "#{ROOT}/epc/command/deployment/copy_deployment_command")
|
69
73
|
autoload(:ListApprovalsCommand, "#{ROOT}/epc/command/list_approvals_command")
|
70
74
|
autoload(:CreateDependencyCommand, "#{ROOT}/epc/command/create_dependency_command")
|
71
75
|
autoload(:ListDependenciesCommand, "#{ROOT}/epc/command/list_dependencies_command")
|
@@ -85,7 +89,6 @@ module EPC
|
|
85
89
|
autoload(:ShowProjecttypeCommand, "#{ROOT}/epc/command/projecttype/show_projecttype_command")
|
86
90
|
autoload(:UpdateDeploymentCommand, "#{ROOT}/epc/command/deployment/update_deployment_command")
|
87
91
|
autoload(:InfoCommand, "#{ROOT}/epc/command/info_command")
|
88
|
-
autoload(:ListVersionsCommand, "#{ROOT}/epc/command/list_versions_command")
|
89
92
|
autoload(:ArchiveProjectCommand, "#{ROOT}/epc/command/project/archive_project_command")
|
90
93
|
autoload(:UnarchiveProjectCommand, "#{ROOT}/epc/command/project/unarchive_project_command")
|
91
94
|
autoload(:ListAttachedlibrariesCommand, "#{ROOT}/epc/command/list_attachedlibraries_command")
|
@@ -130,14 +133,31 @@ module EPC
|
|
130
133
|
autoload(:ShowPluginCommand, "#{ROOT}/epc/command/plugin/show_plugin_command")
|
131
134
|
autoload(:UpdatePluginCommand, "#{ROOT}/epc/command/plugin/update_plugin_command")
|
132
135
|
autoload(:DeletePluginCommand, "#{ROOT}/epc/command/plugin/delete_plugin_command")
|
136
|
+
autoload(:AttachtoProjectCommand, "#{ROOT}/epc/command/project/attachto_project_command")
|
137
|
+
autoload(:DetachfromProjectCommand, "#{ROOT}/epc/command/project/detachfrom_project_command")
|
138
|
+
autoload(:ListRuntimetypesCommand, "#{ROOT}/epc/command/runtimetype/list_runtimetypes_command")
|
139
|
+
autoload(:CreateRuntimeCommand, "#{ROOT}/epc/command/runtime/create_runtime_command")
|
140
|
+
autoload(:DeleteRuntimeCommand, "#{ROOT}/epc/command/runtime/delete_runtime_command")
|
141
|
+
autoload(:UpdateRuntimeCommand, "#{ROOT}/epc/command/runtime/update_runtime_command")
|
142
|
+
autoload(:CreateProjecttypeCommand, "#{ROOT}/epc/command/projecttype/create_projecttype_command")
|
143
|
+
autoload(:DeleteProjecttypeCommand, "#{ROOT}/epc/command/projecttype/delete_projecttype_command")
|
144
|
+
autoload(:UpdateProjecttypeCommand, "#{ROOT}/epc/command/projecttype/update_projecttype_command")
|
145
|
+
autoload(:ShowProjectSnapshotCommand, "#{ROOT}/epc/command/project/show_project_snapshot_command")
|
146
|
+
autoload(:ListUserpropertiesCommand, "#{ROOT}/epc/command/userproperty/list_user_properties_command")
|
133
147
|
|
134
148
|
|
135
149
|
autoload(:CreateCommand, "#{ROOT}/epc/command/create_command")
|
136
150
|
autoload(:ListCommand, "#{ROOT}/epc/command/list_command")
|
137
151
|
autoload(:ShowCommand, "#{ROOT}/epc/command/show_command")
|
152
|
+
autoload(:AttachtoCommand, "#{ROOT}/epc/command/attachto_command")
|
138
153
|
autoload(:UpdateCommand, "#{ROOT}/epc/command/update_command")
|
139
154
|
autoload(:DeleteCommand, "#{ROOT}/epc/command/delete_command")
|
140
155
|
autoload(:ArchiveCommand, "#{ROOT}/epc/command/archive_command")
|
141
156
|
autoload(:UnarchiveCommand, "#{ROOT}/epc/command/unarchive_command")
|
157
|
+
autoload(:AttachtoCommand, "#{ROOT}/epc/command/attachto_command")
|
158
|
+
autoload(:DetachfromCommand, "#{ROOT}/epc/command/detachfrom_command")
|
159
|
+
autoload(:CopyCommand, "#{ROOT}/epc/command/copy_command")
|
160
|
+
autoload(:VoteCommand, "#{ROOT}/epc/command/vote_command")
|
161
|
+
autoload(:SubmitCommand, "#{ROOT}/epc/command/submit_command")
|
142
162
|
end
|
143
163
|
end
|
@@ -8,7 +8,7 @@ module EPC::Client
|
|
8
8
|
status, body, headers = super(url, 'application/json', skip_signature)
|
9
9
|
[status, json_parse(body), headers]
|
10
10
|
rescue JSON::ParserError
|
11
|
-
raise BadResponse, "
|
11
|
+
raise BadResponse, "Invalid response received. Response status: #{status}", body
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
@@ -17,7 +17,7 @@ module EPC::Client
|
|
17
17
|
status, body, headers = super(url, payload.to_json, 'application/json', {}, skip_signature)
|
18
18
|
[status, json_parse(body), headers]
|
19
19
|
rescue JSON::ParserError
|
20
|
-
raise BadResponse, "
|
20
|
+
raise BadResponse, "Invalid response received. Response status: #{status}", body
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
@@ -26,7 +26,7 @@ module EPC::Client
|
|
26
26
|
status, body, headers = super(url, payload.to_json, 'application/json')
|
27
27
|
[status, json_parse(body), headers]
|
28
28
|
rescue JSON::ParserError
|
29
|
-
raise BadResponse, "
|
29
|
+
raise BadResponse, "Invalid response received. Response status: #{status}", body
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
@@ -35,7 +35,7 @@ module EPC::Client
|
|
35
35
|
status, body, headers = super(url, payload.to_json, 'application/json')
|
36
36
|
[status, json_parse(body), headers]
|
37
37
|
rescue JSON::ParserError
|
38
|
-
raise BadResponse, "
|
38
|
+
raise BadResponse, "Invalid response received. Response status: #{status}", body
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
@@ -1,12 +1,13 @@
|
|
1
1
|
module EPC::Command
|
2
2
|
class ArchiveCommand < BaseCommand
|
3
3
|
|
4
|
-
def execute(
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
command = eval(
|
9
|
-
command.
|
4
|
+
def execute(*args)
|
5
|
+
raise FatalError, "You need to specify the object for the command" if args.blank?
|
6
|
+
params = resolve_context(args)
|
7
|
+
@klass_name = "EPC::Command::Archive#{@object_type.to_s.gsub("-","").capitalize}Command"
|
8
|
+
command = eval(@klass_name).new(client, @options)
|
9
|
+
command.context_params = context_params
|
10
|
+
command.go(params)
|
10
11
|
end
|
11
12
|
end
|
12
13
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module EPC::Command
|
2
|
+
class AttachtoCommand < BaseCommand
|
3
|
+
|
4
|
+
def execute(*args)
|
5
|
+
raise FatalError, "You need to specify the object for the command" if args.blank?
|
6
|
+
params = resolve_context(args)
|
7
|
+
@klass_name = "EPC::Command::Attachto#{@object_type.to_s.gsub("-","").capitalize}Command"
|
8
|
+
command = eval(@klass_name).new(client, @options)
|
9
|
+
command.context_params = context_params
|
10
|
+
command.execute(params)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -11,6 +11,12 @@ module EPC
|
|
11
11
|
attr_reader :client
|
12
12
|
attr_reader :options
|
13
13
|
|
14
|
+
attr_accessor :object_type
|
15
|
+
attr_accessor :object_id
|
16
|
+
attr_accessor :target_type
|
17
|
+
attr_accessor :target_id
|
18
|
+
attr_accessor :klass_name
|
19
|
+
|
14
20
|
@@retrieval_rules = {
|
15
21
|
:Role => {
|
16
22
|
:required_type => :numeric,
|
@@ -47,6 +53,13 @@ module EPC
|
|
47
53
|
@@required_options << {:name => opts, :mode => options_hash[:mode], :message => options_hash[:message]}
|
48
54
|
end
|
49
55
|
|
56
|
+
def self.include_module(object_type)
|
57
|
+
mod = object_type.capitalize
|
58
|
+
if EPC::Config.module_exists?(mod)
|
59
|
+
self.send :include, eval("EPC::Command::#{mod}")
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
50
63
|
def initialize(client, options = {})
|
51
64
|
@client = client
|
52
65
|
@options = options.dup
|
@@ -60,10 +73,26 @@ module EPC
|
|
60
73
|
say("You must be logged in to run this command")
|
61
74
|
return 1
|
62
75
|
else
|
76
|
+
check_options
|
63
77
|
return translate_status_to_exit_code(execute(*args))
|
64
78
|
end
|
65
79
|
end
|
66
80
|
|
81
|
+
def check_options
|
82
|
+
@@required_options.each do |req_opt|
|
83
|
+
raise FatalError, req_opt[:message] unless req_opt[:name].map{|opt| @options[opt].present?}.send(req_opt[:mode])
|
84
|
+
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
def context_params
|
89
|
+
return [object_type, object_id, target_type, target_id]
|
90
|
+
end
|
91
|
+
|
92
|
+
def context_params=(params)
|
93
|
+
@object_type, @object_id, @target_type, @target_id = params
|
94
|
+
end
|
95
|
+
|
67
96
|
private
|
68
97
|
|
69
98
|
def translate_status_to_exit_code(status)
|
@@ -102,11 +131,90 @@ module EPC
|
|
102
131
|
value.respond_to?(:empty?) ? value.empty? : !value
|
103
132
|
end
|
104
133
|
|
134
|
+
def pluralize(string)
|
135
|
+
case string.downcase
|
136
|
+
when "library" then return "libraries"
|
137
|
+
when "dependency" then return "dependencies"
|
138
|
+
end
|
139
|
+
return string + "s"
|
140
|
+
end
|
141
|
+
|
105
142
|
def check_params
|
106
143
|
return if ["solution", "project"].include?(@object_type.downcase)
|
107
144
|
raise FatalError, "You need to specify the #{@object_type.downcase} identifier" if @object_id.blank?
|
108
145
|
end
|
109
146
|
|
147
|
+
def has_target?
|
148
|
+
return target_type.present? && target_id.present?
|
149
|
+
end
|
150
|
+
|
151
|
+
def require_object
|
152
|
+
raise InputError, "#{object_type.capitalize} not found" if object_type.blank? || object_id.blank?
|
153
|
+
end
|
154
|
+
|
155
|
+
def require_target
|
156
|
+
raise InputError, "Target incorrectly specified" if target_type.blank? || target_id.blank?
|
157
|
+
end
|
158
|
+
|
159
|
+
def resolve_context(args, opts = {})
|
160
|
+
defaults = {
|
161
|
+
:skip_object_resolution => Proc.new{|type, id| false},
|
162
|
+
:skip_target_resolution => Proc.new{|type, id| false}
|
163
|
+
}.merge!(opts)
|
164
|
+
@object_id, @object_type, args = parse_context_param(args, defaults[:skip_object_resolution])
|
165
|
+
raise InputError, "Invalid command" if @object_type.blank?
|
166
|
+
@target_id, @target_type, args = parse_context_param(args, defaults[:skip_target_resolution])
|
167
|
+
return args
|
168
|
+
end
|
169
|
+
|
170
|
+
def parse_context_param(params, skip_proc)
|
171
|
+
return [nil, nil, params] unless is_context_param?((params.first rescue nil))
|
172
|
+
param = params.shift
|
173
|
+
param_parts = param.split(":")
|
174
|
+
type = param_parts[0]
|
175
|
+
id = param_parts[1..-1].join(":")
|
176
|
+
if skip_proc.call(type, id)
|
177
|
+
return id, type, params
|
178
|
+
else
|
179
|
+
if has_local_context?(type)
|
180
|
+
return infer_local_context(type, id).insert(-1, params)
|
181
|
+
else
|
182
|
+
return [retrieve_identifier_for(translate_type(type), id), type, params]
|
183
|
+
end
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
def translate_type(type)
|
188
|
+
return "UserGroup" if type.downcase == "group"
|
189
|
+
return "RuntimeEnv" if type.downcase == "runtime"
|
190
|
+
return "RuntimeEnvType" if type.downcase == "runtimetype"
|
191
|
+
return "Project" if type.downcase == "dependency"
|
192
|
+
return type
|
193
|
+
end
|
194
|
+
|
195
|
+
def has_local_context?(type)
|
196
|
+
return ["solution", "project"].include?(type.downcase)
|
197
|
+
end
|
198
|
+
|
199
|
+
def infer_local_context(type, id)
|
200
|
+
path = File.expand_path(".")
|
201
|
+
if type.downcase == "solution"
|
202
|
+
solution_id, solution_name = infer_solution_context(id, path)
|
203
|
+
return [solution_id, type]
|
204
|
+
elsif type.downcase == "project"
|
205
|
+
ids = id.split(":") rescue [nil, nil]
|
206
|
+
if ids.size == 1
|
207
|
+
project_name = ids[0]
|
208
|
+
solution_name = nil
|
209
|
+
elsif ids.size == 2
|
210
|
+
solution_name, project_name = ids
|
211
|
+
end
|
212
|
+
solution_id, solution_name = infer_solution_context(solution_name, path)
|
213
|
+
project_id, project_name = infer_project_context(project_name, path, solution_id)
|
214
|
+
return [project_id, type]
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
110
218
|
def numeric?(value)
|
111
219
|
return value.is_a?(Integer) || (value =~ /\d/) == 0
|
112
220
|
end
|
@@ -157,18 +265,14 @@ module EPC
|
|
157
265
|
return File.join(File.split(path)[0...-1])
|
158
266
|
end
|
159
267
|
|
160
|
-
def
|
161
|
-
return
|
162
|
-
return params.insert(0, "")
|
163
|
-
end
|
164
|
-
|
165
|
-
def is_target_param?(param)
|
268
|
+
def is_context_param?(param)
|
269
|
+
return false if param.blank?
|
166
270
|
target_type = param.split(":").first rescue ""
|
167
|
-
return object_types.include?(target_type.downcase)
|
271
|
+
return object_types.include?(target_type.downcase) || object_types.map{|o| pluralize(o)}.include?(target_type.downcase)
|
168
272
|
end
|
169
273
|
|
170
274
|
def object_types
|
171
|
-
return %
|
275
|
+
return %w(
|
172
276
|
config
|
173
277
|
dependency
|
174
278
|
deployment
|
@@ -178,7 +282,10 @@ module EPC
|
|
178
282
|
librarylanguage
|
179
283
|
libraryset
|
180
284
|
objectrole
|
285
|
+
objecttype
|
181
286
|
permission
|
287
|
+
runtime
|
288
|
+
runtimetype
|
182
289
|
permissiongroup
|
183
290
|
plugin
|
184
291
|
project
|
@@ -190,6 +297,8 @@ module EPC
|
|
190
297
|
serviceversion
|
191
298
|
solution
|
192
299
|
user
|
300
|
+
metrics
|
301
|
+
user-properties
|
193
302
|
)
|
194
303
|
|
195
304
|
end
|
@@ -197,7 +306,7 @@ module EPC
|
|
197
306
|
def retrieve_identifier_for(entity, *args)
|
198
307
|
entity = entity.to_sym
|
199
308
|
match_value = args.join(":")
|
200
|
-
|
309
|
+
return nil if match_value.blank?
|
201
310
|
rule = @@retrieval_rules[entity.to_sym] || {:required_type => :numeric}
|
202
311
|
if rule[:required_type] == :numeric
|
203
312
|
if numeric?(match_value)
|
@@ -206,18 +315,16 @@ module EPC
|
|
206
315
|
return identify_resource(entity, match_value)
|
207
316
|
end
|
208
317
|
end
|
209
|
-
|
210
|
-
raise InputError, "Request failed: [Resource Not Found]" if entity_identifier.nil?
|
211
318
|
return entity_identifier
|
212
319
|
end
|
213
320
|
|
214
321
|
def identify_resource(object_type, object_identifier)
|
215
|
-
obj_identifier = CGI.escape(object_identifier).gsub(".", "%2e")
|
322
|
+
obj_identifier = CGI.escape(object_identifier).gsub(".", "%2e").gsub("+", "%20")
|
216
323
|
status, response, headers = client.get(EPC::Config::OBJECT_TYPES_PATH + "/identify/#{object_type}/#{obj_identifier}")
|
217
324
|
if status.successful?
|
218
325
|
return response[:id]
|
219
326
|
else
|
220
|
-
|
327
|
+
return nil
|
221
328
|
end
|
222
329
|
end
|
223
330
|
|
@@ -269,7 +376,6 @@ module EPC
|
|
269
376
|
# :get_project_name : for when you have a numeric project_id, but you also want the name
|
270
377
|
def infer_project_context(p_identifier, path, s_identifier = nil, options = {})
|
271
378
|
if p_identifier.blank?
|
272
|
-
|
273
379
|
if EPC::Config.is_project_dir?(path)
|
274
380
|
project_id = EPC::Config.get_project_value(path, "id")
|
275
381
|
project_name = EPC::Config.get_project_value(path, "name")
|
@@ -372,21 +478,6 @@ module EPC
|
|
372
478
|
digest.hexdigest
|
373
479
|
end
|
374
480
|
|
375
|
-
def extract_configuration_level(path, target_string)
|
376
|
-
config_type, config_id = target_string.split(":") rescue [nil, nil]
|
377
|
-
|
378
|
-
if config_id.nil?
|
379
|
-
if EPC::Config.is_project_dir?(path)
|
380
|
-
config_id = EPC::Config.get_project_value(path, "id")
|
381
|
-
config_type = "Project"
|
382
|
-
elsif EPC::Config.is_solution_dir?(path)
|
383
|
-
config_id = EPC::Config.get_solution_value(path, "id")
|
384
|
-
config_type = "Solution"
|
385
|
-
end
|
386
|
-
end
|
387
|
-
|
388
|
-
return [config_type, config_id]
|
389
|
-
end
|
390
481
|
|
391
482
|
def show_build_status(build_id)
|
392
483
|
status, response, headers = client.get("#{EPC::Config::BUILDS_PATH}/#{build_id}/status")
|
@@ -2,14 +2,14 @@ module EPC::Command
|
|
2
2
|
class CreateConfigCommand < BaseCommand
|
3
3
|
CONFIG_LEVELS = {
|
4
4
|
:org => "Organization",
|
5
|
-
:runtime => "
|
5
|
+
:runtime => "RuntimeEnv",
|
6
6
|
:stage => "DeploymentStage",
|
7
7
|
:solution => "Solution",
|
8
8
|
:project => "Project",
|
9
9
|
:user => "User"
|
10
10
|
}
|
11
11
|
|
12
|
-
def execute(
|
12
|
+
def execute(args = [])
|
13
13
|
raise FatalError, "You have to specify a key and its value." if args.empty? && @options[:file].nil?
|
14
14
|
|
15
15
|
path = File.expand_path(".")
|
@@ -17,19 +17,15 @@ module EPC::Command
|
|
17
17
|
@options[:value_type] = "text" if @options[:value_type].nil?
|
18
18
|
@options[:required] = false if @options[:required].nil?
|
19
19
|
|
20
|
-
config_type, config_id = extract_configuration_level(path,
|
20
|
+
config_type, config_id = extract_configuration_level(path, [target_type, target_id])
|
21
21
|
|
22
|
-
raise
|
22
|
+
raise InputError, "Config type invalid. Must be one of: [#{CONFIG_LEVELS.values.join(",")}]" if config_type.blank?
|
23
|
+
|
24
|
+
raise InputError, "Configuration context could not be determined" if config_id.blank?
|
23
25
|
|
24
26
|
params = []
|
25
27
|
if @options[:file].present?
|
26
|
-
params =
|
27
|
-
params.each do |param|
|
28
|
-
if param[:configurable_type].nil? || param[:configurable_id].nil?
|
29
|
-
param[:configurable_type] = config_type
|
30
|
-
param[:configurable_id] = config_id
|
31
|
-
end
|
32
|
-
end
|
28
|
+
params = parse_config_value_file(@options[:file], config_type, config_id)
|
33
29
|
else
|
34
30
|
args.each do |arg|
|
35
31
|
name, value = arg.split("=")
|
@@ -1,16 +1,17 @@
|
|
1
1
|
module EPC::Command
|
2
2
|
class DeleteConfigCommand < DeleteCommand
|
3
3
|
|
4
|
-
def execute(
|
4
|
+
def execute(args = [])
|
5
5
|
|
6
6
|
path = "."
|
7
7
|
path = File.expand_path(path)
|
8
|
+
key = object_id
|
8
9
|
|
9
|
-
config_type, config_id = extract_configuration_level(path,
|
10
|
+
config_type, config_id = extract_configuration_level(path, [target_type, target_id])
|
10
11
|
request_path = EPC::Config::CONFIGURATIONS_PATH+"/#{config_type}/#{config_id}"
|
11
12
|
|
12
|
-
if ["solution", "project"].include?(config_type.downcase) && !@options[:
|
13
|
-
request_path += "/#{@options[:
|
13
|
+
if ["solution", "project"].include?(config_type.downcase) && !@options[:stage].nil?
|
14
|
+
request_path += "/#{@options[:stage]}"
|
14
15
|
end
|
15
16
|
|
16
17
|
status, response, headers = client.get(request_path)
|
@@ -50,7 +51,6 @@ module EPC::Command
|
|
50
51
|
end
|
51
52
|
return status
|
52
53
|
|
53
|
-
|
54
54
|
end
|
55
55
|
|
56
56
|
end
|