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,125 @@
1
+ require "base64"
2
+ require "spec_helper"
3
+
4
+ describe CFoundry::AuthToken do
5
+ describe ".from_uaa_token_info" do
6
+ let(:access_token) { Base64.encode64('{"algo": "h1234"}{"user_id": "a6", "email": "a@b.com"}random-bytes') }
7
+ let(:info_hash) do
8
+ {
9
+ :token_type => "bearer",
10
+ :access_token => access_token,
11
+ :refresh_token => "some-refresh-token"
12
+ }
13
+ end
14
+
15
+
16
+ let(:token_info) { CF::UAA::TokenInfo.new(info_hash) }
17
+
18
+ subject { CFoundry::AuthToken.from_uaa_token_info(token_info) }
19
+
20
+ describe "#auth_header" do
21
+ its(:auth_header) { should eq "bearer #{access_token}" }
22
+ end
23
+
24
+ describe "#to_hash" do
25
+ let(:result_hash) do
26
+ {
27
+ :token => "bearer #{access_token}",
28
+ :refresh_token => "some-refresh-token"
29
+ }
30
+ end
31
+
32
+ its(:to_hash) { should eq result_hash }
33
+ end
34
+
35
+ describe "#token_data" do
36
+ context "when the access token is encoded as expected" do
37
+ its(:token_data) { should eq({ :user_id => "a6", :email => "a@b.com"}) }
38
+ end
39
+
40
+ context "when the access token is not encoded as expected" do
41
+ let(:access_token) { Base64.encode64('random-bytes') }
42
+ its(:token_data) { should eq({}) }
43
+ end
44
+
45
+ context "when the access token contains invalid json" do
46
+ let(:access_token) { Base64.encode64('{"algo": "h1234"}{"user_id", "a6", "email": "a@b.com"}random-bytes') }
47
+ its(:token_data) { should eq({}) }
48
+ end
49
+
50
+ context "when the auth header is nil" do
51
+ before do
52
+ subject.auth_header = nil
53
+ end
54
+
55
+ its(:token_data) { should eq({}) }
56
+ end
57
+ end
58
+ end
59
+
60
+ describe ".from_hash(hash)" do
61
+ let(:token_data) { '{"baz":"buzz"}' }
62
+ let(:token) { Base64.encode64("{\"foo\":1}#{token_data}") }
63
+
64
+ let(:hash) do
65
+ {
66
+ :token => "bearer #{token}",
67
+ :refresh_token => "some-refresh-token"
68
+ }
69
+ end
70
+
71
+ subject { CFoundry::AuthToken.from_hash(hash) }
72
+
73
+ describe "#auth_header" do
74
+ its(:auth_header) { should eq("bearer #{token}") }
75
+ end
76
+
77
+ describe "#to_hash" do
78
+ its(:to_hash) { should eq(hash) }
79
+ end
80
+
81
+ describe "#token_data" do
82
+ its(:token_data) { should eq({ :baz => "buzz" }) }
83
+ end
84
+ end
85
+
86
+ describe "#auth_header=" do
87
+ let(:access_token) { Base64.encode64('{"algo": "h1234"}{"user_id": "a6", "email": "a@b.com"}random-bytes') }
88
+ let(:other_access_token) { Base64.encode64('{"algo": "h1234"}{"user_id": "b6", "email": "a@b.com"}random-bytes') }
89
+
90
+ subject { CFoundry::AuthToken.new("bearer #{access_token}") }
91
+
92
+ it "invalidates @token_data" do
93
+ subject.token_data
94
+ expect {
95
+ subject.auth_header = "bearer #{other_access_token}"
96
+ }.to change { subject.token_data[:user_id] }.from("a6").to("b6")
97
+ end
98
+ end
99
+
100
+ describe "#expires_soon?" do
101
+ let(:access_token) { Base64.encode64(%Q|{"algo": "h1234"}{"exp":#{expiration.to_i}}random-bytes|) }
102
+
103
+ subject { CFoundry::AuthToken.new("bearer #{access_token}") }
104
+
105
+ context "when the token expires in less than 1 minute" do
106
+ let(:expiration) { Time.now + 59 }
107
+
108
+ it "returns true" do
109
+ Timecop.freeze do
110
+ expect(subject.expires_soon?).to be_true
111
+ end
112
+ end
113
+ end
114
+
115
+ context "when the token expires in greater than or equal to 1 minute" do
116
+ let(:expiration) { Time.now + 60 }
117
+
118
+ it "returns false" do
119
+ Timecop.freeze do
120
+ expect(subject.expires_soon?).to be_false
121
+ end
122
+ end
123
+ end
124
+ end
125
+ end
@@ -0,0 +1,225 @@
1
+ require 'spec_helper'
2
+
3
+ describe CFoundry::BaseClient do
4
+ describe "#request" do
5
+ before do
6
+ stub(subject).handle_response(anything, anything, anything)
7
+ end
8
+
9
+ context "when given multiple segments" do
10
+ it "encodes the segments and joins them with '/'" do
11
+ mock(subject).request_raw("GET", "foo/bar%2Fbaz", {})
12
+ subject.request("GET", "foo", "bar/baz")
13
+ end
14
+ end
15
+
16
+ context "when the first segment starts with a '/'" do
17
+ context "and there's only one segment" do
18
+ it "requests with the segment unaltered" do
19
+ mock(subject).request_raw("GET", "/v2/apps", {})
20
+ subject.request("GET", "/v2/apps")
21
+ end
22
+ end
23
+
24
+ context "and there's more than one segment" do
25
+ it "encodes the segments and joins them with '/'" do
26
+ mock(subject).request_raw("GET", "%2Ffoo/bar%2Fbaz", {})
27
+ subject.request("GET", "/foo", "bar/baz")
28
+ end
29
+ end
30
+ end
31
+
32
+ context "when there is a token with an auth_header" do
33
+ let(:refresh_token) { nil }
34
+ let(:token) { CFoundry::AuthToken.new("bearer something", refresh_token) }
35
+
36
+ before do
37
+ stub(subject).request_raw
38
+ subject.token = token
39
+ stub(token).expires_soon? { expires_soon? }
40
+ end
41
+
42
+ context "and the token is about to expire" do
43
+ let(:uaa) { Object.new }
44
+ let(:expires_soon?) { true }
45
+
46
+ context "and there is a refresh token" do
47
+ let(:refresh_token) { "some-refresh-token" }
48
+
49
+ it "sets the token's auth header to nil to prevent recursion" do
50
+ stub(subject).refresh_token!
51
+ subject.request("GET", "foo")
52
+ end
53
+
54
+ it "refreshes the access token" do
55
+ mock(subject).refresh_token!
56
+ subject.request("GET", "foo")
57
+ end
58
+ end
59
+
60
+ context "and there is NOT a refresh token" do
61
+ let(:refresh_token) { nil }
62
+
63
+ it "moves along" do
64
+ mock(subject).request_raw(anything, anything, anything)
65
+ dont_allow(subject).refresh_token!
66
+ subject.request("GET", "foo")
67
+ end
68
+ end
69
+ end
70
+
71
+ context "and the token is NOT about to expire" do
72
+ let(:expires_soon?) { nil }
73
+
74
+ it "moves along" do
75
+ mock(subject).request_raw(anything, anything, anything)
76
+ dont_allow(subject).refresh_token!
77
+ subject.request("GET", "foo")
78
+ end
79
+ end
80
+ end
81
+
82
+ describe "#refresh_token!" do
83
+ let(:uaa) { stub }
84
+ let(:access_token) { Base64.encode64(%Q|{"algo": "h1234"}{"a":"b"}random-bytes|) }
85
+ let(:refresh_token) { "xyz" }
86
+ let(:new_access_token) { Base64.encode64(%Q|{"algo": "h1234"}{"a":"x"}random-bytes|) }
87
+ let(:auth_token) { CFoundry::AuthToken.new("bearer #{access_token}", refresh_token) }
88
+
89
+ before { stub(subject).uaa { uaa } }
90
+
91
+ it "refreshes the token with UAA client and assigns it" do
92
+ mock(uaa).try_to_refresh_token! {
93
+ CFoundry::AuthToken.new("bearer #{new_access_token}", auth_token.refresh_token)
94
+ }
95
+
96
+ subject.refresh_token!
97
+
98
+ expect(subject.token.auth_header).to eq "bearer #{new_access_token}"
99
+ end
100
+ end
101
+
102
+ end
103
+
104
+ describe "UAAClient" do
105
+ context "with a valid uaa endpoint" do
106
+ before do
107
+ stub(subject).info { { :authorization_endpoint => "http://uaa.example.com" } }
108
+ end
109
+
110
+ describe "#uaa" do
111
+ it "creates a UAAClient on the first call" do
112
+ expect(subject.uaa).to be_a CFoundry::UAAClient
113
+ end
114
+
115
+ it "returns the same object on later calls" do
116
+ uaa = subject.uaa
117
+ expect(subject.uaa).to eq uaa
118
+ end
119
+
120
+ it "has the same AuthToken as BaseClient" do
121
+ token = CFoundry::AuthToken.new(nil)
122
+ stub(subject).token { token }
123
+ expect(subject.uaa.token).to eq token
124
+ end
125
+ end
126
+
127
+ describe "#token=" do
128
+ it "propagates the change to #uaa" do
129
+ subject.uaa
130
+ expect(subject.uaa.token).to eq subject.token
131
+ subject.token = CFoundry::AuthToken.new(nil)
132
+ expect(subject.uaa.token).to eq subject.token
133
+ end
134
+ end
135
+
136
+ describe "#trace=" do
137
+ it "propagates the change to #uaa" do
138
+ subject.uaa
139
+ subject.trace = true
140
+ expect(subject.uaa.trace).to eq true
141
+ subject.trace = false
142
+ expect(subject.uaa.trace).to eq false
143
+ end
144
+ end
145
+ end
146
+
147
+ context "with no uaa endpoint" do
148
+ before do
149
+ stub(subject).info { { :something => "else" } }
150
+ end
151
+
152
+ describe "#uaa" do
153
+ it "does not return a UAAClient" do
154
+ expect(subject.uaa).to be_nil
155
+ end
156
+ end
157
+
158
+ end
159
+ end
160
+
161
+ describe "#password_score" do
162
+ context "with a uaa" do
163
+ before do
164
+ stub(subject).info { { :authorization_endpoint => "http://uaa.example.com" } }
165
+ end
166
+
167
+ it "delegates to the uaa's password strength method" do
168
+ mock(subject.uaa).password_score('password')
169
+ subject.password_score('password')
170
+ end
171
+ end
172
+
173
+ context "without a uaa" do
174
+ before do
175
+ stub(subject).info { { :something => "else" } }
176
+ end
177
+
178
+ it "returns :unknown" do
179
+ expect(subject.password_score('password')).to eq(:unknown)
180
+ end
181
+ end
182
+ end
183
+
184
+ describe "#stream_url" do
185
+ it "handles a chunked response by yielding chunks as they come in" do
186
+ stub_request(:get, "http://example.com/something").to_return(
187
+ :headers => { "Transfer-Encoding" => "chunked" },
188
+ :body => "result")
189
+
190
+ chunks = []
191
+ subject.stream_url("http://example.com/something") do |chunk|
192
+ chunks << chunk
193
+ end
194
+
195
+ expect(chunks).to eq(["result"])
196
+ end
197
+
198
+ it "raises NotFound if response is 404" do
199
+ stub_request(:get, "http://example.com/something").to_return(
200
+ :status => 404, :body => "result")
201
+
202
+ expect {
203
+ subject.stream_url("http://example.com/something")
204
+ }.to raise_error(CFoundry::NotFound, /result/)
205
+ end
206
+
207
+ it "raises NotFound if response is 403" do
208
+ stub_request(:get, "http://example.com/something").to_return(
209
+ :status => 403, :body => "result")
210
+
211
+ expect {
212
+ subject.stream_url("http://example.com/something")
213
+ }.to raise_error(CFoundry::Denied, /result/)
214
+ end
215
+
216
+ it "raises BadRespones if response is unexpected" do
217
+ stub_request(:get, "http://example.com/something").to_return(
218
+ :status => 344, :body => "result")
219
+
220
+ expect {
221
+ subject.stream_url("http://example.com/something")
222
+ }.to raise_error(CFoundry::BadResponse, /result/)
223
+ end
224
+ end
225
+ end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe CFoundry::Client do
4
+ subject { CFoundry::Client.new('http://example.com') }
5
+
6
+ it "returns a v1 client when used on a v1 target" do
7
+ stub_request(:get, "http://example.com/info").to_return(:status => 200, :body => '{"version":1}')
8
+ subject.should be_a(CFoundry::V1::Client)
9
+ end
10
+
11
+ it "returns a v2 client when used on a v2 target" do
12
+ stub_request(:get, "http://example.com/info").to_return(:status => 200, :body => '{"version":2}')
13
+ subject.should be_a(CFoundry::V2::Client)
14
+ end
15
+ end
@@ -0,0 +1,80 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Errors' do
4
+ describe CFoundry::Timeout do
5
+ let(:parent) { Timeout::Error.new }
6
+
7
+ subject { CFoundry::Timeout.new("POST", '/blah', parent) }
8
+
9
+ its(:to_s) { should eq "POST /blah timed out" }
10
+ its(:method) { should eq "POST" }
11
+ its(:uri) { should eq '/blah' }
12
+ its(:parent) { should eq parent }
13
+ end
14
+
15
+ describe CFoundry::InvalidTarget do
16
+ let(:target) { "http://--foo-bar" }
17
+ subject { CFoundry::InvalidTarget.new(target) }
18
+
19
+ its(:to_s) { should eq "Invalid target URI: #{target}"}
20
+ its(:target) { should eq target }
21
+ end
22
+
23
+ describe CFoundry::APIError do
24
+ let(:request) { { :method => "GET", :url => "http://api.cloudfoundry.com/foo", :headers => {} } }
25
+ let(:response_body) { "NOT FOUND" }
26
+ let(:response) { { :status => 404, :headers => {}, :body => response_body } }
27
+
28
+ subject { CFoundry::APIError.new(nil, nil, request, response) }
29
+
30
+ its(:to_s) { should eq "404: NOT FOUND" }
31
+
32
+ its(:request) { should eq request }
33
+
34
+ its(:response) { should eq response }
35
+
36
+ describe "#initialize" do
37
+
38
+ context "Response body is JSON" do
39
+
40
+ let(:response_body) { "{\"description\":\"Something went wrong\"}"}
41
+
42
+ it "sets description to description field in parsed JSON" do
43
+ CFoundry::APIError.new(nil, nil, request, response).description.should == "Something went wrong"
44
+ end
45
+ end
46
+
47
+
48
+ context "Response body is not JSON" do
49
+
50
+ let(:response_body) { "Some plain text"}
51
+
52
+ it "sets description to body text" do
53
+ CFoundry::APIError.new(nil, nil, request, response).description.should == "Some plain text"
54
+ end
55
+ end
56
+
57
+ it "allows override of description" do
58
+ CFoundry::APIError.new("My description", nil, request, response).description.should == "My description"
59
+ end
60
+
61
+ end
62
+
63
+ describe "#request_trace" do
64
+ its(:request_trace) { should include "REQUEST: " }
65
+ end
66
+
67
+ describe "#response_trace" do
68
+ its(:response_trace) { should include "RESPONSE: " }
69
+ end
70
+
71
+ it "sets error code to response error code by default" do
72
+ CFoundry::APIError.new(nil, nil, request, response).error_code.should == 404
73
+ end
74
+
75
+ it "allows override of error code" do
76
+ CFoundry::APIError.new(nil, 303, request, response).error_code.should == 303
77
+ end
78
+
79
+ end
80
+ end