rhc-rest 0.0.7 → 0.0.14

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -1 +1,10 @@
1
1
  require "bundler/gem_tasks"
2
+ require 'rake'
3
+ require 'rake/testtask'
4
+
5
+ Rake::TestTask.new(:test) do |t|
6
+ t.libs << 'test'
7
+ t.test_files = FileList['test/**/*_test.rb']
8
+ t.verbose = true
9
+ end
10
+
data/bin/sample-usage.rb CHANGED
@@ -1,25 +1,17 @@
1
1
  #!/usr/bin/env ruby
2
2
  # Copyright 2011 Red Hat, Inc.
3
3
  #
4
- # Permission is hereby granted, free of charge, to any person
5
- # obtaining a copy of this software and associated documentation files
6
- # (the "Software"), to deal in the Software without restriction,
7
- # including without limitation the rights to use, copy, modify, merge,
8
- # publish, distribute, sublicense, and/or sell copies of the Software,
9
- # and to permit persons to whom the Software is furnished to do so,
10
- # subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be
13
- # included in all copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
19
- # BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
20
- # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21
- # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
- # SOFTWARE.
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
23
15
 
24
16
  require '../lib/rhc-rest'
25
17
 
@@ -29,18 +21,24 @@ if __FILE__ == $0
29
21
  end_point = ARGV[0]
30
22
  username = ARGV[1]
31
23
  password = ARGV[2]
32
- namespace = ARGV[3]
24
+ domain_id = ARGV[3]
33
25
 
34
- if end_point.nil? or username.nil? or password.nil? or namespace.nil?
35
- puts "Usage: https://<hostname>/broker/rest <username> <password> <namespace>"
26
+ if end_point.nil? or username.nil? or password.nil? or domain_id.nil?
27
+ puts "Usage: https://<hostname>/broker/rest <username> <password> <domain_id>"
36
28
  exit 1
37
29
  end
38
-
30
+ @mydebug =true
39
31
  client = Rhc::Rest::Client.new(end_point, username, password)
40
32
 
33
+ client.domains.each do |domain|
34
+ domain.applications.each do |app|
35
+ app.delete
36
+ end
37
+ domain.delete
38
+ end
41
39
  puts "Creating a domain"
42
- domain = client.add_domain(namespace)
43
- puts "Domain created: #{domain.namespace}"
40
+ domain = client.add_domain(domain_id)
41
+ puts "Domain created: #{domain.id}"
44
42
 
45
43
  puts "Getting all cartridges..."
46
44
  client.cartridges.each do |cart|
@@ -49,7 +47,7 @@ end
49
47
 
50
48
  puts "Creating application appone"
51
49
  carts = client.find_cartridge("php-5.3")
52
- domain.add_application("appone", carts.first.name)
50
+ domain.add_application("appone", {:cartridge => carts.first.name})
53
51
 
54
52
  puts "Try deleting domain with an application"
55
53
  begin
@@ -60,7 +58,7 @@ end
60
58
 
61
59
  puts "Getting all domains and applications..."
62
60
  client.domains.each do |domain|
63
- puts " Domain: #{domain.namespace}"
61
+ puts " Domain: #{domain.id}"
64
62
  domain.applications.each do |app|
65
63
  puts " Application: #{app.name}"
66
64
  app.cartridges.each do |cart|
@@ -79,7 +77,7 @@ if not apps.nil? and not apps.first.nil?
79
77
  end
80
78
 
81
79
  puts "Create new application named appthree..."
82
- app = client.domains.first.add_application("appthree", "php-5.3")
80
+ app = client.domains.first.add_application("appthree", {:cartridge =>"php-5.3"})
83
81
  puts "Adding MySQL cartridge to appthree"
84
82
  cartridge = app.add_cartridge("mysql-5.1")
85
83
  puts "Check to see if it was added"
@@ -246,7 +246,7 @@
246
246
 
247
247
  <div class="method-heading">
