epc 1.0.2 → 1.0.3

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 (152) hide show
  1. data/lib/epc.rb +71 -54
  2. data/lib/epc/command/archive_command.rb +12 -0
  3. data/lib/epc/command/attach_libraryset_command.rb +1 -2
  4. data/lib/epc/command/attach_runtime_command.rb +0 -1
  5. data/lib/epc/command/base_command.rb +52 -63
  6. data/lib/epc/command/config/delete_config_command.rb +57 -0
  7. data/lib/epc/command/{list_config_command.rb → config/list_configs_command.rb} +1 -1
  8. data/lib/epc/command/config/update_config_command.rb +56 -0
  9. data/lib/epc/command/create_command.rb +0 -1
  10. data/lib/epc/command/delete_command.rb +16 -0
  11. data/lib/epc/command/{delete_dependency_command.rb → dependency/delete_dependency_command.rb} +14 -16
  12. data/lib/epc/command/deploy_command.rb +1 -2
  13. data/lib/epc/command/deployment/list_deployments_command.rb +49 -0
  14. data/lib/epc/command/deployment/show_deployment_command.rb +61 -0
  15. data/lib/epc/command/{update_deploymentproject_command.rb → deployment/update_deployment_command.rb} +3 -3
  16. data/lib/epc/command/{list_stages_command.rb → deploymentstage/list_deploymentstages_command.rb} +1 -1
  17. data/lib/epc/command/group/delete_group_command.rb +25 -0
  18. data/lib/epc/command/{list_groups_command.rb → group/list_groups_command.rb} +1 -1
  19. data/lib/epc/command/{show_group_command.rb → group/show_group_command.rb} +2 -9
  20. data/lib/epc/command/{update_group_command.rb → group/update_group_command.rb} +3 -20
  21. data/lib/epc/command/library/create_library_command.rb +2 -5
  22. data/lib/epc/command/library/delete_library_command.rb +23 -0
  23. data/lib/epc/command/{list_libraries_command.rb → library/list_libraries_command.rb} +1 -1
  24. data/lib/epc/command/librarylanguage/delete_librarylanguage_command.rb +24 -0
  25. data/lib/epc/command/{list_librarylanguages_command.rb → librarylanguage/list_librarylanguages_command.rb} +1 -1
  26. data/lib/epc/command/{update_librarylanguage_command.rb → librarylanguage/update_librarylanguage_command.rb} +6 -10
  27. data/lib/epc/command/libraryset/create_libraryset_command.rb +1 -6
  28. data/lib/epc/command/{delete_libraryset_command.rb → libraryset/delete_libraryset_command.rb} +2 -18
  29. data/lib/epc/command/{list_librarysets_command.rb → libraryset/list_librarysets_command.rb} +1 -1
  30. data/lib/epc/command/{show_libraryset_command.rb → libraryset/show_libraryset_command.rb} +2 -17
  31. data/lib/epc/command/{update_libraryset_command.rb → libraryset/update_libraryset_command.rb} +4 -16
  32. data/lib/epc/command/list_command.rb +22 -0
  33. data/lib/epc/command/list_metrics_command.rb +25 -0
  34. data/lib/epc/command/list_objecttypes_command.rb +2 -4
  35. data/lib/epc/command/list_versions_command.rb +0 -1
  36. data/lib/epc/command/{list_objectroles_command.rb → objectrole/list_objectroles_command.rb} +3 -3
  37. data/lib/epc/command/objectrole/update_objectrole_command.rb +14 -0
  38. data/lib/epc/command/{list_rolepermissions_command.rb → permission/list_permissions_command.rb} +2 -2
  39. data/lib/epc/command/{list_permissiongroups_command.rb → permissiongroup/list_permissiongroups_command.rb} +1 -1
  40. data/lib/epc/command/plugin/create_plugin_command.rb +42 -0
  41. data/lib/epc/command/plugin/delete_plugin_command.rb +26 -0
  42. data/lib/epc/command/plugin/list_plugins_command.rb +19 -0
  43. data/lib/epc/command/plugin/show_plugin_command.rb +29 -0
  44. data/lib/epc/command/plugin/update_plugin_command.rb +53 -0
  45. data/lib/epc/command/{archive_project_command.rb → project/archive_project_command.rb} +4 -3
  46. data/lib/epc/command/{delete_project_command.rb → project/delete_project_command.rb} +11 -7
  47. data/lib/epc/command/{list_projects_command.rb → project/list_projects_command.rb} +8 -9
  48. data/lib/epc/command/{show_project_command.rb → project/show_project_command.rb} +64 -29
  49. data/lib/epc/command/{unarchive_project_command.rb → project/unarchive_project_command.rb} +5 -4
  50. data/lib/epc/command/{update_project_command.rb → project/update_project_command.rb} +11 -5
  51. data/lib/epc/command/{list_projecttypes_command.rb → projecttype/list_projecttypes_command.rb} +1 -1
  52. data/lib/epc/command/{show_projecttype_command.rb → projecttype/show_projecttype_command.rb} +4 -3
  53. data/lib/epc/command/pull_command.rb +33 -35
  54. data/lib/epc/command/{delete_role_command.rb → role/delete_role_command.rb} +3 -4
  55. data/lib/epc/command/{list_roles_command.rb → role/list_roles_command.rb} +4 -3
  56. data/lib/epc/command/{show_role_command.rb → role/show_role_command.rb} +18 -10
  57. data/lib/epc/command/role/update_role_command.rb +95 -0
  58. data/lib/epc/command/{list_runtimes_command.rb → runtime/list_runtimes_command.rb} +0 -0
  59. data/lib/epc/command/servicedefinition/create_servicedefinition_command.rb +23 -0
  60. data/lib/epc/command/{list_servicedefinitions_command.rb → servicedefinition/list_servicedefinitions_command.rb} +1 -0
  61. data/lib/epc/command/{list_service_types_command.rb → servicetype/list_servicetypes_command.rb} +0 -0
  62. data/lib/epc/command/serviceversion/delete_serviceversion_command.rb +24 -0
  63. data/lib/epc/command/{list_serviceversions_command.rb → serviceversion/list_serviceversions_command.rb} +1 -1
  64. data/lib/epc/command/show_command.rb +27 -0
  65. data/lib/epc/command/show_instances_command.rb +33 -0
  66. data/lib/epc/command/show_metrics_command.rb +55 -0
  67. data/lib/epc/command/{archive_solution_command.rb → solution/archive_solution_command.rb} +2 -1
  68. data/lib/epc/command/solution/create_solution_command.rb +0 -1
  69. data/lib/epc/command/{delete_solution_command.rb → solution/delete_solution_command.rb} +5 -10
  70. data/lib/epc/command/solution/list_solutions_command.rb +1 -1
  71. data/lib/epc/command/{show_solution_command.rb → solution/show_solution_command.rb} +12 -7
  72. data/lib/epc/command/{unarchive_solution_command.rb → solution/unarchive_solution_command.rb} +1 -1
  73. data/lib/epc/command/solution/update_solution_command.rb +2 -1
  74. data/lib/epc/command/unarchive_command.rb +12 -0
  75. data/lib/epc/command/update_command.rb +15 -0
  76. data/lib/epc/command/update_rolepermissions_command.rb +2 -2
  77. data/lib/epc/command/{delete_user_command.rb → user/delete_user_command.rb} +4 -12
  78. data/lib/epc/command/{list_users_command.rb → user/list_users_command.rb} +1 -1
  79. data/lib/epc/command/{show_user_command.rb → user/show_user_command.rb} +3 -17
  80. data/lib/epc/command/{update_user_command.rb → user/update_user_command.rb} +2 -4
  81. data/lib/epc/config.rb +4 -1
  82. data/lib/epc/help.rb +50 -35
  83. data/lib/epc/runner.rb +16 -5
  84. data/lib/epc/version.rb +1 -1
  85. data/lib/epc/vertical_bar.rb +40 -0
  86. data/test/command/create_library_command_test.rb +5 -2
  87. data/test/command/create_libraryset_command_test.rb +1 -1
  88. data/test/command/create_plugin_command_test.rb +44 -0
  89. data/test/command/create_servicedefinition_command_test.rb +43 -0
  90. data/test/command/delete_config_command_test.rb +0 -11
  91. data/test/command/delete_dependency_command_test.rb +3 -11
  92. data/test/command/delete_library_command_test.rb +2 -15
  93. data/test/command/delete_librarylanguage_command_test.rb +2 -24
  94. data/test/command/delete_libraryset_command_test.rb +2 -24
  95. data/test/command/delete_plugin_command_test.rb +32 -0
  96. data/test/command/delete_project_command_test.rb +0 -6
  97. data/test/command/delete_role_command_test.rb +1 -1
  98. data/test/command/delete_serviceversion_command_test.rb +0 -22
  99. data/test/command/delete_solution_command_test.rb +4 -4
  100. data/test/command/delete_user_command_test.rb +2 -24
  101. data/test/command/list_config_command_test.rb +3 -3
  102. data/test/command/list_deployments_command_test.rb +17 -20
  103. data/test/command/list_deploymentstages_command_test.rb +2 -2
  104. data/test/command/list_metrics_command_test.rb +40 -0
  105. data/test/command/{list_rolepermissions_command_test.rb → list_permissions_command_test.rb} +2 -2
  106. data/test/command/list_plugins_command_test.rb +27 -0
  107. data/test/command/list_projects_command_test.rb +3 -5
  108. data/test/command/list_roles_command_test.rb +2 -3
  109. data/test/command/pull_command_test.rb +13 -9
  110. data/test/command/show_group_command_test.rb +1 -23
  111. data/test/command/show_instances_command_test.rb +33 -0
  112. data/test/command/show_libraryset_command_test.rb +0 -11
  113. data/test/command/show_metrics_command_test.rb +51 -0
  114. data/test/command/show_plugin_command_test.rb +28 -0
  115. data/test/command/show_project_command_test.rb +1 -1
  116. data/test/command/show_projecttype_command_test.rb +0 -5
  117. data/test/command/show_role_command_test.rb +1 -1
  118. data/test/command/show_solution_command_test.rb +1 -1
  119. data/test/command/show_user_command_test.rb +2 -22
  120. data/test/command/update_config_command_test.rb +3 -9
  121. data/test/command/{update_deploymentproject_command_test.rb → update_deployment_command_test.rb} +6 -11
  122. data/test/command/update_group_command_test.rb +1 -20
  123. data/test/command/update_librarylanguage_command_test.rb +0 -15
  124. data/test/command/update_libraryset_command_test.rb +0 -13
  125. data/test/command/update_plugin_command_test.rb +41 -0
  126. data/test/command/update_project_command_test.rb +3 -3
  127. data/test/command/update_role_command_test.rb +2 -1
  128. data/test/command/update_solution_command_test.rb +3 -9
  129. data/test/command/update_user_command_test.rb +0 -6
  130. metadata +177 -165
  131. data/lib/epc/command/define_service_command.rb +0 -37
  132. data/lib/epc/command/delete_config_command.rb +0 -63
  133. data/lib/epc/command/delete_group_command.rb +0 -40
  134. data/lib/epc/command/delete_library_command.rb +0 -30
  135. data/lib/epc/command/delete_librarylanguage_command.rb +0 -40
  136. data/lib/epc/command/delete_serviceversion_command.rb +0 -52
  137. data/lib/epc/command/list_approvals_command.rb +0 -27
  138. data/lib/epc/command/list_attachedlibraries_command.rb +0 -42
  139. data/lib/epc/command/list_boundservices_command.rb +0 -40
  140. data/lib/epc/command/list_dependencies_command.rb +0 -43
  141. data/lib/epc/command/list_deployments_command.rb +0 -68
  142. data/lib/epc/command/list_solutions_command.rb +0 -25
  143. data/lib/epc/command/show_deployment_command.rb +0 -57
  144. data/lib/epc/command/update_config_command.rb +0 -62
  145. data/lib/epc/command/update_role_command.rb +0 -47
  146. data/lib/epc/command/update_solution_command.rb +0 -45
  147. data/test/command/define_service_command_test.rb +0 -55
  148. data/test/command/delete_group_command_test.rb +0 -56
  149. data/test/command/list_approvals_command_test.rb +0 -41
  150. data/test/command/list_boundservices_command_test.rb +0 -46
  151. data/test/command/list_dependencies_command_test.rb +0 -46
  152. data/test/command/update_rolepermissions_command_test.rb +0 -54
