cf_ruby_client 0.6
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 +7 -0
- data/.gitignore +10 -0
- data/.rspec +2 -0
- data/.travis.yml +4 -0
- data/Gemfile +4 -0
- data/README.md +36 -0
- data/Rakefile +8 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/cf_ruby_client.gemspec +31 -0
- data/lib/cf_ruby_client/app.rb +33 -0
- data/lib/cf_ruby_client/app_instance.rb +21 -0
- data/lib/cf_ruby_client/base.rb +121 -0
- data/lib/cf_ruby_client/configuration.rb +14 -0
- data/lib/cf_ruby_client/login.rb +23 -0
- data/lib/cf_ruby_client/service_instance.rb +110 -0
- data/lib/cf_ruby_client/space.rb +28 -0
- data/lib/cf_ruby_client/version.rb +3 -0
- data/lib/cf_ruby_client.rb +19 -0
- metadata +177 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: bb88cdcfbf1e3f243eeac061f2e1aaeb38306052
|
|
4
|
+
data.tar.gz: 0e0cfea9483a2e2b0e6499a442db477bc053ecdd
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: a0ec5b7b0c9a4986d5f0c99a888a548111b63aee272eb1c05869da1a45cc7f2dcbd556801e2e7168c449ab6bdb4dae9f30df3a55a18cf9c86b18ed4808d3eceb
|
|
7
|
+
data.tar.gz: 30837d40d690a58999784241f39575510432478976c63c9dff37d4279a66f3837c918400c5abb9c060f4f627fb66790e2e946066fa86207ded2dad2f7d305237
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# cf_ruby_client
|
|
2
|
+
|
|
3
|
+
## Installation
|
|
4
|
+
|
|
5
|
+
Add this line to your application's Gemfile:
|
|
6
|
+
|
|
7
|
+
```ruby
|
|
8
|
+
gem 'cf_ruby_client'
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
CfRubyClient.configure(
|
|
15
|
+
api_endpoint: 'http://api.10.244.0.34.xip.io',
|
|
16
|
+
uaa_endpoint: 'http://uaa.10.244.0.34.xip.io',
|
|
17
|
+
username: 'admin',
|
|
18
|
+
password: 'admin',
|
|
19
|
+
passcode: 'admin'
|
|
20
|
+
)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
app = CfRubyClient::App.new("guid")
|
|
25
|
+
app.instances
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Development
|
|
29
|
+
|
|
30
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
|
31
|
+
|
|
32
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
|
33
|
+
|
|
34
|
+
## Contributing
|
|
35
|
+
|
|
36
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/a9hcp/cf_ruby_client.
|
data/Rakefile
ADDED
data/bin/console
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
require "bundler/setup"
|
|
4
|
+
require "cf_ruby_client"
|
|
5
|
+
|
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
|
8
|
+
|
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
|
10
|
+
# require "pry"
|
|
11
|
+
# Pry.start
|
|
12
|
+
|
|
13
|
+
require "irb"
|
|
14
|
+
IRB.start
|
data/bin/setup
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require 'cf_ruby_client/version'
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |spec|
|
|
7
|
+
spec.name = "cf_ruby_client"
|
|
8
|
+
spec.version = CfRubyClient::VERSION
|
|
9
|
+
spec.authors = ["Michael Both", "Lucas Pinto"]
|
|
10
|
+
spec.email = ["mboth@avarteq.de", "pinto@avarteq.de"]
|
|
11
|
+
|
|
12
|
+
spec.summary = %q{Gem for interacting with CF cloud controller API}
|
|
13
|
+
spec.description = %q{This gem may be used in rails apps for interacting with CF cloud controller API.}
|
|
14
|
+
spec.homepage = "https://github.com/anynines/cf_ruby_client"
|
|
15
|
+
|
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
17
|
+
spec.bindir = "exe"
|
|
18
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
19
|
+
spec.require_paths = ["lib"]
|
|
20
|
+
|
|
21
|
+
spec.add_dependency "cf-uaa-lib", "~> 3.9"
|
|
22
|
+
spec.add_dependency "rest-client", "~> 2.0"
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
spec.add_development_dependency "bundler", "~> 1.11"
|
|
26
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
|
27
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
|
28
|
+
spec.add_development_dependency "ffaker", "~> 2.2"
|
|
29
|
+
spec.add_development_dependency "sinatra", "~> 1.4"
|
|
30
|
+
spec.add_development_dependency "webmock", "~> 1.22"
|
|
31
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module CfRubyClient
|
|
2
|
+
class App < Base
|
|
3
|
+
STARTED_STATE = "STARTED"
|
|
4
|
+
|
|
5
|
+
def self.all
|
|
6
|
+
url_path = "/v2/apps"
|
|
7
|
+
JSON::parse(CfRubyClient::Base.new.fetch_entities(url_path))
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
attr_reader :guid
|
|
11
|
+
|
|
12
|
+
def initialize(guid)
|
|
13
|
+
@guid = guid
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def instances
|
|
17
|
+
return [] unless started?
|
|
18
|
+
|
|
19
|
+
url_path = "/v2/apps/#{guid}/instances"
|
|
20
|
+
JSON::parse(fetch_entities(url_path)).keys.map do |index|
|
|
21
|
+
AppInstance.new(guid, index)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
private
|
|
26
|
+
|
|
27
|
+
def started?
|
|
28
|
+
url_path = "/v2/apps/#{guid}"
|
|
29
|
+
app_json = JSON::parse(fetch_entities(url_path))
|
|
30
|
+
app_json["entity"]["state"] == STARTED_STATE
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module CfRubyClient
|
|
2
|
+
class AppInstance < Base
|
|
3
|
+
|
|
4
|
+
attr_reader :app_guid, :index
|
|
5
|
+
|
|
6
|
+
def initialize(guid, index)
|
|
7
|
+
@app_guid = guid
|
|
8
|
+
@index = index
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def restart
|
|
12
|
+
url_path = "/v2/apps/#{app_guid}/instances/#{index}"
|
|
13
|
+
delete_entity(url_path)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def status
|
|
17
|
+
url_path = "/v2/apps/#{app_guid}/instances"
|
|
18
|
+
JSON::parse(fetch_entities(url_path))[index.to_s]
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
module CfRubyClient
|
|
2
|
+
class Base
|
|
3
|
+
|
|
4
|
+
def api_endpoint
|
|
5
|
+
cloud_foundry_config.api_endpoint
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def uaa_endpoint
|
|
9
|
+
cloud_foundry_config.uaa_endpoint
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def authorization_string
|
|
13
|
+
@authorization_string ||= Login.new.authorization_string
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def resource(url)
|
|
17
|
+
RestClient::Resource.new(
|
|
18
|
+
api_endpoint + url,
|
|
19
|
+
headers: headers_hash,
|
|
20
|
+
verify_ssl: cloud_foundry_config.skip_ssl_validation ? OpenSSL::SSL::VERIFY_NONE : OpenSSL::SSL::VERIFY_PEER
|
|
21
|
+
)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def fetch_entities(url)
|
|
25
|
+
logger.info "cf_ruby_client: GETting: #{url.inspect}"
|
|
26
|
+
resource(url).get(:Authorization => authorization_string) do |response, request, result, &block|
|
|
27
|
+
case response.code
|
|
28
|
+
when 200
|
|
29
|
+
response
|
|
30
|
+
when 404
|
|
31
|
+
logger.warn "cf_ruby_client: not found"
|
|
32
|
+
"{}"
|
|
33
|
+
else
|
|
34
|
+
logger.error "cf_ruby_client: Received: #{response.inspect}"
|
|
35
|
+
response.return!(&block)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def delete_entity(url)
|
|
41
|
+
logger.info "cf_ruby_client: DELETEing: #{url.inspect}"
|
|
42
|
+
resource(url).delete(:Authorization => authorization_string) do |response, request, result, &block|
|
|
43
|
+
case response.code
|
|
44
|
+
when 204
|
|
45
|
+
true
|
|
46
|
+
when 404
|
|
47
|
+
logger.warn "cf_ruby_client: not found"
|
|
48
|
+
false
|
|
49
|
+
else
|
|
50
|
+
logger.error "cf_ruby_client: Received: #{response.inspect}"
|
|
51
|
+
response.return!(&block)
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def post_entity(url, body = nil)
|
|
57
|
+
logger.info "cf_ruby_client: POSTing: #{url}, body: #{body.inspect}"
|
|
58
|
+
resource(url).post(body.to_json, :Authorization => authorization_string) do |response, request, result, &block|
|
|
59
|
+
case response.code
|
|
60
|
+
when 200
|
|
61
|
+
true
|
|
62
|
+
when 404
|
|
63
|
+
logger.warn "cf_ruby_client: not found"
|
|
64
|
+
false
|
|
65
|
+
else
|
|
66
|
+
logger.error "cf_ruby_client: Received: #{response.inspect}"
|
|
67
|
+
response.return!(&block)
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def patch_entity(url, body = nil)
|
|
73
|
+
logger.info "cf_ruby_client: PATCHing: #{url}, body: #{body.inspect}"
|
|
74
|
+
resource(url).patch(body.to_json, :Authorization => authorization_string) do |response, request, result, &block|
|
|
75
|
+
case response.code
|
|
76
|
+
when 200
|
|
77
|
+
true
|
|
78
|
+
when 404
|
|
79
|
+
logger.warn "cf_ruby_client: not found"
|
|
80
|
+
false
|
|
81
|
+
else
|
|
82
|
+
logger.error "cf_ruby_client: Received: #{response.inspect}"
|
|
83
|
+
response.return!(&block)
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def put_entity(url, body = nil)
|
|
89
|
+
logger.info "cf_ruby_client: PUTting: #{url}, body: #{body.inspect}"
|
|
90
|
+
resource(url).put(body.to_json, :Authorization => authorization_string) do |response, request, result, &block|
|
|
91
|
+
case response.code
|
|
92
|
+
when 201
|
|
93
|
+
true
|
|
94
|
+
when 404
|
|
95
|
+
logger.warn "cf_ruby_client: not found"
|
|
96
|
+
false
|
|
97
|
+
else
|
|
98
|
+
logger.error "cf_ruby_client: Received: #{response.inspect}"
|
|
99
|
+
response.return!(&block)
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def logger
|
|
105
|
+
::CfRubyClient.logger
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def cloud_foundry_config
|
|
109
|
+
::CfRubyClient.configuration
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
private
|
|
113
|
+
|
|
114
|
+
def headers_hash
|
|
115
|
+
{
|
|
116
|
+
'Accept' => 'application/json',
|
|
117
|
+
'Content-Type' => 'application/json'
|
|
118
|
+
}
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module CfRubyClient
|
|
2
|
+
class << self
|
|
3
|
+
attr_accessor :configuration, :logger
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
def self.configure(options={})
|
|
7
|
+
[:api_endpoint, :uaa_endpoint, :username, :password, :passcode].each do |required_argument|
|
|
8
|
+
raise ArgumentError.new("Configuration #{required_argument} required") if options[required_argument].nil?
|
|
9
|
+
end
|
|
10
|
+
options[:skip_ssl_validation] ||= false
|
|
11
|
+
self.logger = defined?(Rails) ? Rails.logger : Logger.new(STDOUT)
|
|
12
|
+
self.configuration = OpenStruct.new(options)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module CfRubyClient
|
|
2
|
+
class Login < Base
|
|
3
|
+
|
|
4
|
+
def authorization_string
|
|
5
|
+
token.info["token_type"] + " " + token.info["access_token"]
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def token
|
|
9
|
+
@token ||= begin
|
|
10
|
+
token_issuer = CF::UAA::TokenIssuer.new(
|
|
11
|
+
uaa_endpoint,
|
|
12
|
+
"cf",
|
|
13
|
+
nil,
|
|
14
|
+
skip_ssl_validation: cloud_foundry_config.skip_ssl_validation
|
|
15
|
+
)
|
|
16
|
+
token_issuer.owner_password_grant(
|
|
17
|
+
username: cloud_foundry_config.username,
|
|
18
|
+
password: cloud_foundry_config.password
|
|
19
|
+
)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
module CfRubyClient
|
|
2
|
+
class ServiceInstance < Base
|
|
3
|
+
SECURITY_GROUPS_PATH = "/v2/security_groups"
|
|
4
|
+
SERVICE_INSTANCES_PATH = "/v2/service_instances"
|
|
5
|
+
APP_RESTARTING_PATH = "/apps/restart_all/bound_to"
|
|
6
|
+
|
|
7
|
+
# TODO: make this configurable
|
|
8
|
+
NAME_PREFIX = "guard_"
|
|
9
|
+
|
|
10
|
+
def self.all
|
|
11
|
+
url_path = "#{SERVICE_INSTANCES_PATH}"
|
|
12
|
+
JSON::parse(CfRubyClient::Base.new.fetch_entities(url_path))
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
attr_reader :service_instance_guid
|
|
16
|
+
|
|
17
|
+
def initialize(service_instance_guid)
|
|
18
|
+
@service_instance_guid = service_instance_guid
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def instance
|
|
22
|
+
url_path = "#{SERVICE_INSTANCES_PATH}/#{service_instance_guid}"
|
|
23
|
+
|
|
24
|
+
JSON::parse(fetch_entities(url_path))
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def space_guid
|
|
28
|
+
return nil if instance.nil? or instance.empty?
|
|
29
|
+
instance["entity"]["space_guid"]
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def service_bindings
|
|
33
|
+
url_path = "#{SERVICE_INSTANCES_PATH}/#{service_instance_guid}/service_bindings"
|
|
34
|
+
|
|
35
|
+
JSON::parse(fetch_entities(url_path))
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def app_guids
|
|
39
|
+
return [] if service_bindings.nil? or service_bindings.empty?
|
|
40
|
+
service_bindings["resources"].map { |entry| entry["entity"]["app_guid"] }
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def security_group_guid
|
|
44
|
+
return nil if security_group.empty?
|
|
45
|
+
security_group[:guid]
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# restarts all applications running on Cloud Foundry which are bound to the
|
|
49
|
+
# service instance passed in the initializer.
|
|
50
|
+
def restart_apps
|
|
51
|
+
url = "#{APP_RESTARTING_PATH}/#{service_instance_guid}"
|
|
52
|
+
|
|
53
|
+
post_entity(url)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# gets the security group from the cloud controller associated with the service
|
|
57
|
+
# instance
|
|
58
|
+
def security_group(name)
|
|
59
|
+
url_path = "#{SECURITY_GROUPS_PATH}?q=name:#{name}"
|
|
60
|
+
|
|
61
|
+
extract_security_group(JSON::parse(fetch_entities(url_path)))
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def create_security_group(body)
|
|
65
|
+
logger.debug "cf_ruby_client: Creating Security Group in the Cloud Controller"
|
|
66
|
+
url = SECURITY_GROUPS_PATH
|
|
67
|
+
|
|
68
|
+
post_entity(url, body)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def update_security_group(body, security_group_guid)
|
|
72
|
+
logger.debug "cf_ruby_client: Updating Security Group in the Cloud Controller"
|
|
73
|
+
|
|
74
|
+
url = "#{SECURITY_GROUPS_PATH}/#{security_group_guid}"
|
|
75
|
+
|
|
76
|
+
put_entity(url, body)
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def delete_security_group(security_group_guid)
|
|
80
|
+
logger.debug "cf_ruby_client: Deleting Security Group in the Cloud Controller"
|
|
81
|
+
|
|
82
|
+
url = "#{SECURITY_GROUPS_PATH}/#{security_group_guid}"
|
|
83
|
+
|
|
84
|
+
delete_entity(url)
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
private
|
|
88
|
+
|
|
89
|
+
def extract_security_group(security_groups)
|
|
90
|
+
logger.debug "cf_ruby_client: Extracting Security Group from: #{security_groups}"
|
|
91
|
+
if security_groups["total_results"] == 0
|
|
92
|
+
return {}
|
|
93
|
+
else
|
|
94
|
+
sanitize_security_group(security_groups["resources"][0])
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def sanitize_security_group(security_group)
|
|
99
|
+
logger.debug("cf_ruby_client: Sanitizing: #{security_group}")
|
|
100
|
+
# copy guids and space guids into the entity
|
|
101
|
+
entity = security_group["entity"]
|
|
102
|
+
entity["guid"] = security_group["metadata"]["guid"]
|
|
103
|
+
entity["space_guids"] = security_group["metadata"]["space_guids"]
|
|
104
|
+
entity && entity.keep_if do |key, _|
|
|
105
|
+
[:name, :rules, :guid, :space_guid].include? key.to_sym
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module CfRubyClient
|
|
2
|
+
class Space < Base
|
|
3
|
+
|
|
4
|
+
def self.all
|
|
5
|
+
url_path = "/v2/spaces"
|
|
6
|
+
JSON::parse(CfRubyClient::Base.new.fetch_entities(url_path))
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
attr_reader :guid
|
|
10
|
+
|
|
11
|
+
def initialize(guid)
|
|
12
|
+
@guid = guid
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def apps
|
|
16
|
+
url_path = "/v2/spaces/#{guid}/apps"
|
|
17
|
+
JSON::parse(fetch_entities(url_path))
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def app_guids
|
|
21
|
+
if not(apps.nil? or apps.empty?)
|
|
22
|
+
apps["resources"].collect {|entry| entry["metadata"]["guid"]}
|
|
23
|
+
else
|
|
24
|
+
[]
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
require "rest-client"
|
|
2
|
+
require 'uaa'
|
|
3
|
+
|
|
4
|
+
require "cf_ruby_client/version"
|
|
5
|
+
|
|
6
|
+
require "cf_ruby_client/configuration.rb"
|
|
7
|
+
require "cf_ruby_client/base.rb"
|
|
8
|
+
require "cf_ruby_client/login.rb"
|
|
9
|
+
require "cf_ruby_client/app.rb"
|
|
10
|
+
require "cf_ruby_client/app_instance.rb"
|
|
11
|
+
require "cf_ruby_client/service_instance.rb"
|
|
12
|
+
require "cf_ruby_client/space.rb"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
module CfRubyClient
|
|
16
|
+
def version
|
|
17
|
+
VERSION
|
|
18
|
+
end
|
|
19
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: cf_ruby_client
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: '0.6'
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Michael Both
|
|
8
|
+
- Lucas Pinto
|
|
9
|
+
autorequire:
|
|
10
|
+
bindir: exe
|
|
11
|
+
cert_chain: []
|
|
12
|
+
date: 2017-05-03 00:00:00.000000000 Z
|
|
13
|
+
dependencies:
|
|
14
|
+
- !ruby/object:Gem::Dependency
|
|
15
|
+
name: cf-uaa-lib
|
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
|
17
|
+
requirements:
|
|
18
|
+
- - "~>"
|
|
19
|
+
- !ruby/object:Gem::Version
|
|
20
|
+
version: '3.9'
|
|
21
|
+
type: :runtime
|
|
22
|
+
prerelease: false
|
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
24
|
+
requirements:
|
|
25
|
+
- - "~>"
|
|
26
|
+
- !ruby/object:Gem::Version
|
|
27
|
+
version: '3.9'
|
|
28
|
+
- !ruby/object:Gem::Dependency
|
|
29
|
+
name: rest-client
|
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
|
31
|
+
requirements:
|
|
32
|
+
- - "~>"
|
|
33
|
+
- !ruby/object:Gem::Version
|
|
34
|
+
version: '2.0'
|
|
35
|
+
type: :runtime
|
|
36
|
+
prerelease: false
|
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
38
|
+
requirements:
|
|
39
|
+
- - "~>"
|
|
40
|
+
- !ruby/object:Gem::Version
|
|
41
|
+
version: '2.0'
|
|
42
|
+
- !ruby/object:Gem::Dependency
|
|
43
|
+
name: bundler
|
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
|
45
|
+
requirements:
|
|
46
|
+
- - "~>"
|
|
47
|
+
- !ruby/object:Gem::Version
|
|
48
|
+
version: '1.11'
|
|
49
|
+
type: :development
|
|
50
|
+
prerelease: false
|
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
52
|
+
requirements:
|
|
53
|
+
- - "~>"
|
|
54
|
+
- !ruby/object:Gem::Version
|
|
55
|
+
version: '1.11'
|
|
56
|
+
- !ruby/object:Gem::Dependency
|
|
57
|
+
name: rake
|
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
|
59
|
+
requirements:
|
|
60
|
+
- - "~>"
|
|
61
|
+
- !ruby/object:Gem::Version
|
|
62
|
+
version: '10.0'
|
|
63
|
+
type: :development
|
|
64
|
+
prerelease: false
|
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
66
|
+
requirements:
|
|
67
|
+
- - "~>"
|
|
68
|
+
- !ruby/object:Gem::Version
|
|
69
|
+
version: '10.0'
|
|
70
|
+
- !ruby/object:Gem::Dependency
|
|
71
|
+
name: rspec
|
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
|
73
|
+
requirements:
|
|
74
|
+
- - "~>"
|
|
75
|
+
- !ruby/object:Gem::Version
|
|
76
|
+
version: '3.0'
|
|
77
|
+
type: :development
|
|
78
|
+
prerelease: false
|
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
80
|
+
requirements:
|
|
81
|
+
- - "~>"
|
|
82
|
+
- !ruby/object:Gem::Version
|
|
83
|
+
version: '3.0'
|
|
84
|
+
- !ruby/object:Gem::Dependency
|
|
85
|
+
name: ffaker
|
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
|
87
|
+
requirements:
|
|
88
|
+
- - "~>"
|
|
89
|
+
- !ruby/object:Gem::Version
|
|
90
|
+
version: '2.2'
|
|
91
|
+
type: :development
|
|
92
|
+
prerelease: false
|
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
94
|
+
requirements:
|
|
95
|
+
- - "~>"
|
|
96
|
+
- !ruby/object:Gem::Version
|
|
97
|
+
version: '2.2'
|
|
98
|
+
- !ruby/object:Gem::Dependency
|
|
99
|
+
name: sinatra
|
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
|
101
|
+
requirements:
|
|
102
|
+
- - "~>"
|
|
103
|
+
- !ruby/object:Gem::Version
|
|
104
|
+
version: '1.4'
|
|
105
|
+
type: :development
|
|
106
|
+
prerelease: false
|
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
108
|
+
requirements:
|
|
109
|
+
- - "~>"
|
|
110
|
+
- !ruby/object:Gem::Version
|
|
111
|
+
version: '1.4'
|
|
112
|
+
- !ruby/object:Gem::Dependency
|
|
113
|
+
name: webmock
|
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
|
115
|
+
requirements:
|
|
116
|
+
- - "~>"
|
|
117
|
+
- !ruby/object:Gem::Version
|
|
118
|
+
version: '1.22'
|
|
119
|
+
type: :development
|
|
120
|
+
prerelease: false
|
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
122
|
+
requirements:
|
|
123
|
+
- - "~>"
|
|
124
|
+
- !ruby/object:Gem::Version
|
|
125
|
+
version: '1.22'
|
|
126
|
+
description: This gem may be used in rails apps for interacting with CF cloud controller
|
|
127
|
+
API.
|
|
128
|
+
email:
|
|
129
|
+
- mboth@avarteq.de
|
|
130
|
+
- pinto@avarteq.de
|
|
131
|
+
executables: []
|
|
132
|
+
extensions: []
|
|
133
|
+
extra_rdoc_files: []
|
|
134
|
+
files:
|
|
135
|
+
- ".gitignore"
|
|
136
|
+
- ".rspec"
|
|
137
|
+
- ".travis.yml"
|
|
138
|
+
- Gemfile
|
|
139
|
+
- README.md
|
|
140
|
+
- Rakefile
|
|
141
|
+
- bin/console
|
|
142
|
+
- bin/setup
|
|
143
|
+
- cf_ruby_client.gemspec
|
|
144
|
+
- lib/cf_ruby_client.rb
|
|
145
|
+
- lib/cf_ruby_client/app.rb
|
|
146
|
+
- lib/cf_ruby_client/app_instance.rb
|
|
147
|
+
- lib/cf_ruby_client/base.rb
|
|
148
|
+
- lib/cf_ruby_client/configuration.rb
|
|
149
|
+
- lib/cf_ruby_client/login.rb
|
|
150
|
+
- lib/cf_ruby_client/service_instance.rb
|
|
151
|
+
- lib/cf_ruby_client/space.rb
|
|
152
|
+
- lib/cf_ruby_client/version.rb
|
|
153
|
+
homepage: https://github.com/anynines/cf_ruby_client
|
|
154
|
+
licenses: []
|
|
155
|
+
metadata: {}
|
|
156
|
+
post_install_message:
|
|
157
|
+
rdoc_options: []
|
|
158
|
+
require_paths:
|
|
159
|
+
- lib
|
|
160
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
161
|
+
requirements:
|
|
162
|
+
- - ">="
|
|
163
|
+
- !ruby/object:Gem::Version
|
|
164
|
+
version: '0'
|
|
165
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
166
|
+
requirements:
|
|
167
|
+
- - ">="
|
|
168
|
+
- !ruby/object:Gem::Version
|
|
169
|
+
version: '0'
|
|
170
|
+
requirements: []
|
|
171
|
+
rubyforge_project:
|
|
172
|
+
rubygems_version: 2.5.1
|
|
173
|
+
signing_key:
|
|
174
|
+
specification_version: 4
|
|
175
|
+
summary: Gem for interacting with CF cloud controller API
|
|
176
|
+
test_files: []
|
|
177
|
+
has_rdoc:
|