248
248
  <span class="method-name">add_domain</span><span
249
- class="method-args">(namespace)</span>
249
+ class="method-args">(id)</span>
250
250
  <span class="method-click-advice">click to toggle source</span>
251
251
  </div>
252
252
 
@@ -259,11 +259,11 @@
259
259
 
260
260
  <div class="method-source-code" id="add_domain-source">
261
261
  <pre><span class="ruby-comment"># File lib/rhc-rest/client.rb, line 45</span>
262
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">add_domain</span>(<span class="ruby-identifier">namespace</span>)
263
- <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span> <span class="ruby-node">&quot;Adding domain #{namespace}&quot;</span>
262
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">add_domain</span>(<span class="ruby-identifier">id</span>)
263
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span> <span class="ruby-node">&quot;Adding domain #{id}&quot;</span>
264
264
  <span class="ruby-identifier">url</span> = <span class="ruby-identifier">@@end_point</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@links</span>[<span class="ruby-string">'ADD_DOMAIN'</span>][<span class="ruby-string">'href'</span>]
265
265
  <span class="ruby-identifier">method</span> = <span class="ruby-ivar">@links</span>[<span class="ruby-string">'ADD_DOMAIN'</span>][<span class="ruby-string">'method'</span>]
266
- <span class="ruby-identifier">payload</span> = {<span class="ruby-value">:namespace</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">namespace</span>}
266
+ <span class="ruby-identifier">payload</span> = {<span class="ruby-value">:id</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">id</span>}
267
267
  <span class="ruby-identifier">request</span> = <span class="ruby-constant">RestClient</span><span class="ruby-operator">::</span><span class="ruby-constant">Request</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">:url</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">url</span>, <span class="ruby-value">:method</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">method</span>, <span class="ruby-value">:headers</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">@@headers</span>, <span class="ruby-value">:payload</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">payload</span>)
268
268
  <span class="ruby-keyword">return</span> <span class="ruby-identifier">send</span>(<span class="ruby-identifier">request</span>)
269
269
  <span class="ruby-keyword">end</span></pre>
@@ -454,7 +454,7 @@
454
454
 
455
455
  <div class="method-heading">
456
456
  <span class="method-name">find_domain</span><span
457
- class="method-args">(namespace)</span>
457
+ class="method-args">(id)</span>
458
458
  <span class="method-click-advice">click to toggle source</span>
459
459
  </div>
460
460
 
@@ -467,12 +467,12 @@
467
467
 
468
468
  <div class="method-source-code" id="find_domain-source">
469
469
  <pre><span class="ruby-comment"># File lib/rhc-rest/client.rb, line 64</span>
470
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">find_domain</span>(<span class="ruby-identifier">namespace</span>)
471
- <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span> <span class="ruby-node">&quot;Finding domain #{namespace}&quot;</span>
470
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">find_domain</span>(<span class="ruby-identifier">id</span>)
471
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span> <span class="ruby-node">&quot;Finding domain #{id}&quot;</span>
472
472
  <span class="ruby-identifier">filtered</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>
473
473
  <span class="ruby-identifier">domains</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">domain</span><span class="ruby-operator">|</span>
474
474
  <span class="ruby-comment">#TODO do a regex caomparison</span>
475
- <span class="ruby-keyword">if</span> <span class="ruby-identifier">domain</span>.<span class="ruby-identifier">namespace</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">namespace</span>
475
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">domain</span>.<span class="ruby-identifier">id</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">id</span>
476
476
  <span class="ruby-identifier">filtered</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">domain</span>)
477
477
  <span class="ruby-keyword">end</span>
478
478
  <span class="ruby-keyword">end</span>
data/doc/images/add.png CHANGED
File without changes
File without changes
File without changes
data/ext/mkrf_conf.rb ADDED
@@ -0,0 +1,21 @@
1
+ require 'rubygems'
2
+ require 'rubygems/command.rb'
3
+ require 'rubygems/dependency_installer.rb'
4
+ begin
5
+ Gem::Command.build_args = ARGV
6
+ rescue NoMethodError
7
+ end
8
+ inst = Gem::DependencyInstaller.new
9
+ begin
10
+ if ENV['JSON_PURE'] or (RUBY_VERSION == "1.8.6" or RUBY_PLATFORM =~ /mswin/ or RUBY_PLATFORM =~ /darwin/)
11
+ inst.install('json_pure')
12
+ else
13
+ inst.install('json')
14
+ end
15
+ rescue
16
+ exit(1)
17
+ end
18
+
19
+ f = File.open(File.join(File.dirname(__FILE__), "Rakefile"), "w") # create dummy rakefile to indicate success
20
+ f.write("task :default\n")
21
+ f.close
data/lib/rhc-rest.rb CHANGED
@@ -79,6 +79,8 @@ module Rhc
79
79
  end
80
80
  #puts "#{response}"
81
81
  return parse_response(response) unless response.nil? or response.code == 204
82
+ rescue RestClient::RequestTimeout, RestClient::ServerBrokeConnection, RestClient::SSLCertificateNotVerified => e
83
+ raise ResourceAccessException.new("Failed to access resource: #{e.message}")
82
84
  rescue RestClient::ExceptionWithResponse => e
83
85
  #puts "#{e.response}"
84
86
  process_error_response(e.response)
@@ -93,7 +95,7 @@ module Rhc
93
95
  result = JSON.parse(response)
94
96
  messages = result['messages']
95
97
  rescue Exception => e
96
- logger.debug "Response did not include a message from server"
98
+ logger.debug "Response did not include a message from server" if @mydebug
97
99
  #puts response
98
100
  end
99
101
  case response.code
@@ -148,6 +150,8 @@ module Rhc
148
150
  raise ServiceUnavailableException.new(message['text'])
149
151
  end
150
152
  end
153
+ else
154
+ raise ResourceAccessException.new("Server returned error code with no output: #{response.code}")
151
155
  end
152
156
 
153
157
  end
@@ -3,8 +3,9 @@ module Rhc
3
3
  module Rest
4
4
  class Application
5
5
  include Rest
6
- attr_reader :domain_id, :name, :creation_time, :uuid, :aliases, :server_identity
6
+ attr_reader :domain_id, :name, :creation_time, :uuid, :aliases, :git_url, :app_url, :node_profile, :framework, :scalable, :health_check_path, :embedded
7
7
  def initialize(args)
8
+ #logger.debug args
8
9
  @domain_id = args[:domain_id] || args["domain_id"]
9
10
  @name = args[:name] || args["name"]
10
11
  @creation_time = args[:creation_time] || args["creation_time"]
@@ -16,8 +17,8 @@ module Rhc
16
17
 
17
18
  #Add Cartridge
18
19
  def add_cartridge(name)
19
- logger.debug "Adding cartridge #{name}"
20
- url = @@end_point + @links['ADD_CARTRIDGE']['href']
20
+ logger.debug "Adding cartridge #{name}" if @mydebug
21
+ url = @links['ADD_CARTRIDGE']['href']
21
22
  method = @links['ADD_CARTRIDGE']['method']
22
23
  payload = {:name => name}
23
24
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers, :payload => payload)
@@ -26,8 +27,8 @@ module Rhc
26
27
 
27
28
  #Get all Cartridge for this applications
28
29
  def cartridges
29
- logger.debug "Getting all cartridges for application #{self.name}"
30
- url = @@end_point + @links['LIST_CARTRIDGES']['href']
30
+ logger.debug "Getting all cartridges for application #{self.name}" if @mydebug
31
+ url = @links['LIST_CARTRIDGES']['href']
31
32
  method = @links['LIST_CARTRIDGES']['method']
32
33
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers)
33
34
  return send(request)