@@ -1,10 +1,11 @@
1
1
  module EPC::Command
2
- class ArchiveProjectCommand < BaseCommand
3
- def execute(project_name = nil)
2
+ class ArchiveProjectCommand < ArchiveCommand
3
+
4
+ def execute(project = nil)
4
5
  path = "."
5
6
  path = File.expand_path(path)
6
7
 
7
- solution_name = @options[:solution_name]
8
+ solution_name, project_name = project.split(":") rescue [nil, nil]
8
9
 
9
10
  solution_id, solution_name = infer_solution_context(solution_name, path, {:get_solution_name => true})
10
11
  project_id, project_name = infer_project_context(project_name, path, solution_id, {:get_project_name => true})
@@ -1,19 +1,23 @@
1
1
  module EPC::Command
2
2
  class DeleteProjectCommand < BaseCommand
3
- def execute(project_name = nil)
3
+ def execute(project = nil, target = nil)
4
4
  path = "."
5
5
  path = File.expand_path(path)
6
6
 
7
- solution_name = @options[:solution_name]
7
+ ids = project.split(":") rescue [nil, nil]
8
+
9
+ if ids.size == 1
10
+ project_name = ids[0]
11
+ solution_name = nil
12
+ elsif ids.size == 2
13
+ solution_name, project_name = ids
14
+ end
8
15
 
