static 1.0.0 → 1.0.1

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 (296) hide show
  1. checksums.yaml +7 -0
  2. data/bin/static +11 -0
  3. data/lib/static/cli.rb +2 -2
  4. data/lib/static/version.rb +1 -1
  5. data/vendor/cfoundry-0.5.2/LICENSE +746 -0
  6. data/vendor/cfoundry-0.5.2/Rakefile +38 -0
  7. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/applications.rb +53 -0
  8. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/domains.rb +16 -0
  9. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/frameworks.rb +22 -0
  10. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/helper.rb +131 -0
  11. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/login.rb +21 -0
  12. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/organization_users.rb +21 -0
  13. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/organizations.rb +70 -0
  14. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/routes.rb +26 -0
  15. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/runtimes.rb +22 -0
  16. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/service_bindings.rb +22 -0
  17. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/service_instances.rb +22 -0
  18. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/services.rb +25 -0
  19. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/spaces.rb +49 -0
  20. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/users.rb +84 -0
  21. data/vendor/cfoundry-0.5.2/lib/cc_api_stub.rb +17 -0
  22. data/vendor/cfoundry-0.5.2/lib/cfoundry/auth_token.rb +63 -0
  23. data/vendor/cfoundry-0.5.2/lib/cfoundry/baseclient.rb +201 -0
  24. data/vendor/cfoundry-0.5.2/lib/cfoundry/chatty_hash.rb +46 -0
  25. data/vendor/cfoundry-0.5.2/lib/cfoundry/client.rb +46 -0
  26. data/vendor/cfoundry-0.5.2/lib/cfoundry/concerns/login_helpers.rb +13 -0
  27. data/vendor/cfoundry-0.5.2/lib/cfoundry/errors.rb +160 -0
  28. data/vendor/cfoundry-0.5.2/lib/cfoundry/rest_client.rb +299 -0
  29. data/vendor/cfoundry-0.5.2/lib/cfoundry/test_support.rb +3 -0
  30. data/vendor/cfoundry-0.5.2/lib/cfoundry/trace_helpers.rb +40 -0
  31. data/vendor/cfoundry-0.5.2/lib/cfoundry/uaaclient.rb +112 -0
  32. data/vendor/cfoundry-0.5.2/lib/cfoundry/upload_helpers.rb +186 -0
  33. data/vendor/cfoundry-0.5.2/lib/cfoundry/v1/app.rb +363 -0
  34. data/vendor/cfoundry-0.5.2/lib/cfoundry/v1/base.rb +71 -0
  35. data/vendor/cfoundry-0.5.2/lib/cfoundry/v1/client.rb +193 -0
  36. data/vendor/cfoundry-0.5.2/lib/cfoundry/v1/framework.rb +21 -0
  37. data/vendor/cfoundry-0.5.2/lib/cfoundry/v1/model.rb +178 -0
  38. data/vendor/cfoundry-0.5.2/lib/cfoundry/v1/model_magic.rb +129 -0
  39. data/vendor/cfoundry-0.5.2/lib/cfoundry/v1/runtime.rb +24 -0
  40. data/vendor/cfoundry-0.5.2/lib/cfoundry/v1/service.rb +39 -0
  41. data/vendor/cfoundry-0.5.2/lib/cfoundry/v1/service_instance.rb +32 -0
  42. data/vendor/cfoundry-0.5.2/lib/cfoundry/v1/service_plan.rb +19 -0
  43. data/vendor/cfoundry-0.5.2/lib/cfoundry/v1/user.rb +22 -0
  44. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/app.rb +392 -0
  45. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/base.rb +83 -0
  46. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/client.rb +138 -0
  47. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/domain.rb +11 -0
  48. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/framework.rb +14 -0
  49. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/model.rb +148 -0
  50. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/model_magic.rb +449 -0
  51. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/organization.rb +16 -0
  52. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/route.rb +15 -0
  53. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/runtime.rb +12 -0
  54. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/service.rb +19 -0
  55. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/service_auth_token.rb +9 -0
  56. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/service_binding.rb +10 -0
  57. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/service_instance.rb +14 -0
  58. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/service_plan.rb +12 -0
  59. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/space.rb +18 -0
  60. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/user.rb +64 -0
  61. data/vendor/cfoundry-0.5.2/lib/cfoundry/validator.rb +39 -0
  62. data/vendor/cfoundry-0.5.2/lib/cfoundry/version.rb +4 -0
  63. data/vendor/cfoundry-0.5.2/lib/cfoundry/zip.rb +56 -0
  64. data/vendor/cfoundry-0.5.2/lib/cfoundry.rb +2 -0
  65. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/applications_spec.rb +69 -0
  66. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/domains_spec.rb +19 -0
  67. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/frameworks_spec.rb +19 -0
  68. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/login_spec.rb +20 -0
  69. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/organization_users_spec.rb +19 -0
  70. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/organizations_spec.rb +97 -0
  71. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/routes_spec.rb +19 -0
  72. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/runtimes_spec.rb +19 -0
  73. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/service_bindings_spec.rb +13 -0
  74. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/service_instances_spec.rb +19 -0
  75. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/services_spec.rb +12 -0
  76. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/spaces_spec.rb +38 -0
  77. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/users_spec.rb +107 -0
  78. data/vendor/cfoundry-0.5.2/spec/cfoundry/auth_token_spec.rb +125 -0
  79. data/vendor/cfoundry-0.5.2/spec/cfoundry/baseclient_spec.rb +225 -0
  80. data/vendor/cfoundry-0.5.2/spec/cfoundry/client_spec.rb +15 -0
  81. data/vendor/cfoundry-0.5.2/spec/cfoundry/errors_spec.rb +80 -0
  82. data/vendor/cfoundry-0.5.2/spec/cfoundry/rest_client_spec.rb +281 -0
  83. data/vendor/cfoundry-0.5.2/spec/cfoundry/trace_helpers_spec.rb +72 -0
  84. data/vendor/cfoundry-0.5.2/spec/cfoundry/uaaclient_spec.rb +332 -0
  85. data/vendor/cfoundry-0.5.2/spec/cfoundry/upload_helpers_spec.rb +174 -0
  86. data/vendor/cfoundry-0.5.2/spec/cfoundry/v1/base_spec.rb +58 -0
  87. data/vendor/cfoundry-0.5.2/spec/cfoundry/v1/client_spec.rb +17 -0
  88. data/vendor/cfoundry-0.5.2/spec/cfoundry/v1/model_magic_spec.rb +43 -0
  89. data/vendor/cfoundry-0.5.2/spec/cfoundry/v2/app_spec.rb +144 -0
  90. data/vendor/cfoundry-0.5.2/spec/cfoundry/v2/base_spec.rb +299 -0
  91. data/vendor/cfoundry-0.5.2/spec/cfoundry/v2/client_spec.rb +73 -0
  92. data/vendor/cfoundry-0.5.2/spec/cfoundry/v2/model_magic_spec.rb +173 -0
  93. data/vendor/cfoundry-0.5.2/spec/cfoundry/v2/organization_spec.rb +15 -0
  94. data/vendor/cfoundry-0.5.2/spec/cfoundry/v2/space_spec.rb +15 -0
  95. data/vendor/cfoundry-0.5.2/spec/fakes/app_fake.rb +5 -0
  96. data/vendor/cfoundry-0.5.2/spec/fakes/domain_fake.rb +5 -0
  97. data/vendor/cfoundry-0.5.2/spec/fakes/framework_fake.rb +5 -0
  98. data/vendor/cfoundry-0.5.2/spec/fakes/organization_fake.rb +5 -0
  99. data/vendor/cfoundry-0.5.2/spec/fakes/route_fake.rb +5 -0
  100. data/vendor/cfoundry-0.5.2/spec/fakes/runtime_fake.rb +5 -0
  101. data/vendor/cfoundry-0.5.2/spec/fakes/service_fake.rb +5 -0
  102. data/vendor/cfoundry-0.5.2/spec/fakes/service_instance_fake.rb +5 -0
  103. data/vendor/cfoundry-0.5.2/spec/fakes/service_plan_fake.rb +5 -0
  104. data/vendor/cfoundry-0.5.2/spec/fakes/space_fake.rb +5 -0
  105. data/vendor/cfoundry-0.5.2/spec/fakes/user_fake.rb +5 -0
  106. data/vendor/cfoundry-0.5.2/spec/fixtures/apps/with_dotfiles/xyz +1 -0
  107. data/vendor/cfoundry-0.5.2/spec/fixtures/apps/with_nested_directories/foo/bar/baz/fizz +0 -0
  108. data/vendor/cfoundry-0.5.2/spec/fixtures/apps/with_nested_directories/xyz +0 -0
  109. data/vendor/cfoundry-0.5.2/spec/fixtures/apps/with_vmcignore/ignored_dir/file_in_ignored_dir.txt +1 -0
  110. data/vendor/cfoundry-0.5.2/spec/fixtures/apps/with_vmcignore/ignored_file.txt +1 -0
  111. data/vendor/cfoundry-0.5.2/spec/fixtures/apps/with_vmcignore/non_ignored_dir/file_in_non_ignored_dir.txt +1 -0
  112. data/vendor/cfoundry-0.5.2/spec/fixtures/apps/with_vmcignore/non_ignored_dir/ignored_file.txt +1 -0
  113. data/vendor/cfoundry-0.5.2/spec/fixtures/apps/with_vmcignore/non_ignored_file.txt +1 -0
  114. data/vendor/cfoundry-0.5.2/spec/fixtures/empty_file +0 -0
  115. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_application.json +24 -0
  116. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_application_summary.json +57 -0
  117. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_created_application.json +11 -0
  118. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_created_domain.json +10 -0
  119. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_created_organization.json +11 -0
  120. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_created_route.json +13 -0
  121. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_created_service_instance.json +11 -0
  122. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_created_space.json +11 -0
  123. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_created_user.json +11 -0
  124. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_empty_search.json +7 -0
  125. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_frameworks.json +20 -0
  126. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_organization.json +144 -0
  127. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_organization_domains.json +34 -0
  128. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_organization_search.json +37 -0
  129. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_organization_summary.json +19 -0
  130. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_organization_users.json +81 -0
  131. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_runtimes.json +20 -0
  132. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_service_binding.json +22 -0
  133. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_service_bindings.json +24 -0
  134. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_service_instance.json +81 -0
  135. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_service_instances.json +0 -0
  136. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_service_types.json +124 -0
  137. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_space.json +45 -0
  138. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_space_summary.json +86 -0
  139. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_stats.json +29 -0
  140. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_user.json +112 -0
  141. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_user_organizations.json +92 -0
  142. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_user_with_managers.json +85 -0
  143. data/vendor/cfoundry-0.5.2/spec/spec_helper.rb +20 -0
  144. data/vendor/cfoundry-0.5.2/spec/support/fake_helper.rb +236 -0
  145. data/vendor/cfoundry-0.5.2/spec/support/randoms.rb +3 -0
  146. data/vendor/cfoundry-0.5.2/spec/support/shared_examples/cc_api_stub_request_examples.rb +79 -0
  147. data/vendor/cfoundry-0.5.2/spec/support/shared_examples/client_login_examples.rb +46 -0
  148. data/vendor/cfoundry-0.5.2/spec/support/shared_examples/model_summary_examples.rb +34 -0
  149. data/vendor/cfoundry-0.5.2/spec/support/v1_fake_helper.rb +144 -0
  150. data/vendor/cfoundry-0.5.2/vendor/errors/README.md +4 -0
  151. data/vendor/cfoundry-0.5.2/vendor/errors/v1.yml +189 -0
  152. data/vendor/cfoundry-0.5.2/vendor/errors/v2.yml +360 -0
  153. data/vendor/tunnel-vmc-plugin-0.2.2/Rakefile +39 -0
  154. data/vendor/tunnel-vmc-plugin-0.2.2/config/clients.yml +17 -0
  155. data/vendor/tunnel-vmc-plugin-0.2.2/helper-app/Gemfile +10 -0
  156. data/vendor/tunnel-vmc-plugin-0.2.2/helper-app/server.rb +43 -0
  157. data/vendor/tunnel-vmc-plugin-0.2.2/lib/tunnel-vmc-plugin/plugin.rb +178 -0
  158. data/vendor/tunnel-vmc-plugin-0.2.2/lib/tunnel-vmc-plugin/tunnel.rb +308 -0
  159. data/vendor/tunnel-vmc-plugin-0.2.2/lib/tunnel-vmc-plugin/version.rb +3 -0
  160. data/vendor/tunnel-vmc-plugin-0.2.2/spec/plugin_spec.rb +29 -0
  161. data/vendor/tunnel-vmc-plugin-0.2.2/spec/spec_helper.rb +15 -0
  162. data/vendor/vmc-0.5.0/LICENSE +1277 -0
  163. data/vendor/vmc-0.5.0/Rakefile +101 -0
  164. data/vendor/vmc-0.5.0/bin/vmc +11 -0
  165. data/vendor/vmc-0.5.0/lib/vmc/cli/app/app.rb +45 -0
  166. data/vendor/vmc-0.5.0/lib/vmc/cli/app/apps.rb +99 -0
  167. data/vendor/vmc-0.5.0/lib/vmc/cli/app/base.rb +82 -0
  168. data/vendor/vmc-0.5.0/lib/vmc/cli/app/crashes.rb +42 -0
  169. data/vendor/vmc-0.5.0/lib/vmc/cli/app/delete.rb +95 -0
  170. data/vendor/vmc-0.5.0/lib/vmc/cli/app/deprecated.rb +11 -0
  171. data/vendor/vmc-0.5.0/lib/vmc/cli/app/env.rb +78 -0
  172. data/vendor/vmc-0.5.0/lib/vmc/cli/app/files.rb +137 -0
  173. data/vendor/vmc-0.5.0/lib/vmc/cli/app/health.rb +26 -0
  174. data/vendor/vmc-0.5.0/lib/vmc/cli/app/instances.rb +53 -0
  175. data/vendor/vmc-0.5.0/lib/vmc/cli/app/logs.rb +76 -0
  176. data/vendor/vmc-0.5.0/lib/vmc/cli/app/push/create.rb +153 -0
  177. data/vendor/vmc-0.5.0/lib/vmc/cli/app/push/interactions.rb +94 -0
  178. data/vendor/vmc-0.5.0/lib/vmc/cli/app/push/sync.rb +64 -0
  179. data/vendor/vmc-0.5.0/lib/vmc/cli/app/push.rb +105 -0
  180. data/vendor/vmc-0.5.0/lib/vmc/cli/app/rename.rb +35 -0
  181. data/vendor/vmc-0.5.0/lib/vmc/cli/app/restart.rb +20 -0
  182. data/vendor/vmc-0.5.0/lib/vmc/cli/app/scale.rb +71 -0
  183. data/vendor/vmc-0.5.0/lib/vmc/cli/app/start.rb +150 -0
  184. data/vendor/vmc-0.5.0/lib/vmc/cli/app/stats.rb +67 -0
  185. data/vendor/vmc-0.5.0/lib/vmc/cli/app/stop.rb +27 -0
  186. data/vendor/vmc-0.5.0/lib/vmc/cli/domain/base.rb +12 -0
  187. data/vendor/vmc-0.5.0/lib/vmc/cli/domain/domains.rb +40 -0
  188. data/vendor/vmc-0.5.0/lib/vmc/cli/domain/map.rb +55 -0
  189. data/vendor/vmc-0.5.0/lib/vmc/cli/domain/unmap.rb +56 -0
  190. data/vendor/vmc-0.5.0/lib/vmc/cli/help.rb +15 -0
  191. data/vendor/vmc-0.5.0/lib/vmc/cli/interactive.rb +105 -0
  192. data/vendor/vmc-0.5.0/lib/vmc/cli/organization/base.rb +14 -0
  193. data/vendor/vmc-0.5.0/lib/vmc/cli/organization/create.rb +32 -0
  194. data/vendor/vmc-0.5.0/lib/vmc/cli/organization/delete.rb +73 -0
  195. data/vendor/vmc-0.5.0/lib/vmc/cli/organization/org.rb +45 -0
  196. data/vendor/vmc-0.5.0/lib/vmc/cli/organization/orgs.rb +35 -0
  197. data/vendor/vmc-0.5.0/lib/vmc/cli/organization/rename.rb +36 -0
  198. data/vendor/vmc-0.5.0/lib/vmc/cli/route/base.rb +12 -0
  199. data/vendor/vmc-0.5.0/lib/vmc/cli/route/map.rb +80 -0
  200. data/vendor/vmc-0.5.0/lib/vmc/cli/route/routes.rb +26 -0
  201. data/vendor/vmc-0.5.0/lib/vmc/cli/route/unmap.rb +94 -0
  202. data/vendor/vmc-0.5.0/lib/vmc/cli/service/base.rb +8 -0
  203. data/vendor/vmc-0.5.0/lib/vmc/cli/service/bind.rb +44 -0
  204. data/vendor/vmc-0.5.0/lib/vmc/cli/service/create.rb +126 -0
  205. data/vendor/vmc-0.5.0/lib/vmc/cli/service/delete.rb +86 -0
  206. data/vendor/vmc-0.5.0/lib/vmc/cli/service/rename.rb +35 -0
  207. data/vendor/vmc-0.5.0/lib/vmc/cli/service/service.rb +42 -0
  208. data/vendor/vmc-0.5.0/lib/vmc/cli/service/services.rb +114 -0
  209. data/vendor/vmc-0.5.0/lib/vmc/cli/service/unbind.rb +38 -0
  210. data/vendor/vmc-0.5.0/lib/vmc/cli/space/base.rb +21 -0
  211. data/vendor/vmc-0.5.0/lib/vmc/cli/space/create.rb +60 -0
  212. data/vendor/vmc-0.5.0/lib/vmc/cli/space/delete.rb +95 -0
  213. data/vendor/vmc-0.5.0/lib/vmc/cli/space/rename.rb +39 -0
  214. data/vendor/vmc-0.5.0/lib/vmc/cli/space/space.rb +64 -0
  215. data/vendor/vmc-0.5.0/lib/vmc/cli/space/spaces.rb +55 -0
  216. data/vendor/vmc-0.5.0/lib/vmc/cli/space/switch.rb +16 -0
  217. data/vendor/vmc-0.5.0/lib/vmc/cli/start/base.rb +83 -0
  218. data/vendor/vmc-0.5.0/lib/vmc/cli/start/colors.rb +13 -0
  219. data/vendor/vmc-0.5.0/lib/vmc/cli/start/info.rb +126 -0
  220. data/vendor/vmc-0.5.0/lib/vmc/cli/start/login.rb +96 -0
  221. data/vendor/vmc-0.5.0/lib/vmc/cli/start/logout.rb +17 -0
  222. data/vendor/vmc-0.5.0/lib/vmc/cli/start/target.rb +71 -0
  223. data/vendor/vmc-0.5.0/lib/vmc/cli/start/target_interactions.rb +37 -0
  224. data/vendor/vmc-0.5.0/lib/vmc/cli/start/targets.rb +16 -0
  225. data/vendor/vmc-0.5.0/lib/vmc/cli/user/base.rb +29 -0
  226. data/vendor/vmc-0.5.0/lib/vmc/cli/user/create.rb +39 -0
  227. data/vendor/vmc-0.5.0/lib/vmc/cli/user/delete.rb +27 -0
  228. data/vendor/vmc-0.5.0/lib/vmc/cli/user/passwd.rb +50 -0
  229. data/vendor/vmc-0.5.0/lib/vmc/cli/user/register.rb +42 -0
  230. data/vendor/vmc-0.5.0/lib/vmc/cli/user/users.rb +32 -0
  231. data/vendor/vmc-0.5.0/lib/vmc/cli.rb +475 -0
  232. data/vendor/vmc-0.5.0/lib/vmc/constants.rb +13 -0
  233. data/vendor/vmc-0.5.0/lib/vmc/detect.rb +129 -0
  234. data/vendor/vmc-0.5.0/lib/vmc/errors.rb +17 -0
  235. data/vendor/vmc-0.5.0/lib/vmc/plugin.rb +56 -0
  236. data/vendor/vmc-0.5.0/lib/vmc/spacing.rb +89 -0
  237. data/vendor/vmc-0.5.0/lib/vmc/spec_helper.rb +1 -0
  238. data/vendor/vmc-0.5.0/lib/vmc/test_support.rb +6 -0
  239. data/vendor/vmc-0.5.0/lib/vmc/version.rb +3 -0
  240. data/vendor/vmc-0.5.0/lib/vmc.rb +8 -0
  241. data/vendor/vmc-0.5.0/spec/assets/hello-sinatra/Gemfile +3 -0
  242. data/vendor/vmc-0.5.0/spec/assets/hello-sinatra/config.ru +3 -0
  243. data/vendor/vmc-0.5.0/spec/assets/hello-sinatra/main.rb +6 -0
  244. data/vendor/vmc-0.5.0/spec/assets/specker_runner/specker_runner_input.rb +6 -0
  245. data/vendor/vmc-0.5.0/spec/assets/specker_runner/specker_runner_pause.rb +5 -0
  246. data/vendor/vmc-0.5.0/spec/console_app_specker/console_app_specker_matchers_spec.rb +152 -0
  247. data/vendor/vmc-0.5.0/spec/console_app_specker/specker_runner_spec.rb +157 -0
  248. data/vendor/vmc-0.5.0/spec/features/v1/new_user_flow_spec.rb +109 -0
  249. data/vendor/vmc-0.5.0/spec/features/v2/account_lifecycle_spec.rb +64 -0
  250. data/vendor/vmc-0.5.0/spec/features/v2/push_flow_spec.rb +125 -0
  251. data/vendor/vmc-0.5.0/spec/features/v2/switching_targets_spec.rb +32 -0
  252. data/vendor/vmc-0.5.0/spec/spec_helper.rb +63 -0
  253. data/vendor/vmc-0.5.0/spec/support/command_helper.rb +80 -0
  254. data/vendor/vmc-0.5.0/spec/support/config_helper.rb +15 -0
  255. data/vendor/vmc-0.5.0/spec/support/console_app_specker_matchers.rb +75 -0
  256. data/vendor/vmc-0.5.0/spec/support/fake_home_dir.rb +55 -0
  257. data/vendor/vmc-0.5.0/spec/support/interact_helper.rb +29 -0
  258. data/vendor/vmc-0.5.0/spec/support/shared_examples/errors.rb +40 -0
  259. data/vendor/vmc-0.5.0/spec/support/shared_examples/input.rb +14 -0
  260. data/vendor/vmc-0.5.0/spec/support/specker_runner.rb +79 -0
  261. data/vendor/vmc-0.5.0/spec/support/tracking_expector.rb +71 -0
  262. data/vendor/vmc-0.5.0/spec/vmc/cli/app/base_spec.rb +17 -0
  263. data/vendor/vmc-0.5.0/spec/vmc/cli/app/delete_spec.rb +188 -0
  264. data/vendor/vmc-0.5.0/spec/vmc/cli/app/instances_spec.rb +65 -0
  265. data/vendor/vmc-0.5.0/spec/vmc/cli/app/push/create_spec.rb +591 -0
  266. data/vendor/vmc-0.5.0/spec/vmc/cli/app/push_spec.rb +369 -0
  267. data/vendor/vmc-0.5.0/spec/vmc/cli/app/rename_spec.rb +104 -0
  268. data/vendor/vmc-0.5.0/spec/vmc/cli/app/scale_spec.rb +76 -0
  269. data/vendor/vmc-0.5.0/spec/vmc/cli/app/start_spec.rb +168 -0
  270. data/vendor/vmc-0.5.0/spec/vmc/cli/app/stats_spec.rb +68 -0
  271. data/vendor/vmc-0.5.0/spec/vmc/cli/domain/map_spec.rb +130 -0
  272. data/vendor/vmc-0.5.0/spec/vmc/cli/domain/unmap_spec.rb +69 -0
  273. data/vendor/vmc-0.5.0/spec/vmc/cli/organization/orgs_spec.rb +108 -0
  274. data/vendor/vmc-0.5.0/spec/vmc/cli/organization/rename_spec.rb +113 -0
  275. data/vendor/vmc-0.5.0/spec/vmc/cli/route/map_spec.rb +140 -0
  276. data/vendor/vmc-0.5.0/spec/vmc/cli/route/unmap_spec.rb +221 -0
  277. data/vendor/vmc-0.5.0/spec/vmc/cli/service/bind_spec.rb +25 -0
  278. data/vendor/vmc-0.5.0/spec/vmc/cli/service/delete_spec.rb +22 -0
  279. data/vendor/vmc-0.5.0/spec/vmc/cli/service/rename_spec.rb +105 -0
  280. data/vendor/vmc-0.5.0/spec/vmc/cli/service/service_spec.rb +23 -0
  281. data/vendor/vmc-0.5.0/spec/vmc/cli/service/unbind_spec.rb +25 -0
  282. data/vendor/vmc-0.5.0/spec/vmc/cli/space/create_spec.rb +73 -0
  283. data/vendor/vmc-0.5.0/spec/vmc/cli/space/rename_spec.rb +102 -0
  284. data/vendor/vmc-0.5.0/spec/vmc/cli/space/spaces_spec.rb +104 -0
  285. data/vendor/vmc-0.5.0/spec/vmc/cli/space/switch_space_spec.rb +55 -0
  286. data/vendor/vmc-0.5.0/spec/vmc/cli/start/info_spec.rb +160 -0
  287. data/vendor/vmc-0.5.0/spec/vmc/cli/start/login_spec.rb +142 -0
  288. data/vendor/vmc-0.5.0/spec/vmc/cli/start/logout_spec.rb +50 -0
  289. data/vendor/vmc-0.5.0/spec/vmc/cli/start/target_spec.rb +123 -0
  290. data/vendor/vmc-0.5.0/spec/vmc/cli/user/create_spec.rb +54 -0
  291. data/vendor/vmc-0.5.0/spec/vmc/cli/user/delete_spec.rb +51 -0
  292. data/vendor/vmc-0.5.0/spec/vmc/cli/user/passwd_spec.rb +102 -0
  293. data/vendor/vmc-0.5.0/spec/vmc/cli/user/register_spec.rb +140 -0
  294. data/vendor/vmc-0.5.0/spec/vmc/cli_spec.rb +448 -0
  295. data/vendor/vmc-0.5.0/spec/vmc/detect_spec.rb +54 -0
  296. metadata +446 -43