@@ -35,8 +36,8 @@ module Rhc
35
36
 
36
37
  #Start Application
37
38
  def start
38
- logger.debug "Starting application #{self.name}"
39
- url = @@end_point + @links['START']['href']
39
+ logger.debug "Starting application #{self.name}" if @mydebug
40
+ url = @links['START']['href']
40
41
  method = @links['START']['method']
41
42
  payload = {:event=> "start"}
42
43
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers, :payload => payload)
@@ -45,8 +46,8 @@ module Rhc
45
46
 
46
47
  #Stop Application
47
48
  def stop(force=false)
48
- logger.debug "Stopping application #{self.name} force-#{force}"
49
- url = @@end_point + @links['STOP']['href']
49
+ logger.debug "Stopping application #{self.name} force-#{force}" if @mydebug
50
+ url = @links['STOP']['href']
50
51
  method = @links['STOP']['method']
51
52
  if force
52
53
  payload = {:event=> "force-stop"}
@@ -59,8 +60,8 @@ module Rhc
59
60
 
60
61
  #Restart Application
61
62
  def restart
62
- logger.debug "Restarting application #{self.name}"
63
- url = @@end_point + @links['RESTART']['href']
63
+ logger.debug "Restarting application #{self.name}" if @mydebug
64
+ url = @links['RESTART']['href']
64
65
  method = @links['RESTART']['method']
