rhc-rest 0.0.7

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 (71) hide show
  1. data/COPYRIGHT +1 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +11 -0
  4. data/Rakefile +1 -0
  5. data/bin/sample-usage.rb +124 -0
  6. data/doc/Gemfile.html +119 -0
  7. data/doc/Rakefile.html +117 -0
  8. data/doc/Rhc/Rest/Application.html +571 -0
  9. data/doc/Rhc/Rest/BaseException.html +226 -0
  10. data/doc/Rhc/Rest/Cartridge.html +475 -0
  11. data/doc/Rhc/Rest/Client.html +609 -0
  12. data/doc/Rhc/Rest/ClientErrorException.html +167 -0
  13. data/doc/Rhc/Rest/Domain.html +457 -0
  14. data/doc/Rhc/Rest/Key.html +378 -0
  15. data/doc/Rhc/Rest/RequestDeniedException.html +166 -0
  16. data/doc/Rhc/Rest/ResourceAccessException.html +161 -0
  17. data/doc/Rhc/Rest/ResourceNotFoundException.html +166 -0
  18. data/doc/Rhc/Rest/ServerErrorException.html +161 -0
  19. data/doc/Rhc/Rest/ServiceUnavailableException.html +167 -0
  20. data/doc/Rhc/Rest/UnAuthorizedException.html +167 -0
  21. data/doc/Rhc/Rest/User.html +354 -0
  22. data/doc/Rhc/Rest/ValidationException.html +255 -0
  23. data/doc/Rhc/Rest.html +410 -0
  24. data/doc/Rhc.html +329 -0
  25. data/doc/created.rid +13 -0
  26. data/doc/doc/created.rid +0 -0
  27. data/doc/images/add.png +0 -0
  28. data/doc/images/brick.png +0 -0
  29. data/doc/images/brick_link.png +0 -0
  30. data/doc/images/bug.png +0 -0
  31. data/doc/images/bullet_black.png +0 -0
  32. data/doc/images/bullet_toggle_minus.png +0 -0
  33. data/doc/images/bullet_toggle_plus.png +0 -0
  34. data/doc/images/date.png +0 -0
  35. data/doc/images/delete.png +0 -0
  36. data/doc/images/find.png +0 -0
  37. data/doc/images/loadingAnimation.gif +0 -0
  38. data/doc/images/macFFBgHack.png +0 -0
  39. data/doc/images/package.png +0 -0
  40. data/doc/images/page_green.png +0 -0
  41. data/doc/images/page_white_text.png +0 -0
  42. data/doc/images/page_white_width.png +0 -0
  43. data/doc/images/plugin.png +0 -0
  44. data/doc/images/ruby.png +0 -0
  45. data/doc/images/tag_blue.png +0 -0
  46. data/doc/images/tag_green.png +0 -0
  47. data/doc/images/transparent.png +0 -0
  48. data/doc/images/wrench.png +0 -0
  49. data/doc/images/wrench_orange.png +0 -0
  50. data/doc/images/zoom.png +0 -0
  51. data/doc/index.html +112 -0
  52. data/doc/js/darkfish.js +153 -0
  53. data/doc/js/jquery.js +18 -0
  54. data/doc/js/navigation.js +142 -0
  55. data/doc/js/search.js +94 -0
  56. data/doc/js/search_index.js +1 -0
  57. data/doc/js/searcher.js +228 -0
  58. data/doc/rdoc.css +543 -0
  59. data/doc/table_of_contents.html +198 -0
  60. data/lib/rhc-rest/application.rb +81 -0
  61. data/lib/rhc-rest/cartridge.rb +64 -0
  62. data/lib/rhc-rest/client.rb +122 -0
  63. data/lib/rhc-rest/domain.rb +56 -0
  64. data/lib/rhc-rest/exceptions/exceptions.rb +73 -0
  65. data/lib/rhc-rest/key.rb +34 -0
  66. data/lib/rhc-rest/user.rb +41 -0
  67. data/lib/rhc-rest/version.rb +5 -0
  68. data/lib/rhc-rest.rb +155 -0
  69. data/rhc-rest.gemspec +26 -0
  70. data/rhc-rest.spec +79 -0
  71. metadata +162 -0
