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,22 +1,14 @@
1
1
  module EPC::Command
2
- class DeleteUserCommand < BaseCommand
3
- def execute(user = nil)
4
-
5
- raise FatalError, "You need to specify a user id/email" if user.nil?
2
+ class DeleteUserCommand < DeleteCommand
3
+ def execute(user = nil, *args)
6
4
 
7
5
  proceed = ask_yn("Are you sure you want to delete the [#{user}] user? [Yn] ")
8
6
  if proceed.upcase == "N"
9
7
  return 1
10
8
  end
11
9
 
12
- if numeric?(user)
13
- user_id = user.to_i
14
- else
15
- user_id = get_resource_id(EPC::Config::USERS_PATH, :email, user)
16
- end
17
-
18
- raise FatalError, "User could not be determined" if user_id.blank? || user_id == 0
19
-
10
+ user_id = retrieve_identifier_for("User", user)
11
+
20
12
  status, response, headers = client.delete(EPC::Config::USERS_PATH + "/#{user_id}")
21
13
 
22
14
  if status == 200
@@ -2,7 +2,7 @@ require 'time'
2
2
  module EPC::Command
3
3
  class ListUsersCommand < BaseCommand
4
4
 
5
- def execute
5
+ def execute(target = nil)
6
6
 
7
7
  status, response, headers = client.get(EPC::Config::USERS_PATH)
8
8
 
@@ -1,23 +1,9 @@
1
1
  module EPC::Command
2
- class ShowUserCommand < BaseCommand
2
+ class ShowUserCommand < ShowCommand
3
3
 
4
- def execute(user = nil)
5
- if user.nil?
6
- say("You need to specify a user id/email")
7
- say(EPC::Help::COMMAND_USAGES[:show_user])
8
- return 1
9
- end
10
-
11
- if numeric?(user)
12
- user_id = user.to_i
13
- else
14
- user_id = get_resource_id(EPC::Config::USERS_PATH, :email, user)
15
- end
4
+ def execute(user = nil, *args)
16
5
 
17
- if user_id.nil? || user_id == 0
18
- say("User could not be found")
19
- return 1
20
- end
6
+ user_id = retrieve_identifier_for("User", user)
21
7
 
22
8
  status, response, headers = client.get(EPC::Config::USERS_PATH + "/#{user_id}?include=user_groups")
23
9
 
@@ -1,9 +1,9 @@
1
1
  module EPC::Command
2
2
  class UpdateUserCommand < BaseCommand
3
3
 
4
- def execute(user = nil)
4
+ required_options :email, :password, :mode => :any?, :message => "You must specify the attribute to be updated: email/password"
5
5
 
6
- raise FatalError, "You need to specify a user id/email" if user.nil?
6
+ def execute(user = nil, *args)
7
7
 
8
8
  if @options[:password].present?
9
9
  if numeric?(user)
@@ -49,8 +49,6 @@ module EPC::Command
49
49
 
50
50
  return status
51
51
  end
52
-
53
-
54
52
  end
55
53
 
56
54
  end
@@ -37,7 +37,10 @@ module EPC
37
37
  PERMISSIONS_PATH = "#{SCOPE}/permissions"
38
38
  GRANTS_PATH = "#{SCOPE}/grants"
39
39
  OBJECT_TYPES_PATH = "#{SCOPE}/object_type_identifiers"
40
-
40
+ MONITORED_PATH = "#{SCOPE}/monitored"
41
+ METRICS_PATH = "#{SCOPE}/metrics"
42
+ INSTANCES_PATH = "#{SCOPE}/deployed_projects"
43
+ PLUGINS_PATH = "#{SCOPE}/plugins"
41
44
 
42
45
  class << self
43
46
  def target_file
@@ -6,20 +6,20 @@ module EPC
6
6
  :login => 'epc login <email> [--passwd PASS]',
7
7
  :list_solutions => 'epc list solutions',
8
8
  :create_solution => 'epc create solution <name>',
9
- :show_solution => 'epc show solution [SOLUTION]',
10
- :update_solution => 'epc update solution [-s SOLUTION] name=value',
9
+ :show_solution => 'epc show Solution:solution_identifier',
10
+ :update_solution => 'epc update Solution:solution_identifier name=value',
11
11
  :delete_solution => 'epc delete solution SOLUTION',