9
16
  solution_id, solution_name = infer_solution_context(solution_name, path, :get_solution_name => true)
10
17
  project_id, project_name = infer_project_context(project_name, path, solution_id, {:get_project_name => true})
11
18
 
12
- if project_id.nil?
13
- say("Project name could not be inferred")
14
- say(EPC::Help::COMMAND_USAGES[:delete_project])
15
- return 1
16
- end
19
+
20
+ raise FatalError, "Project name could not be inferred" if project_id.nil?
17
21
 
18
22
  question = "You are deleting the project [#{project_id}"
19
23
  if project_name.nil?
@@ -1,21 +1,20 @@
1
1
  module EPC::Command
2
2
  class ListProjectsCommand < BaseCommand
3
3
 
4
- def execute(solution_name = nil)
4
+ def execute(target = nil)
5
5
  path = File.expand_path(".")
6
6
 
7
- if numeric?(solution_name)
8
- solution_id = solution_name.to_i
9
- else
10
- solution_id, solution_name = infer_solution_context(solution_name, path)
7
+ if target.present?
8
+ target_type, target_id = target.split(":")
9
+ solution_id = retrieve_identifier_for("Solution", target_id)
11
10
  end
12
11
 
13
- if solution_id.nil?
14
- say("Solution could not be inferred")
15
- say(EPC::Help::COMMAND_USAGES[:list_projects])
16
- return 1
12
+ if solution_id.blank?
13
+ solution_id, solution_name = infer_solution_context(nil, path)
17
14
  end