65
66
  payload = {:event=> "restart"}
66
67
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers, :payload => payload)
@@ -69,8 +70,8 @@ module Rhc
69
70
 
70
71
  #Delete Application
71
72
  def destroy
72
- logger.debug "Deleting application #{self.name}"
73
- url = @@end_point + @links['DELETE']['href']
73
+ logger.debug "Deleting application #{self.name}" if @mydebug
74
+ url = @links['DELETE']['href']
74
75
  method = @links['DELETE']['method']
75
76
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers)
76
77
  return send(request)
@@ -11,8 +11,8 @@ module Rhc
11
11
 
12
12
  #Start Cartridge
13
13
  def start
14
- logger.debug "Starting cartridge #{self.name}"
15
- url = @@end_point + @links['START']['href']
14
+ logger.debug "Starting cartridge #{self.name}" if @mydebug
15
+ url = @links['START']['href']
16
16
  method = @links['START']['method']
17
17
  payload = {:event=> "start"}
18
18
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers, :payload => payload)
@@ -21,8 +21,8 @@ module Rhc
21
21
 
22
22
  #Stop Cartridge
23
23
  def stop()
24
- logger.debug "Stopping cartridge #{self.name}"
25
- url = @@end_point + @links['STOP']['href']
24
+ logger.debug "Stopping cartridge #{self.name}" if @mydebug
25
+ url = @links['STOP']['href']
26
26
  method = @links['STOP']['method']
27
27
  payload = {:event=> "stop"}
28
28
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers, :payload => payload)
@@ -31,8 +31,8 @@ module Rhc
31
31
 
32
32
  #Restart Cartridge
33
33
  def restart
34
- logger.debug "Restarting cartridge #{self.name}"
35
- url = @@end_point + @links['RESTART']['href']
34
+ logger.debug "Restarting cartridge #{self.name}" if @mydebug
35
+ url = @links['RESTART']['href']
36
36
  method = @links['RESTART']['method']
37
37
  payload = {:event=> "restart"}
38
38
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers, :payload => payload)
@@ -41,8 +41,8 @@ module Rhc
41
41
 
42
42
  #Reload Cartridge
43
43
  def reload
44
- logger.debug "Reloading cartridge #{self.name}"
45
- url = @@end_point + @links['RESTART']['href']
44
+ logger.debug "Reloading cartridge #{self.name}" if @mydebug
45
+ url = @links['RESTART']['href']
46
46
  method = @links['RESTART']['method']
47
47
  payload = {:event=> "reload"}
48
48
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers, :payload => payload)
@@ -51,8 +51,8 @@ module Rhc
51
51
 
52
52
  #Delete Cartridge
