ey-core 3.4.4 → 3.4.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (503) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +26 -23
  3. data/.ruby-gemset +1 -1
  4. data/.ruby-version +1 -1
  5. data/.travis.yml +23 -23
  6. data/CHANGELOG.md +166 -166
  7. data/Gemfile +21 -21
  8. data/Guardfile +15 -15
  9. data/LICENSE.txt +19 -19
  10. data/README.md +78 -78
  11. data/Rakefile +18 -18
  12. data/bin/console +4 -0
  13. data/bin/ey-core +4 -4
  14. data/examples/add_instance.rb +74 -74
  15. data/examples/boot_env.rb +60 -60
  16. data/examples/console/README.md +14 -14
  17. data/examples/console/address.md +51 -51
  18. data/examples/stop_env.rb +51 -51
  19. data/examples/terminate_instance.rb +62 -62
  20. data/ey-core.gemspec +51 -51
  21. data/features/accounts.feature +13 -13
  22. data/features/applications.feature +29 -29
  23. data/features/current_user.feature +14 -14
  24. data/features/environments.feature +30 -30
  25. data/features/init.feature +6 -6
  26. data/features/login.feature +6 -6
  27. data/features/scp.feature +6 -6
  28. data/features/step_definitions/accounts_steps.rb +23 -23
  29. data/features/step_definitions/applications_steps.rb +46 -46
  30. data/features/step_definitions/current_user_steps.rb +11 -11
  31. data/features/step_definitions/deprecated_command_steps.rb +3 -3
  32. data/features/step_definitions/environments_steps.rb +37 -37
  33. data/features/step_definitions/version_steps.rb +3 -3
  34. data/features/support/account_helpers.rb +89 -89
  35. data/features/support/app_helpers.rb +19 -19
  36. data/features/support/aruba.rb +1 -1
  37. data/features/support/boilerplate.rb +1 -1
  38. data/features/support/client_helpers.rb +36 -36
  39. data/features/support/config_file_helpers.rb +42 -42
  40. data/features/support/core.rb +19 -19
  41. data/features/support/deployment_helpers.rb +19 -19
  42. data/features/support/env.rb +40 -40
  43. data/features/support/environment_helpers.rb +23 -23
  44. data/features/support/fake_kernel.rb +23 -23
  45. data/features/support/io.rb +5 -5
  46. data/features/support/mock_api.rb +21 -21
  47. data/features/support/output_helpers.rb +7 -7
  48. data/features/support/resource_helpers.rb +189 -189
  49. data/features/support/server_helpers.rb +27 -27
  50. data/features/version.feature +8 -8
  51. data/features/whoami.feature +14 -14
  52. data/lib/ey-core/associations.rb +155 -155
  53. data/lib/ey-core/cli/accounts.rb +17 -17
  54. data/lib/ey-core/cli/applications.rb +36 -36
  55. data/lib/ey-core/cli/console.rb +28 -28
  56. data/lib/ey-core/cli/current_user.rb +16 -16
  57. data/lib/ey-core/cli/deploy.rb +123 -123
  58. data/lib/ey-core/cli/environments.rb +39 -39
  59. data/lib/ey-core/cli/errors.rb +11 -11
  60. data/lib/ey-core/cli/help.rb +30 -30
  61. data/lib/ey-core/cli/helpers/archive.rb +70 -70
  62. data/lib/ey-core/cli/helpers/chef.rb +51 -51
  63. data/lib/ey-core/cli/helpers/core.rb +196 -196
  64. data/lib/ey-core/cli/helpers/deprecated.rb +39 -39
  65. data/lib/ey-core/cli/helpers/log_streaming.rb +41 -41
  66. data/lib/ey-core/cli/helpers/server_sieve.rb +76 -76
  67. data/lib/ey-core/cli/helpers/stream_printer.rb +42 -42
  68. data/lib/ey-core/cli/init.rb +14 -14
  69. data/lib/ey-core/cli/login.rb +38 -38
  70. data/lib/ey-core/cli/logout.rb +22 -22
  71. data/lib/ey-core/cli/logs.rb +70 -70
  72. data/lib/ey-core/cli/main.rb +65 -65
  73. data/lib/ey-core/cli/recipes/apply.rb +65 -65
  74. data/lib/ey-core/cli/recipes/download.rb +52 -52
  75. data/lib/ey-core/cli/recipes/main.rb +21 -21
  76. data/lib/ey-core/cli/recipes/upload.rb +78 -78
  77. data/lib/ey-core/cli/recipes.rb +10 -10
  78. data/lib/ey-core/cli/scp.rb +14 -14
  79. data/lib/ey-core/cli/servers.rb +41 -41
  80. data/lib/ey-core/cli/ssh.rb +150 -150
  81. data/lib/ey-core/cli/status.rb +60 -60
  82. data/lib/ey-core/cli/subcommand.rb +53 -53
  83. data/lib/ey-core/cli/timeout_deploy.rb +58 -58
  84. data/lib/ey-core/cli/version.rb +16 -16
  85. data/lib/ey-core/cli/web/disable.rb +49 -49
  86. data/lib/ey-core/cli/web/enable.rb +46 -46
  87. data/lib/ey-core/cli/web/main.rb +21 -21
  88. data/lib/ey-core/cli/web/restart.rb +42 -42
  89. data/lib/ey-core/cli/web.rb +10 -10
  90. data/lib/ey-core/cli/whoami.rb +12 -12
  91. data/lib/ey-core/cli.rb +8 -8
  92. data/lib/ey-core/client/mock.rb +302 -302
  93. data/lib/ey-core/client/real.rb +93 -93
  94. data/lib/ey-core/client.rb +442 -442
  95. data/lib/ey-core/collection.rb +131 -131
  96. data/lib/ey-core/collections/account_cancellations.rb +6 -6
  97. data/lib/ey-core/collections/account_referrals.rb +10 -10
  98. data/lib/ey-core/collections/accounts.rb +8 -8
  99. data/lib/ey-core/collections/addons.rb +16 -16
  100. data/lib/ey-core/collections/addresses.rb +9 -9
  101. data/lib/ey-core/collections/alerts.rb +9 -9
  102. data/lib/ey-core/collections/application_archives.rb +9 -9
  103. data/lib/ey-core/collections/application_deployments.rb +9 -9
  104. data/lib/ey-core/collections/applications.rb +9 -9
  105. data/lib/ey-core/collections/auto_scaling_groups.rb +8 -8
  106. data/lib/ey-core/collections/backup_files.rb +9 -9
  107. data/lib/ey-core/collections/blueprints.rb +9 -9
  108. data/lib/ey-core/collections/components.rb +9 -9
  109. data/lib/ey-core/collections/contacts.rb +9 -9
  110. data/lib/ey-core/collections/costs.rb +8 -8
  111. data/lib/ey-core/collections/database_plan_usages.rb +7 -7
  112. data/lib/ey-core/collections/database_server_revisions.rb +7 -7
  113. data/lib/ey-core/collections/database_server_snapshots.rb +17 -17
  114. data/lib/ey-core/collections/database_server_usages.rb +7 -7
  115. data/lib/ey-core/collections/database_servers.rb +9 -9
  116. data/lib/ey-core/collections/database_services.rb +9 -9
  117. data/lib/ey-core/collections/deployments.rb +8 -8
  118. data/lib/ey-core/collections/environment_plan_usages.rb +7 -7
  119. data/lib/ey-core/collections/environments.rb +15 -15
  120. data/lib/ey-core/collections/features.rb +9 -9
  121. data/lib/ey-core/collections/firewall_rules.rb +9 -9
  122. data/lib/ey-core/collections/firewalls.rb +9 -9
  123. data/lib/ey-core/collections/gems.rb +6 -6
  124. data/lib/ey-core/collections/keypair_deployments.rb +9 -9
  125. data/lib/ey-core/collections/keypairs.rb +9 -9
  126. data/lib/ey-core/collections/legacy_alerts.rb +9 -9
  127. data/lib/ey-core/collections/load_balancer_nodes.rb +9 -9
  128. data/lib/ey-core/collections/load_balancer_services.rb +9 -9
  129. data/lib/ey-core/collections/load_balancers.rb +16 -16
  130. data/lib/ey-core/collections/logical_databases.rb +16 -16
  131. data/lib/ey-core/collections/logs.rb +9 -9
  132. data/lib/ey-core/collections/memberships.rb +9 -9
  133. data/lib/ey-core/collections/messages.rb +9 -9
  134. data/lib/ey-core/collections/plan_usages.rb +7 -7
  135. data/lib/ey-core/collections/provider_locations.rb +13 -13
  136. data/lib/ey-core/collections/providers.rb +15 -15
  137. data/lib/ey-core/collections/requests.rb +10 -10
  138. data/lib/ey-core/collections/server_events.rb +9 -9
  139. data/lib/ey-core/collections/server_usages.rb +7 -7
  140. data/lib/ey-core/collections/servers.rb +13 -13
  141. data/lib/ey-core/collections/services.rb +14 -14
  142. data/lib/ey-core/collections/ssl_certificates.rb +9 -9
  143. data/lib/ey-core/collections/storage_users.rb +10 -10
  144. data/lib/ey-core/collections/storages.rb +9 -9
  145. data/lib/ey-core/collections/tasks.rb +9 -9
  146. data/lib/ey-core/collections/tokens.rb +9 -9
  147. data/lib/ey-core/collections/untracked_addresses.rb +4 -4
  148. data/lib/ey-core/collections/untracked_servers.rb +9 -9
  149. data/lib/ey-core/collections/users.rb +12 -12
  150. data/lib/ey-core/collections/volumes.rb +9 -9
  151. data/lib/ey-core/logger.rb +31 -31
  152. data/lib/ey-core/memory_cache.rb +17 -17
  153. data/lib/ey-core/mock/helper.rb +104 -104
  154. data/lib/ey-core/mock/params.rb +31 -31
  155. data/lib/ey-core/mock/resources.rb +92 -92
  156. data/lib/ey-core/mock/searching.rb +115 -115
  157. data/lib/ey-core/mock/util.rb +23 -23
  158. data/lib/ey-core/model.rb +44 -44
  159. data/lib/ey-core/models/account.rb +70 -70
  160. data/lib/ey-core/models/account_cancellation.rb +6 -6
  161. data/lib/ey-core/models/account_referral.rb +8 -8
  162. data/lib/ey-core/models/account_trial.rb +15 -15
  163. data/lib/ey-core/models/addon.rb +37 -37
  164. data/lib/ey-core/models/address.rb +57 -57
  165. data/lib/ey-core/models/alert.rb +100 -99
  166. data/lib/ey-core/models/application.rb +32 -32
  167. data/lib/ey-core/models/application_archive.rb +67 -67
  168. data/lib/ey-core/models/application_deployment.rb +18 -18
  169. data/lib/ey-core/models/auto_scaling_group.rb +49 -49
  170. data/lib/ey-core/models/backup_file.rb +52 -52
  171. data/lib/ey-core/models/billing.rb +27 -27
  172. data/lib/ey-core/models/blueprint.rb +30 -30
  173. data/lib/ey-core/models/component.rb +11 -11
  174. data/lib/ey-core/models/contact.rb +14 -14
  175. data/lib/ey-core/models/cost.rb +16 -16
  176. data/lib/ey-core/models/database_plan_usage.rb +10 -10
  177. data/lib/ey-core/models/database_server.rb +56 -56
  178. data/lib/ey-core/models/database_server_revision.rb +10 -10
  179. data/lib/ey-core/models/database_server_snapshot.rb +43 -43
  180. data/lib/ey-core/models/database_server_usage.rb +15 -15
  181. data/lib/ey-core/models/database_service.rb +52 -52
  182. data/lib/ey-core/models/deployment.rb +30 -30
  183. data/lib/ey-core/models/environment.rb +242 -242
  184. data/lib/ey-core/models/environment_plan_usage.rb +10 -10
  185. data/lib/ey-core/models/feature.rb +33 -33
  186. data/lib/ey-core/models/firewall.rb +46 -46
  187. data/lib/ey-core/models/firewall_rule.rb +41 -41
  188. data/lib/ey-core/models/gem.rb +5 -5
  189. data/lib/ey-core/models/keypair.rb +38 -38
  190. data/lib/ey-core/models/keypair_deployment.rb +26 -26
  191. data/lib/ey-core/models/legacy_alert.rb +12 -12
  192. data/lib/ey-core/models/load_balancer.rb +43 -43
  193. data/lib/ey-core/models/load_balancer_node.rb +17 -17
  194. data/lib/ey-core/models/load_balancer_service.rb +22 -22
  195. data/lib/ey-core/models/log.rb +44 -44
  196. data/lib/ey-core/models/logical_database.rb +40 -40
  197. data/lib/ey-core/models/membership.rb +49 -49
  198. data/lib/ey-core/models/message.rb +27 -27
  199. data/lib/ey-core/models/plan_usage.rb +14 -14
  200. data/lib/ey-core/models/provider.rb +59 -59
  201. data/lib/ey-core/models/provider_location.rb +24 -24
  202. data/lib/ey-core/models/request.rb +105 -105
  203. data/lib/ey-core/models/server.rb +151 -151
  204. data/lib/ey-core/models/server_event.rb +11 -11
  205. data/lib/ey-core/models/server_usage.rb +15 -15
  206. data/lib/ey-core/models/service.rb +10 -10
  207. data/lib/ey-core/models/ssl_certificate.rb +44 -44
  208. data/lib/ey-core/models/storage.rb +38 -38
  209. data/lib/ey-core/models/storage_user.rb +44 -44
  210. data/lib/ey-core/models/support_trial.rb +10 -10
  211. data/lib/ey-core/models/task.rb +35 -35
  212. data/lib/ey-core/models/token.rb +24 -24
  213. data/lib/ey-core/models/untracked_address.rb +24 -24
  214. data/lib/ey-core/models/untracked_server.rb +45 -45
  215. data/lib/ey-core/models/user.rb +39 -39
  216. data/lib/ey-core/models/volume.rb +20 -20
  217. data/lib/ey-core/request.rb +21 -21
  218. data/lib/ey-core/request_failure.rb +11 -11
  219. data/lib/ey-core/requests/acknowledge_alert.rb +29 -29
  220. data/lib/ey-core/requests/apply_environment_updates.rb +54 -54
  221. data/lib/ey-core/requests/apply_server_updates.rb +52 -52
  222. data/lib/ey-core/requests/attach_address.rb +53 -53
  223. data/lib/ey-core/requests/authorized_channel.rb +22 -22
  224. data/lib/ey-core/requests/blueprint_environment.rb +72 -72
  225. data/lib/ey-core/requests/boot_environment.rb +187 -187
  226. data/lib/ey-core/requests/bootstrap_logical_database.rb +80 -80
  227. data/lib/ey-core/requests/cancel_account.rb +33 -33
  228. data/lib/ey-core/requests/change_environment_maintenance.rb +38 -38
  229. data/lib/ey-core/requests/create_account.rb +33 -33
  230. data/lib/ey-core/requests/create_addon.rb +35 -35
  231. data/lib/ey-core/requests/create_address.rb +53 -53
  232. data/lib/ey-core/requests/create_alert.rb +63 -63
  233. data/lib/ey-core/requests/create_application.rb +72 -72
  234. data/lib/ey-core/requests/create_application_archive.rb +44 -44
  235. data/lib/ey-core/requests/create_auto_scaling_group.rb +62 -62
  236. data/lib/ey-core/requests/create_backup_file.rb +52 -52
  237. data/lib/ey-core/requests/create_database_server.rb +72 -72
  238. data/lib/ey-core/requests/create_database_service.rb +57 -57
  239. data/lib/ey-core/requests/create_database_service_snapshot.rb +69 -69
  240. data/lib/ey-core/requests/create_environment.rb +76 -76
  241. data/lib/ey-core/requests/create_firewall.rb +62 -62
  242. data/lib/ey-core/requests/create_firewall_rule.rb +60 -60
  243. data/lib/ey-core/requests/create_keypair.rb +42 -42
  244. data/lib/ey-core/requests/create_keypair_deployment.rb +36 -36
  245. data/lib/ey-core/requests/create_load_balancer.rb +62 -62
  246. data/lib/ey-core/requests/create_log.rb +53 -53
  247. data/lib/ey-core/requests/create_logical_database.rb +56 -56
  248. data/lib/ey-core/requests/create_membership.rb +47 -47
  249. data/lib/ey-core/requests/create_message.rb +35 -35
  250. data/lib/ey-core/requests/create_password_reset.rb +38 -38
  251. data/lib/ey-core/requests/create_provider.rb +90 -90
  252. data/lib/ey-core/requests/create_server.rb +121 -121
  253. data/lib/ey-core/requests/create_ssl_certificate.rb +83 -83
  254. data/lib/ey-core/requests/create_storage.rb +64 -64
  255. data/lib/ey-core/requests/create_storage_user.rb +64 -64
  256. data/lib/ey-core/requests/create_task.rb +55 -55
  257. data/lib/ey-core/requests/create_token.rb +24 -24
  258. data/lib/ey-core/requests/create_untracked_address.rb +50 -50
  259. data/lib/ey-core/requests/create_untracked_server.rb +39 -39
  260. data/lib/ey-core/requests/create_user.rb +52 -52
  261. data/lib/ey-core/requests/deploy_environment_application.rb +60 -60
  262. data/lib/ey-core/requests/deprovision_environment.rb +17 -17
  263. data/lib/ey-core/requests/destroy_addon.rb +24 -24
  264. data/lib/ey-core/requests/destroy_auto_scaling_group.rb +44 -44
  265. data/lib/ey-core/requests/destroy_blueprint.rb +22 -22
  266. data/lib/ey-core/requests/destroy_database_server.rb +41 -41
  267. data/lib/ey-core/requests/destroy_database_server_snapshot.rb +42 -42
  268. data/lib/ey-core/requests/destroy_database_service.rb +57 -57
  269. data/lib/ey-core/requests/destroy_environment.rb +43 -43
  270. data/lib/ey-core/requests/destroy_firewall.rb +41 -41
  271. data/lib/ey-core/requests/destroy_firewall_rule.rb +41 -41
  272. data/lib/ey-core/requests/destroy_load_balancer.rb +30 -30
  273. data/lib/ey-core/requests/destroy_logical_database.rb +41 -41
  274. data/lib/ey-core/requests/destroy_provider.rb +34 -34
  275. data/lib/ey-core/requests/destroy_server.rb +48 -48
  276. data/lib/ey-core/requests/destroy_ssl_certificate.rb +28 -28
  277. data/lib/ey-core/requests/destroy_storage.rb +33 -33
  278. data/lib/ey-core/requests/destroy_storage_user.rb +38 -38
  279. data/lib/ey-core/requests/destroy_user.rb +29 -29
  280. data/lib/ey-core/requests/detach_address.rb +48 -48
  281. data/lib/ey-core/requests/disable_feature.rb +30 -30
  282. data/lib/ey-core/requests/discover_database_server.rb +66 -66
  283. data/lib/ey-core/requests/discover_database_server_snapshots.rb +69 -69
  284. data/lib/ey-core/requests/discover_provider_location.rb +57 -57
  285. data/lib/ey-core/requests/discover_server.rb +60 -60
  286. data/lib/ey-core/requests/download_file.rb +25 -25
  287. data/lib/ey-core/requests/enable_feature.rb +35 -35
  288. data/lib/ey-core/requests/get_account.rb +29 -29
  289. data/lib/ey-core/requests/get_account_cancellation.rb +21 -21
  290. data/lib/ey-core/requests/get_account_referrals.rb +28 -28
  291. data/lib/ey-core/requests/get_account_trial.rb +32 -32
  292. data/lib/ey-core/requests/get_accounts.rb +42 -42
  293. data/lib/ey-core/requests/get_addon.rb +25 -25
  294. data/lib/ey-core/requests/get_addons.rb +24 -24
  295. data/lib/ey-core/requests/get_address.rb +25 -25
  296. data/lib/ey-core/requests/get_addresses.rb +27 -27
  297. data/lib/ey-core/requests/get_alert.rb +21 -21
  298. data/lib/ey-core/requests/get_alerting_environments.rb +41 -41
  299. data/lib/ey-core/requests/get_alerts.rb +44 -44
  300. data/lib/ey-core/requests/get_api_token.rb +19 -19
  301. data/lib/ey-core/requests/get_application.rb +21 -21
  302. data/lib/ey-core/requests/get_application_archive.rb +32 -32
  303. data/lib/ey-core/requests/get_application_archives.rb +29 -29
  304. data/lib/ey-core/requests/get_application_deployment.rb +21 -21
  305. data/lib/ey-core/requests/get_application_deployments.rb +28 -28
  306. data/lib/ey-core/requests/get_applications.rb +28 -28
  307. data/lib/ey-core/requests/get_auto_scaling_group.rb +21 -21
  308. data/lib/ey-core/requests/get_auto_scaling_groups.rb +29 -29
  309. data/lib/ey-core/requests/get_backup_file.rb +21 -21
  310. data/lib/ey-core/requests/get_backup_files.rb +28 -28
  311. data/lib/ey-core/requests/get_billing.rb +24 -24
  312. data/lib/ey-core/requests/get_blueprint.rb +21 -21
  313. data/lib/ey-core/requests/get_blueprints.rb +29 -29
  314. data/lib/ey-core/requests/get_component.rb +21 -21
  315. data/lib/ey-core/requests/get_components.rb +29 -29
  316. data/lib/ey-core/requests/get_contacts.rb +34 -34
  317. data/lib/ey-core/requests/get_costs.rb +25 -25
  318. data/lib/ey-core/requests/get_current_user.rb +19 -19
  319. data/lib/ey-core/requests/get_database_plan_usages.rb +24 -24
  320. data/lib/ey-core/requests/get_database_server.rb +21 -21
  321. data/lib/ey-core/requests/get_database_server_revisions.rb +27 -27
  322. data/lib/ey-core/requests/get_database_server_snapshot.rb +20 -20
  323. data/lib/ey-core/requests/get_database_server_snapshots.rb +39 -39
  324. data/lib/ey-core/requests/get_database_server_usages.rb +24 -24
  325. data/lib/ey-core/requests/get_database_servers.rb +30 -30
  326. data/lib/ey-core/requests/get_database_servers_firewalls.rb +30 -30
  327. data/lib/ey-core/requests/get_database_service.rb +20 -20
  328. data/lib/ey-core/requests/get_database_services.rb +55 -55
  329. data/lib/ey-core/requests/get_deployment.rb +19 -19
  330. data/lib/ey-core/requests/get_deployments.rb +29 -29
  331. data/lib/ey-core/requests/get_environment.rb +21 -21
  332. data/lib/ey-core/requests/get_environment_database_services.rb +21 -21
  333. data/lib/ey-core/requests/get_environment_logical_databases.rb +20 -20
  334. data/lib/ey-core/requests/get_environment_plan_usages.rb +24 -24
  335. data/lib/ey-core/requests/get_environments.rb +29 -29
  336. data/lib/ey-core/requests/get_feature.rb +21 -21
  337. data/lib/ey-core/requests/get_features.rb +28 -28
  338. data/lib/ey-core/requests/get_firewall.rb +21 -21
  339. data/lib/ey-core/requests/get_firewall_rule.rb +21 -21
  340. data/lib/ey-core/requests/get_firewall_rules.rb +29 -29
  341. data/lib/ey-core/requests/get_firewalls.rb +45 -45
  342. data/lib/ey-core/requests/get_gem.rb +24 -24
  343. data/lib/ey-core/requests/get_keypair.rb +21 -21
  344. data/lib/ey-core/requests/get_keypair_deployment.rb +21 -21
  345. data/lib/ey-core/requests/get_keypair_deployments.rb +29 -29
  346. data/lib/ey-core/requests/get_keypairs.rb +34 -34
  347. data/lib/ey-core/requests/get_legacy_alert.rb +21 -21
  348. data/lib/ey-core/requests/get_legacy_alerts.rb +29 -29
  349. data/lib/ey-core/requests/get_load_balancer.rb +21 -21
  350. data/lib/ey-core/requests/get_load_balancer_node.rb +21 -21
  351. data/lib/ey-core/requests/get_load_balancer_nodes.rb +30 -30
  352. data/lib/ey-core/requests/get_load_balancer_service.rb +21 -21
  353. data/lib/ey-core/requests/get_load_balancer_services.rb +30 -30
  354. data/lib/ey-core/requests/get_load_balancers.rb +29 -29
  355. data/lib/ey-core/requests/get_log.rb +21 -21
  356. data/lib/ey-core/requests/get_logical_database.rb +23 -23
  357. data/lib/ey-core/requests/get_logical_databases.rb +36 -36
  358. data/lib/ey-core/requests/get_logs.rb +37 -37
  359. data/lib/ey-core/requests/get_membership.rb +21 -21
  360. data/lib/ey-core/requests/get_memberships.rb +29 -29
  361. data/lib/ey-core/requests/get_message.rb +28 -28
  362. data/lib/ey-core/requests/get_messages.rb +27 -27
  363. data/lib/ey-core/requests/get_metadata.rb +22 -22
  364. data/lib/ey-core/requests/get_operational_contact.rb +21 -21
  365. data/lib/ey-core/requests/get_operational_contacts.rb +20 -20
  366. data/lib/ey-core/requests/get_plan_usages.rb +24 -24
  367. data/lib/ey-core/requests/get_possible_provider_locations.rb +19 -19
  368. data/lib/ey-core/requests/get_provider.rb +21 -21
  369. data/lib/ey-core/requests/get_provider_location.rb +29 -29
  370. data/lib/ey-core/requests/get_provider_locations.rb +28 -28
  371. data/lib/ey-core/requests/get_providers.rb +28 -28
  372. data/lib/ey-core/requests/get_request.rb +71 -71
  373. data/lib/ey-core/requests/get_requests.rb +29 -29
  374. data/lib/ey-core/requests/get_server.rb +34 -34
  375. data/lib/ey-core/requests/get_server_event.rb +20 -20
  376. data/lib/ey-core/requests/get_server_events.rb +28 -28
  377. data/lib/ey-core/requests/get_server_usages.rb +24 -24
  378. data/lib/ey-core/requests/get_servers.rb +25 -25
  379. data/lib/ey-core/requests/get_ssl_certificate.rb +23 -23
  380. data/lib/ey-core/requests/get_ssl_certificates.rb +28 -28
  381. data/lib/ey-core/requests/get_storage.rb +21 -21
  382. data/lib/ey-core/requests/get_storage_user.rb +21 -21
  383. data/lib/ey-core/requests/get_storage_users.rb +28 -28
  384. data/lib/ey-core/requests/get_storages.rb +28 -28
  385. data/lib/ey-core/requests/get_support_trial.rb +51 -51
  386. data/lib/ey-core/requests/get_task.rb +21 -21
  387. data/lib/ey-core/requests/get_tasks.rb +28 -28
  388. data/lib/ey-core/requests/get_token.rb +21 -21
  389. data/lib/ey-core/requests/get_token_by_login.rb +30 -30
  390. data/lib/ey-core/requests/get_tokens.rb +32 -32
  391. data/lib/ey-core/requests/get_untracked_server.rb +18 -18
  392. data/lib/ey-core/requests/get_untracked_servers.rb +24 -24
  393. data/lib/ey-core/requests/get_user.rb +21 -21
  394. data/lib/ey-core/requests/get_users.rb +42 -42
  395. data/lib/ey-core/requests/get_volume.rb +21 -21
  396. data/lib/ey-core/requests/get_volumes.rb +28 -28
  397. data/lib/ey-core/requests/reboot_server.rb +39 -39
  398. data/lib/ey-core/requests/reconcile_server.rb +39 -39
  399. data/lib/ey-core/requests/request_callback.rb +26 -26
  400. data/lib/ey-core/requests/reset_password.rb +31 -31
  401. data/lib/ey-core/requests/reset_server_state.rb +32 -32
  402. data/lib/ey-core/requests/restart_environment_app_servers.rb +38 -38
  403. data/lib/ey-core/requests/run_cluster_application_action.rb +28 -28
  404. data/lib/ey-core/requests/run_environment_application_action.rb +29 -29
  405. data/lib/ey-core/requests/signup.rb +56 -56
  406. data/lib/ey-core/requests/start_server.rb +39 -39
  407. data/lib/ey-core/requests/stop_server.rb +39 -39
  408. data/lib/ey-core/requests/timeout_deployment.rb +27 -27
  409. data/lib/ey-core/requests/unassign_environment.rb +31 -31
  410. data/lib/ey-core/requests/update_addon.rb +28 -28
  411. data/lib/ey-core/requests/update_address.rb +29 -29
  412. data/lib/ey-core/requests/update_alert.rb +32 -32
  413. data/lib/ey-core/requests/update_application_archive.rb +23 -23
  414. data/lib/ey-core/requests/update_auto_scaling_group.rb +45 -45
  415. data/lib/ey-core/requests/update_billing.rb +26 -26
  416. data/lib/ey-core/requests/update_blueprint.rb +29 -29
  417. data/lib/ey-core/requests/update_connector.rb +32 -32
  418. data/lib/ey-core/requests/update_environment.rb +17 -17
  419. data/lib/ey-core/requests/update_membership.rb +29 -29
  420. data/lib/ey-core/requests/update_provider_location.rb +29 -29
  421. data/lib/ey-core/requests/update_server.rb +29 -29
  422. data/lib/ey-core/requests/update_ssl_certificate.rb +25 -25
  423. data/lib/ey-core/requests/update_untracked_server.rb +24 -24
  424. data/lib/ey-core/requests/upload_file.rb +44 -44
  425. data/lib/ey-core/requests/upload_recipes_for_environment.rb +28 -28
  426. data/lib/ey-core/response.rb +59 -59
  427. data/lib/ey-core/response_cache.rb +29 -29
  428. data/lib/ey-core/subscribable.rb +60 -60
  429. data/lib/ey-core/test_helpers/account_helpers.rb +73 -73
  430. data/lib/ey-core/test_helpers/alert_helpers.rb +16 -16
  431. data/lib/ey-core/test_helpers/client_helpers.rb +40 -40
  432. data/lib/ey-core/test_helpers/cucumber.rb +3 -3
  433. data/lib/ey-core/test_helpers/resource_helpers.rb +196 -196
  434. data/lib/ey-core/test_helpers/rspec.rb +5 -5
  435. data/lib/ey-core/test_helpers.rb +15 -15
  436. data/lib/ey-core/token_authentication.rb +13 -13
  437. data/lib/ey-core/version.rb +5 -5
  438. data/lib/ey-core.rb +59 -59
  439. data/spec/account_spec.rb +65 -65
  440. data/spec/account_trial_spec.rb +17 -17
  441. data/spec/accounts_referrals_spec.rb +20 -20
  442. data/spec/accounts_spec.rb +113 -113
  443. data/spec/addons_and_vars_spec.rb +62 -62
  444. data/spec/addresses_spec.rb +56 -56
  445. data/spec/alerts_spec.rb +155 -155
  446. data/spec/application_archives_spec.rb +39 -39
  447. data/spec/applications_spec.rb +65 -65
  448. data/spec/auto_scaling_groups_spec.rb +28 -28
  449. data/spec/billing_spec.rb +31 -31
  450. data/spec/blueprints_spec.rb +47 -47
  451. data/spec/client_spec.rb +16 -16
  452. data/spec/collection_spec.rb +43 -43
  453. data/spec/costs_spec.rb +22 -22
  454. data/spec/database_plan_usage_spec.rb +39 -39
  455. data/spec/database_server_snapshots_spec.rb +41 -41
  456. data/spec/database_server_usage_spec.rb +49 -49
  457. data/spec/database_servers_spec.rb +61 -61
  458. data/spec/database_services_spec.rb +76 -76
  459. data/spec/deployments_spec.rb +24 -24
  460. data/spec/environment_plan_usage_spec.rb +38 -38
  461. data/spec/environments_spec.rb +212 -212
  462. data/spec/ey-core/cli/accounts_spec.rb +20 -20
  463. data/spec/ey-core/cli/helpers/server_sieve_spec.rb +226 -226
  464. data/spec/ey-core/cli/recipes/apply_spec.rb +34 -34
  465. data/spec/ey-core/cli/recipes/download_spec.rb +93 -93
  466. data/spec/ey-core/cli/recipes/upload_spec.rb +80 -80
  467. data/spec/features_spec.rb +79 -79
  468. data/spec/firewalls_spec.rb +84 -84
  469. data/spec/gems_spec.rb +11 -11
  470. data/spec/keypair_deployments_spec.rb +33 -33
  471. data/spec/keypairs_spec.rb +51 -51
  472. data/spec/legacy_alerts_spec.rb +44 -44
  473. data/spec/load_balancers_spec.rb +31 -31
  474. data/spec/logical_databases_spec.rb +38 -38
  475. data/spec/logs_spec.rb +44 -44
  476. data/spec/memberships_spec.rb +73 -73
  477. data/spec/messages_spec.rb +27 -27
  478. data/spec/metadata_spec.rb +11 -11
  479. data/spec/plan_usage_spec.rb +65 -65
  480. data/spec/provider_locations_spec.rb +85 -85
  481. data/spec/providers_spec.rb +105 -105
  482. data/spec/requests/upload_file_spec.rb +25 -25
  483. data/spec/requests_spec.rb +23 -23
  484. data/spec/reset_password_spec.rb +22 -22
  485. data/spec/server_events_spec.rb +31 -31
  486. data/spec/server_usage_spec.rb +70 -70
  487. data/spec/servers_spec.rb +202 -202
  488. data/spec/services_spec.rb +9 -9
  489. data/spec/signups_spec.rb +45 -45
  490. data/spec/spec_helper.rb +20 -20
  491. data/spec/ssl_certificates_spec.rb +94 -94
  492. data/spec/storages_spec.rb +57 -57
  493. data/spec/support/cli_helpers.rb +47 -47
  494. data/spec/support/core.rb +23 -23
  495. data/spec/support/coverage.rb +43 -43
  496. data/spec/support/fake_kernel.rb +21 -21
  497. data/spec/support/helpers.rb +1 -1
  498. data/spec/support/timecop.rb +8 -8
  499. data/spec/support_trial_spec.rb +33 -33
  500. data/spec/tokens_spec.rb +59 -59
  501. data/spec/untracked_servers_spec.rb +59 -59
  502. data/spec/users_spec.rb +108 -108
  503. metadata +6 -5