12
- :archive_solution => 'epc archive solution [SOLUTION]',
13
- :unarchive_solution => 'epc unarchive solution [SOLUTION]',
12
+ :archive_solution => 'epc archive Solution:solution_identifier',
13
+ :unarchive_solution => 'epc unarchive Solution:solution_identifier',
14
14
  :refresh_solution => 'epc refresh solution [SOLUTION]',
15
- :list_projects => 'epc list projects [SOLUTION]',
15
+ :list_projects => 'epc list projects [Solution:solution_id]',
16
16
  :create_project => 'epc create project <name> [uri-name] <--type PROJECT_TYPE>',
17
- :show_project => 'epc show project [-s SOLUTION] <PROJECT>',
18
- :update_project => 'epc update project [-s SOLUTION] [-p PROJECT] <attribute=value>',
17
+ :show_project => 'epc show Project:project_identifier',
18
+ :update_project => 'epc update Project:project_identifier <attribute=value>',
19
19
  :delete_project => 'epc delete project [-s SOLUTION] [PROJECT] [--force]',
20
20
  :attach_runtime => 'epc attach runtime <runtime_id> [-p PROJECT] [--stage STAGE]',
21
21
  :list_servicetypes => 'epc list service-types',
22
- :define_service => 'epc define service <-t service_type> <service_name>',
22
+ :create_servicedefinition => 'epc create service-definition <service_name> <service_type>',
23
23
  :undefine_service => 'epc undefine service <SERVICE>',
24
24
  :list_servicedefinitions => 'epc list service-definitions',
25
25
  :create_serviceversion => 'epc create service-version <label> <definition_name_or_id> [--up-script file] [--down-script file]',
@@ -33,11 +33,11 @@ module EPC
33
33
  :pull => 'epc pull [SOLUTION]',
34
34
  :build => 'epc build [project_name=version] [--note NOTE] [--timeout value | --nopoll]',
35
35
  :list_deploymentconfigs => 'epc list deployment-configs [--stage STAGE] [-p PROJECT]',
36
- :list_stages => 'epc list stages',
36
+ :list_deploymentstages => 'epc list stages',
37
37
  :create_deployment => 'epc create deployment [-s SOLUTION] <stage name: development|testing|staging|production> [-p project_id:version:instances] [--replaces deployment_id]',
38
- :show_deployment => 'epc show deployment <DEPLOYMENT_ID>',
38
+ :show_deployment => 'epc show Deployment:deployment_identifier',
39
39
  :submit_deployment => 'epc submit deployment <DEPLOYMENT_ID>',
40
- :list_deployments => 'epc list deployments [-s SOLUTION] [-S STAGE] [-u DEPLOYER]',
40
+ :list_deployments => 'epc list deployments [<Solution:solution_id> | <DeploymentStage:deployment_stage_id> | <User:user_id>]',
41
41
  :copy_deployment => 'epc copy deployment <DEPLOYMENT_ID> <STAGE>',
42
42
  :approve_deployment => 'epc approve deployment <DEPLOYMENT_ID>',
43
43
  :deny_deployment => 'epc deny deployment <DEPLOYMENT_ID>',
@@ -46,7 +46,7 @@ module EPC
46
46
  :delete_dependency => 'epc delete dependency [-s SOLUTION] [-p PROJECT] <DEPENDENCY_ID>',
47
47
  :create_library => 'epc create library <name> <language> <version> <group> [-f file] [--scope runtime | compile | provided | test]',
48
48
  :list_libraries => 'epc list libraries',
49
- :delete_library => 'epc delete library <name> <version> <group>',
49
+ :delete_library => 'epc delete Library:library_identifier',
50
50
  :attach_library => 'epc attach library [-s SOLUTION] [-p PROJECT] <name> <version> <group> [-f FILE] [--pom POM FILE]',
51
51
  :detach_library => 'epc detach library [-s SOLUTION] [-p PROJECT] <LIBRARY>',
52
52
  :deploy => 'epc deploy [stage] [-d DEPLOYMENT_ID] [--timeout value | --nopoll]',
@@ -56,46 +56,55 @@ module EPC
56
56
  :logout => 'epc logout',
57
57
  :create_config => 'epc create config <TargetType:TargetId> [--required] [--no_override] [--value-type TYPE] name=value',
58
58
  :list_config => 'epc list config <TargetType:TargetType>',