53
53
  def destroy
54
- logger.debug "Deleting cartridge #{self.name}"
55
- url = @@end_point + @links['DELETE']['href']
54
+ logger.debug "Deleting cartridge #{self.name}" if @mydebug
55
+ url = @links['DELETE']['href']
56
56
  method = @links['DELETE']['method']
57
57
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers)
58
58
  return send(request)
@@ -5,11 +5,12 @@ module Rhc
5
5
  class Client
6
6
  include Rest
7
7
  def initialize(end_point, username, password)
8
- @@end_point = end_point
8
+ logger.debug "Connecting to #{end_point}" if @mydebug
9
9
  credentials = Base64.encode64("#{username}:#{password}")
10
10
  @@headers["Authorization"] = "Basic #{credentials}"
11
11
  #first get the API
12
- request = RestClient::Request.new(:url => @@end_point + "/api", :method => :get, :headers => @@headers)
12
+ RestClient.proxy = ENV['http_proxy']
13
+ request = RestClient::Request.new(:url => end_point, :method => :get, :headers => @@headers)
13
14
  begin
14
15
  response = request.execute
15
16
  result = JSON.parse(response)
@@ -22,31 +23,31 @@ module Rhc
22
23
  end
23
24
 
24
25
  #Add Domain
25
- def add_domain(namespace)
26
- logger.debug "Adding domain #{namespace}"
27
- url = @@end_point + @links['ADD_DOMAIN']['href']
26
+ def add_domain(id)
27
+ logger.debug "Adding domain #{id}" if @mydebug
28
+ url = @links['ADD_DOMAIN']['href']
28
29
  method = @links['ADD_DOMAIN']['method']
29
- payload = {:namespace => namespace}
30
+ payload = {:id => id}
30
31
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers, :payload => payload)
31
32
  return send(request)
32
33
  end
33
34
 
34
35
  #Get all Domain
35
36
  def domains
36
- logger.debug "Getting all domains"
37
- url = @@end_point + @links['LIST_DOMAINS']['href']
37
+ logger.debug "Getting all domains" if @mydebug
38
+ url = @links['LIST_DOMAINS']['href']
38
39
  method = @links['LIST_DOMAINS']['method']
39
40
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers)
40
41
  return send(request)
41
42
  end
42
43
 
43
44
  #Find Domain by namesapce
44
- def find_domain(namespace)
45
- logger.debug "Finding domain #{namespace}"
45
+ def find_domain(id)
46
+ logger.debug "Finding domain #{id}" if @mydebug
46
47
  filtered = Array.new
47
48
  domains.each do |domain|
48
49
  #TODO do a regex caomparison
49
- if domain.namespace == namespace
50
+ if domain.id == id
50
51
  filtered.push(domain)
51
52
  end
52
53
  end
@@ -55,7 +56,7 @@ module Rhc
55
56
 
56
57
  #Find Application by name
57
58
  def find_application(name)
58
- logger.debug "Finding application #{name}"
59
+ logger.debug "Finding application #{name}" if @mydebug
59
60
  filtered = Array.new
60
61
  domains.each do |domain|
61
62
  #TODO do a regex caomparison
@@ -70,8 +71,8 @@ module Rhc
70
71
 
71
72
  #Get all Cartridge
72
73
  def cartridges
73
- logger.debug "Getting all cartridges"
74
- url = @@end_point + @links['LIST_CARTRIDGES']['href']
74
+ logger.debug "Getting all cartridges" if @mydebug
75
+ url = @links['LIST_CARTRIDGES']['href']
75
76
  method = @links['LIST_CARTRIDGES']['method']
76
77
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers)
77
78
  return send(request)
@@ -79,7 +80,7 @@ module Rhc
79
80
 
80
81
  #Find Cartridge by name
81
82
  def find_cartridge(name)
82
- logger.debug "Finding cartridge #{name}"
83
+ logger.debug "Finding cartridge #{name}" if @mydebug
83
84
  filtered = Array.new