18
15
 
16
+ raise InputError, "Solution could not be inferred" if solution_id.nil?
17
+
19
18
  status, response, headers = client.get(EPC::Config::SOLUTIONS_PATH + "/#{solution_id}/projects")
20
19
 
21
20
  if status.failure?
@@ -1,19 +1,33 @@
1
1
  require 'time'
2
2
  module EPC::Command
3
- class ShowProjectCommand < BaseCommand
3
+ class ShowProjectCommand < ShowCommand
4
+
4
5
 
5
- def execute(project_name = nil)
6
- path = "."
7
- path = File.expand_path(path)
6
+ def execute(object_id = nil, *args)
7
+ @showable_translations = {
8
+ :config => :config_values,
9
+ :services => :service_versions
10
+ }
11
+
12
+ path = File.expand_path(".")
8
13
 
9
- solution_name = @options[:solution_name]
14
+ ids = object_id.split(":") rescue [nil, nil]
15
+
16
+ if ids.size == 1
17
+ project_name = ids[0]
18
+ solution_name = nil
19
+ elsif ids.size == 2
20
+ solution_name, project_name = ids
21
+ end
10
22
 
11
23
  solution_id, solution_name = infer_solution_context(solution_name, path)
12
24
  project_id, project_name = infer_project_context(project_name, path, solution_id)