59
+ :delete_config => 'epc delete Config:key_identifier <TargetType:TargetId>',
59
60
  :list_projecttypes => 'epc list project-types',
60
- :show_projecttype => 'epc show project-type <project_type_id>',
61
- :update_deploymentproject => 'epc update deployment-project <DEPLOYMENT_ID> <PROJECT> [--instances instance_count] [--uris comma_separated_uris]',
61
+ :show_projecttype => 'epc show ProjectType:project_type_identifier',
62
+ :update_deployment => 'epc update Deployment:deployment_identifier Project:project_identifier [--instances instance_count] [--uris comma_separated_uris]',
62
63
  :list_versions => 'epc list versions [-s SOLUTION] PROJECT',
63
- :update_config => 'epc update config <--org | --runtime | --stage | --solution | --project | --user id> [--required] [--no_override] name=value',
64
- :archive_project => 'epc archive project [-s SOLUTION] PROJECT',
65
- :unarchive_project => 'epc unarchive project [-s SOLUTION] PROJECT',
64
+ :update_config => 'epc update Config:config_identifier TargetType:TargetId [--required] [--no_override] name=value',
65
+ :archive_project => 'epc archive Project:project_identifier',
66
+ :unarchive_project => 'epc unarchive Project:project_identifier',
66
67
  :list_attachedlibraries => 'epc list attached-libraries [-s SOLUTION] [PROJECT] [--json]',
67
68
  :create_group => 'epc create group <name>',
68
69
  :delete_group => 'epc delete group <GROUP>',
69
70
  :list_groups => 'epc list groups',
70
- :update_group => 'epc update group <GROUP> [--add-user USER_ID] [--remove-user USER_ID]',
71
- :show_group => 'epc show group <groupId>|<groupName>',
72
- :list_roles => 'epc list roles [--user user_id]',
71
+ :update_group => 'epc update Group:group_identifier:group_identifier [--add-user USER_ID] [--remove-user USER_ID]',
72
+ :show_group => 'epc show Group:group_identifier',
73
+ :list_roles => 'epc list roles [User:user_id]',
73
74
  :list_objectroles => 'epc list object-roles <ObjectType:ObjectId>',
74
75
  :delete_role => 'epc delete role',
75
- :update_role => 'epc update role <ROLE> [--add-user USER_ID] [--remove-user USER_ID]',
76
+ :update_role => 'epc update Role:role_identifier [--add-user USER_ID] [--remove-user USER_ID] [--add-grant ObjectType:action:ObjectId] [--remove-grant ObjectType:action:ObjectId> [--file json]',
77
+ :update_objectrole => 'epc update ObjectRole:ObjectType.ObjectID.role_identifier [--add-user USER_ID] [--remove-user USER_ID] [--add-grant ObjectType:action:ObjectId] [--remove-grant ObjectType:action:ObjectId> [--file json]',
76
78
  :create_role => 'epc create role <name>',
77
79
  :create_objectrole => 'epc create role <name> <ObjectType:ObjectId>',
78
- :show_role => 'epc show role <roleId>|<roleName>',
80
+ :show_role => 'epc show Role:role_identifier [users|groups|grants]',
79
81
  :list_users => 'epc list users',
80
82
  :delete_user => 'epc delete user <user_id>|<email>',
81
- :show_user => 'epc show user <user_id>|<email>',
83
+ :show_user => 'epc show User:user_identifier',
82
84
  :create_librarylanguage => 'epc create library-language <name>',
83
85
  :list_librarylanguages => 'epc list library-languages',
84
- :delete_librarylanguage => 'epc delete library-language <language>',
85
- :update_librarylanguage => 'epc update library-language <language> <new-name>',
86
+ :delete_librarylanguage => 'epc delete LibraryLanguage:language_identifier',
87
+ :update_librarylanguage => 'epc update LibraryLanguage:language_identifier <new-name>',
86
88
  :create_libraryset => 'epc create library-set <name> <language> [--file file]',
87
- :show_libraryset => 'epc show library-set <name>|<id> [--json]',
88
- :list_librarysets => 'epc show library-sets',
89
- :update_libraryset => 'epc update library-set name|id [--add-library id|name:version:group] [--remove-library id|name:version:group] [--file file]',
89
+ :show_libraryset => 'epc show LibrarySet:libraryset_identifier [--json]',
90
+ :list_librarysets => 'epc list library-sets',
91
+ :update_libraryset => 'epc update LibrarySet:library-set_identifier [--add-library id|name:version:group] [--remove-library id|name:version:group] [--file file]',
90
92
  :delete_libraryset => 'epc delete library-set name|id [-y]',
