ncfoundry 4.9.2

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 (268) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +8 -0
  3. data/.gitmodules +3 -0
  4. data/.rspec +2 -0
  5. data/.ruby-gemset +1 -0
  6. data/.ruby-version +1 -0
  7. data/.travis.yml +11 -0
  8. data/Checkfile +2 -0
  9. data/Gemfile +3 -0
  10. data/LICENSE +987 -0
  11. data/NOTICE +10 -0
  12. data/README.md +9 -0
  13. data/Rakefile +14 -0
  14. data/VERSION +1 -0
  15. data/cfoundry.gemspec +41 -0
  16. data/config/locales/en.yml +168 -0
  17. data/lib/cc_api_stub/app_usage_events.rb +11 -0
  18. data/lib/cc_api_stub/applications.rb +57 -0
  19. data/lib/cc_api_stub/domains.rb +32 -0
  20. data/lib/cc_api_stub/events.rb +11 -0
  21. data/lib/cc_api_stub/frameworks.rb +22 -0
  22. data/lib/cc_api_stub/helper.rb +148 -0
  23. data/lib/cc_api_stub/login.rb +21 -0
  24. data/lib/cc_api_stub/organization_users.rb +27 -0
  25. data/lib/cc_api_stub/organizations.rb +82 -0
  26. data/lib/cc_api_stub/routes.rb +26 -0
  27. data/lib/cc_api_stub/runtimes.rb +22 -0
  28. data/lib/cc_api_stub/service_bindings.rb +22 -0
  29. data/lib/cc_api_stub/service_instances.rb +22 -0
  30. data/lib/cc_api_stub/services.rb +21 -0
  31. data/lib/cc_api_stub/space_users.rb +27 -0
  32. data/lib/cc_api_stub/spaces.rb +58 -0
  33. data/lib/cc_api_stub/users.rb +85 -0
  34. data/lib/cc_api_stub.rb +20 -0
  35. data/lib/cfoundry/auth_token.rb +62 -0
  36. data/lib/cfoundry/baseclient.rb +220 -0
  37. data/lib/cfoundry/chatty_hash.rb +46 -0
  38. data/lib/cfoundry/client.rb +42 -0
  39. data/lib/cfoundry/concerns/login_helpers.rb +14 -0
  40. data/lib/cfoundry/concerns/proxy_options.rb +14 -0
  41. data/lib/cfoundry/errors.rb +163 -0
  42. data/lib/cfoundry/rest_client.rb +316 -0
  43. data/lib/cfoundry/test_support.rb +3 -0
  44. data/lib/cfoundry/trace_helpers.rb +64 -0
  45. data/lib/cfoundry/uaaclient.rb +151 -0
  46. data/lib/cfoundry/upload_helpers.rb +222 -0
  47. data/lib/cfoundry/v2/app.rb +313 -0
  48. data/lib/cfoundry/v2/app_event.rb +13 -0
  49. data/lib/cfoundry/v2/app_instance.rb +74 -0
  50. data/lib/cfoundry/v2/app_usage_event.rb +14 -0
  51. data/lib/cfoundry/v2/base.rb +112 -0
  52. data/lib/cfoundry/v2/client.rb +104 -0
  53. data/lib/cfoundry/v2/domain.rb +20 -0
  54. data/lib/cfoundry/v2/event.rb +17 -0
  55. data/lib/cfoundry/v2/helper.rb +11 -0
  56. data/lib/cfoundry/v2/managed_service_instance.rb +13 -0
  57. data/lib/cfoundry/v2/model.rb +213 -0
  58. data/lib/cfoundry/v2/model_magic/attribute.rb +49 -0
  59. data/lib/cfoundry/v2/model_magic/client_extensions.rb +170 -0
  60. data/lib/cfoundry/v2/model_magic/has_summary.rb +49 -0
  61. data/lib/cfoundry/v2/model_magic/query_multi_value_helper.rb +21 -0
  62. data/lib/cfoundry/v2/model_magic/query_value_helper.rb +33 -0
  63. data/lib/cfoundry/v2/model_magic/queryable_by.rb +39 -0
  64. data/lib/cfoundry/v2/model_magic/to_many.rb +145 -0
  65. data/lib/cfoundry/v2/model_magic/to_one.rb +81 -0
  66. data/lib/cfoundry/v2/model_magic.rb +134 -0
  67. data/lib/cfoundry/v2/organization.rb +44 -0
  68. data/lib/cfoundry/v2/quota_definition.rb +12 -0
  69. data/lib/cfoundry/v2/route.rb +25 -0
  70. data/lib/cfoundry/v2/service.rb +22 -0
  71. data/lib/cfoundry/v2/service_auth_token.rb +9 -0
  72. data/lib/cfoundry/v2/service_binding.rb +10 -0
  73. data/lib/cfoundry/v2/service_broker.rb +12 -0
  74. data/lib/cfoundry/v2/service_instance.rb +14 -0
  75. data/lib/cfoundry/v2/service_plan.rb +16 -0
  76. data/lib/cfoundry/v2/space.rb +31 -0
  77. data/lib/cfoundry/v2/stack.rb +10 -0
  78. data/lib/cfoundry/v2/user.rb +97 -0
  79. data/lib/cfoundry/v2/user_provided_service_instance.rb +16 -0
  80. data/lib/cfoundry/validator.rb +41 -0
  81. data/lib/cfoundry/version.rb +4 -0
  82. data/lib/cfoundry/zip.rb +56 -0
  83. data/lib/cfoundry.rb +6 -0
  84. data/release_notes/release_1_5_3.md +177 -0
  85. data/release_notes/release_2.3.1.md +14 -0
  86. data/release_notes/release_2.3.3.md +38 -0
  87. data/release_notes/release_2.3.4.md +16 -0
  88. data/release_notes/release_2.3.5.md +14 -0
  89. data/release_notes/release_2.3.6.md +14 -0
  90. data/release_notes/release_2.3.6.rc1.md +29 -0
  91. data/release_notes/release_2.3.6.rc2.md +19 -0
  92. data/release_notes/release_2.3.7.rc1.md +14 -0
  93. data/release_notes/release_2.4.0.md +41 -0
  94. data/release_notes/release_2.4.1.rc1.md +58 -0
  95. data/release_notes/release_3.0.0.md +21 -0
  96. data/release_notes/release_3.0.1.md +16 -0
  97. data/release_notes/release_3.0.2.rc1.md +19 -0
  98. data/release_notes/release_4.0.0.md +19 -0
  99. data/release_notes/release_4.0.1.md +14 -0
  100. data/release_notes/release_4.0.2.rc1.md +14 -0
  101. data/release_notes/release_4.0.2.rc2.md +11 -0
  102. data/release_notes/release_4.0.2.rc3.md +11 -0
  103. data/release_notes/release_4.0.2.rc4.md +19 -0
  104. data/release_notes/release_4.0.2.rc5.md +14 -0
  105. data/release_notes/release_4.0.3.md +19 -0
  106. data/release_notes/release_4.0.4.rc1.md +14 -0
  107. data/release_notes/release_4.0.4.rc2.md +14 -0
  108. data/release_notes/release_4.1.0.md +19 -0
  109. data/release_notes/release_4.2.0.rc.md +24 -0
  110. data/release_notes/release_4.3.0.md +22 -0
  111. data/release_notes/release_4.3.1.md +14 -0
  112. data/release_notes/release_4.3.10.md +14 -0
  113. data/release_notes/release_4.3.11.md +14 -0
  114. data/release_notes/release_4.3.12.md +14 -0
  115. data/release_notes/release_4.3.2.rc1.md +21 -0
  116. data/release_notes/release_4.3.3.md +24 -0
  117. data/release_notes/release_4.3.4.md +11 -0
  118. data/release_notes/release_4.3.4.rc1.md +24 -0
  119. data/release_notes/release_4.3.5.md +36 -0
  120. data/release_notes/release_4.3.5.rc1.md +21 -0
  121. data/release_notes/release_4.3.6.md +14 -0
  122. data/release_notes/release_4.3.7.md +50 -0
  123. data/release_notes/release_4.3.8.md +19 -0
  124. data/release_notes/release_4.3.9.md +14 -0
  125. data/release_notes/release_4.4.0.md +16 -0
  126. data/release_notes/release_4.5.1.md +11 -0
  127. data/release_notes/release_4.5.2.md +14 -0
  128. data/release_notes/release_4.5.3.md +29 -0
  129. data/release_notes/release_4.6.0.md +24 -0
  130. data/release_notes/release_4.6.1.md +14 -0
  131. data/release_notes/release_4.6.2.md +16 -0
  132. data/release_notes/release_4.6.3.rc1.md +14 -0
  133. data/release_notes/release_4.6.3.rc2.md +14 -0
  134. data/release_notes/release_4.6.3.rc3.md +17 -0
  135. data/release_notes/release_4.7.0.md +11 -0
  136. data/release_notes/release_4.7.1.md +14 -0
  137. data/release_notes/release_4.7.1.rc.1.md +14 -0
  138. data/release_notes/release_4.7.1.rc1.md +19 -0
  139. data/script/gpp +3 -0
  140. data/spec/cc_api_stub/app_usage_events_spec.rb +12 -0
  141. data/spec/cc_api_stub/applications_spec.rb +69 -0
  142. data/spec/cc_api_stub/domains_spec.rb +40 -0
  143. data/spec/cc_api_stub/events_spec.rb +12 -0
  144. data/spec/cc_api_stub/frameworks_spec.rb +19 -0
  145. data/spec/cc_api_stub/login_spec.rb +20 -0
  146. data/spec/cc_api_stub/organization_users_spec.rb +35 -0
  147. data/spec/cc_api_stub/organizations_spec.rb +118 -0
  148. data/spec/cc_api_stub/routes_spec.rb +19 -0
  149. data/spec/cc_api_stub/runtimes_spec.rb +19 -0
  150. data/spec/cc_api_stub/service_bindings_spec.rb +13 -0
  151. data/spec/cc_api_stub/service_instances_spec.rb +19 -0
  152. data/spec/cc_api_stub/services_spec.rb +11 -0
  153. data/spec/cc_api_stub/space_users_spec.rb +35 -0
  154. data/spec/cc_api_stub/spaces_spec.rb +38 -0
  155. data/spec/cc_api_stub/users_spec.rb +107 -0
  156. data/spec/cfoundry/auth_token_spec.rb +153 -0
  157. data/spec/cfoundry/baseclient_spec.rb +284 -0
  158. data/spec/cfoundry/client_spec.rb +13 -0
  159. data/spec/cfoundry/errors_spec.rb +117 -0
  160. data/spec/cfoundry/rest_client_spec.rb +367 -0
  161. data/spec/cfoundry/trace_helpers_spec.rb +91 -0
  162. data/spec/cfoundry/uaaclient_spec.rb +421 -0
  163. data/spec/cfoundry/upload_helpers_spec.rb +182 -0
  164. data/spec/cfoundry/v2/app_event_spec.rb +97 -0
  165. data/spec/cfoundry/v2/app_instance_spec.rb +31 -0
  166. data/spec/cfoundry/v2/app_spec.rb +354 -0
  167. data/spec/cfoundry/v2/app_usage_event_spec.rb +15 -0
  168. data/spec/cfoundry/v2/base_spec.rb +375 -0
  169. data/spec/cfoundry/v2/client_spec.rb +121 -0
  170. data/spec/cfoundry/v2/domain_spec.rb +63 -0
  171. data/spec/cfoundry/v2/event_spec.rb +15 -0
  172. data/spec/cfoundry/v2/managed_service_instance_spec.rb +149 -0
  173. data/spec/cfoundry/v2/model_magic/attribute_spec.rb +123 -0
  174. data/spec/cfoundry/v2/model_magic/has_summary_spec.rb +17 -0
  175. data/spec/cfoundry/v2/model_magic/to_many_spec.rb +53 -0
  176. data/spec/cfoundry/v2/model_magic/to_one_spec.rb +106 -0
  177. data/spec/cfoundry/v2/model_magic_spec.rb +43 -0
  178. data/spec/cfoundry/v2/model_spec.rb +472 -0
  179. data/spec/cfoundry/v2/organization_spec.rb +282 -0
  180. data/spec/cfoundry/v2/quota_definition_spec.rb +50 -0
  181. data/spec/cfoundry/v2/route_spec.rb +42 -0
  182. data/spec/cfoundry/v2/service_plan_spec.rb +53 -0
  183. data/spec/cfoundry/v2/service_spec.rb +58 -0
  184. data/spec/cfoundry/v2/space_spec.rb +160 -0
  185. data/spec/cfoundry/v2/user_provided_service_instance_spec.rb +57 -0
  186. data/spec/cfoundry/v2/user_spec.rb +206 -0
  187. data/spec/cfoundry/validator_spec.rb +94 -0
  188. data/spec/factories/app_events_factory.rb +7 -0
  189. data/spec/factories/app_usage_events_factory.rb +32 -0
  190. data/spec/factories/apps_factory.rb +11 -0
  191. data/spec/factories/clients_factory.rb +7 -0
  192. data/spec/factories/domains_factory.rb +10 -0
  193. data/spec/factories/events_factory.rb +50 -0
  194. data/spec/factories/organizations_factory.rb +12 -0
  195. data/spec/factories/quota_definitions_factory.rb +8 -0
  196. data/spec/factories/routes_factory.rb +10 -0
  197. data/spec/factories/service_instances_factory.rb +10 -0
  198. data/spec/factories/service_plans_factory.rb +10 -0
  199. data/spec/factories/services_factory.rb +10 -0
  200. data/spec/factories/spaces_factory.rb +10 -0
  201. data/spec/factories/user_provided_service_instances_factory.rb +10 -0
  202. data/spec/factories/users_factory.rb +10 -0
  203. data/spec/fixtures/apps/with_cfignore/.cfignore +4 -0
  204. data/spec/fixtures/apps/with_cfignore/.hidden_file +1 -0
  205. data/spec/fixtures/apps/with_cfignore/ambiguous_ignored +0 -0
  206. data/spec/fixtures/apps/with_cfignore/ignored_dir/file_in_ignored_dir.txt +1 -0
  207. data/spec/fixtures/apps/with_cfignore/ignored_file.txt +1 -0
  208. data/spec/fixtures/apps/with_cfignore/non_ignored_dir/file_in_non_ignored_dir.txt +1 -0
  209. data/spec/fixtures/apps/with_cfignore/non_ignored_dir/ignored_file.txt +1 -0
  210. data/spec/fixtures/apps/with_cfignore/non_ignored_dir/toplevel_ignored.txt +0 -0
  211. data/spec/fixtures/apps/with_cfignore/non_ignored_file.txt +1 -0
  212. data/spec/fixtures/apps/with_cfignore/toplevel_ignored.txt +0 -0
  213. data/spec/fixtures/apps/with_dotfiles/.dotfile +1 -0
  214. data/spec/fixtures/apps/with_dotfiles/xyz +1 -0
  215. data/spec/fixtures/apps/with_external_symlink/foo +1 -0
  216. data/spec/fixtures/apps/with_ignored_external_symlink/.cfignore +1 -0
  217. data/spec/fixtures/apps/with_ignored_external_symlink/foo +1 -0
  218. data/spec/fixtures/apps/with_nested_directories/foo/bar/baz/fizz +0 -0
  219. data/spec/fixtures/apps/with_nested_directories/xyz +0 -0
  220. data/spec/fixtures/empty_file +0 -0
  221. data/spec/fixtures/fake_cc_app_usage_events.json +152 -0
  222. data/spec/fixtures/fake_cc_application.json +20 -0
  223. data/spec/fixtures/fake_cc_application_summary.json +56 -0
  224. data/spec/fixtures/fake_cc_created_application.json +11 -0
  225. data/spec/fixtures/fake_cc_created_domain.json +15 -0
  226. data/spec/fixtures/fake_cc_created_organization.json +11 -0
  227. data/spec/fixtures/fake_cc_created_route.json +13 -0
  228. data/spec/fixtures/fake_cc_created_service_instance.json +11 -0
  229. data/spec/fixtures/fake_cc_created_space.json +11 -0
  230. data/spec/fixtures/fake_cc_created_user.json +11 -0
  231. data/spec/fixtures/fake_cc_domain.json +55 -0
  232. data/spec/fixtures/fake_cc_domain_spaces.json +27 -0
  233. data/spec/fixtures/fake_cc_empty_search.json +7 -0
  234. data/spec/fixtures/fake_cc_events.json +419 -0
  235. data/spec/fixtures/fake_cc_frameworks.json +20 -0
  236. data/spec/fixtures/fake_cc_managed_service_instance.json +83 -0
  237. data/spec/fixtures/fake_cc_organization.json +161 -0
  238. data/spec/fixtures/fake_cc_organization_domains.json +59 -0
  239. data/spec/fixtures/fake_cc_organization_search.json +37 -0
  240. data/spec/fixtures/fake_cc_organization_spaces.json +99 -0
  241. data/spec/fixtures/fake_cc_organization_summary.json +20 -0
  242. data/spec/fixtures/fake_cc_organization_users.json +81 -0
  243. data/spec/fixtures/fake_cc_route.json +16 -0
  244. data/spec/fixtures/fake_cc_runtimes.json +20 -0
  245. data/spec/fixtures/fake_cc_service_binding.json +22 -0
  246. data/spec/fixtures/fake_cc_service_bindings.json +24 -0
  247. data/spec/fixtures/fake_cc_service_instance.json +83 -0
  248. data/spec/fixtures/fake_cc_service_instances.json +72 -0
  249. data/spec/fixtures/fake_cc_services.json +160 -0
  250. data/spec/fixtures/fake_cc_space.json +45 -0
  251. data/spec/fixtures/fake_cc_space_apps.json +49 -0
  252. data/spec/fixtures/fake_cc_space_summary.json +84 -0
  253. data/spec/fixtures/fake_cc_spaces.json +92 -0
  254. data/spec/fixtures/fake_cc_stats.json +29 -0
  255. data/spec/fixtures/fake_cc_user.json +139 -0
  256. data/spec/fixtures/fake_cc_user_organizations.json +92 -0
  257. data/spec/fixtures/fake_cc_user_provided_service_instance.json +51 -0
  258. data/spec/fixtures/fake_cc_user_with_managers.json +85 -0
  259. data/spec/integration/client_spec.rb +38 -0
  260. data/spec/spec_helper.rb +22 -0
  261. data/spec/support/factory_girl.rb +6 -0
  262. data/spec/support/shared_examples/cc_api_stub_request_examples.rb +79 -0
  263. data/spec/support/shared_examples/client_login_examples.rb +46 -0
  264. data/spec/support/shared_examples/model_summary_examples.rb +34 -0
  265. data/spec/support/test_model_builder.rb +10 -0
  266. data/vendor/errors/v1.yml +189 -0
  267. data/vendor/errors/v2.yml +845 -0
  268. metadata +712 -0