data/lib/rhc-rest.rb ADDED
@@ -0,0 +1,155 @@
1
+ require 'rubygems'
2
+ require 'rest-client'
3
+ require 'logger'
4
+ require 'json'
5
+ require File.dirname(__FILE__) + '/rhc-rest/exceptions/exceptions.rb'
6
+ require File.dirname(__FILE__) + '/rhc-rest/application'
7
+ require File.dirname(__FILE__) + '/rhc-rest/cartridge'
8
+ require File.dirname(__FILE__) + '/rhc-rest/client'
9
+ require File.dirname(__FILE__) + '/rhc-rest/domain'
10
+ require File.dirname(__FILE__) + '/rhc-rest/key'
11
+ require File.dirname(__FILE__) + '/rhc-rest/user'
12
+
13
+ @@end_point = ""
14
+ @@headers = {:accept => :json}
15
+
16
+ module Rhc
17
+ module Rest
18
+ def logger
19
+ if defined?Rails.logger
20
+ Rails.logger
21
+ else
22
+ Logger.new(STDOUT)
23
+ end
24
+ end
25
+
26
+ def parse_response(response)
27
+ result = JSON.parse(response)
28
+ type = result['type']
29
+ data = result['data']
30
+ case type
31
+ when 'domains'
32
+ domains = Array.new
33
+ data.each do |domain_json|
34
+ domains.push(Domain.new(domain_json))
35
+ end
36
+ return domains
37
+ when 'domain'
38
+ return Domain.new(data)
39
+ when 'applications'
40
+ apps = Array.new
41
+ data.each do |app_json|
42
+ apps.push(Application.new(app_json))
43
+ end
44
+ return apps
45
+ when 'application'
46
+ return Application.new(data)
47
+ when 'cartridges'
48
+ carts = Array.new
49
+ data.each do |cart_json|
50
+ carts.push(Cartridge.new(cart_json))
51
+ end
52
+ return carts
53
+ when 'cartridge'
54
+ return Cartridge.new(data)
55
+ when 'user'
56
+ return User.new(data)
57
+ when 'keys'
58
+ keys = Array.new
59
+ data.each do |key_json|
60
+ keys.push(Key.new(key_json))
61
+ end
62
+ return keys
63
+ when 'key'
64
+ return Key.new(data)
65
+ else
66
+ data
67
+ end
68
+ end
69
+
70
+ def send(request)
71
+ begin
72
+ #puts request.headers
73
+ response = request.execute
74
+ #set cookie
75
+ rh_sso = response.cookies['rh_sso']
76
+ #puts response.cookies
77
+ if not rh_sso.nil?
78
+ @@headers["cookie"] = "rh_sso=#{rh_sso}"
79
+ end
80
+ #puts "#{response}"
81
+ return parse_response(response) unless response.nil? or response.code == 204
82
+ rescue RestClient::ExceptionWithResponse => e
83
+ #puts "#{e.response}"
84
+ process_error_response(e.response)
85
+ rescue Exception => e
86
+ raise ResourceAccessException.new("Failed to access resource: #{e.message}")
87
+ end
88
+ end
89
+
90
+ def process_error_response(response)
91
+ messages = Array.new
92
+ begin
93
+ result = JSON.parse(response)
94
+ messages = result['messages']
95
+ rescue Exception => e
96
+ logger.debug "Response did not include a message from server"
97
+ #puts response
98
+ end
99
+ case response.code
100
+ when 401
101
+ raise UnAuthorizedException.new("Not authenticated")
102
+ when 403
103
+ messages.each do |message|
104
+ if message['severity'].upcase == "ERROR"
105
+ raise RequestDeniedException.new(message['text'])
106
+ end
107
+ end
108
+ when 404
109
+ messages.each do |message|
110
+ if message['severity'].upcase == "ERROR"
111
+ raise ResourceNotFoundException.new(message['text'])
112
+ end
113
+ end
114
+ when 409
115
+ messages.each do |message|
116
+ if message['severity'] and message['severity'].upcase == "ERROR"
117
+ raise ValidationException.new(message['text'])
118
+ end
119
+ end
120
+ when 422
121
+ #puts response
122
+ e = nil
123
+ messages.each do |message|
124
+ if message["field"]
125
+ if e and e.field ==message["field"]
126
+ e.message << " #{message["text"]}"
127
+ else
128
+ e = ValidationException.new(message["text"], message["field"])
129
+ end
130
+ end
131
+ end
132
+ raise e
133
+ when 400
134
+ messages.each do |message|
135
+ if message['severity'].upcase == "ERROR"
136
+ raise ClientErrorException.new(message['text'])
137
+ end
138
+ end
139
+ when 500
140
+ messages.each do |message|
141
+ if message['severity'].upcase == "ERROR"
142
+ raise ServerErrorException.new(message['text'])
143
+ end
144
+ end
145
+ when 503
146
+ messages.each do |message|
147
+ if message['severity'].upcase == "ERROR"
148
+ raise ServiceUnavailableException.new(message['text'])
149
+ end
150
+ end
151
+ end
152
+
153
+ end
154
+ end
155
+ end
data/rhc-rest.gemspec ADDED
@@ -0,0 +1,26 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "rhc-rest/version"
4
+ bin_dir = File.join("bin", "*")
5
+ lib_dir = File.join(File.join("lib", "**"), "*")
6
+ doc_dir = File.join(File.join("doc", "**"), "*")
7
+
8
+ Gem::Specification.new do |s|
9
+ s.name = "rhc-rest"
10
+ s.version = /(Version: )(.*)/.match(File.read("rhc-rest.spec"))[2].strip
11
+ s.authors = ["Red Hat"]
12
+ s.email = ["openshift@redhat.com"]
13
+ s.homepage = "http://www.openshift.com"
14
+ s.summary = %q{Ruby REST client for OpenShift REST API}
15
+ s.description = %q{Ruby bindings for OpenShift REST API}
16
+
17
+ s.rubyforge_project = "rhc-rest"
18
+
19
+ s.files = Dir[lib_dir] + Dir[bin_dir] + Dir[doc_dir]
20
+ s.files += %w(Rakefile rhc-rest.gemspec Gemfile rhc-rest.spec COPYRIGHT LICENSE)
21
+ s.require_paths = ["lib"]
22
+
23
+ # specify any dependencies here; for example:
24
+ s.add_dependency("json")
25
+ s.add_dependency("rest-client")
26
+ end
data/rhc-rest.spec ADDED
@@ -0,0 +1,79 @@
1
+ %global ruby_sitelib %(ruby -rrbconfig -e "puts Config::CONFIG['sitelibdir']")
2
+ %define gemdir %(ruby -rubygems -e 'puts Gem::dir' 2>/dev/null)
3
+ %global gemname rhc-rest
4
+ %global geminstdir %{gemdir}/gems/%{gemname}-%{version}
5
+
6
+
7
+ Summary: Ruby bindings/client for OpenShift REST API
8
+ Name: rhc-rest
9
+ Version: 0.0.7
10
+ Release: 1%{?dist}
11
+ Group: Network/Daemons
12
+ License: ASL 2.0
13
+ URL: http://openshift.redhat.com
14
+ Source0: rhc-rest-%{version}.tar.gz
15
+
16
+ BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
17
+ BuildRequires: rubygem-rake
18
+ BuildRequires: rubygem-rspec
19
+ Requires: ruby >= 1.8.5
20
+ Requires: rubygem-rest-client
21
+ Requires: rubygem-json
22
+
23
+ BuildArch: noarch
24
+
25
+ %description
26
+ Provides Ruby bindings/client for OpenShift REST API
27
+
28
+ %prep
29
+ %setup -q
30
+
31
+ %build
32
+ for f in lib/*.rb
33
+ do
34
+ ruby -c $f
35
+ done
36
+
37
+ %install
38
+ rm -rf %{buildroot}
39
+ mkdir -p %{buildroot}%{gemdir}
40
+ mkdir -p %{buildroot}%{ruby_sitelib}
41
+
42
+ # Build and install into the rubygem structure
43
+ gem build %{gemname}.gemspec
44
+ gem install --local --install-dir %{buildroot}/%{gemdir} --force %{gemname}-%{version}.gem
45
+
46
+ %clean
47
+ rm -rf %{buildroot}
48
+
49
+ %files
50
+ %defattr(-,root,root,-)
51
+ %{gemdir}/gems/rhc-rest-%{version}/
52
+ %{gemdir}/cache/rhc-rest-%{version}.gem
53
+ %{gemdir}/doc/rhc-rest-%{version}
54
+ %{gemdir}/specifications/rhc-rest-%{version}.gemspec
55
+ %doc LICENSE
56
+ %doc COPYRIGHT
57
+
58
+ %changelog
59
+ * Wed Mar 21 2012 Lili Nader <lnader@redhat.com> 0.0.7-1
60
+ - Get rhc-rest a building ... (ramr@redhat.com)
61
+ - Fix to get rhc-rest building. (ramr@redhat.com)
62
+
63
+ * Tue Mar 20 2012 Lili Nader <lnader@redhat.com> 0.0.5-1
64
+ - corrected version in gemspec (lnader@redhat.com)
65
+
66
+ * Tue Mar 20 2012 Lili Nader <lnader@redhat.com> 0.0.4-1
67
+ - corrected build error (lnader@redhat.com)
68
+
69
+ * Fri Mar 16 2012 Lili Nader <lnader@redhat.com> 0.0.3-1
70
+ - new package built with tito
71
+
72
+ * Tue Feb 14 2012 Lili Nader <lnader@redhat.com> 0.0.2-1
73
+ - new package built with tito
74
+
75
+
76
+
77
+
78
+
79
+
metadata ADDED
@@ -0,0 +1,162 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rhc-rest
3
+ version: !ruby/object:Gem::Version
4
+ hash: 17
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 7
10
+ version: 0.0.7
11
+ platform: ruby
12
+ authors:
13
+ - Red Hat
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2012-04-04 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: json
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 3
29
+ segments:
30
+ - 0
31
+ version: "0"
32
+ type: :runtime
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
+ description: Ruby bindings for OpenShift REST API
49
+ email:
50
+ - openshift@redhat.com
51
+ executables: []
52
+
53
+ extensions: []
54
+
55
+ extra_rdoc_files: []
56
+
57
+ files:
58
+ - lib/rhc-rest/application.rb
59
+ - lib/rhc-rest/client.rb
60
+ - lib/rhc-rest/exceptions/exceptions.rb
61
+ - lib/rhc-rest/user.rb
62
+ - lib/rhc-rest/key.rb
63
+ - lib/rhc-rest/domain.rb
64
+ - lib/rhc-rest/cartridge.rb
65
+ - lib/rhc-rest/version.rb
66
+ - lib/rhc-rest.rb
67
+ - bin/sample-usage.rb
68
+ - doc/created.rid
69
+ - doc/Rhc.html
70
+ - doc/Rakefile.html
71
+ - doc/rdoc.css
72
+ - doc/Rhc/Rest.html
73
+ - doc/Rhc/Rest/Application.html
74
+ - doc/Rhc/Rest/User.html
75
+ - doc/Rhc/Rest/ResourceNotFoundException.html
76
+ - doc/Rhc/Rest/Client.html
77
+ - doc/Rhc/Rest/Domain.html
78
+ - doc/Rhc/Rest/ResourceAccessException.html
79
+ - doc/Rhc/Rest/BaseException.html
80
+ - doc/Rhc/Rest/ClientErrorException.html
81
+ - doc/Rhc/Rest/ValidationException.html
82
+ - doc/Rhc/Rest/ServiceUnavailableException.html
83
+ - doc/Rhc/Rest/Cartridge.html
84
+ - doc/Rhc/Rest/ServerErrorException.html
85
+ - doc/Rhc/Rest/UnAuthorizedException.html
86
+ - doc/Rhc/Rest/RequestDeniedException.html
87
+ - doc/Rhc/Rest/Key.html
88
+ - doc/table_of_contents.html
89
+ - doc/index.html
90
+ - doc/images/tag_green.png
91
+ - doc/images/bug.png
92
+ - doc/images/page_green.png
93
+ - doc/images/page_white_text.png
94
+ - doc/images/tag_blue.png
95
+ - doc/images/zoom.png
96
+ - doc/images/page_white_width.png
97
+ - doc/images/package.png
98
+ - doc/images/wrench_orange.png
99
+ - doc/images/transparent.png
100
+ - doc/images/bullet_toggle_minus.png
101
+ - doc/images/bullet_black.png
102
+ - doc/images/date.png
103
+ - doc/images/brick.png
104
+ - doc/images/ruby.png
105
+ - doc/images/wrench.png
106
+ - doc/images/plugin.png
107
+ - doc/images/macFFBgHack.png
108
+ - doc/images/brick_link.png
109
+ - doc/images/find.png
110
+ - doc/images/delete.png
111
+ - doc/images/bullet_toggle_plus.png
112
+ - doc/images/loadingAnimation.gif
113
+ - doc/images/add.png
114
+ - doc/js/darkfish.js
115
+ - doc/js/navigation.js
116
+ - doc/js/searcher.js
117
+ - doc/js/search_index.js
118
+ - doc/js/search.js
119
+ - doc/js/jquery.js
120
+ - doc/doc/created.rid
121
+ - doc/Gemfile.html
122
+ - Rakefile
123
+ - rhc-rest.gemspec
124
+ - Gemfile
125
+ - rhc-rest.spec
126
+ - COPYRIGHT
127
+ - LICENSE
128
+ homepage: http://www.openshift.com
129
+ licenses: []
130
+
131
+ post_install_message:
132
+ rdoc_options: []
133
+
134
+ require_paths:
135
+ - lib
136
+ required_ruby_version: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ hash: 3
142
+ segments:
143
+ - 0
144
+ version: "0"
145
+ required_rubygems_version: !ruby/object:Gem::Requirement
146
+ none: false
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ hash: 3
151
+ segments:
152
+ - 0
153
+ version: "0"
154
+ requirements: []
155
+
156
+ rubyforge_project: rhc-rest
157
+ rubygems_version: 1.8.11
158
+ signing_key:
159
+ specification_version: 3
160
+ summary: Ruby REST client for OpenShift REST API
161
+ test_files: []
162
+