91
93
  :attach_libraryset => 'epc attach library-set name|id [-s solution] [-p project]',
92
94
  :detach_libraryset => 'epc detach library-set name|id [-s solution] [-p project]',
93
95
  :request_passwordchange => 'epc request password-change <email>',
94
- :update_user => 'epc update user <user_id>|<email> [--passwd password] [--token token] [--email new_email] [--name new_name]',
95
- :list_rolepermissions => 'epc list role-permissions',
96
- :update_rolepermissions => 'epc update role-permissions <--add-grant ObjectType:action:ObjectId> <--remove-grant ObjectType:action:ObjectId> [--file json]',
96
+ :update_user => 'epc update User:user_identifier [--passwd password] [--token token] [--email new_email] [--name new_name]',
97
+ :list_metrics => 'epc list metrics [--target target]',
98
+ :show_metrics => 'epc show metrics <id> <metric list> [--start start] [--stop stop] [--step step] [--graph]',
99
+ :show_instances => 'epc show instances <deployed-project-id>',
100
+ :list_permissions => 'epc list permissions',
101
+ :update_rolepermissions => 'epc update role-permissions ',
97
102
  :list_permissiongroups => 'epc list permission-groups',
98
- :list_objecttypes => 'epc list object-types'
103
+ :list_objecttypes => 'epc list object-types',
104
+ :create_plugin => 'epc create plugin <name> <version> <group> [--inherited] [--extensions] [--executions executions|file:path_to_executions_file] [--configuration configuration|file:path_to_configuration_file]',
105
+ :show_plugin => 'epc show Plugin:Name:Version:Group',
106
+ :list_plugins => 'epc list plugins',
107
+ :update_plugin => 'epc update Plugin:Name:Version:Group attribute=new value'
99
108
  }
100
109
 
101
110
  def display_usage
@@ -112,7 +121,7 @@ module EPC
112
121
  say verbose_usage
113
122
  return
114
123
  end
115
- key = commands.join('_').gsub("-", "").to_sym
124
+ key = commands.join('_').gsub("-", "").downcase.to_sym
116
125
  if COMMAND_USAGES.keys.include?(key)
117
126
  say("Usage: #{COMMAND_USAGES[key]}")
118
127
  else
@@ -184,7 +193,7 @@ Currently available epc commands are:
184
193
 
185
194
  Services
186
195
  list service-types List available service types provided by ePaas
187
- define service Defines a service
196
+ create service-definition Defines a service
188
197
  undefine service Undefines a service
189
198
  list service-definitions Lists services
190
199
  create service-version Creates a service version from an existing
@@ -199,7 +208,7 @@ Currently available epc commands are:
199
208
  build Builds a previously pushed project
200
209
  show deployment Retrieves detailed information about
201
210
  the deployment
202
- list stages Lists available stages for deploying.
211
+ list deployment-stages Lists available stages for deploying.
203
212
  create deployment Creates a deployment for a solution
204
213
  and the given stage
205
214
  list deployments Lists all deployments created
@@ -283,6 +292,12 @@ Currently available epc commands are:
283
292
  logout Logs current user out of the target system
284
293
 
285
294
 
295
+ Metrics
296
+ list metrics Lists available metrics
297
+ show instances Lists instances of a DeployedProject
298
+ show metrics Retrieves (and optionally graphs) metrics for a deployed project
299
+
300
+
286
301
  Help
287
302
  help Shows the usage for the command
288
303
 
@@ -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 delete update show archive unarchive define undefine refresh approve deny bind unbind attach detach submit copy set request)
16
+ @parent_commands = %w(list define undefine refresh approve deny bind unbind attach detach submit copy set request)
17
17
  end
18
18
 
19
19
  def run
@@ -39,10 +39,10 @@ class EPC::Runner
39
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.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])
46
46
  exit 1
47
47
  rescue BaseClient::HTTPException => ex
48
48
  say(ex.to_s)
@@ -114,12 +114,23 @@ class EPC::Runner
114
114
  opts.on('--remove-library LIB') { |lib| @options[:remove_library] = lib}
115
115
  opts.on('--token TOKEN') { |token| @options[:token] = token}
