epc 1.0.2 → 1.0.3

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