@@ -0,0 +1,31 @@
1
+ require "cfoundry/v2/model"
2
+ require "cfoundry/v2/helper"
3
+
4
+ module CFoundry::V2
5
+ class Space < Model
6
+ extend Helper
7
+
8
+ attribute :name, :string
9
+ to_one :organization
10
+ to_many :developers, :as => :user
11
+ to_many :managers, :as => :user
12
+ to_many :auditors, :as => :user
13
+ to_many :apps
14
+ to_many :domains
15
+ to_many :service_instances
16
+ to_many :services
17
+ to_many :routes
18
+
19
+ to_many_support :developers
20
+ to_many_support :managers
21
+ to_many_support :auditors
22
+ to_many_support :apps
23
+ to_many_support :domains
24
+ to_many_support :service_instances
25
+ to_many_support :services
26
+
27
+ scoped_to_organization
28
+
29
+ queryable_by :name, :organization_guid, :developer_guid, :app_guid
30
+ end
31
+ end
@@ -0,0 +1,10 @@
1
+
2
+ require "cfoundry/v2/model"
3
+
4
+ module CFoundry::V2
5
+ class Stack < Model
6
+ attribute :name, :string
7
+
8
+ queryable_by :name
9
+ end
10
+ end
@@ -0,0 +1,97 @@
1
+ require "cfoundry/v2/model"
2
+
3
+ module CFoundry
4
+ module V2
5
+ class User < Model
6
+ to_many :spaces
7
+ to_many :organizations
8
+ to_many :managed_organizations, :as => :organization
9
+ to_many :billing_managed_organizations, :as => :organization
10
+ to_many :audited_organizations, :as => :organization
11
+ to_many :managed_spaces, :as => :space
12
+ to_many :audited_spaces, :as => :space
13
+ attribute :admin, :boolean
14
+ to_one :default_space, :as => :space
15
+
16
+ attribute :guid, :string # guid is explicitly set for users
17
+
18
+ queryable_by :space_guid, :organization_guid, :managed_organization_guid,
19
+ :billing_managed_organization_guid, :audited_organization_guid,
20
+ :managed_space_guid, :audited_space_guid
21
+
22
+ def guid
23
+ @guid
24
+ end
25
+
26
+ alias set_guid_attribute guid=
27
+
28
+ def guid=(x)
29
+ @guid = x
30
+ set_guid_attribute(x)
31
+ end
32
+
33
+ alias :admin? :admin
34
+
35
+ def change_password!(new, old)
36
+ @client.base.uaa.change_password(@guid, new, old)
37
+ end
38
+
39
+ # optional metadata from UAA
40
+ attr_accessor :emails, :name
41
+
42
+ def email
43
+ # if the email collection is nil or empty? collect from UAA
44
+ get_meta_from_uaa if @emails.nil?
45
+
46
+ return unless @emails && @emails.first
47
+ @emails.first[:value]
48
+ end
49
+
50
+ def given_name
51
+ get_meta_from_uaa if @name.nil?
52
+
53
+ return unless @name && @name[:givenName] != email
54
+ @name[:givenName]
55
+ end
56
+
57
+ def family_name
58
+ get_meta_from_uaa if @name.nil?
59
+
60
+ return unless @name && @name[:familyName] != email
61
+ @name[:familyName]
62
+ end
63
+
64
+ def full_name
65
+ if @name && @name[:fullName]
66
+ @name[:fullName]
67
+ elsif given_name && family_name
68
+ "#{given_name} #{family_name}"
69
+ end
70
+ end
71
+
72
+ def delete! (options = {})
73
+ super(options)
74
+ @client.base.uaa.delete_user(guid)
75
+ true
76
+ end
77
+
78
+ def username
79
+ manifest.try(:[], :entity).try(:[], :username)
80
+ end
81
+
82
+ private
83
+
84
+ def get_meta_from_uaa
85
+ user = @client.base.uaa.user(guid)
86
+ return if user.nil?
87
+ return if not user[:error].nil?
88
+
89
+ @emails = user[:emails]
90
+ @name ||= {}
91
+ @name[:familyName] = user[:name][:familyname]
92
+ @name[:givenName] = user[:name][:givenname]
93
+ end
94
+
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,16 @@
1
+ require "cfoundry/v2/service_instance"
2
+
3
+ module CFoundry::V2
4
+ class UserProvidedServiceInstance < ServiceInstance
5
+ attribute :credentials, :hash
6
+ attribute :parameters, :hash
7
+
8
+ def self.object_name
9
+ 'service_instance'
10
+ end
11
+
12
+ def create_endpoint_name
13
+ 'user_provided_service_instances'
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,41 @@
1
+ module CFoundry
2
+ module Validator
3
+ class << self
4
+ def value_matches?(val, type)
5
+ return true if val.nil?
6
+
7
+ case type
8
+ when Class
9
+ val.is_a?(type)
10
+ when Regexp
11
+ val.is_a?(String) && !!(val =~ type)
12
+ when :url
13
+ value_matches?(val, URI::regexp(%w(http https)))
14
+ when :https_url
15
+ value_matches?(val, URI::regexp("https"))
16
+ when :boolean
17
+ val.is_a?(TrueClass) || val.is_a?(FalseClass)
18
+ when Array
19
+ val.all? do |x|
20
+ value_matches?(x, type.first)
21
+ end
22
+ when Hash
23
+ val.is_a?(Hash) &&
24
+ type.all? { |name, subtype|
25
+ val.key?(name) && value_matches?(val[name], subtype)
26
+ }
27
+ when nil
28
+ true
29
+ else
30
+ val.is_a?(Object.const_get(type.to_s.capitalize))
31
+ end
32
+ end
33
+
34
+ def validate_type(val, type)
35
+ unless value_matches?(val, type)
36
+ raise CFoundry::Mismatch.new(type, val)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,4 @@
1
+ module CFoundry # :nodoc:
2
+ # CFoundry library version number.
3
+ VERSION = File.read(File.join(File.dirname(__FILE__), '..', '..', 'VERSION')).freeze
4
+ end
@@ -0,0 +1,56 @@
1
+ require "zip/zipfilesystem"
2
+
3
+ module CFoundry
4
+ # Generic Zpi API. Uses rubyzip underneath, but may be changed in the future
5
+ # to use system zip command if necessary.
6
+ module Zip
7
+ # Directory entries to exclude from packing.
8
+ PACK_EXCLUSION_GLOBS = %w(.. . *~ #*# *.log)
9
+
10
+ module_function
11
+
12
+ # Get the entries in the zip file. Returns an array of the entire
13
+ # contents, recursively (not just top-level).
14
+ def entry_lines(file)
15
+ entries = []
16
+ ::Zip::ZipFile.foreach(file) do |zentry|
17
+ entries << zentry
18
+ end
19
+ entries
20
+ end
21
+
22
+ # Unpack a zip +file+ to directory +dest+.
23
+ def unpack(file, dest)
24
+ ::Zip::ZipFile.foreach(file) do |zentry|
25
+ epath = "#{dest}/#{zentry}"
26
+ dirname = File.dirname(epath)
27
+ FileUtils.mkdir_p(dirname) unless File.exists?(dirname)
28
+ zentry.extract(epath) unless File.exists?(epath)
29
+ end
30
+ end
31
+
32
+ # Determine what files in +dir+ to pack.
33
+ def files_to_pack(dir)
34
+ Dir.glob("#{dir}/**/*", File::FNM_DOTMATCH).select do |f|
35
+ File.exists?(f) &&
36
+ PACK_EXCLUSION_GLOBS.none? do |e|
37
+ File.fnmatch(e, File.basename(f))
38
+ end
39
+ end
40
+ end
41
+
42
+ # Package directory +dir+ as file +zipfile+.
43
+ def pack(dir, zipfile)
44
+ files = files_to_pack(dir)
45
+ return false if files.empty?
46
+
47
+ ::Zip::ZipFile.open(zipfile, true) do |zf|
48
+ files.each do |f|
49
+ zf.add(f.sub("#{dir}/",''), f)
50
+ end
51
+ end
52
+
53
+ true
54
+ end
55
+ end
56
+ end
data/lib/cfoundry.rb ADDED
@@ -0,0 +1,6 @@
1
+ require "cfoundry/version"
2
+ require "active_model"
3
+ require "jwt"
4
+ require "cfoundry/client"
5
+
6
+ I18n.load_path += Dir["config/locales/*.yml"]
@@ -0,0 +1,177 @@
1
+ # Release Notes
2
+
3
+ ## Summary
4
+
5
+ ## Changes
6
+
7
+ * SHA: [6af0341d0b10af63efca6e7a9b806abfb037e6ad](git@github.com:cloudfoundry/cfoundry/commit/6af0341d0b10af63efca6e7a9b806abfb037e6ad)
8
+ * Bump to 1.5.3
9
+ * Andreas Maier & Ryan Spore, pair+amaier+ryan@pivotallabs.com
10
+
11
+
12
+ * SHA: [c3d8d7c7075f5c958f33ea3979dba0206a25fa9b](git@github.com:cloudfoundry/cfoundry/commit/c3d8d7c7075f5c958f33ea3979dba0206a25fa9b)
13
+ * Add dashboard url to app summary json stub
14
+
15
+ [#49312147](http://www.pivotaltracker.com/story/49312147)
16
+ * Andreas Maier & Ryan Spore, pair+amaier+ryan@pivotallabs.com
17
+
18
+
19
+ * SHA: [3d315622e4b6bc72aa1ee28197093f666af65bd3](git@github.com:cloudfoundry/cfoundry/commit/3d315622e4b6bc72aa1ee28197093f666af65bd3)
20
+ * Bump to 1.5.2
21
+ * Andreas Maier & Ryan Spore, pair+amaier+ryan@pivotallabs.com
22
+
23
+
24
+ * SHA: [cc6ed2168708e0c92b1bbe2266387bad436ea9d0](git@github.com:cloudfoundry/cfoundry/commit/cc6ed2168708e0c92b1bbe2266387bad436ea9d0)
25
+ * Add dashboard url to space summary json stub
26
+
27
+ [#49312147](http://www.pivotaltracker.com/story/49312147)
28
+ * Andreas Maier & Ryan Spore, pair+amaier+ryan@pivotallabs.com
29
+
30
+
31
+ * SHA: [20d4c1be26f74b6e0441bd45dede535e07760fb7](git@github.com:cloudfoundry/cfoundry/commit/20d4c1be26f74b6e0441bd45dede535e07760fb7)
32
+ * Bump to 1.5.1
33
+ * Andreas Maier & Dennis Schmidt, pair+amaier+dschmidt@pivotallabs.com
34
+
35
+
36
+ * SHA: [1ea770ad09aaa22bd6ed836dfc79cc44b7047371](git@github.com:cloudfoundry/cfoundry/commit/1ea770ad09aaa22bd6ed836dfc79cc44b7047371)
37
+ * Add params to delete method for models
38
+ * Andreas Maier & Dennis Schmidt, pair+amaier+dschmidt@pivotallabs.com
39
+
40
+
41
+ * SHA: [3555b21e4f1e3619f9c33d2ec39a88f5a52aa55b](git@github.com:cloudfoundry/cfoundry/commit/3555b21e4f1e3619f9c33d2ec39a88f5a52aa55b)
42
+ * Bump to 1.5.0
43
+ * Kyriacos Souroullas & Ryan Spore, pair+k+ryan@pivotallabs.com
44
+
45
+
46
+ * SHA: [b27511b7f858c6fec40d80724bdfb7d0c07f0f50](git@github.com:cloudfoundry/cfoundry/commit/b27511b7f858c6fec40d80724bdfb7d0c07f0f50)
47
+ * Added create_model to 'to_many' associations
48
+
49
+ [#50538083](http://www.pivotaltracker.com/story/50538083)
50
+ * Kyriacos Souroullas & Ryan Spore, pair+k+ryan@pivotallabs.com
51
+
52
+
53
+ * SHA: [498d398f555e20c40facb27d168313460b06acd1](git@github.com:cloudfoundry/cfoundry/commit/498d398f555e20c40facb27d168313460b06acd1)
54
+ * Split model magic spec [#50538083](http://www.pivotaltracker.com/story/50538083)
55
+ * Kyriacos Souroullas & Ryan Spore, pair+k+ryan@pivotallabs.com
56
+
57
+
58
+ * SHA: [2e961b18894eb4ef7d3ec6f028e4a3a044ed3536](git@github.com:cloudfoundry/cfoundry/commit/2e961b18894eb4ef7d3ec6f028e4a3a044ed3536)
59
+ * Split ModelMagic into components
60
+
61
+ [#50538083](http://www.pivotaltracker.com/story/50538083)
62
+ * Kyriacos Souroullas & Ryan Spore, pair+k+ryan@pivotallabs.com
63
+
64
+
65
+ * SHA: [e00106c963079201c557089c8637418356c7f1c3](git@github.com:cloudfoundry/cfoundry/commit/e00106c963079201c557089c8637418356c7f1c3)
66
+ * add comments to ModelMagic to improve scanning readability
67
+ * Dennis Schmidt & Ryan Spore, pair+dschmidt+ryan@pivotallabs.com
68
+
69
+
70
+ * SHA: [16073582fe2dd32a70c1b0dff28436cef27489ab](git@github.com:cloudfoundry/cfoundry/commit/16073582fe2dd32a70c1b0dff28436cef27489ab)
71
+ * Bump to 1.4.0
72
+ * Dennis Schmidt & Ryan Spore, pair+dschmidt+ryan@pivotallabs.com
73
+
74
+
75
+ * SHA: [f6d1864a73c2fabf5cec6adcd2fe321f326c442a](git@github.com:cloudfoundry/cfoundry/commit/f6d1864a73c2fabf5cec6adcd2fe321f326c442a)
76
+ * add a create_MODELNAME to model magic
77
+
78
+ creates related models from to_one associations
79
+ * Dennis Schmidt & Ryan Spore, pair+dschmidt+ryan@pivotallabs.com
80
+
81
+
82
+ * SHA: [b0d830d8ae9b8370fdd55751c50b0b7c09f5433a](git@github.com:cloudfoundry/cfoundry/commit/b0d830d8ae9b8370fdd55751c50b0b7c09f5433a)
83
+ * to_one assignment now always returns RHS
84
+ * Dennis Schmidt & Ryan Spore, pair+dschmidt+ryan@pivotallabs.com
85
+
86
+
87
+ * SHA: [9eb9fd501c0daabc7ddd2343eb927b9dd732602c](git@github.com:cloudfoundry/cfoundry/commit/9eb9fd501c0daabc7ddd2343eb927b9dd732602c)
88
+ * refactor model magic test structure
89
+ * Dennis Schmidt & Ryan Spore, pair+dschmidt+ryan@pivotallabs.com
90
+
91
+
92
+ * SHA: [48b2b86ecd615f2bc3817a64c24553c48413cd63](git@github.com:cloudfoundry/cfoundry/commit/48b2b86ecd615f2bc3817a64c24553c48413cd63)
93
+ * use active support to camelcase class names in model magic
94
+ * Dennis Schmidt & Ryan Spore, pair+dschmidt+ryan@pivotallabs.com
95
+
96
+
97
+ * SHA: [e968fdbe81b8e71b6cef2c697a4bbf2266ec1d8f](git@github.com:cloudfoundry/cfoundry/commit/e968fdbe81b8e71b6cef2c697a4bbf2266ec1d8f)
98
+ * change default ruby version to 1.9.3
99
+ * Dennis Schmidt & Ryan Spore, pair+dschmidt+ryan@pivotallabs.com
100
+
101
+
102
+ * SHA: [a036c6864d96cdc466a09ba03735dd058c5fa2d8](git@github.com:cloudfoundry/cfoundry/commit/a036c6864d96cdc466a09ba03735dd058c5fa2d8)
103
+ * update homepage
104
+ * Dennis Schmidt & Ryan Spore, pair+dschmidt+ryan@pivotallabs.com
105
+
106
+
107
+ * SHA: [02cecf7b85006b762f0e545d4c4176c7abec493c](git@github.com:cloudfoundry/cfoundry/commit/02cecf7b85006b762f0e545d4c4176c7abec493c)
108
+ * Bump to 1.3.0
109
+ * Kyriacos Souroullas & Ryan Spore, pair+k+ryan@pivotallabs.com
110
+
111
+
112
+ * SHA: [472958a273d3e296c79216ecf70646d539bc0e73](git@github.com:cloudfoundry/cfoundry/commit/472958a273d3e296c79216ecf70646d539bc0e73)
113
+ * deleting an app is now always recursive
114
+
115
+ [Finishes #48687083](http://www.pivotaltracker.com/story/48687083)
116
+ * Kyriacos Souroullas & Ryan Spore, pair+k+ryan@pivotallabs.com
117
+
118
+
119
+ * SHA: [667fb54ab7979244f247b58c8c39f035a92c56cd](git@github.com:cloudfoundry/cfoundry/commit/667fb54ab7979244f247b58c8c39f035a92c56cd)
120
+ * fake helpers: support for lookup by guid
121
+
122
+ e.g.:
123
+
124
+ app = fake :app, :guid => "x"
125
+ client = fake_client :apps => [app]
126
+ client.app("x") == app
127
+ * Alex Suraci and Tony Hansmann, pair+alex+thansmann@pivotallabs.com
128
+
129
+
130
+ * SHA: [0984d526dd42b961784447047ad123c9a4e0cfa6](git@github.com:cloudfoundry/cfoundry/commit/0984d526dd42b961784447047ad123c9a4e0cfa6)
131
+ * Bump to 1.2.0
132
+ * Kyriacos Souroullas & Will Read, pair+k+will@pivotallabs.com
133
+
134
+
135
+ * SHA: [85b034156ce27693c9217ec42cfae1b73a80e37b](git@github.com:cloudfoundry/cfoundry/commit/85b034156ce27693c9217ec42cfae1b73a80e37b)
136
+ * Bump to 1.1.0.rc4
137
+ * Kyriacos Souroullas, Ryan Spore & Will Read, pair+k+ryan+will@pivotallabs.com
138
+
139
+
140
+ * SHA: [8c7f787bbd2b322b3f077beb4a3c29c6d50248c7](git@github.com:cloudfoundry/cfoundry/commit/8c7f787bbd2b322b3f077beb4a3c29c6d50248c7)
141
+ * Validate presence of space. Forward values to CC unless object is persisted
142
+ * Kyriacos Souroullas, Ryan Spore & Will Read, pair+k+ryan+will@pivotallabs.com
143
+
144
+
145
+ * SHA: [c63e8b811c7c29e480aad1926c671c98926f05a3](git@github.com:cloudfoundry/cfoundry/commit/c63e8b811c7c29e480aad1926c671c98926f05a3)
146
+ * Bump to 1.1.0.rc3
147
+ * Nicole Sullivan & Will Read, pair+nsullivan+will@pivotallabs.com
148
+
149
+
150
+ * SHA: [9321d5aff68c1a06928c3ba729840e9646855eaf](git@github.com:cloudfoundry/cfoundry/commit/9321d5aff68c1a06928c3ba729840e9646855eaf)
151
+ * Bump to 1.1.0.rc2
152
+ * Andreas Maier & Dennis Schmidt, pair+amaier+dschmidt@pivotallabs.com
153
+
154
+
155
+ * SHA: [f3e4850dc7542863365ff90152952aeff38818f4](git@github.com:cloudfoundry/cfoundry/commit/f3e4850dc7542863365ff90152952aeff38818f4)
156
+ * Add support for dashboard_url for service instances
157
+ * Nicole Sullivan & Will Read, pair+nsullivan+will@pivotallabs.com
158
+
159
+
160
+ * SHA: [b65721d06ef82aead628878bd2921d80f88f0a59](git@github.com:cloudfoundry/cfoundry/commit/b65721d06ef82aead628878bd2921d80f88f0a59)
161
+ * Add to_param
162
+ * Kyriacos Souroullas & Ryan Spore, pair+k+ryan@pivotallabs.com
163
+
164
+
165
+ * SHA: [bd151b2aacb382c7ed6c2b40cadd68661cc5f6f5](git@github.com:cloudfoundry/cfoundry/commit/bd151b2aacb382c7ed6c2b40cadd68661cc5f6f5)
166
+ * [#49684499](http://www.pivotaltracker.com/story/49684499) update json_pure and multi_json gems
167
+ * Andreas Maier & Dennis Schmidt, pair+amaier+dschmidt@pivotallabs.com
168
+
169
+
170
+ * SHA: [0aa80b27e39604dbf6af4166159f208eb1de847d](git@github.com:cloudfoundry/cfoundry/commit/0aa80b27e39604dbf6af4166159f208eb1de847d)
171
+ * when not persisted, don't fetch values from CC
172
+ * Kyriacos Souroullas & Ryan Spore, pair+k+ryan@pivotallabs.com
173
+
174
+
175
+ ------
176
+
177
+ _Release Notes generated with [Anchorman](http://github.com/infews/anchorman)_
@@ -0,0 +1,14 @@
1
+ # Release Notes
2
+
3
+ ## Summary
4
+
5
+ ## Changes
6
+
7
+ * SHA: [03227a6aafda336215d668ab00392425f6e40683](git@github.com:cloudfoundry/cfou/commit/03227a6aafda336215d668ab00392425f6e40683)
8
+ * use correct association name in to_one
9
+ * Joseph Palermo and Ryan Spore, pair+joseph+ryan@pivotallabs.com
10
+
11
+
12
+ ------
13
+
14
+ _Release Notes generated with [Anchorman](http://github.com/infews/anchorman)_
@@ -0,0 +1,38 @@
1
+ # Release Notes
2
+
3
+ ## Summary
4
+
5
+ ## Changes
6
+
7
+ * SHA: [d5e70049400a530809bbcc9f4c41a5ab9d83d025](git@github.com:cloudfoundry/cfou/commit/d5e70049400a530809bbcc9f4c41a5ab9d83d025)
8
+ * [#52099539](http://www.pivotaltracker.com/story/52099539) Enable billing on organization-id-1
9
+ * Andreas Maier and Joseph Palermo, pair+amaier+joseph@pivotallabs.com
10
+
11
+
12
+ * SHA: [dc69bb118b053959649b70f395d0868e7f4bd9dd](git@github.com:cloudfoundry/cfou/commit/dc69bb118b053959649b70f395d0868e7f4bd9dd)
13
+ * MODELs(:query => query), MODEL_by_ATTR, and MODELs_by_ATTR filter by appropriate query params
14
+ * Corbin Halliwill & David Sabeti, pair+challi+dsabeti@pivotallabs.com
15
+
16
+
17
+ * SHA: [038a4277da8cb485c9bde9df14bcc644ccb3d210](git@github.com:cloudfoundry/cfou/commit/038a4277da8cb485c9bde9df14bcc644ccb3d210)
18
+ * Merge pull request #4 from youngm/master
19
+
20
+ Support ssl/https in BaseClient.stream_url()
21
+ * ry4n1m3, ry4n1m3@gmail.com
22
+
23
+
24
+ * SHA: [4df19c89309e967626ff2dd242d304662bf02ed2](git@github.com:cloudfoundry/cfou/commit/4df19c89309e967626ff2dd242d304662bf02ed2)
25
+ * fix gem release rake task
26
+
27
+ include updated version when committing version bump
28
+ * Ryan Spore and Stephen Levine, pair+ryan+slevine@pivotallabs.com
29
+
30
+
31
+ * SHA: [a293d670942cb9f64fb950faabb0a99af72563a1](git@github.com:cloudfoundry/cfou/commit/a293d670942cb9f64fb950faabb0a99af72563a1)
32
+ * Support for ssl in Baseclient.stream_url
33
+ * Mike Youngstrom, youngm@gmail.com
34
+
35
+
36
+ ------
37
+
38
+ _Release Notes generated with [Anchorman](http://github.com/infews/anchorman)_
@@ -0,0 +1,16 @@
1
+ # Release Notes
2
+
3
+ ## Summary
4
+
5
+ ## Changes
6
+
7
+ * SHA: [362e412f3a111d254ced392e5905ef77a323ddba](git@github.com:cloudfoundry/cfou/commit/362e412f3a111d254ced392e5905ef77a323ddba)
8
+ * Revert "MODELs(:query => query), MODEL_by_ATTR, and MODELs_by_ATTR filter by appropriate query params"
9
+
10
+ This reverts commit dc69bb118b053959649b70f395d0868e7f4bd9dd.
11
+ * Joseph Palermo and Will Read, pair+joseph+will@pivotallabs.com
12
+
13
+
14
+ ------
15
+
16
+ _Release Notes generated with [Anchorman](http://github.com/infews/anchorman)_
@@ -0,0 +1,14 @@
1
+ # Release Notes
2
+
3
+ ## Summary
4
+
5
+ ## Changes
6
+
7
+ * SHA: [790f1bf317bad591988288d4a074b0fbb7f9d001](git@github.com:cloudfoundry/cfou/commit/790f1bf317bad591988288d4a074b0fbb7f9d001)
8
+ * User delete returns true if successful
9
+ * Joseph Palermo and Will Read, pair+joseph+will@pivotallabs.com
10
+
11
+
12
+ ------
13
+
14
+ _Release Notes generated with [Anchorman](http://github.com/infews/anchorman)_
@@ -0,0 +1,14 @@
1
+ # Release Notes
2
+
3
+ ## Summary
4
+
5
+ ## Changes
6
+
7
+ * SHA: [4d12c037de649c98e7c2d58f927e77c0927d85c4](git@github.com:cloudfoundry/cfou/commit/4d12c037de649c98e7c2d58f927e77c0927d85c4)
8
+ * Add deprecation warning to CFoundry::Client.new
9
+ * David Sabeti and Ryan Spore, pair+dsabeti+ryan@pivotallabs.com
10
+
11
+
12
+ ------
13
+
14
+ _Release Notes generated with [Anchorman](http://github.com/infews/anchorman)_
@@ -0,0 +1,29 @@
1
+ # Release Notes
2
+
3
+ ## Summary
4
+
5
+ ## Changes
6
+
7
+ * SHA: [3f4c1beb628fef659a41ee1f7d3e1109979631e3](git@github.com:cloudfoundry/cfou/commit/3f4c1beb628fef659a41ee1f7d3e1109979631e3)
8
+ * Added support for hiding private data (specifically the Authorization
9
+ header) in trace output.
10
+
11
+ [Finishes #52668865](http://www.pivotaltracker.com/story/52668865)
12
+ * Joseph Palermo and Stephen Levine, pair+joseph+slevine@pivotallabs.com
13
+
14
+
15
+ * SHA: [204ec0f0c52f6bf30afdee44bfe7d5b2bef83c0d](git@github.com:cloudfoundry/cfou/commit/204ec0f0c52f6bf30afdee44bfe7d5b2bef83c0d)
16
+ * [46747083] Don't invalidate token if setting target to the same value
17
+ * David Sabeti and George Dean, pair+dsabeti+gdean@pivotallabs.com
18
+
19
+
20
+ * SHA: [bbe8f8ae21f20cd38f8f3517b011c785cd2f5d32](git@github.com:cloudfoundry/cfou/commit/bbe8f8ae21f20cd38f8f3517b011c785cd2f5d32)
21
+ * CFoundry::V2::Client can update its target attribute
22
+
23
+ Complete with an integration test!
24
+ * David Sabeti and George Dean, pair+dsabeti+gdean@pivotallabs.com
25
+
26
+
27
+ ------
28
+
29
+ _Release Notes generated with [Anchorman](http://github.com/infews/anchorman)_
@@ -0,0 +1,19 @@
1
+ # Release Notes
2
+
3
+ ## Summary
4
+
5
+ ## Changes
6
+
7
+ * SHA: [f8760aae553280358372d0756bd4f1f08114b887](git@github.com:cloudfoundry/cfou/commit/f8760aae553280358372d0756bd4f1f08114b887)
8
+ * [finishes #52669253](http://www.pivotaltracker.com/story/52669253) Filter service credentials when doing a cf -t command.
9
+ * Corbin Halliwill and Joseph Palermo, pair+challi+joseph@pivotallabs.com
10
+
11
+
12
+ * SHA: [46a962e4355ece7d4acd9dfe22718807693ce33b](git@github.com:cloudfoundry/cfou/commit/46a962e4355ece7d4acd9dfe22718807693ce33b)
13
+ * Remove space between method and argument parentheses.
14
+ * cf-bosh, cfaccounts+bosh@pivotallabs.com
15
+
16
+
17
+ ------
18
+
19
+ _Release Notes generated with [Anchorman](http://github.com/infews/anchorman)_
@@ -0,0 +1,14 @@
1
+ # Release Notes
2
+
3
+ ## Summary
4
+
5
+ ## Changes
6
+
7
+ * SHA: [95e354f27eb872aa7f2755645192bdb71b0593ff](git@github.com:cloudfoundry/cfou/commit/95e354f27eb872aa7f2755645192bdb71b0593ff)
8
+ * [#49553787](http://www.pivotaltracker.com/story/49553787) Ability to fetch only the first page of results
9
+ * Corbin Halliwill and Joseph Palermo, pair+challi+joseph@pivotallabs.com
10
+
11
+
12
+ ------
13
+
14
+ _Release Notes generated with [Anchorman](http://github.com/infews/anchorman)_
@@ -0,0 +1,41 @@
1
+ # Release Notes
2
+
3
+ ## Summary
4
+
5
+ ## Changes
6
+
7
+ * SHA: [175731a4b0b69793e50f120a2c385c59dacea1bb](git@github.com:cloudfoundry/cfou/commit/175731a4b0b69793e50f120a2c385c59dacea1bb)
8
+ * Merge pull request #8 from cloudfoundry/sso_login
9
+
10
+ Allow to pass in different credentials to owner_password_grant uaa authorization method
11
+ * pivotal-vmware, pivotal-vmware@googlegroups.com
12
+
13
+
14
+ * SHA: [d379a0cd1733536edc45debdd62a43470f6da8ad](git@github.com:cloudfoundry/cfou/commit/d379a0cd1733536edc45debdd62a43470f6da8ad)
15
+ * corrected format of .ruby-version
16
+ * Dmitriy Kalinin and Edgar Honing, pair+dmitriy+edgar@pivotallabs.com
17
+
18
+
19
+ * SHA: [96cbe8047de2e1bb1e605ab2d510ff0c60c6d17d](git@github.com:cloudfoundry/cfou/commit/96cbe8047de2e1bb1e605ab2d510ff0c60c6d17d)
20
+ * allow authorization with username/passcode vs username/password
21
+ * Dmitriy Kalinin and Edgar Honing, pair+dmitriy+edgar@pivotallabs.com
22
+
23
+
24
+ * SHA: [b720c6724ff9078337974e1f6477c23022a9d208](git@github.com:cloudfoundry/cfou/commit/b720c6724ff9078337974e1f6477c23022a9d208)
25
+ * stop saving off username/password as instance variables
26
+ * Dmitriy Kalinin and Edgar Honing, pair+dmitriy+edgar@pivotallabs.com
27
+
28
+
29
+ * SHA: [181aec9cb860f6211da2c794a021512e8e4907e1](git@github.com:cloudfoundry/cfou/commit/181aec9cb860f6211da2c794a021512e8e4907e1)
30
+ * No fake client...yet
31
+ * Dennis Schmidt and Will Read, pair+dschmidt+will@pivotallabs.com
32
+
33
+
34
+ * SHA: [3e7253e473fa393c4933eb7bc283c58ba4ee4661](git@github.com:cloudfoundry/cfou/commit/3e7253e473fa393c4933eb7bc283c58ba4ee4661)
35
+ * Use "Warn" to be more expressive
36
+ * Dennis Schmidt and Will Read, pair+dschmidt+will@pivotallabs.com
37
+
38
+
39
+ ------
40
+
41
+ _Release Notes generated with [Anchorman](http://github.com/infews/anchorman)_