116
116
  opts.on('--name NAME') { |name| @options[:name] = name}
117
+ opts.on('--include-inactive') { |bool| @options[:include_inactive] = true}
118
+ opts.on('--target TARGET') { |target| @options[:target] = target}
119
+ opts.on('--metrics METRICS') { |metrics| @options[:metrics] = metrics}
120
+ opts.on('--start START') { |start| @options[:start] = start}
121
+ opts.on('--stop STOP') { |stop| @options[:stop] = stop}
122
+ opts.on('--step STEP') { |step| @options[:step] = step}
123
+ opts.on('--graph') { |bool| @options[:graph] = true}
117
124
  opts.on('--add-grant grant') { |grant| @options[:add_grant] = grant}
118
125
  opts.on('--remove-grant grant') { |grant| @options[:remove_grant] = grant}
119
126
  opts.on('--add-group group') { |group| @options[:add_group] = group}
120
127
  opts.on('--remove-group group') { |group| @options[:remove_group] = group}
121
128
  opts.on('--nopoll') { |poll| @options[:no_poll] = true}
122
129
  opts.on('--timeout TIMEOUT') { |timeout| @options[:timeout] = timeout}
130
+ opts.on('--extensions') { |ext| @options[:extensions] = true}
131
+ opts.on('--inherited') { |inherited| @options[:inherited] = true}
132
+ opts.on('--configuration CONFIGURATION') { |configuration| @options[:configuration] = configuration}
133
+ opts.on('--executions executions') { |executions| @options[:executions] = executions}
123
134
 
124
135
  opts.on('-p NAME') do |name|
125
136
  if @options[:project_name].nil?
@@ -1,3 +1,3 @@
1
1
  module Epc
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  end
@@ -0,0 +1,40 @@
1
+ module EPC
2
+
3
+ class VerticalBar
4
+
5
+ WIDTH = 80
6
+ HEIGHT = 16
7
+
8
+ def initialize(array)
9
+ @values = array
10
+ end
11
+
12
+ def print
13
+ content = ""
14
+ return result unless @values && !@values.empty?
15
+
16
+ # adjust X axis for WIDTH cols
17
+ if @values.length > WIDTH
18
+ old_values = @values
19
+ @values = []
20
+ 0.upto(WIDTH - 1) {|i| @values << old_values[i * old_values.length / WIDTH]}
21
+ end
22
+ min = @values.inject {|min,ea| ea.nil? ? min : (min < ea ? min : ea)} # can't use @values.min - may contain nils
23
+ max = @values.inject {|max,ea| ea.nil? ? max : (max > ea ? max : ea)} # can't use @values.max - may contain nils
24
+ spread = [max - min, 1].max
25
+
26
+ display = Array.new(HEIGHT).collect { Array.new(WIDTH, ' ') } # initialize display with blanks
27
+ @values.each_with_index do |e, i|
28
+ if e
29
+ num = (e - min) * HEIGHT / spread
30
+ (HEIGHT - 1).downto(HEIGHT - 1 - num) {|j| display[j][i] = '^'}
31
+ else
32
+ display[HEIGHT - 1][i] = '_'
33
+ end
34
+ end
35
+ display.each {|ar| ar.each {|e| content << e}; content << "\n"}
36
+ content
37
+ end
38
+ end
39
+
40
+ end
@@ -16,7 +16,7 @@ class CreateLibraryCommandTest < Test::Unit::TestCase
16
16
  end
17
17
 
18
18
  should "determine the language id based on the name" do
19
- @command.expects(:get_resource_id).with(EPC::Config::LIBRARY_LANGUAGES_PATH, :name, "ruby", :case_sensitivity => false).returns(1)
19
+ @command.expects(:retrieve_identifier_for).returns(1)
20
20
  @mock_client.expects(:post).returns([201, {}, {}])
21
21
  @command.expects(:say)
22
22
 
@@ -24,7 +24,7 @@ class CreateLibraryCommandTest < Test::Unit::TestCase
24
24
  end
25
25
 
26
26
  should "fail if it can't determine the language id" do
27
- @command.expects(:get_resource_id).with(EPC::Config::LIBRARY_LANGUAGES_PATH, :name, "ruby", :case_sensitivity => false).returns(nil)
27
+ @command.expects(:retrieve_identifier_for).returns(nil)
28
28
  assert_raise EPC::Error::InputError do