13
25
 
14
26
  raise FatalError, "Project could not be found" if project_id.nil? || project_id == 0
15
27
 
16
- status, response, message = client.get(EPC::Config::PROJECTS_PATH + "/#{project_id}?include=dependencies,roles,config_values")
28
+ @showables = args[1..-1].map(&:to_sym) rescue []
29
+
30
+ status, response, message = client.get(EPC::Config::PROJECTS_PATH + "/#{project_id}?include=dependencies,roles,config_values,service_versions,libraries")
17
31
  if status.failure?
18
32
  say("Request failed: [#{response[:message]}]")
19
33
  return status
@@ -24,51 +38,72 @@ module EPC::Command
24
38
  response[:last_push_date] = Time.parse(response[:last_push_date]).strftime("%m/%d/%Y %I:%M%p") unless response[:last_push_date].nil? || response[:last_push_date] == "N/A"
25
39
  response[:last_build_status] = nil if response[:last_build_status] == "N/A" # temp hack
26
40
  response[:last_build_status] = (response[:last_build_status] ? "BUILT" : "FAILED" rescue nil) unless response[:last_build_status].nil?
41
+ response[:last_push_by_id] = response[:last_push_by][:id]
42
+ response[:last_push_by_name] = response[:last_push_by][:name]
27
43
 
28
- projects_table = EPC::TabularOutputter.new([response], {:id => "ID", :name => "NAME", :uri_name => "URI NAME", :created_at => "CREATED AT", :last_build_status => "BUILD STATUS", :last_build_date => "BUILD DATE", :last_build_version => "BUILD VERSION"})
29
-
30
- unless response[:dependency_definitions].nil? || response[:dependency_definitions].empty?
31
- dependencies = []
32
- response[:dependency_definitions].each do |dep_def|
33
- dependencies << {
34
- id: dep_def[:dependency_id],
35
- project_id: dep_def[:dependency][:id],
36
- name: dep_def[:dependency][:name],
37
- type: dep_def[:dependency_kind]
38
- }
39
- end
44
+ response[:dependencies] = []
45
+ response[:dependency_definitions].each do |dep_def|
46
+ response[:dependencies] << {
47
+ id: dep_def[:dependency_id],
48
+ project_id: dep_def[:dependency][:id],
49
+ name: dep_def[:dependency][:name],
50
+ type: dep_def[:dependency_kind]
51
+ }
40
52
  end
41
53
 
42
- response[:last_push_by_id] = response[:last_push_by][:id]
43
- response[:last_push_by_name] = response[:last_push_by][:name]
54
+ @response = response
55
+
56
+ projects_table = EPC::TabularOutputter.new([response], {:id => "ID", :name => "NAME", :uri_name => "URI NAME", :created_at => "CREATED AT", :last_build_status => "BUILD STATUS", :last_build_date => "BUILD DATE", :last_build_version => "BUILD VERSION"})
57
+
44
58
  last_push_table = EPC::TabularOutputter.new([response], {:last_push_by_id => "USER ID", :last_push_by_name => "USER NAME", :last_push_date => "DATE"})
45
- dependencies_table = EPC::TabularOutputter.new(dependencies, [:id, :project_id, :name, :type])
59
+
60
+ dependencies_table = EPC::TabularOutputter.new(response[:dependencies], [:id, :project_id, :name, :type])
46
61
 
47
62
  config_values_table = EPC::TabularOutputter.new(response[:config_values], [:id, :name, :no_override, :value, :value_type, :required])
63
+
48
64
  roles_table = EPC::TabularOutputter.new(response[:roles], [:id, :name])
49
65
 