84
85
  cartridges.each do |cart|
85
86
  #TODO do a regex caomparison
@@ -92,7 +93,7 @@ module Rhc
92
93
 
93
94
  #Get User info
94
95
  def user
95
- url = @@end_point + @links['GET_USER']['href']
96
+ url = @links['GET_USER']['href']
96
97
  method = @links['GET_USER']['method']
97
98
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers)
98
99
  return send(request)
@@ -100,7 +101,7 @@ module Rhc
100
101
 
101
102
  #find Key by name
102
103
  def find_key(name)
103
- logger.debug "Finding key #{name}"
104
+ logger.debug "Finding key #{name}" if @mydebug
104
105
  filtered = Array.new
105
106
  user.keys.each do |key|
106
107
  #TODO do a regex caomparison
@@ -113,7 +114,7 @@ module Rhc
113
114
 
114
115
  def logout
115
116
  #TODO logout
116
- logger.debug "Logout/Close client"
117
+ logger.debug "Logout/Close client" if @mydebug
117
118
  end
118
119
  alias :close :logout
119
120
  end
@@ -2,40 +2,49 @@ module Rhc
2
2
  module Rest
3
3
  class Domain
4
4
  include Rest
5
- attr_reader :namespace
5
+ attr_reader :id
6
6
  def initialize(args)
7
- @namespace = args[:namespace] || args["namespace"]
7
+ @id = args[:id] || args["id"]
8
8
  @links = args[:links] || args["links"]
9
9
  end
10
10
 
11
11
  #Add Application to this domain
12
- def add_application(name, cartridge, scale=false)
13
- logger.debug "Adding application #{name} to domain #{self.namespace}"
14
- url = @@end_point + @links['ADD_APPLICATION']['href']
12
+ # options
13
+ # cartrdige
14
+ # template
15
+ # scale
16
+ # node_profile
17
+ def add_application(name, options)
18
+ logger.debug "Adding application #{name} to domain #{self.id}" if @mydebug
19
+ url = @links['ADD_APPLICATION']['href']
15
20
  method = @links['ADD_APPLICATION']['method']
16
- payload = {:name => name, :cartridge => cartridge}
17
- if scale
18
- payload[:scale] = true
21
+ payload = {:name => name}
22
+ options.each do |key, value|
23
+ payload[key] = value
19
24
  end
20
- request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers, :payload => payload)
25
+ timeout = nil
26
+ if options[:scale]
27
+ timeout = 180 # 3 minute timeout for scalable app
28
+ end
29
+ request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers, :payload => payload, :timeout => timeout)
21
30
  return send(request)
22
31
  end
23
32
 
24
33
  #Get all Application for this domain
25
34
  def applications
26
- logger.debug "Getting all applications for domain #{self.namespace}"
27
- url = @@end_point + @links['LIST_APPLICATIONS']['href']
35
+ logger.debug "Getting all applications for domain #{self.id}" if @mydebug
36
+ url = @links['LIST_APPLICATIONS']['href']
28
37
  method = @links['LIST_APPLICATIONS']['method']
29
38
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers)
30
39
  return send(request)
31
40
  end
32
41
 
33
42
  #Update Domain
34
- def update(new_namespace)
35
- logger.debug "Updating domain #{self.namespace} to #{new_namespace}"
36
- url = @@end_point + @links['UPDATE']['href']
43
+ def update(new_id)
44
+ logger.debug "Updating domain #{self.id} to #{new_id}" if @mydebug
45
+ url = @links['UPDATE']['href']
37
46
  method = @links['UPDATE']['method']
38
- payload = {:namespace => new_namespace}
47
+ payload = {:domain_id => new_id}
39
48
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers, :payload => payload)
40
49
  return send(request)
41
50
  end
@@ -43,8 +52,8 @@ module Rhc
43
52
 
44
53
  #Delete Domain
45
54
  def destroy(force=false)