@@ -0,0 +1,392 @@
1
+ require "tmpdir"
2
+ require "multi_json"
3
+
4
+ require "cfoundry/zip"
5
+ require "cfoundry/upload_helpers"
6
+ require "cfoundry/chatty_hash"
7
+
8
+ require "cfoundry/v2/model"
9
+
10
+ module CFoundry::V2
11
+ # Class for representing a user's application on a given target (via
12
+ # Client).
13
+ #
14
+ # Does not guarantee that the app exists; used for both app creation and
15
+ # retrieval, as the attributes are all lazily retrieved. Setting attributes
16
+ # does not perform any requests; use #update! to commit your changes.
17
+ class App < Model
18
+ include CFoundry::UploadHelpers
19
+
20
+ attribute :name, :string
21
+ attribute :production, :boolean, :default => false
22
+ to_one :space
23
+ to_one :runtime
24
+ to_one :framework
25
+ attribute :environment_json, :hash, :default => {}
26
+ attribute :memory, :integer, :default => 256
27
+ attribute :total_instances, :integer, :default => 1, :at => :instances
28
+ attribute :disk_quota, :integer, :default => 256
29
+ attribute :state, :string, :default => "STOPPED"
30
+ attribute :command, :string, :default => nil
31
+ attribute :console, :boolean, :default => false
32
+ attribute :buildpack, :string, :default => nil
33
+ to_many :service_bindings
34
+ to_many :routes
35
+
36
+ scoped_to_space
37
+
38
+ queryable_by :name, :space_guid, :organization_guid, :framework_guid,
39
+ :runtime_guid
40
+
41
+ has_summary :urls => proc { |x| self.cache[:uris] = x },
42
+ :running_instances => proc { |x|
43
+ self.cache[:running_instances] = x
44
+ },
45
+
46
+ :instances => proc { |x|
47
+ self.total_instances = x
48
+ },
49
+
50
+ # TODO: remove these when cc consistently returns nested hashes
51
+ :framework_guid => proc { |x|
52
+ if f = self.cache[:framework]
53
+ f.guid = x
54
+ else
55
+ self.framework = @client.framework(x, true)
56
+ end
57
+ },
58
+ :framework_name => proc { |x|
59
+ if f = self.cache[:framework]
60
+ f.name = x
61
+ else
62
+ self.framework = @client.framework(nil, true)
63
+ self.framework.name = x
64
+ end
65
+ },
66
+ :runtime_guid => proc { |x|
67
+ if f = self.cache[:runtime]
68
+ f.guid = x
69
+ else
70
+ self.runtime = @client.runtime(x, true)
71
+ end
72
+ },
73
+ :runtime_name => proc { |x|
74
+ if f = self.cache[:runtime]
75
+ f.name = x
76
+ else
77
+ self.runtime = @client.runtime(nil, true)
78
+ self.runtime.name = x
79
+ end
80
+ }
81
+
82
+ private :environment_json
83
+
84
+ def instances
85
+ @client.base.instances(@guid).collect do |i, m|
86
+ Instance.new(self, i.to_s, @client, m)
87
+ end
88
+ end
89
+
90
+ def crashes
91
+ @client.base.crashes(@guid).collect do |m|
92
+ Instance.new(self, m[:instance], @client, m)
93
+ end
94
+ end
95
+
96
+ def stats
97
+ stats = {}
98
+
99
+ @client.base.stats(@guid).each do |idx, info|
100
+ stats[idx.to_s] = info
101
+ end
102
+
103
+ stats
104
+ end
105
+
106
+ def services
107
+ service_bindings.collect(&:service_instance)
108
+ end
109
+
110
+ def env
111
+ CFoundry::ChattyHash.new(
112
+ method(:env=),
113
+ stringify(environment_json))
114
+ end
115
+
116
+ def env=(x)
117
+ self.environment_json = stringify(x.to_hash)
118
+ end
119
+
120
+ def debug_mode # TODO v2
121
+ nil
122
+ end
123
+
124
+ def uris
125
+ return @cache[:uris] if @cache[:uris]
126
+
127
+ routes.collect do |r|
128
+ "#{r.host}.#{r.domain.name}"
129
+ end
130
+ end
131
+ alias :urls :uris
132
+
133
+ def uris=(uris)
134
+ raise CFoundry::Deprecated,
135
+ "App#uris= is invalid against V2 APIs; use add/remove_route"
136
+ end
137
+ alias :urls= :uris=
138
+
139
+ def create_routes(*uris)
140
+ uris.each do |uri|
141
+ host, domain_name = uri.split(".", 2)
142
+
143
+ domain =
144
+ @client.current_space.domains.find { |d|
145
+ d.name == domain_name
146
+ }
147
+
148
+ unless domain
149
+ raise CFoundry::Error, "Invalid domain '#{domain_name}'"
150
+ end
151
+
152
+ route = @client.routes.find { |r|
153
+ r.host == host && r.domain == domain
154
+ }
155
+
156
+ unless route
157
+ route = @client.route
158
+ route.host = host
159
+ route.domain = domain
160
+ route.space = space
161
+ route.create!
162
+ end
163
+
164
+ add_route(route)
165
+ end
166
+ end
167
+ alias :create_route :create_routes
168
+
169
+ def uri
170
+ if uris = @cache[:uris]
171
+ return uris.first
172
+ end
173
+
174
+ if route = routes.first
175
+ "#{route.host}.#{route.domain.name}"
176
+ end
177
+ end
178
+ alias :url :uri
179
+
180
+ def uri=(x)
181
+ self.uris = [x]
182
+ end
183
+ alias :url= :uri=
184
+
185
+ # Stop the application.
186
+ def stop!
187
+ self.state = "STOPPED"
188
+ update!
189
+ end
190
+
191
+ # Start the application.
192
+ def start!(async = false, &blk)
193
+ self.state = "STARTED"
194
+ update!(async, &blk)
195
+ end
196
+
197
+ # Restart the application.
198
+ def restart!(async = false, &blk)
199
+ stop!
200
+ start!(async, &blk)
201
+ end
202
+
203
+ def update!(async = false)
204
+ response = @client.base.update_app(@guid, @diff, async)
205
+
206
+ yield response[:headers]["x-app-staging-log"] if block_given?
207
+
208
+ @manifest = @client.base.send(:parse_json, response[:body])
209
+
210
+ @diff.clear
211
+
212
+ true
213
+ end
214
+
215
+ # Determine application health.
216
+ #
217
+ # If all instances are running, returns "RUNNING". If only some are
218
+ # started, returns the precentage of them that are healthy.
219
+ #
220
+ # Otherwise, returns application's status.
221
+ def health
222
+ if state == "STARTED"
223
+ healthy_count = running_instances
224
+ expected = total_instances
225
+
226
+ if expected > 0
227
+ ratio = healthy_count / expected.to_f
228
+ if ratio == 1.0
229
+ "RUNNING"
230
+ else
231
+ "#{(ratio * 100).to_i}%"
232
+ end
233
+ else
234
+ "N/A"
235
+ end
236
+ else
237
+ state
238
+ end
239
+ end
240
+
241
+ def running_instances
242
+ return @cache[:running_instances] if @cache[:running_instances]
243
+
244
+ running = 0
245
+
246
+ instances.each do |i|
247
+ running += 1 if i.state == "RUNNING"
248
+ end
249
+
250
+ running
251
+ end
252
+
253
+ # Check that all application instances are running.
254
+ def healthy?
255
+ # invalidate cache so the check is fresh
256
+ invalidate!
257
+ health == "RUNNING"
258
+ end
259
+ alias_method :running?, :healthy?
260
+
261
+ # Is the application stopped?
262
+ def stopped?
263
+ state == "STOPPED"
264
+ end
265
+
266
+ # Is the application started?
267
+ #
268
+ # Note that this does not imply that all instances are running. See
269
+ # #healthy?
270
+ def started?
271
+ state == "STARTED"
272
+ end
273
+
274
+ # Bind services to application.
275
+ def bind(*instances)
276
+ instances.each do |i|
277
+ binding = @client.service_binding
278
+ binding.app = self
279
+ binding.service_instance = i
280
+ binding.create!
281
+ end
282
+
283
+ self
284
+ end
285
+
286
+ # Unbind services from application.
287
+ def unbind(*instances)
288
+ service_bindings.each do |b|
289
+ if instances.include? b.service_instance
290
+ b.delete!
291
+ end
292
+ end
293
+
294
+ self
295
+ end
296
+
297
+ def binds?(instance)
298
+ service_bindings.any? { |b|
299
+ b.service_instance == instance
300
+ }
301
+ end
302
+
303
+ def files(*path)
304
+ Instance.new(self, "0", @client).files(*path)
305
+ end
306
+
307
+ def file(*path)
308
+ Instance.new(self, "0", @client).file(*path)
309
+ end
310
+
311
+ def stream_file(*path, &blk)
312
+ Instance.new(self, "0", @client).stream_file(*path, &blk)
313
+ end
314
+
315
+ private
316
+
317
+ def stringify(hash)
318
+ new = {}
319
+
320
+ hash.each do |k, v|
321
+ new[k.to_s] = v.to_s
322
+ end
323
+
324
+ new
325
+ end
326
+
327
+ class Instance
328
+ attr_reader :app, :id
329
+
330
+ def initialize(app, id, client, manifest = {})
331
+ @app = app
332
+ @id = id
333
+ @client = client
334
+ @manifest = manifest
335
+ end
336
+
337
+ def inspect
338
+ "#<App::Instance '#{@app.name}' \##@id>"
339
+ end
340
+
341
+ def state
342
+ @manifest[:state]
343
+ end
344
+ alias_method :status, :state
345
+
346
+ def since
347
+ if since = @manifest[:since]
348
+ Time.at(@manifest[:since])
349
+ end
350
+ end
351
+
352
+ def debugger
353
+ return unless @manifest[:debug_ip] and @manifest[:debug_port]
354
+
355
+ { :ip => @manifest[:debug_ip],
356
+ :port => @manifest[:debug_port]
357
+ }
358
+ end
359
+
360
+ def console
361
+ return unless @manifest[:console_ip] and @manifest[:console_port]
362
+
363
+ { :ip => @manifest[:console_ip],
364
+ :port => @manifest[:console_port]
365
+ }
366
+ end
367
+
368
+ def healthy?
369
+ case state
370
+ when "STARTING", "RUNNING"
371
+ true
372
+ when "DOWN", "FLAPPING"
373
+ false
374
+ end
375
+ end
376
+
377
+ def files(*path)
378
+ @client.base.files(@app.guid, @id, *path).split("\n").collect do |entry|
379
+ path + [entry.split(/\s+/, 2)[0]]
380
+ end
381
+ end
382
+
383
+ def file(*path)
384
+ @client.base.files(@app.guid, @id, *path)
385
+ end
386
+
387
+ def stream_file(*path, &blk)
388
+ @client.base.stream_file(@app.guid, @id, *path, &blk)
389
+ end
390
+ end
391
+ end
392
+ end
@@ -0,0 +1,83 @@
1
+ require "multi_json"
2
+
3
+ require "cfoundry/baseclient"
4
+ require "cfoundry/uaaclient"
5
+
6
+ require "cfoundry/errors"
7
+
8
+ module CFoundry::V2
9
+ class Base < CFoundry::BaseClient
10
+ include BaseClientMethods
11
+
12
+ def resource_match(fingerprints)
13
+ put("v2", "resource_match", :content => :json, :accept => :json, :payload => fingerprints)
14
+ end
15
+
16
+ def upload_app(guid, zipfile = nil, resources = [])
17
+ payload = {}
18
+ payload[:resources] = MultiJson.dump(resources)
19
+
20
+ if zipfile
21
+ payload[:application] =
22
+ UploadIO.new(
23
+ if zipfile.is_a? File
24
+ zipfile
25
+ elsif zipfile.is_a? String
26
+ File.new(zipfile, "rb")
27
+ end,
28
+ "application/zip")
29
+ end
30
+
31
+ put("v2", "apps", guid, "bits", :payload => payload)
32
+ rescue EOFError
33
+ retry
34
+ end
35
+
36
+ def files(guid, instance, *path)
37
+ get("v2", "apps", guid, "instances", instance, "files", *path)
38
+ end
39
+ alias :file :files
40
+
41
+ def stream_file(guid, instance, *path, &blk)
42
+ path_and_options = path + [{:return_response => true, :follow_redirects => false}]
43
+ redirect = get("v2", "apps", guid, "instances", instance, "files", *path_and_options)
44
+
45
+ if location = redirect[:headers]["location"]
46
+ stream_url(location + "&tail", &blk)
47
+ else
48
+ yield redirect[:body]
49
+ end
50
+ end
51
+
52
+ def instances(guid)
53
+ get("v2", "apps", guid, "instances", :accept => :json)
54
+ end
55
+
56
+ def crashes(guid)
57
+ get("v2", "apps", guid, "crashes", :accept => :json)
58
+ end
59
+
60
+ def stats(guid)
61
+ get("v2", "apps", guid, "stats", :accept => :json)
62
+ end
63
+
64
+ def update_app(guid, diff, async = false)
65
+ put("v2", "apps", guid,
66
+ :content => :json,
67
+ :payload => diff,
68
+ :return_response => true,
69
+ :params => { :stage_async => !!async })
70
+ end
71
+
72
+ def all_pages(paginated)
73
+ payload = paginated[:resources]
74
+
75
+ while next_page = paginated[:next_url]
76
+ paginated = get(next_page, :accept => :json)
77
+ payload += paginated[:resources]
78
+ end
79
+
80
+ payload
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,138 @@
1
+ require File.expand_path("../../concerns/login_helpers", __FILE__)
2
+
3
+ module CFoundry::V2
4
+ # The primary API entrypoint. Wraps a BaseClient to provide nicer return
5
+ # values. Initialize with the target and, optionally, an auth token. These
6
+ # are the only two internal states.
7
+ class Client
8
+ include ClientMethods, CFoundry::LoginHelpers
9
+
10
+ # Internal BaseClient instance. Normally won't be touching this.
11
+ attr_reader :base
12
+
13
+ # [Organization] Currently targeted organization.
14
+ attr_accessor :current_organization
15
+
16
+ # [Space] Currently targeted space.
17
+ attr_accessor :current_space
18
+
19
+
20
+ # Create a new Client for interfacing with the given target.
21
+ #
22
+ # A token may also be provided to skip the login step.
23
+ def initialize(target = "http://api.cloudfoundry.com", token = nil)
24
+ @base = Base.new(target, token)
25
+ end
26
+
27
+ def version
28
+ 2
29
+ end
30
+
31
+ # The current target URL of the client.
32
+ def target
33
+ @base.target
34
+ end
35
+
36
+ # Current authentication token.
37
+ def token
38
+ @base.token
39
+ end
40
+
41
+ # Set the authentication token.
42
+ def token=(token)
43
+ @base.token = token
44
+ end
45
+
46
+ # Current proxy user. Usually nil.
47
+ def proxy
48
+ @base.proxy
49
+ end
50
+
51
+ # Set the proxy user for the client. Must be authorized as an
52
+ # administrator for this to have any effect.
53
+ def proxy=(email)
54
+ @base.proxy = email
55
+ end
56
+
57
+ # Is the client tracing API requests?
58
+ def trace
59
+ @base.trace
60
+ end
61
+
62
+ # Set the tracing flag; if true, API requests and responses will be
63
+ # printed out.
64
+ def trace=(bool)
65
+ @base.trace = bool
66
+ end
67
+
68
+ # The current log. See +log=+.
69
+ def log
70
+ @base.log
71
+ end
72
+
73
+ # Set the logging mode. Mode can be one of:
74
+ #
75
+ # [+String+] Name of a file to log the last 10 requests to.
76
+ # [+Array+] Array to append with log data (a Hash).
77
+ # [+IO+] An IO object to write to.
78
+ # [+false+] No logging.
79
+ def log=(mode)
80
+ @base.log = mode
81
+ end
82
+
83
+ # The currently authenticated user.
84
+ def current_user
85
+ return unless token
86
+
87
+ token_data = @base.token.token_data
88
+ if guid = token_data[:user_id]
89
+ user = user(guid)
90
+ user.emails = [{ :value => token_data[:email] }]
91
+ user
92
+ end
93
+ end
94
+
95
+ # Cloud metadata
96
+ def info
97
+ @base.info
98
+ end
99
+
100
+ def login(username, password)
101
+ @current_organization = nil
102
+ @current_space = nil
103
+ super
104
+ end
105
+
106
+ def register(email, password)
107
+ uaa_user = @base.uaa.add_user(email, password)
108
+ cc_user = user
109
+ cc_user.guid = uaa_user['id']
110
+ cc_user.create!
111
+ cc_user
112
+ end
113
+
114
+ # Clear client token. No requests are made for this.
115
+ def logout
116
+ @base.token = nil
117
+ end
118
+
119
+ # Is an authentication token set on the client?
120
+ def logged_in?
121
+ !!@base.token
122
+ end
123
+
124
+ def query_target(klass)
125
+ if klass.scoped_space && space = current_space
126
+ space
127
+ elsif klass.scoped_organization && org = current_organization
128
+ org
129
+ else
130
+ self
131
+ end
132
+ end
133
+
134
+ def stream_url(url, &blk)
135
+ @base.stream_url(url, &blk)
136
+ end
137
+ end
138
+ end
@@ -0,0 +1,11 @@
1
+ require "cfoundry/v2/model"
2
+
3
+ module CFoundry::V2
4
+ class Domain < Model
5
+ attribute :name, :string
6
+ attribute :wildcard, :boolean
7
+ to_one :owning_organization, :as => :organization, :default => nil
8
+
9
+ queryable_by :name, :owning_organization_guid, :space_guid
10
+ end
11
+ end
@@ -0,0 +1,14 @@
1
+ require "cfoundry/v2/model"
2
+
3
+ module CFoundry::V2
4
+ class Framework < Model
5
+ attribute :name, :string
6
+ attribute :description, :string
7
+ to_many :apps
8
+
9
+ queryable_by :name, :app_guid
10
+
11
+ attr_accessor :detection, :runtimes
12
+ end
13
+ end
14
+