rhc 0.90.7 → 0.91.11

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,73 @@
1
+ module Rhc
2
+ module Rest
3
+ class BaseException < RuntimeError
4
+ attr_reader :code
5
+ def initialize(message=nil, code=nil)
6
+ super(message)
7
+ @code = code
8
+ end
9
+ end
10
+
11
+ #Exceptions thrown in case of an HTTP 5xx is received.
12
+ class ServerErrorException < Rhc::Rest::BaseException; end
13
+
14
+ #Exceptions thrown in case of an HTTP 503 is received.
15
+ #
16
+ #503 Service Unavailable
17
+ #
18
+ #The server is currently unable to handle the request due to a temporary
19
+ #overloading or maintenance of the server. The implication is that this
20
+ #is a temporary condition which will be alleviated after some delay.
21
+
22
+ class ServiceUnavailableException < Rhc::Rest::ServerErrorException; end
23
+
24
+ #Exceptions thrown in case of an HTTP 4xx is received with the exception
25
+ #of 401, 403, 403 and 422 where a more sepcific exception is thrown
26
+ #
27
+ #HTTP Error Codes 4xx
28
+ #
29
+ #The 4xx class of status code is intended for cases in which the client
30
+ #seems to have errored.
31
+
32
+
33
+ class ClientErrorException < Rhc::Rest::BaseException; end
34
+
35
+ #Exceptions thrown in case of an HTTP 404 is received.
36
+ #
37
+ #404 Not Found
38
+ #
39
+ #The server has not found anything matching the Request-URI or the
40
+ #requested resource does not exist
41
+ class ResourceNotFoundException < Rhc::Rest::ClientErrorException; end
42
+
43
+ #Exceptions thrown in case of an HTTP 422 is received.
44
+ class ValidationException < Rhc::Rest::ClientErrorException
45
+ attr_reader :field
46
+ def initialize(message, field=nil)
47
+ super(message)
48
+ @field = field
49
+ end
50
+ end
51
+
52
+ #Exceptions thrown in case of an HTTP 403 is received.
53
+ #
54
+ #403 Forbidden
55
+ #
56
+ #The server understood the request, but is refusing to fulfill it.
57
+ #Authorization will not help and the request SHOULD NOT be repeated.
58
+ class RequestDeniedException < Rhc::Rest::ClientErrorException; end
59
+
60
+ #Exceptions thrown in case of an HTTP 401 is received.
61
+ #
62
+ #401 Unauthorized
63
+ #
64
+ #The request requires user authentication. If the request already
65
+ #included Authorization credentials, then the 401 response indicates
66
+ #that authorization has been refused for those credentials.
67
+ class UnAuthorizedException < Rhc::Rest::ClientErrorException; end
68
+
69
+ #I/O Exceptions Connection timeouts, Unreachable host, etc
70
+ class ResourceAccessException < Rhc::Rest::BaseException; end
71
+
72
+ end
73
+ end
@@ -0,0 +1,34 @@
1
+ module Rhc
2
+ module Rest
3
+ class Key
4
+ include Rest
5
+ attr_reader :name, :type, :content
6
+ def initialize(args)
7
+ @name = args[:name] || args["name"]
8
+ @type = args[:type] || args["type"]
9
+ @content = args[:content] || args["content"]
10
+ @links = args[:links] || args["links"]
11
+ end
12
+
13
+ # Update Key
14
+ def update(type, content)
15
+ logger.debug "Updating key #{self.name}" if @mydebug
16
+ url = @links['UPDATE']['href']
17
+ method = @links['UPDATE']['method']
18
+ payload = {:type => type, :content => content}
19
+ request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers, :payload => payload)
20
+ return send(request)
21
+ end
22
+
23
+ #Delete Key
24
+ def destroy
25
+ logger.debug "Deleting key #{self.name}" if @mydebug
26
+ url = @links['DELETE']['href']
27
+ method = @links['DELETE']['method']
28
+ request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers)
29
+ return send(request)
30
+ end
31
+ alias :delete :destroy
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,41 @@
1
+ module Rhc
2
+ module Rest
3
+ class User
4
+ include Rest
5
+ attr_reader :login
6
+ def initialize(args)
7
+ @login = args[:login] || args["login"]
8
+ @links = args[:links] || args["links"]
9
+ end
10
+
11
+ #Add Key for this user
12
+ def add_key(name, content, type)
13
+ url = @links['ADD_KEY']['href']
14
+ method = @links['ADD_KEY']['method']
15
+ payload = {:name => name, :type => type, :content => content}
16
+ request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers, :payload => payload)
17
+ return send(request)
18
+ end
19
+
20
+ #Get all Key for this user
21
+ def keys
22
+ url = @links['LIST_KEYS']['href']
23
+ method = @links['LIST_KEYS']['method']
24
+ request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers)
25
+ return send(request)
26
+ end
27
+
28
+ #Find Key by name
29
+ def find_key(name)
30
+ filtered = Array.new
31
+ keys.each do |key|
32
+ #TODO do a regex caomparison
33
+ if key.name == name
34
+ filtered.push(key)
35
+ end
36
+ end
37
+ return filtered
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,5 @@
1
+ module Rhc
2
+ module Rest
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rhc
3
3
  version: !ruby/object:Gem::Version
4
- hash: 377
4
+ hash: 357
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 90
9
- - 7
10
- version: 0.90.7
8
+ - 91
9
+ - 11
10
+ version: 0.91.11
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-18 00:00:00 Z
18
+ date: 2012-04-27 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
- name: json_pure
21
+ name: parseconfig
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
24
  none: false
@@ -32,7 +32,7 @@ dependencies:
32
32
  type: :runtime
33
33
  version_requirements: *id001