46
- logger.debug "Deleting domain #{self.namespace}"
47
- url = @@end_point + @links['DELETE']['href']
55
+ logger.debug "Deleting domain #{self.id}" if @mydebug
56
+ url = @links['DELETE']['href']
48
57
  method = @links['DELETE']['method']
49
58
  payload = {:force => force}
50
59
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers, :payload => payload)
data/lib/rhc-rest/key.rb CHANGED
@@ -12,8 +12,8 @@ module Rhc
12
12
 
13
13
  # Update Key
14
14
  def update(type, content)
15
- logger.debug "Updating key #{self.name}"
16
- url = @@end_point + @links['UPDATE']['href']
15
+ logger.debug "Updating key #{self.name}" if @mydebug
16
+ url = @links['UPDATE']['href']
17
17
  method = @links['UPDATE']['method']
18
18
  payload = {:type => type, :content => content}
19
19
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers, :payload => payload)
@@ -22,8 +22,8 @@ module Rhc
22
22
 
23
23
  #Delete Key
24
24
  def destroy
25
- logger.debug "Deleting key #{self.name}"
26
- url = @@end_point + @links['DELETE']['href']
25
+ logger.debug "Deleting key #{self.name}" if @mydebug
26
+ url = @links['DELETE']['href']
27
27
  method = @links['DELETE']['method']
28
28
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers)
29
29
  return send(request)
data/lib/rhc-rest/user.rb CHANGED
@@ -10,7 +10,7 @@ module Rhc
10
10
 
11
11
  #Add Key for this user
12
12
  def add_key(name, content, type)
13
- url = @@end_point + @links['ADD_KEY']['href']
13
+ url = @links['ADD_KEY']['href']
14
14
  method = @links['ADD_KEY']['method']
15
15
  payload = {:name => name, :type => type, :content => content}
16
16
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers, :payload => payload)
@@ -19,7 +19,7 @@ module Rhc
19
19
 
20
20
  #Get all Key for this user
21
21
  def keys
22
- url = @@end_point + @links['LIST_KEYS']['href']
22
+ url = @links['LIST_KEYS']['href']
23
23
  method = @links['LIST_KEYS']['method']
24
24
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers)
25
25
  return send(request)
data/rhc-rest.gemspec CHANGED
@@ -21,6 +21,6 @@ Gem::Specification.new do |s|
21
21
  s.require_paths = ["lib"]
22
22
 
23
23
  # specify any dependencies here; for example:
24
- s.add_dependency("json")
24
+ s.extensions << 'ext/mkrf_conf.rb'
25
25
  s.add_dependency("rest-client")
26
26
  end
data/rhc-rest.spec CHANGED
@@ -6,7 +6,8 @@
6
6
 
7
7
  Summary: Ruby bindings/client for OpenShift REST API
8
8
  Name: rhc-rest
9
- Version: 0.0.7
9
+ # Make sure to update express/client.spec and express/Rakefile when increasing version number
10
+ Version: 0.0.14
10
11
  Release: 1%{?dist}
11
12
  Group: Network/Daemons
12
13
  License: ASL 2.0
@@ -56,6 +57,48 @@ rm -rf %{buildroot}
56
57
  %doc COPYRIGHT
57
58
 
58
59
  %changelog