29
29
  assert_equal(@command.execute("", "lib1", "ruby", "1"), 1)
30
30
  end
@@ -32,6 +32,7 @@ class CreateLibraryCommandTest < Test::Unit::TestCase
32
32
  end
33
33
 
34
34
  should "fail if status is not 200" do
35
+ @command.expects(:retrieve_identifier_for).returns(1)
35
36
  @mock_client.expects(:post).returns([404, {:message => "Not Found"}, {}])
36
37
  @command.expects(:say).with("Request failed: [Not Found]")
37
38
 
@@ -39,6 +40,7 @@ class CreateLibraryCommandTest < Test::Unit::TestCase
39
40
  end
40
41
 
41
42
  should "create a library" do
43
+ @command.expects(:retrieve_identifier_for).returns(1)
42
44
  @mock_client.expects(:post).with(EPC::Config::LIBRARIES_PATH, {:name => "lib1", :language_id => 1, :library_version => "0.2", :group => "my_grp"}).
43
45
  returns([201, {:id => 1}, {}])
44
46
  @command.expects(:say).with("Created library [lib1] with ID [1]")
@@ -48,6 +50,7 @@ class CreateLibraryCommandTest < Test::Unit::TestCase
48
50
 
49
51
  context "library with a file to upload" do
50
52
  should "upload the file" do
53
+ @command.expects(:retrieve_identifier_for).returns(1)
51
54
  @mock_client.expects(:post).returns([201, {:id => 1, :url => "http://foo", :signature => "abc"}, {}])
52
55
  @command.expects(:say).with("Created library [lib1] with ID [1]")
53
56
  @command.expects(:sha1).with("/a/file")
@@ -30,7 +30,7 @@ class CreateLibrarysetCommandTest < Test::Unit::TestCase
30
30
  end
31
31
 
32
32
  should "retrieve the language id" do
33
- @command.expects(:get_resource_id).returns(1)
33
+ @command.expects(:retrieve_identifier_for).returns(1)
34
34
  @mock_client.expects(:post).with(EPC::Config::LIBRARY_SETS_PATH, {:name => "rubylibs", :language_id => 1}).returns([201, {}, {}])
35
35
  @command.expects(:say)
36
36
  assert_equal(@command.execute("", "rubylibs", "ruby"), 201)
@@ -0,0 +1,44 @@
1
+ require 'test_helper'
2
+
3
+ class CreatePluginCommandTest < Test::Unit::TestCase
4
+ should_require_login
5
+
6
+ context "execute" do
7
+ setup do
8
+ @mock_client = mock("Client")
9
+ @command = EPC::Command::CreatePluginCommand.new(@mock_client)
10
+ end
11
+
12
+ should "fail if mandatory attributes not specified" do
13
+ assert_raise EPC::Error::FatalError do
14
+ @command.execute("")
15
+ end
16
+ end
17
+
18
+ should "request creation of the plugin" do
19
+ @mock_client.expects(:post).with(EPC::Config::PLUGINS_PATH, {:name => "plugin_name", :plugin_version => "plugin_version", :group => "group", :extensions => false, :inherited => false}).returns([200, {}, {}])
20
+ @command.expects(:say).with("Plugin [plugin_name] created.")
21
+ @command.execute("", "plugin_name", "plugin_version", "group")
22
+ end
23
+
24
+ should "report reason for request failure" do
25
+ @mock_client.expects(:post).with(EPC::Config::PLUGINS_PATH, {:name => "plugin_name", :plugin_version => "plugin_version", :group => "group", :extensions => false, :inherited => false}).returns([500, {:message => "System Exception"}, {}])
26
+ @command.expects(:say).with("Request failed: [System Exception]")
27
+ @command.execute("", "plugin_name", "plugin_version", "group")
28
+ end
29
+
30
+ context "parse_plugin_opt" do
31
+ should "should retrieve contents of file when option begins with 'file:'" do
32
+ @command.expects(:read_file).with("path_to_file").returns("contents of file")
33
+ assert_equal @command.send(:parse_plugin_opt, "file:path_to_file"), "contents of file"
34
+ end
35
+
36
+ should "should return the content of the option when no file specified" do
37
+ assert_equal @command.send(:parse_plugin_opt, "option"), "option"
38
+ end
39
+
40
+ end
41
+ end
42
+
43
+
44
+ end