34
34
  - !ruby/object:Gem::Dependency
35
- name: parseconfig
35
+ name: rest-client
36
36
  prerelease: false
37
37
  requirement: &id002 !ruby/object:Gem::Requirement
38
38
  none: false
@@ -46,19 +46,17 @@ dependencies:
46
46
  type: :runtime
47
47
  version_requirements: *id002
48
48
  - !ruby/object:Gem::Dependency
49
- name: rhc-rest
49
+ name: rake
50
50
  prerelease: false
51
51
  requirement: &id003 !ruby/object:Gem::Requirement
52
52
  none: false
53
53
  requirements:
54
54
  - - ">="
55
55
  - !ruby/object:Gem::Version
56
- hash: 9
56
+ hash: 3
57
57
  segments:
58
58
  - 0
59
- - 0
60
- - 11
61
- version: 0.0.11
59
+ version: "0"
62
60
  type: :runtime
63
61
  version_requirements: *id003
64
62
  description: The client tools for the OpenShift Express platform that allow for application management.
@@ -84,31 +82,40 @@ extra_rdoc_files: []
84
82
 
85
83
  files:
86
84
  - lib/rhc-common.rb
85
+ - lib/rhc-rest/domain.rb
86
+ - lib/rhc-rest/application.rb
87
+ - lib/rhc-rest/cartridge.rb
88
+ - lib/rhc-rest/client.rb
89
+ - lib/rhc-rest/key.rb
90
+ - lib/rhc-rest/exceptions/exceptions.rb
91
+ - lib/rhc-rest/user.rb
92
+ - lib/rhc-rest/version.rb
93
+ - lib/rhc-rest.rb
87
94
  - lib/rhc
88
- - bin/rhc-ctl-app
89
- - bin/rhc-app
90
- - bin/rhc-create-app
91
- - bin/rhc-domain
95
+ - bin/rhc-user-info
92
96
  - bin/rhc-chk
93
- - bin/rhc-create-domain
97
+ - bin/rhc-create-app
94
98
  - bin/rhc-domain-info
95
- - bin/rhc
96
- - bin/rhc-user-info
99
+ - bin/rhc-ctl-domain
97
100
  - bin/rhc-sshkey
98
- - bin/rhc-port-forward
99
- - bin/rhc-snapshot
100
101
  - bin/rhc-tail-files
101
- - bin/rhc-ctl-domain
102
+ - bin/rhc-create-domain
103
+ - bin/rhc-ctl-app
104
+ - bin/rhc-domain
105
+ - bin/rhc-snapshot
106
+ - bin/rhc-app
107
+ - bin/rhc-port-forward
108
+ - bin/rhc
102
109
  - conf/express.conf
103
110
  - LICENSE
104
111
  - COPYRIGHT
105
- - README
112
+ - README.md
106
113
  - Rakefile
107
114
  - ext/mkrf_conf.rb
108
115
  homepage: https://openshift.redhat.com/app/express
109
116
  licenses: []
110
117
 
111
- post_install_message:
118
+ post_install_message: " ===================================================\n rhc-rest is no longer needed as an external gem\n - If it is installed, it will be removed\n - Its libraries are now included in rhc\n - Any applications requiring rhc-rest will \n still function as expected\n ===================================================\n"
112
119
  rdoc_options: []
113
120
 
114
121
  require_paths:
data/README DELETED
@@ -1,69 +0,0 @@
1
- OpenShift Express (RHC)
2
- ========
3
-
4
- Please stop by #openshift on irc.freenode.net if you have any questions or
5
- comments. Another good resource are the blogs and forums at
6
- http://openshift.redhat.com
7
-
8
-
9
- Quickstart
10
- ========
11
-
12
- DEPENDENCIES: git
13
- openssh-clients
14
- ruby (1.8.7 or later)
15
- rubygems
16
- json_pure gem (native json is fine too)
17
- parseconfig gem
18
-
19
- Step 1: Create an rhc domain:
20
-
21
- $ rhc-create-domain -n desirednamespace -l rhlogin
22
-
23
- Step 2: Create an rhc application:
24
-
25
- $ rhc-create-app -l rhlogin -a appname -r /path/to/new/git/repo -t <framework Ex: php-5.3>
26
-
27
- Once that's complete, follow the directions printed at the end of running
28
- rhc-create-app
29
-
30
-
31
- Updating your site
32
- ========
33
-
34
- Once your site is created, updating it is as simple as making changes to your
35
- git repo. Commit them, then push. For example:
36
-
37
- $ edit index.php
38
- $ git commit -a -m "what I did"
39
- $ git push
40
-
41
- Then just reload your web page to see the changes
42
-
43
- -----------
44
- OS X Notes:
45
- -----------
46
-
47
- git:
48
- OS X 10.6 comes w/ ssh and ruby, but not with git, unless you have
49
- Xcode 4.0.x installed (as a developer you should have Xcode anyway).
50
- Xcode, however, is not free (unless you are a registered Apple
51
- Developer) and costs around $5 from the Apple App Store.
52
-
53
- If you do not have Xcode, you can obtain a pre-packaged version
54
- of git from:
55
-
56
- http://code.google.com/p/git-osx-installer/
57
-
58
- Installing git from MacPorts/HomeBrew/Fink/etc requires Xcode.
59
-
60
- Now obtain the client code, either via 'git clone' as above
61
- or via the rhc gem.
62
-
63
- json_pure gem:
64
- The client tools also make use of JSON as the data set for
65
- I/O, and therefore needs the json ruby gem. Unless you have
66
- Xcode installed, you will need to install json_pure, which
67
- is the 100% ruby version of the JSON gem. If you have Xcode,
68
- you can elect to install either json_pure or the native
69
- json gem.