@@ -1,150 +1,150 @@
1
- require 'ey-core/cli/helpers/server_sieve'
2
- require 'ey-core/cli/subcommand'
3
-
4
- module Ey
5
- module Core
6
- module Cli
7
- class Ssh < Subcommand
8
- title "ssh"
9
- summary "Open an SSH session to the environment's application master"
10
-
11
- option :account,
12
- short: "c",
13
- long: "account",
14
- description: "Name or id of account",
15
- argument: "account"
16
-
17
- option :environment,
18
- short: "e",
19
- long: "environment",
20
- description: "Name or id of environment",
21
- argument: "environment"
22
-
23
- option :server,
24
- short: 's',
25
- long: "server",
26
- description: "Specific server to ssh into. Id or amazon id (i-12345)",
27
- argument: "server"
28
-
29
- option :utilities,
30
- long: "utilities",
31
- description: "Run command on the utility servers with the given names. Specify all to run the command on all utility servers.",
32
- argument: "'all,resque,redis,etc'"
33
-
34
- option :command,
35
- long: "command",
36
- description: "Command to run",
37
- argument: "'command with args'"
38
-
39
- option :shell,
40
- long: "shell",
41
- description: "Run command in a shell other than bash",
42
- argument: "shell"
43
-
44
- option :bind_address,
45
- long: "bind_address",
46
- description: "When no command is specified, pass -L to ssh",
47
- argument: "bind address"
48
-
49
- switch :all,
50
- long: "all",
51
- description: "Run command on all servers"
52
-
53
- switch :app_servers,
54
- long: "app_servers",
55
- description: "Run command on all application servers"
56
-
57
- switch :db_servers,
58
- long: "db_servers",
59
- description: "Run command on all database servers"
60
-
61
- switch :db_master,
62
- long: "db_master",
63
- description: "Run command on database master"
64
-
65
- switch :db_slaves,
66
- long: "db_slaves",
67
- description: "Run command on database slaves"
68
-
69
- switch :tty,
70
- short: 't',
71
- long: "tty",
72
- description: "Allocated a tty for the command"
73
-
74
- def handle
75
- operator, environment = core_operator_and_environment_for(options)
76
- abort "Unable to find matching environment".red unless environment
77
-
78
- cmd = option(:command)
79
- ssh_opts = []
80
- ssh_cmd = ["ssh"]
81
- exits = []
82
- user = environment.username
83
- servers = []
84
-
85
- if option(:command)
86
- if shell = option(:shell)
87
- cmd = Escape.shell_command([shell,'-lc',cmd])
88
- end
89
-
90
- if switch_active?(:tty)
91
- ssh_opts << "-t"
92
- elsif cmd.match(/sudo/)
93
- puts "sudo commands often need a tty to run correctly. Use -t option to spawn a tty.".yellow
94
- end
95
-
96
- servers += Ey::Core::Cli::Helpers::ServerSieve.filter(
97
- environment.servers,
98
- all: switch_active?(:all),
99
- app_servers: switch_active?(:app_servers),
100
- db_servers: switch_active?(:db_servers),
101
- db_master: switch_active?(:db_master),
102
- utilities: option(:utilities)
103
- )
104
- else
105
- if option(:bind_address)
106
- ssh_opts += ["-L", option(:bind_address)]
107
- end
108
-
109
- if option(:server)
110
- servers += [core_server_for(server: option(:server), operator: environment)]
111
- else
112
- servers += Ey::Core::Cli::Helpers::ServerSieve.filter(
113
- environment.servers,
114
- all: switch_active?(:all),
115
- app_servers: switch_active?(:app_servers),
116
- db_servers: switch_active?(:db_servers),
117
- db_master: switch_active?(:db_master),
118
- utilities: option(:utilities)
119
- )
120
-
121
- # Reinstate default behavior: If no command is passed and no
122
- # roles are passed, open a connection to the app master
123
- if servers.empty?
124
- servers += (environment.servers.all(role: "app_master") + environment.servers.all(role: "solo")).to_a
125
- end
126
- end
127
- end
128
-
129
- if servers.empty?
130
- abort "Unable to find any matching servers. Aborting.".red
131
- end
132
-
133
- servers.uniq!
134
-
135
- servers.each do |server|
136
- host = server.public_hostname
137
- name = server.name ? "#{server.role} (#{server.name})" : server.role
138
- puts "\nConnecting to #{name} #{host}".green
139
- sshcmd = Escape.shell_command((ssh_cmd + ["#{user}@#{host}"] + [cmd]).compact)
140
- puts "Running command: #{sshcmd}".green
141
- system sshcmd
142
- exits << $?.exitstatus
143
- end
144
-
145
- exit exits.detect {|status| status != 0 } || 0
146
- end
147
- end
148
- end
149
- end
150
- end
1
+ require 'ey-core/cli/helpers/server_sieve'
2
+ require 'ey-core/cli/subcommand'
3
+
4
+ module Ey
5
+ module Core
6
+ module Cli
7
+ class Ssh < Subcommand
8
+ title "ssh"
9
+ summary "Open an SSH session to the environment's application master"
10
+
11
+ option :account,
12
+ short: "c",
13
+ long: "account",
14
+ description: "Name or id of account",
15
+ argument: "account"
16
+
17
+ option :environment,
18
+ short: "e",
19
+ long: "environment",
20
+ description: "Name or id of environment",
21
+ argument: "environment"
22
+
23
+ option :server,
24
+ short: 's',
25
+ long: "server",
26
+ description: "Specific server to ssh into. Id or amazon id (i-12345)",
27
+ argument: "server"
28
+
29
+ option :utilities,
30
+ long: "utilities",
31
+ description: "Run command on the utility servers with the given names. Specify all to run the command on all utility servers.",
32
+ argument: "'all,resque,redis,etc'"
33
+
34
+ option :command,
35
+ long: "command",
36
+ description: "Command to run",
37
+ argument: "'command with args'"
38
+
39
+ option :shell,
40
+ long: "shell",
41
+ description: "Run command in a shell other than bash",
42
+ argument: "shell"
43
+
44
+ option :bind_address,
45
+ long: "bind_address",
46
+ description: "When no command is specified, pass -L to ssh",
47
+ argument: "bind address"
48
+
49
+ switch :all,
50
+ long: "all",
51
+ description: "Run command on all servers"
52
+
53
+ switch :app_servers,
54
+ long: "app_servers",
55
+ description: "Run command on all application servers"
56
+
57
+ switch :db_servers,
58
+ long: "db_servers",
59
+ description: "Run command on all database servers"
60
+
61
+ switch :db_master,
62
+ long: "db_master",
63
+ description: "Run command on database master"
64
+
65
+ switch :db_slaves,
66
+ long: "db_slaves",
67
+ description: "Run command on database slaves"
68
+
69
+ switch :tty,
70
+ short: 't',
71
+ long: "tty",
72
+ description: "Allocated a tty for the command"
73
+
74
+ def handle
75
+ operator, environment = core_operator_and_environment_for(options)
76
+ abort "Unable to find matching environment".red unless environment
77
+
78
+ cmd = option(:command)
79
+ ssh_opts = []
80
+ ssh_cmd = ["ssh"]
81
+ exits = []
82
+ user = environment.username
83
+ servers = []
84
+
85
+ if option(:command)
86
+ if shell = option(:shell)
87
+ cmd = Escape.shell_command([shell,'-lc',cmd])
88
+ end
89
+
90
+ if switch_active?(:tty)
91
+ ssh_opts << "-t"
92
+ elsif cmd.match(/sudo/)
93
+ puts "sudo commands often need a tty to run correctly. Use -t option to spawn a tty.".yellow
94
+ end
95
+
96
+ servers += Ey::Core::Cli::Helpers::ServerSieve.filter(
97
+ environment.servers,
98
+ all: switch_active?(:all),
99
+ app_servers: switch_active?(:app_servers),
100
+ db_servers: switch_active?(:db_servers),
101
+ db_master: switch_active?(:db_master),
102
+ utilities: option(:utilities)
103
+ )
104
+ else
105
+ if option(:bind_address)
106
+ ssh_opts += ["-L", option(:bind_address)]
107
+ end
108
+
109
+ if option(:server)
110
+ servers += [core_server_for(server: option(:server), operator: environment)]
111
+ else
112
+ servers += Ey::Core::Cli::Helpers::ServerSieve.filter(
113
+ environment.servers,
114
+ all: switch_active?(:all),
115
+ app_servers: switch_active?(:app_servers),
116
+ db_servers: switch_active?(:db_servers),
117
+ db_master: switch_active?(:db_master),
118
+ utilities: option(:utilities)
119
+ )
120
+
121
+ # Reinstate default behavior: If no command is passed and no
122
+ # roles are passed, open a connection to the app master
123
+ if servers.empty?
124
+ servers += (environment.servers.all(role: "app_master") + environment.servers.all(role: "solo")).to_a
125
+ end
126
+ end
127
+ end
128
+
129
+ if servers.empty?
130
+ abort "Unable to find any matching servers. Aborting.".red
131
+ end
132
+
133
+ servers.uniq!
134
+
135
+ servers.each do |server|
136
+ host = server.public_hostname
137
+ name = server.name ? "#{server.role} (#{server.name})" : server.role
138
+ puts "\nConnecting to #{name} #{host}".green
139
+ sshcmd = Escape.shell_command((ssh_cmd + ["#{user}@#{host}"] + [cmd]).compact)
140
+ puts "Running command: #{sshcmd}".green
141
+ system sshcmd
142
+ exits << $?.exitstatus
143
+ end
144
+
145
+ exit exits.detect {|status| status != 0 } || 0
146
+ end
147
+ end
148
+ end
149
+ end
150
+ end
@@ -1,60 +1,60 @@
1
- require 'ey-core/cli/subcommand'
2
- require 'ey-core/cli/helpers/log_streaming'
3
-
4
- module Ey
5
- module Core
6
- module Cli
7
- class Status < Subcommand
8
- include Ey::Core::Cli::Helpers::LogStreaming
9
- title "status"
10
- summary "Show the deployment status of the app"
11
- description <<-DESC
12
- Show the current status of the most recent deployment of the specifed application and environment
13
- DESC
14
-
15
- option :environment,
16
- short: "e",
17
- long: "environment",
18
- description: "Name or id of the environment to deploy to.",
19
- argument: "Environment"
20
-
21
- option :account,
22
- short: 'c',
23
- long: 'account',
24
- description: 'Name or ID of the account that the environment resides in. If no account is specified, the app will deploy to the first environment that meets the criteria, in the accounts you have access to.',
25
- argument: 'Account name or id'
26
-
27
- option :app,
28
- short: "a",
29
- long: "app",
30
- description: "Application name or ID to deploy. If :account is not specified, this will be the first app that matches the criteria in the accounts you have access to.",
31
- argument: "app"
32
-
33
- switch :tail,
34
- long: "tail",
35
- description: "tail in-progress deployment log"
36
-
37
- def handle
38
- operator, environment = core_operator_and_environment_for(self.options)
39
- app = core_application_for(environment, self.options)
40
- deploy = environment.latest_deploy(app)
41
-
42
- puts environment.release_label
43
- puts "#{environment.servers.size} servers"
44
- environment.servers.each do |s|
45
- puts [s.provisioned_id, s.role, s.state].join(" ")
46
- end
47
- if deploy
48
- ap deploy
49
- if switch_active?(:tail)
50
- stream_deploy_log(deploy.request)
51
- end
52
- else
53
- puts "Never Deployed"
54
- end
55
- end
56
-
57
- end
58
- end
59
- end
60
- end
1
+ require 'ey-core/cli/subcommand'
2
+ require 'ey-core/cli/helpers/log_streaming'
3
+
4
+ module Ey
5
+ module Core
6
+ module Cli
7
+ class Status < Subcommand
8
+ include Ey::Core::Cli::Helpers::LogStreaming
9
+ title "status"
10
+ summary "Show the deployment status of the app"
11
+ description <<-DESC
12
+ Show the current status of the most recent deployment of the specifed application and environment
13
+ DESC
14
+
15
+ option :environment,
16
+ short: "e",
17
+ long: "environment",
18
+ description: "Name or id of the environment to deploy to.",
19
+ argument: "Environment"
20
+
21
+ option :account,
22
+ short: 'c',
23
+ long: 'account',
24
+ description: 'Name or ID of the account that the environment resides in. If no account is specified, the app will deploy to the first environment that meets the criteria, in the accounts you have access to.',
25
+ argument: 'Account name or id'
26
+
27
+ option :app,
28
+ short: "a",
29
+ long: "app",
30
+ description: "Application name or ID to deploy. If :account is not specified, this will be the first app that matches the criteria in the accounts you have access to.",
31
+ argument: "app"
32
+
33
+ switch :tail,
34
+ long: "tail",
35
+ description: "tail in-progress deployment log"
36
+
37
+ def handle
38
+ operator, environment = core_operator_and_environment_for(self.options)
39
+ app = core_application_for(environment, self.options)
40
+ deploy = environment.latest_deploy(app)
41
+
42
+ puts environment.release_label
43
+ puts "#{environment.servers.size} servers"
44
+ environment.servers.each do |s|
45
+ puts [s.provisioned_id, s.role, s.state].join(" ")
46
+ end
47
+ if deploy
48
+ ap deploy
49
+ if switch_active?(:tail)
50
+ stream_deploy_log(deploy.request)
51
+ end
52
+ else
53
+ puts "Never Deployed"
54
+ end
55
+ end
56
+
57
+ end
58
+ end
59
+ end
60
+ end
@@ -1,53 +1,53 @@
1
- require 'belafonte'
2
- require 'colorize'
3
- require 'table_print'
4
- require 'ey-core'
5
- require 'ey-core/cli/helpers/core'
6
-
7
- module Ey
8
- module Core
9
- module Cli
10
- class Subcommand < Belafonte::App
11
- include Ey::Core::Cli::Helpers::Core
12
-
13
- def setup
14
- $stdout = stdout
15
- $stderr = stderr
16
- $stdin = stdin
17
- $kernel = kernel
18
- end
19
-
20
- def run_handle
21
- super
22
- rescue Ey::Core::Response::Error => e
23
- if ENV["DEBUG"]
24
- puts e.inspect
25
- puts e.backtrace
26
- end
27
- handle_core_error(e)
28
- rescue => e
29
- if ENV["DEBUG"]
30
- puts e.inspect
31
- puts e.backtrace
32
- end
33
- stderr.puts "Error:".red
34
- stderr.puts Wrapomatic.wrap(e.message, indents: 1)
35
- raise SystemExit.new(255)
36
- end
37
-
38
- #TODO: a lot more errors that would could handle with nice messages, eventually this should probably be it's own class
39
- def handle_core_error(e)
40
- stderr.puts "Error: #{e.error_type}".red
41
- (e.response.body["errors"] || [e.message]).each do |message|
42
- stderr.puts Wrapomatic.wrap(message, indents: 1)
43
- end
44
- if e.is_a?(Ey::Core::Response::Unauthorized)
45
- stderr.puts "Check the contents of ~/.ey-core vs https://cloud.engineyard.com/cli"
46
- end
47
- raise SystemExit.new(255)
48
- end
49
-
50
- end
51
- end
52
- end
53
- end
1
+ require 'belafonte'
2
+ require 'colorize'
3
+ require 'table_print'
4
+ require 'ey-core'
5
+ require 'ey-core/cli/helpers/core'
6
+
7
+ module Ey
8
+ module Core
9
+ module Cli
10
+ class Subcommand < Belafonte::App
11
+ include Ey::Core::Cli::Helpers::Core
12
+
13
+ def setup
14
+ $stdout = stdout
15
+ $stderr = stderr
16
+ $stdin = stdin
17
+ $kernel = kernel
18
+ end
19
+
20
+ def run_handle
21
+ super
22
+ rescue Ey::Core::Response::Error => e
23
+ if ENV["DEBUG"]
24
+ puts e.inspect
25
+ puts e.backtrace
26
+ end
27
+ handle_core_error(e)
28
+ rescue => e
29
+ if ENV["DEBUG"]
30
+ puts e.inspect
31
+ puts e.backtrace
32
+ end
33
+ stderr.puts "Error:".red
34
+ stderr.puts Wrapomatic.wrap(e.message, indents: 1)
35
+ raise SystemExit.new(255)
36
+ end
37
+
38
+ #TODO: a lot more errors that would could handle with nice messages, eventually this should probably be it's own class
39
+ def handle_core_error(e)
40
+ stderr.puts "Error: #{e.error_type}".red
41
+ (e.response.body["errors"] || [e.message]).each do |message|
42
+ stderr.puts Wrapomatic.wrap(message, indents: 1)
43
+ end
44
+ if e.is_a?(Ey::Core::Response::Unauthorized)
45
+ stderr.puts "Check the contents of ~/.ey-core vs https://cloud.engineyard.com/cli"
46
+ end
47
+ raise SystemExit.new(255)
48
+ end
49
+
50
+ end
51
+ end
52
+ end
53
+ end
@@ -1,58 +1,58 @@
1
- require 'ey-core/cli/subcommand'
2
-
3
- module Ey
4
- module Core
5
- module Cli
6
- class TimeoutDeploy < Subcommand
7
- title "timeout-deploy"
8
- summary "Fail a stuck unfinished deployment"
9
- description <<-DESC
10
- NOTICE: Timing out a deploy does not stop currently running deploy
11
- processes.
12
-
13
- The latest running deployment will be marked as failed, allowing a
14
- new deployment to be run. It is possible to mark a potentially successful
15
- deployment as failed. Only run this when a deployment is known to be
16
- wrongly unfinished/stuck and when further deployments are blocked.
17
- DESC
18
-
19
- option :environment,
20
- short: "e",
21
- long: "environment",
22
- description: "Name or id of the environment to deploy to.",
23
- argument: "Environment"
24
-
25
- option :account,
26
- short: 'c',
27
- long: 'account',
28
- description: 'Name or ID of the account that the environment resides in. If no account is specified, the app will deploy to the first environment that meets the criteria, in the accounts you have access to.',
29
- argument: 'Account name or id'
30
-
31
- option :app,
32
- short: "a",
33
- long: "app",
34
- description: "Application name or ID to deploy. If :account is not specified, this will be the first app that matches the criteria in the accounts you have access to.",
35
- argument: "app"
36
-
37
- option :message,
38
- short: "m",
39
- long: "message",
40
- description: "Custom message for why the deploy is timed out",
41
- argument: "message"
42
-
43
- def handle
44
- operator, environment = core_operator_and_environment_for(self.options)
45
- app = core_application_for(environment, options)
46
- deployment = core_client.
47
- deployments.
48
- first(environment_id: environment.id, application_id: app.id)
49
-
50
- puts "Timing out the most recent deployment (deploy started at: #{deployment.started_at})".green
51
-
52
- deployment.timeout(option(:message))
53
- ap deployment
54
- end
55
- end
56
- end
57
- end
58
- end
1
+ require 'ey-core/cli/subcommand'
2
+
3
+ module Ey
4
+ module Core
5
+ module Cli
6
+ class TimeoutDeploy < Subcommand
7
+ title "timeout-deploy"
8
+ summary "Fail a stuck unfinished deployment"
9
+ description <<-DESC
10
+ NOTICE: Timing out a deploy does not stop currently running deploy
11
+ processes.
12
+
13
+ The latest running deployment will be marked as failed, allowing a
14
+ new deployment to be run. It is possible to mark a potentially successful
15
+ deployment as failed. Only run this when a deployment is known to be
16
+ wrongly unfinished/stuck and when further deployments are blocked.
17
+ DESC
18
+
19
+ option :environment,
20
+ short: "e",
21
+ long: "environment",
22
+ description: "Name or id of the environment to deploy to.",
23
+ argument: "Environment"
24
+
25
+ option :account,
26
+ short: 'c',
27
+ long: 'account',
28
+ description: 'Name or ID of the account that the environment resides in. If no account is specified, the app will deploy to the first environment that meets the criteria, in the accounts you have access to.',
29
+ argument: 'Account name or id'
30
+
31
+ option :app,
32
+ short: "a",
33
+ long: "app",
34
+ description: "Application name or ID to deploy. If :account is not specified, this will be the first app that matches the criteria in the accounts you have access to.",
35
+ argument: "app"
36
+
37
+ option :message,
38
+ short: "m",
39
+ long: "message",
40
+ description: "Custom message for why the deploy is timed out",
41
+ argument: "message"
42
+
43
+ def handle
44
+ operator, environment = core_operator_and_environment_for(self.options)
45
+ app = core_application_for(environment, options)
46
+ deployment = core_client.
47
+ deployments.
48
+ first(environment_id: environment.id, application_id: app.id)
49
+
50
+ puts "Timing out the most recent deployment (deploy started at: #{deployment.started_at})".green
51
+
52
+ deployment.timeout(option(:message))
53
+ ap deployment
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end