cfoundry_helper 0.2.3 → 0.3.0
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -2
- data/README.textile +11 -2
- data/config/services.yml.example +19 -16
- data/lib/cfoundry_helper/errors.rb +4 -0
- data/lib/cfoundry_helper/helpers/client_helper.rb +21 -11
- data/lib/cfoundry_helper/version.rb +1 -1
- data/lib/cfoundry_helper.rb +15 -3
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: adb8f6ca8a613c1c8b2cf30c86414353bd05a5cb
|
4
|
+
data.tar.gz: 0dc73d74b5abb77ca19a35de693fa90d5b53ad77
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c9dd54b554659eaa2e78a54fb2cc98a956a9e6d7d8d5594dd250cdab1ccc66b966dd3ca5fb8ed7c2f9d1f1174cfdfa59b334b0556b4810830af1687634f6f752
|
7
|
+
data.tar.gz: 392f7e4c848e3463a6045baedb9a3f1921e74c6172972421696696243cb15e9059fe40507ea6699b49e2d93deb10a33eb2342772f139def65bd2c0de33877e09
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
cfoundry_helper (0.
|
4
|
+
cfoundry_helper (0.3.0)
|
5
5
|
activesupport
|
6
6
|
cfoundry
|
7
7
|
|
@@ -21,7 +21,7 @@ GEM
|
|
21
21
|
builder (3.1.4)
|
22
22
|
cf-uaa-lib (2.0.0)
|
23
23
|
multi_json
|
24
|
-
cfoundry (4.5.
|
24
|
+
cfoundry (4.5.3)
|
25
25
|
activemodel (>= 3.2.13, < 5.0.0)
|
26
26
|
cf-uaa-lib (~> 2.0.0)
|
27
27
|
multi_json (~> 1.7)
|
data/README.textile
CHANGED
@@ -3,6 +3,15 @@ h1. CFoundry Helper
|
|
3
3
|
This collection of scripts provides helper methods to the cfoundry gem's
|
4
4
|
API. It implements common use cases when administrating a Cloud Foundry installation.
|
5
5
|
|
6
|
+
h2. Configuration
|
7
|
+
|
8
|
+
You can configure multiple targets within the services.yml configuration file. Please refer to the services.yml.example file for a detailed example.
|
9
|
+
|
10
|
+
h2. Usage
|
11
|
+
|
12
|
+
Since cfoundry_helper now supports multiple CF targets you have to set your desired target by using the
|
13
|
+
CFoundryHelper::Helpers::ClientHelper.current_target_url= method for selecting a target from your service configuration file.
|
14
|
+
|
6
15
|
h2. Organization management
|
7
16
|
|
8
17
|
The CFoundryHelper::Helpers::OrganizationHelper modules' methods provide helper methods for the following use cases:
|
@@ -31,7 +40,7 @@ The CFoundryHelper::Helpers::OrganizationHelper modules' methods provide helper
|
|
31
40
|
|
32
41
|
h2. Client Helper
|
33
42
|
|
34
|
-
The CFoundryHelper::Helpers::ClientHelper is a factory for uaa and cloud controller clients.
|
43
|
+
The CFoundryHelper::Helpers::ClientHelper is a factory for uaa and cloud controller clients. The current_target_url has to point to your desired endpoint as defined in the config yaml file.
|
35
44
|
|
36
45
|
|
37
46
|
h2. Scripts
|
@@ -49,7 +58,7 @@ h2. Important environment variables
|
|
49
58
|
|
50
59
|
h2. Console Usage
|
51
60
|
|
52
|
-
Use the following command to start the console
|
61
|
+
Use the following command to start the console:
|
53
62
|
RAILS_ENV=<target_env> CFOUNDRY_HELPER_CONFIG=<services config file> rake c
|
54
63
|
|
55
64
|
e.g.: RAILS_ENV=production CFOUNDRY_HELPER_CONFIG=config/services.yml rake c
|
data/config/services.yml.example
CHANGED
@@ -1,22 +1,25 @@
|
|
1
1
|
production: &defaults
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
2
|
+
"http://api.any9app.com":
|
3
|
+
uaa:
|
4
|
+
site: "http://uaa.any9app.com"
|
5
|
+
client_id: "user_registrator"
|
6
|
+
client_secret: "user_registrator_password"
|
7
|
+
cloud_controller:
|
8
|
+
site: "http://api.any9app.com"
|
9
|
+
username: "admin"
|
10
|
+
password: "admin_password"
|
11
|
+
"http://api.other_target.com":
|
12
|
+
uaa:
|
13
|
+
site: "http://uaa.other_target.com"
|
14
|
+
client_id: "user_registrator"
|
15
|
+
client_secret: "user_registrator_password"
|
16
|
+
cloud_controller:
|
17
|
+
site: "http://api.other_target.com"
|
18
|
+
username: "admin"
|
19
|
+
password: "admin_password"
|
10
20
|
|
11
21
|
development:
|
12
22
|
<<: *defaults
|
13
23
|
|
14
24
|
test:
|
15
|
-
|
16
|
-
site: ""
|
17
|
-
client_id: ""
|
18
|
-
client_secret: ""
|
19
|
-
cloud_controller:
|
20
|
-
site: ""
|
21
|
-
user: ""
|
22
|
-
password: ""
|
25
|
+
<<: *defaults
|
@@ -5,7 +5,15 @@ module CFoundryHelper::Helpers
|
|
5
5
|
@@scim_client = nil
|
6
6
|
@@cloud_controller_client = nil
|
7
7
|
@@auth_token = nil
|
8
|
+
@@current_target_url = nil
|
8
9
|
|
10
|
+
def self.current_target_url=(url)
|
11
|
+
@@current_target_url = url
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.current_target_url
|
15
|
+
return @@current_target_url
|
16
|
+
end
|
9
17
|
|
10
18
|
def self.get_cc_target_url
|
11
19
|
return self.cloud_controller_client.target
|
@@ -25,37 +33,42 @@ module CFoundryHelper::Helpers
|
|
25
33
|
# see http://www.simplecloud.info/
|
26
34
|
def self.scim_client
|
27
35
|
# just return the already initialized client if present
|
36
|
+
raise CFoundryHelper::Errors::ConfigurationError, "The ClientHelper's current target url is not defined in the configuration yaml file!" if CFoundryHelper.config[@@current_target_url].nil?
|
37
|
+
|
28
38
|
return @@scim_client unless @@scim_client.nil?
|
29
39
|
|
30
40
|
token_issuer = CF::UAA::TokenIssuer.new(
|
31
|
-
CFoundryHelper.config['uaa']['site'],
|
32
|
-
CFoundryHelper.config['uaa']['client_id'],
|
33
|
-
CFoundryHelper.config['uaa']['client_secret'])
|
41
|
+
CFoundryHelper.config[@@current_target_url]['uaa']['site'],
|
42
|
+
CFoundryHelper.config[@@current_target_url]['uaa']['client_id'],
|
43
|
+
CFoundryHelper.config[@@current_target_url]['uaa']['client_secret'])
|
34
44
|
|
35
45
|
token_info = token_issuer.client_credentials_grant
|
36
46
|
access_token = token_info.info["access_token"]
|
37
|
-
@@scim_client = CF::UAA::Scim.new(CFoundryHelper.config['uaa']['site'], "bEareR #{access_token}")
|
47
|
+
@@scim_client = CF::UAA::Scim.new(CFoundryHelper.config[@@current_target_url]['uaa']['site'], "bEareR #{access_token}")
|
38
48
|
end
|
39
49
|
|
40
50
|
##
|
41
51
|
# Use this client to connect to the cloudcontroller
|
42
52
|
# and register a new user.
|
43
53
|
def self.cloud_controller_client
|
54
|
+
# just return the already initialized client if present
|
55
|
+
raise CFoundryHelper::Errors::ConfigurationError, "The ClientHelper's current target url is not defined in the configuration yaml file!" if CFoundryHelper.config[@@current_target_url].nil?
|
56
|
+
|
57
|
+
|
44
58
|
# just return the already initialized client if it was explicit setted.
|
45
59
|
# Don't cache the client in this method because long running apps will
|
46
60
|
# have some trouble with expired auth tokens.
|
47
61
|
# TODO: Refresh the token with the uaa refresh method.
|
48
62
|
return @@cloud_controller_client if @@cloud_controller_client
|
49
63
|
|
50
|
-
token_issuer = CF::UAA::TokenIssuer.new(CFoundryHelper.config['uaa']['site'], "cf")
|
51
|
-
token_info = token_issuer.implicit_grant_with_creds(CFoundryHelper.config['cloud_controller'])
|
64
|
+
token_issuer = CF::UAA::TokenIssuer.new(CFoundryHelper.config[@@current_target_url]['uaa']['site'], "cf")
|
65
|
+
token_info = token_issuer.implicit_grant_with_creds(CFoundryHelper.config[@@current_target_url]['cloud_controller'])
|
52
66
|
access_token = token_info.info["access_token"]
|
53
67
|
token = CFoundry::AuthToken.from_hash({:token => "bearer #{access_token}"})
|
54
68
|
@@auth_token = token
|
55
|
-
CFoundry::V2::Client.new(CFoundryHelper.config['cloud_controller']['site'], token)
|
69
|
+
CFoundry::V2::Client.new(CFoundryHelper.config[@@current_target_url]['cloud_controller']['site'], token)
|
56
70
|
end
|
57
71
|
|
58
|
-
|
59
72
|
def self.set_scim_client(client)
|
60
73
|
@@scim_client = client
|
61
74
|
end
|
@@ -63,8 +76,5 @@ module CFoundryHelper::Helpers
|
|
63
76
|
def self.set_cc_client(client)
|
64
77
|
@@cloud_controller_client = client
|
65
78
|
end
|
66
|
-
|
67
|
-
|
68
|
-
|
69
79
|
end
|
70
80
|
end
|
data/lib/cfoundry_helper.rb
CHANGED
@@ -7,6 +7,7 @@ Bundler.require
|
|
7
7
|
module CFoundryHelper
|
8
8
|
autoload :Helpers, File.expand_path('../cfoundry_helper/helpers', __FILE__)
|
9
9
|
autoload :Models, File.expand_path('../cfoundry_helper/models', __FILE__)
|
10
|
+
autoload :Errors, File.expand_path('../cfoundry_helper/errors', __FILE__)
|
10
11
|
|
11
12
|
@@config = nil
|
12
13
|
@@config_file_path = nil
|
@@ -23,7 +24,7 @@ module CFoundryHelper
|
|
23
24
|
self.read_config_file
|
24
25
|
end
|
25
26
|
|
26
|
-
def self.
|
27
|
+
def self.config_file_path=(path)
|
27
28
|
@@config_file_path = path
|
28
29
|
end
|
29
30
|
|
@@ -31,6 +32,17 @@ module CFoundryHelper
|
|
31
32
|
return @@config_file_path
|
32
33
|
end
|
33
34
|
|
35
|
+
# Returns an array of target available target urls defined in the configuration file as strings.
|
36
|
+
# @returns [Array]
|
37
|
+
def self.available_targets
|
38
|
+
self.config.keys
|
39
|
+
end
|
40
|
+
|
41
|
+
# Returns the config hash for the given target url as defined in the configuration file.
|
42
|
+
# Returns nil if the given target url is not defined within the config file.
|
43
|
+
def self.config_for_target(url)
|
44
|
+
self.config[url]
|
45
|
+
end
|
34
46
|
|
35
47
|
protected
|
36
48
|
|
@@ -47,7 +59,7 @@ module CFoundryHelper
|
|
47
59
|
end
|
48
60
|
|
49
61
|
def self.check_config_file_path
|
50
|
-
raise "No configuration file path has been set! Please call ClientHelper.
|
62
|
+
raise "No configuration file path has been set! Please call ClientHelper.config_file_path= first or set a valid CFOUNDRY_HELPER_CONFIG env variable!" if @@config_file_path.nil?
|
51
63
|
raise "There's no configuration file on #{@@config_file_path}!" if !File.exists? @@config_file_path
|
52
64
|
end
|
53
65
|
|
@@ -55,7 +67,7 @@ module CFoundryHelper
|
|
55
67
|
def self.set_config_file_path_from_env
|
56
68
|
config_file_path = ENV["CFOUNDRY_HELPER_CONFIG"]
|
57
69
|
unless config_file_path.nil?
|
58
|
-
self.
|
70
|
+
self.config_file_path = config_file_path
|
59
71
|
end
|
60
72
|
end
|
61
73
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cfoundry_helper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julian Weber
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-10-
|
11
|
+
date: 2013-10-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -203,6 +203,7 @@ files:
|
|
203
203
|
- cfoundry_helper.gemspec
|
204
204
|
- config/services.yml.example
|
205
205
|
- lib/cfoundry_helper.rb
|
206
|
+
- lib/cfoundry_helper/errors.rb
|
206
207
|
- lib/cfoundry_helper/helpers.rb
|
207
208
|
- lib/cfoundry_helper/helpers/client_helper.rb
|
208
209
|
- lib/cfoundry_helper/helpers/organization_helper.rb
|