cfoundry_helper 0.2.3 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|