50
- say("\nProject details:")
51
- say(projects_table.print)
52
-
53
- say("\nLast push info:")
54
- say(last_push_table.print)
66
+ services_table = EPC::TabularOutputter.new(response[:service_versions], [:id, :label, :definition_name])
67
+
68
+ libraries_table = EPC::TabularOutputter.new(response[:libraries], [:id, :name, :language, :library_version, :group])
55
69
 
56
- unless dependencies.nil? || dependencies.empty?
70
+ if @showables.blank?
71
+ say("\nProject details:")
72
+ say(projects_table.print)
73
+
74
+ say("\nLast push info:")
75
+ say(last_push_table.print)
76
+ end
77
+
78
+ if show? :dependencies
57
79
  say("\nDependencies:")
58
80
  say(dependencies_table.print)
59
81
  end
60
82
 
61
- unless response[:config_values].nil? || response[:config_values].empty?
83
+ if show? :config
62
84
  say("\nConfig values:")
63
85
  say(config_values_table.print)
64
86
  end
65
87
 
66
- unless response[:roles].nil? || response[:roles].empty?
88
+ if show? :roles
67
89
  say("\nRoles:")
68
90
  say(roles_table.print)
69
91
  end
92
+
93
+ if show? :services
94
+ say("\nServices:")
95
+ say(services_table.print)
96
+ end
97
+
98
+ if show? :libraries
99
+ say("\nLibraries:")
100
+ say(libraries_table.print)
101
+ end
102
+
70
103
  return status
71
104
  end
105
+
72
106
  end
107
+
73
108
  end
74
109
 
@@ -1,9 +1,10 @@
1
1
  module EPC::Command
2
- class UnarchiveProjectCommand < BaseCommand
3
- def execute(project_name = nil)
4
- path = File.expand_path(".")
2
+ class UnarchiveProjectCommand < UnarchiveCommand
5
3
 
6
- solution_name = @options[:solution_name]
4
+ def execute(project = nil)
5
+ path = File.expand_path(":")
6
+
7
+ solution_name, project_name = project.split(".") rescue [nil, nil]
7
8
 
8
9
  solution_id, solution_name = infer_solution_context(solution_name, path, {:get_solution_name => true})
9
10
  project_id, project_name = infer_project_context(project_name, path, solution_id, {:get_solution_name => true})
@@ -2,22 +2,28 @@ module EPC::Command
2
2
  class UpdateProjectCommand < BaseCommand
3
3
  UPDATABLE_ATTRIBUTES = ["project_name", "project_type"]
4
4
 
5
- def execute(*args)
5
+ def execute(project = nil, *args)
6
6
  path = "."
7
7
  path = File.expand_path(path)
8
8
 
9
- solution_name = @options[:solution_name]
10
- project_name = @options[:project_name]
9
+ ids = project.split(":") rescue [nil, nil]
10
+
11
+ if ids.size == 1
12
+ project_name = ids[0]
13
+ solution_name = nil
14
+ elsif ids.size == 2
15
+ solution_name, project_name = ids
16
+ end
11
17
 
12
18
  solution_id, solution_name = infer_solution_context(solution_name, path, :get_solution_name => true)
13
19
  project_id, project_name = infer_project_context(project_name, path, solution_id, {:get_project_name => true})
14
20
 
15
-
16
21
  raise FatalError, "Project could not be inferred" if project_id.nil? || project_id == 0
17
22
 
18
23
  args_hash = {}
19
24
  args.each do |arg|
20
25
  key, val = arg.split("=")
26
+ next if key.nil?
21
27
  args_hash[key] = val
22
28
  end
23
29
 
@@ -26,7 +32,7 @@ module EPC::Command
26
32
  end
27
33
 
28
34
  args_hash.each do |attr, val|
29
- if !UPDATABLE_ATTRIBUTES.include?(attr)
35
+ unless UPDATABLE_ATTRIBUTES.include?(attr)
30
36
  args_hash.delete(attr)
31
37
  say("Cannot update #{attr}. Updatable attributes are: [#{UPDATABLE_ATTRIBUTES.join(', ')}]")
32
38
  next
@@ -1,7 +1,7 @@
1
1
  module EPC::Command
2
2
  class ListProjecttypesCommand < BaseCommand
3
3
 