60
+ * Thu Apr 12 2012 Mike McGrath <mmcgrath@redhat.com> 0.0.14-1
61
+ - Merge branch 'master' of github.com:openshift/os-client-tools
62
+ (mmcgrath@redhat.com)
63
+ - BZ810790: Fixed app scaling payload creation (fotios@redhat.com)
64
+
65
+ * Thu Apr 12 2012 Mike McGrath <mmcgrath@redhat.com> 0.0.13-1
66
+ -
67
+
68
+ * Thu Apr 12 2012 Mike McGrath <mmcgrath@redhat.com> 0.0.12-1
69
+ - Update to ASL 2.0 License (jhonce@redhat.com)
70
+ - Bug 810714 - Command Line Tools: Unable to create scalable application via
71
+ proxy (lnader@redhat.com)
72
+ - Also noted to change Rakefile when bumping version (fotios@redhat.com)
73
+ - BZ810439: Fixed dependency for client tools to require latest version of rhc-
74
+ rest (fotios@redhat.com)
75
+ - changed permissions to 755 (lnader@redhat.com)
76
+ - removed doc/created.rid (lnader@redhat.com)
77
+ - remove +x (lnader@redhat.com)
78
+
79
+ * Mon Apr 09 2012 Lili Nader <lnader@redhat.com> 0.0.11-1
80
+ - bug fixes (lnader@redhat.com)
81
+
82
+ * Mon Apr 09 2012 Lili Nader <lnader@redhat.com> 0.0.10-1
83
+ -
84
+
85
+ * Mon Apr 09 2012 Lili Nader <lnader@redhat.com> 0.0.9-1
86
+ - absolute URLs (lnader@redhat.com)
87
+ - Made sure debugging output was only printed when @mydebug was specified
88
+ (fotios@redhat.com)
89
+ - Ruby REST api changes: - Make 'domain namespace' consistent across
90
+ domain/app objects. It will be referred as 'id' in domain objects and
91
+ 'domain_id' in app objects. (rpenta@redhat.com)
92
+ - update sample script for ruby REST api (rpenta@redhat.com)
93
+
94
+ * Fri Mar 30 2012 Lili Nader <lnader@redhat.com> 0.0.8-1
95
+ - Catch all to prevent trying to parse a null response on an http code we did
96
+ not expect. (rmillner@redhat.com)
97
+ - Increase the timeout to 3 minutes on creating a scalable application.
98
+ (rmillner@redhat.com)
99
+ - Creating scalable apps was causing a timeout. Needed to setup an exception
100
+ to propagate that back to the end-user. (rmillner@redhat.com)
101
+
59
102
  * Wed Mar 21 2012 Lili Nader <lnader@redhat.com> 0.0.7-1
60
103
  - Get rhc-rest a building ... (ramr@redhat.com)
61
104
  - Fix to get rhc-rest building. (ramr@redhat.com)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rhc-rest
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 3
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 7
10
- version: 0.0.7
9
+ - 14
10
+ version: 0.0.14
11
11
  platform: ruby
12
12
  authors:
13
13
  - Red Hat
@@ -15,10 +15,10 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-04-04 00:00:00 Z
18
+ date: 2012-04-16 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
- name: json
21
+ name: rest-client
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
24
  none: false
@@ -31,27 +31,13 @@ dependencies:
31
31
  version: "0"
32
32
  type: :runtime
33
33
  version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: rest-client
36
- prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
38
- none: false
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 3
43
- segments:
44
- - 0
45
- version: "0"
46
- type: :runtime
47
- version_requirements: *id002
48
34
  description: Ruby bindings for OpenShift REST API
49
35
  email:
50
36
  - openshift@redhat.com
51
37
  executables: []
52
38
 
53
- extensions: []
54
-
39
+ extensions:
40
+ - ext/mkrf_conf.rb
55
41
  extra_rdoc_files: []
56
42
 
57
43
  files:
@@ -117,7 +103,6 @@ files:
117
103
  - doc/js/search_index.js
118
104
  - doc/js/search.js
119
105
  - doc/js/jquery.js
120
- - doc/doc/created.rid
121
106
  - doc/Gemfile.html
122
107
  - Rakefile
123
108
  - rhc-rest.gemspec
@@ -125,6 +110,7 @@ files:
125
110
  - rhc-rest.spec
126
111
  - COPYRIGHT
127
112
  - LICENSE
113
+ - ext/mkrf_conf.rb
128
114
  homepage: http://www.openshift.com
129
115
  licenses: []
130
116
 
data/doc/doc/created.rid DELETED
File without changes