4
- def execute
4
+ def execute(target = nil)
5
5
  status, response, headers = client.get(EPC::Config::PROJECT_TYPES_PATH)
6
6
 
7
7
  if status.failure?
@@ -1,10 +1,11 @@
1
1
  module EPC::Command
2
2
  class ShowProjecttypeCommand < BaseCommand
3
3
 
4
- def execute(project_type = nil)
5
- raise FatalError, "You must specify a project type id" if project_type.nil?
4
+ def execute(project_type = nil, *args)
6
5
 
7
- status, response, headers = client.get(EPC::Config::PROJECT_TYPES_PATH + "/#{project_type}")
6
+ project_type_id = retrieve_identifier_for("ProjectType", project_type)
7
+
8
+ status, response, headers = client.get(EPC::Config::PROJECT_TYPES_PATH + "/#{project_type_id}")
8
9
 
9
10
  if status.failure?
10
11
  say("Request failed: [#{response[:message]}]")
@@ -45,22 +45,26 @@ module EPC::Command
45
45
  status, id = create_pull(solution_name)
46
46
  if status.successful?
47
47
  say("Pulling - ")
48
- shown, url = poll_for_pull_url(id)
49
- if shown
50
- tmpdir = Dir.tmpdir
51
- pulled, zip_path = pull_zip(url, tmpdir)
52
- if pulled
53
- if create_dir
54
- return 1 unless prep_solution_directory(path, solution_name)
55
- path = File.join(path, solution_name)
56
- end
48
+ success, url, response = poll_for_pull_url(id)
49
+ if success
50
+ zip_path = nil
51
+ if url
52
+ tmpdir = Dir.tmpdir
53
+ pulled, zip_path = pull_zip(url, tmpdir)
54
+ return 1 unless pulled
55
+ end
56
+ if create_dir
57
+ return 1 unless prep_solution_directory(path, solution_name)
58
+ path = File.join(path, solution_name)
59
+ end
60
+ if zip_path
57
61
  unzip_solution(zip_path, path)
58
62
  confirm_pull(id)
59
- refresh_command = EPC::Command::RefreshSolutionCommand.new(client, @options)
60
- refresh_command.options[:prompt_refresh] = false if first_time_pull
61
- refresh_command.execute(path)
62
- return 0
63
63
  end
64
+ refresh_command = EPC::Command::RefreshSolutionCommand.new(client, @options)
65
+ refresh_command.options[:prompt_refresh] = false if first_time_pull
66
+ refresh_command.execute(path)
67
+ return 0
64
68
  end
65
69
  end
66
70
  rescue Exception => ex
@@ -93,15 +97,6 @@ module EPC::Command
93
97
  end
94
98
  end
95
99
 
96
- def sign_pull(id)
97
- status, response, headers = client.put("#{EPC::Config::PULLS_PATH}/#{id}/sign")
98
- if status.successful?
99
- return status, nil, response[:signed_url]
100
- else
101
- return status, response[:error_code], nil
102
- end
103
- end
104
-
105
100
  def prep_solution_directory(path, solution_name)
106
101
  solution_id = get_resource_id(EPC::Config::SOLUTIONS_PATH, :name, solution_name)
107
102
  if solution_id.nil?
@@ -138,10 +133,16 @@ module EPC::Command
138
133
  end
139
134
  sleep(SLEEP_TIME)
140
135
 
141
- status, code, url = sign_pull(id)
142
- if status.successful? || (status == 404 && code == 801)
136
+ status, response, headers = sign_pull(id)
137
+
138
+ if status.successful?
139
+ say("\n")
140
+ return true, response[:signed_url], response
141
+ end
142
+
143
+ if status == 404 && response[:error_code] == 801
144
+
143
145
  count += 1
144
- next if url.nil? || url.empty?
145
146
  break
146
147
  else
147
148
  say("Poller failed to get the pull URL. Aborting.")
@@ -150,17 +151,14 @@ module EPC::Command
150
151
  end
151
152
  end
152
153
 
153
-
154
- if url
155
- [true, url]
156
- elsif failed
157
- [false, nil]
158
- else
159
- if count > GIVEUP_TICKS
160
- say("\nServer is taking too long to update the pull URL. Please contact the AgileMethods support team.")
161
- end
162
- [false, nil]
154
+ if count > GIVEUP_TICKS
155
+ say("\nServer is taking too long to update the pull URL. Please contact the AgileMethods support team.")
163
156
  end
157
+ [false, nil, nil]
158
+ end
159
+
160
+ def sign_pull(id)
161
+ client.put("#{EPC::Config::PULLS_PATH}/#{id}/sign")
164
162
  end
165
163
 
166
164
  def check_pull_directory(path)
@@ -1,15 +1,14 @@
1
1
  module EPC::Command
2
- class DeleteRoleCommand < BaseCommand
3
- required_arguments_count 1, :message => "You must specify the role id/name"
2
+ class DeleteRoleCommand < DeleteCommand
4
3
 
5
- def execute(role = nil)
4
+ def execute(role = nil, *args)
6
5
 
7
6
  proceed = ask_yn("Are you sure you want to delete the [#{role}] role? [Yn] ")
8
7
  if proceed.upcase == "N"
9
8
  return 1
10
9
  end
11
10
 
12
- role_id = retrieve_system_role_identifier(role)
11
+ role_id = retrieve_identifier_for("Role", role)
13
12
 
14
13
  status, response, headers = client.delete(EPC::Config::ROLES_PATH + "/#{role_id}/system/true")
15
14
 
@@ -1,9 +1,10 @@
1
1
  module EPC::Command
2
2
  class ListRolesCommand < BaseCommand
3
- def execute
3
+ def execute(target = nil)
4
4
 
5
- if @options[:user].present?
6
- status, response, headers = client.get(EPC::Config::USERS_PATH + "/#{@options[:user]}?include=roles")
5
+ if target.present?
6
+ target_type, target_id = target.split(":")
7
+ status, response, headers = client.get(EPC::Config::USERS_PATH + "/#{target_id}?include=roles")
7
8
  response = response[:roles]
8
9
  else
9
10
  status, response, headers = client.get(EPC::Config::ROLES_PATH + "?system_roles=true")
@@ -1,13 +1,17 @@
1
1
  module EPC::Command
2
- class ShowRoleCommand < BaseCommand
3
- required_arguments_count 1, :message => "You need to specify a role id/name"
2
+ class ShowRoleCommand < ShowCommand
4
3
 
5
- def execute(role = nil)
4
+ def execute(role = nil, *args)
5
+ @showable_translations = {
6
+ :groups => :user_groups
7
+ }
6
8
 
7
- role_id = retrieve_system_role_identifier(role)
9
+ role_id = retrieve_identifier_for("Role", role)
8
10
 
9
11
  status, response, headers = client.get(EPC::Config::ROLES_PATH + "/#{role_id}?include=users,user_groups,grants")
10
12
 
13
+ @showables = args[1..-1].map(&:to_sym) rescue []
14
+
11
15
  unless status.successful?
12
16
  say("Request failed: [#{response[:message]}]")
13
17
  return 1
@@ -18,23 +22,27 @@ module EPC::Command
18
22
  user_groups_table = EPC::TabularOutputter.new(response[:user_groups], [:id, :name])
19
23
  grants_table = EPC::TabularOutputter.new(response[:grants], [:id, :action, :secured_type, :secured_id])
20
24
 
21
- say("Role:")
22
- say(role_table.print)
23
- say("\n")
25
+ @response = response
26
+
27
+ if @showables.blank?
28
+ say("Role:")
29
+ say(role_table.print)
30
+ say("\n")
31
+ end
24
32
 
25
- if response[:users].present?
33
+ if show? :users
26
34
  say("Users:")
27
35
  say(users_table.print)
28
36
  say("\n")
29
37
  end
30
38
 
31
- if response[:user_groups].present?
39
+ if show? :groups
32
40
  say("User groups:")
33
41
  say(user_groups_table.print)
34
42
  say("\n")
35
43
  end
36
44
 
37
- if response[:grants].present?
45
+ if show? :grants
38
46
  say("Grants:")
39
47
  say(grants_table.print)
40
48
  say("\n")