foreman_api 0.0.1 → 0.0.2
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.
- data/foreman_api.gemspec +0 -1
- data/lib/foreman_api/base.rb +23 -16
- data/lib/foreman_api/resources/architecture.rb +10 -10
- data/lib/foreman_api/resources/bookmark.rb +10 -10
- data/lib/foreman_api/resources/home.rb +4 -4
- data/lib/foreman_api/resources/operating_system.rb +12 -12
- data/lib/foreman_api/resources/user.rb +12 -12
- data/lib/foreman_api/version.rb +1 -1
- metadata +4 -4
    
        data/foreman_api.gemspec
    CHANGED
    
    | @@ -9,7 +9,6 @@ Gem::Specification.new do |gem| | |
| 9 9 | 
             
              gem.homepage      = "http://github.com/mbacovsky/foreman_api"
         | 
| 10 10 |  | 
| 11 11 | 
             
              gem.files         = `git ls-files`.split($\)
         | 
| 12 | 
            -
              gem.executables   = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
         | 
| 13 12 | 
             
              gem.test_files    = gem.files.grep(%r{^(test|spec|features)/})
         | 
| 14 13 | 
             
              gem.name          = "foreman_api"
         | 
| 15 14 | 
             
              gem.require_paths = ["lib"]
         | 
    
        data/lib/foreman_api/base.rb
    CHANGED
    
    | @@ -7,32 +7,28 @@ module ForemanApi | |
| 7 7 | 
             
              class Base
         | 
| 8 8 | 
             
                attr_reader :client
         | 
| 9 9 |  | 
| 10 | 
            -
                def initialize(config = ForemanApi.client_config)
         | 
| 11 | 
            -
                  @client = RestClient::Resource.new | 
| 10 | 
            +
                def initialize(config = ForemanApi.client_config, options = { })
         | 
| 11 | 
            +
                  @client = RestClient::Resource.new config[:base_url],
         | 
| 12 12 | 
             
                                                     :user     => config[:username],
         | 
| 13 13 | 
             
                                                     :password => config[:password],
         | 
| 14 14 | 
             
                                                     :oauth    => config[:oauth],
         | 
| 15 15 | 
             
                                                     :headers  => { :content_type => 'application/json',
         | 
| 16 | 
            -
                                                                    :accept       => 'application/json' } | 
| 16 | 
            +
                                                                    :accept       => 'application/json' }
         | 
| 17 17 | 
             
                end
         | 
| 18 18 |  | 
| 19 | 
            -
                def call(method, path,  | 
| 20 | 
            -
                   | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
                   | 
| 24 | 
            -
                   | 
| 25 | 
            -
                   | 
| 26 | 
            -
             | 
| 27 | 
            -
                  rescue JSON::ParserError
         | 
| 28 | 
            -
                    ret.body
         | 
| 29 | 
            -
                  end
         | 
| 30 | 
            -
                  return data, ret
         | 
| 19 | 
            +
                def call(method, path, options = { })
         | 
| 20 | 
            +
                  payload, headers, params = options.values_at :payload, :headers, :params
         | 
| 21 | 
            +
                  headers[:params] = params if params
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                  args = [method]
         | 
| 24 | 
            +
                  args << payload.to_json if [:post, :put].include?(method)
         | 
| 25 | 
            +
                  args << headers if headers
         | 
| 26 | 
            +
                  process_data client[path].send(*args)
         | 
| 31 27 | 
             
                end
         | 
| 32 28 |  | 
| 33 29 | 
             
                def validate_params!(options, valid_keys)
         | 
| 34 30 | 
             
                  return unless options.is_a?(Hash)
         | 
| 35 | 
            -
                  invalid_keys = options.keys - (valid_keys.is_a?(Hash) ? valid_keys.keys : valid_keys)
         | 
| 31 | 
            +
                  invalid_keys = options.keys.map(&:to_s) - (valid_keys.is_a?(Hash) ? valid_keys.keys : valid_keys)
         | 
| 36 32 | 
             
                  raise ArgumentError, "Invalid keys: #{invalid_keys.join(", ")}" unless invalid_keys.empty?
         | 
| 37 33 |  | 
| 38 34 | 
             
                  if valid_keys.is_a? Hash
         | 
| @@ -44,5 +40,16 @@ module ForemanApi | |
| 44 40 | 
             
                  end
         | 
| 45 41 | 
             
                end
         | 
| 46 42 |  | 
| 43 | 
            +
                protected
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                def process_data(response)
         | 
| 46 | 
            +
                  data = begin
         | 
| 47 | 
            +
                    JSON.parse(response.body)
         | 
| 48 | 
            +
                  rescue JSON::ParserError
         | 
| 49 | 
            +
                    response.body
         | 
| 50 | 
            +
                  end
         | 
| 51 | 
            +
                  return data, response
         | 
| 52 | 
            +
                end
         | 
| 53 | 
            +
             | 
| 47 54 | 
             
              end
         | 
| 48 55 | 
             
            end
         | 
| @@ -2,26 +2,26 @@ module ForemanApi | |
| 2 2 | 
             
              module Resources
         | 
| 3 3 | 
             
                class Architecture < ForemanApi::Base
         | 
| 4 4 |  | 
| 5 | 
            -
                  def index
         | 
| 6 | 
            -
                    call(:get, "/api/architectures")
         | 
| 5 | 
            +
                  def index(headers = {})
         | 
| 6 | 
            +
                    call(:get, "/api/architectures", :headers => headers)
         | 
| 7 7 | 
             
                  end
         | 
| 8 8 |  | 
| 9 | 
            -
                  def show(id)
         | 
| 10 | 
            -
                    call(:get, "/api/architectures/#{id}")
         | 
| 9 | 
            +
                  def show(id, headers = {})
         | 
| 10 | 
            +
                    call(:get, "/api/architectures/#{id}", :headers => headers)
         | 
| 11 11 | 
             
                  end
         | 
| 12 12 |  | 
| 13 | 
            -
                  def create(params = {})
         | 
| 13 | 
            +
                  def create(params = {}, headers = {})
         | 
| 14 14 | 
             
                    validate_params!(params, {"architecture"=>["name"]})
         | 
| 15 | 
            -
                    call(:post, "/api/architectures", params)
         | 
| 15 | 
            +
                    call(:post, "/api/architectures", :payload => params, :headers => headers)
         | 
| 16 16 | 
             
                  end
         | 
| 17 17 |  | 
| 18 | 
            -
                  def update(id, params = {})
         | 
| 18 | 
            +
                  def update(id, params = {}, headers = {})
         | 
| 19 19 | 
             
                    validate_params!(params, {"architecture"=>["name"]})
         | 
| 20 | 
            -
                    call(:put, "/api/architectures/#{id}", params)
         | 
| 20 | 
            +
                    call(:put, "/api/architectures/#{id}", :payload => params, :headers => headers)
         | 
| 21 21 | 
             
                  end
         | 
| 22 22 |  | 
| 23 | 
            -
                  def destroy(id)
         | 
| 24 | 
            -
                    call(:delete, "/api/architectures/#{id}")
         | 
| 23 | 
            +
                  def destroy(id, headers = {})
         | 
| 24 | 
            +
                    call(:delete, "/api/architectures/#{id}", :headers => headers)
         | 
| 25 25 | 
             
                  end
         | 
| 26 26 |  | 
| 27 27 | 
             
                end
         | 
| @@ -2,26 +2,26 @@ module ForemanApi | |
| 2 2 | 
             
              module Resources
         | 
| 3 3 | 
             
                class Bookmark < ForemanApi::Base
         | 
| 4 4 |  | 
| 5 | 
            -
                  def index
         | 
| 6 | 
            -
                    call(:get, "/api/bookmarks")
         | 
| 5 | 
            +
                  def index(headers = {})
         | 
| 6 | 
            +
                    call(:get, "/api/bookmarks", :headers => headers)
         | 
| 7 7 | 
             
                  end
         | 
| 8 8 |  | 
| 9 | 
            -
                  def show(id)
         | 
| 10 | 
            -
                    call(:get, "/api/bookmarks/#{id}")
         | 
| 9 | 
            +
                  def show(id, headers = {})
         | 
| 10 | 
            +
                    call(:get, "/api/bookmarks/#{id}", :headers => headers)
         | 
| 11 11 | 
             
                  end
         | 
| 12 12 |  | 
| 13 | 
            -
                  def create(params = {})
         | 
| 13 | 
            +
                  def create(params = {}, headers = {})
         | 
| 14 14 | 
             
                    validate_params!(params, {"bookmark"=>["name", "controller", "query"]})
         | 
| 15 | 
            -
                    call(:post, "/api/bookmarks", params)
         | 
| 15 | 
            +
                    call(:post, "/api/bookmarks", :payload => params, :headers => headers)
         | 
| 16 16 | 
             
                  end
         | 
| 17 17 |  | 
| 18 | 
            -
                  def update(id, params = {})
         | 
| 18 | 
            +
                  def update(id, params = {}, headers = {})
         | 
| 19 19 | 
             
                    validate_params!(params, {"bookmark"=>["name", "controller", "query"]})
         | 
| 20 | 
            -
                    call(:put, "/api/bookmarks/#{id}", params)
         | 
| 20 | 
            +
                    call(:put, "/api/bookmarks/#{id}", :payload => params, :headers => headers)
         | 
| 21 21 | 
             
                  end
         | 
| 22 22 |  | 
| 23 | 
            -
                  def destroy(id)
         | 
| 24 | 
            -
                    call(:delete, "/api/bookmarks/#{id}")
         | 
| 23 | 
            +
                  def destroy(id, headers = {})
         | 
| 24 | 
            +
                    call(:delete, "/api/bookmarks/#{id}", :headers => headers)
         | 
| 25 25 | 
             
                  end
         | 
| 26 26 |  | 
| 27 27 | 
             
                end
         | 
| @@ -2,12 +2,12 @@ module ForemanApi | |
| 2 2 | 
             
              module Resources
         | 
| 3 3 | 
             
                class Home < ForemanApi::Base
         | 
| 4 4 |  | 
| 5 | 
            -
                  def index
         | 
| 6 | 
            -
                    call(:get, "/api")
         | 
| 5 | 
            +
                  def index(headers = {})
         | 
| 6 | 
            +
                    call(:get, "/api", :headers => headers)
         | 
| 7 7 | 
             
                  end
         | 
| 8 8 |  | 
| 9 | 
            -
                  def status
         | 
| 10 | 
            -
                    call(:get, "/api/status")
         | 
| 9 | 
            +
                  def status(headers = {})
         | 
| 10 | 
            +
                    call(:get, "/api/status", :headers => headers)
         | 
| 11 11 | 
             
                  end
         | 
| 12 12 |  | 
| 13 13 | 
             
                end
         | 
| @@ -2,31 +2,31 @@ module ForemanApi | |
| 2 2 | 
             
              module Resources
         | 
| 3 3 | 
             
                class OperatingSystem < ForemanApi::Base
         | 
| 4 4 |  | 
| 5 | 
            -
                  def index
         | 
| 6 | 
            -
                    call(:get, "/api/operatingsystems")
         | 
| 5 | 
            +
                  def index(headers = {})
         | 
| 6 | 
            +
                    call(:get, "/api/operatingsystems", :headers => headers)
         | 
| 7 7 | 
             
                  end
         | 
| 8 8 |  | 
| 9 | 
            -
                  def show(id)
         | 
| 10 | 
            -
                    call(:get, "/api/operatingsystems/#{id}")
         | 
| 9 | 
            +
                  def show(id, headers = {})
         | 
| 10 | 
            +
                    call(:get, "/api/operatingsystems/#{id}", :headers => headers)
         | 
| 11 11 | 
             
                  end
         | 
| 12 12 |  | 
| 13 | 
            -
                  def create(params = {})
         | 
| 13 | 
            +
                  def create(params = {}, headers = {})
         | 
| 14 14 | 
             
                    validate_params!(params, {"operatingsystem"=>["name", "major", "minor"]})
         | 
| 15 | 
            -
                    call(:post, "/api/operatingsystems", params)
         | 
| 15 | 
            +
                    call(:post, "/api/operatingsystems", :payload => params, :headers => headers)
         | 
| 16 16 | 
             
                  end
         | 
| 17 17 |  | 
| 18 | 
            -
                  def update(id, params = {})
         | 
| 18 | 
            +
                  def update(id, params = {}, headers = {})
         | 
| 19 19 | 
             
                    validate_params!(params, {"operatingsystem"=>["name", "major", "minor"]})
         | 
| 20 | 
            -
                    call(:put, "/api/operatingsystems/#{id}", params)
         | 
| 20 | 
            +
                    call(:put, "/api/operatingsystems/#{id}", :payload => params, :headers => headers)
         | 
| 21 21 | 
             
                  end
         | 
| 22 22 |  | 
| 23 | 
            -
                  def destroy(id)
         | 
| 24 | 
            -
                    call(:delete, "/api/operatingsystems/#{id}")
         | 
| 23 | 
            +
                  def destroy(id, headers = {})
         | 
| 24 | 
            +
                    call(:delete, "/api/operatingsystems/#{id}", :headers => headers)
         | 
| 25 25 | 
             
                  end
         | 
| 26 26 |  | 
| 27 | 
            -
                  def bootfiles(id, params = {})
         | 
| 27 | 
            +
                  def bootfiles(id, params = {}, headers = {})
         | 
| 28 28 | 
             
                    validate_params!(params, ["medium", "architecture"])
         | 
| 29 | 
            -
                    call(:get, "/api/operatingsystems/#{id}/bootfiles", :params => params)
         | 
| 29 | 
            +
                    call(:get, "/api/operatingsystems/#{id}/bootfiles", :params => params, :headers => headers)
         | 
| 30 30 | 
             
                  end
         | 
| 31 31 |  | 
| 32 32 | 
             
                end
         | 
| @@ -2,26 +2,26 @@ module ForemanApi | |
| 2 2 | 
             
              module Resources
         | 
| 3 3 | 
             
                class User < ForemanApi::Base
         | 
| 4 4 |  | 
| 5 | 
            -
                  def index
         | 
| 6 | 
            -
                    call(:get, "/api/users")
         | 
| 5 | 
            +
                  def index(headers = {})
         | 
| 6 | 
            +
                    call(:get, "/api/users", :headers => headers)
         | 
| 7 7 | 
             
                  end
         | 
| 8 8 |  | 
| 9 | 
            -
                  def show(id)
         | 
| 10 | 
            -
                    call(:get, "/api/users/#{id}")
         | 
| 9 | 
            +
                  def show(id, headers = {})
         | 
| 10 | 
            +
                    call(:get, "/api/users/#{id}", :headers => headers)
         | 
| 11 11 | 
             
                  end
         | 
| 12 12 |  | 
| 13 | 
            -
                  def create(params = {})
         | 
| 14 | 
            -
                    validate_params!(params, {"user"=>["login", "firstname", "lastname", "mail", "admin"]})
         | 
| 15 | 
            -
                    call(:post, "/api/users", params)
         | 
| 13 | 
            +
                  def create(params = {}, headers = {})
         | 
| 14 | 
            +
                    validate_params!(params, {"user"=>["login", "firstname", "lastname", "mail", "admin", "password", "auth_source_id"]})
         | 
| 15 | 
            +
                    call(:post, "/api/users", :payload => params, :headers => headers)
         | 
| 16 16 | 
             
                  end
         | 
| 17 17 |  | 
| 18 | 
            -
                  def update(id, params = {})
         | 
| 19 | 
            -
                    validate_params!(params, {"user"=>["login", "firstname", "lastname", "mail", "admin"]})
         | 
| 20 | 
            -
                    call(:put, "/api/users/#{id}", params)
         | 
| 18 | 
            +
                  def update(id, params = {}, headers = {})
         | 
| 19 | 
            +
                    validate_params!(params, {"user"=>["login", "firstname", "lastname", "mail", "admin", "password"]})
         | 
| 20 | 
            +
                    call(:put, "/api/users/#{id}", :payload => params, :headers => headers)
         | 
| 21 21 | 
             
                  end
         | 
| 22 22 |  | 
| 23 | 
            -
                  def destroy(id)
         | 
| 24 | 
            -
                    call(:delete, "/api/users/#{id}")
         | 
| 23 | 
            +
                  def destroy(id, headers = {})
         | 
| 24 | 
            +
                    call(:delete, "/api/users/#{id}", :headers => headers)
         | 
| 25 25 | 
             
                  end
         | 
| 26 26 |  | 
| 27 27 | 
             
                end
         | 
    
        data/lib/foreman_api/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: foreman_api
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              hash:  | 
| 4 | 
            +
              hash: 27
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
              segments: 
         | 
| 7 7 | 
             
              - 0
         | 
| 8 8 | 
             
              - 0
         | 
| 9 | 
            -
              -  | 
| 10 | 
            -
              version: 0.0. | 
| 9 | 
            +
              - 2
         | 
| 10 | 
            +
              version: 0.0.2
         | 
| 11 11 | 
             
            platform: ruby
         | 
| 12 12 | 
             
            authors: 
         | 
| 13 13 | 
             
            - "Martin Ba\xC4\x8Dovsk\xC3\xBD"
         | 
| @@ -15,7 +15,7 @@ autorequire: | |
| 15 15 | 
             
            bindir: bin
         | 
| 16 16 | 
             
            cert_chain: []
         | 
| 17 17 |  | 
| 18 | 
            -
            date: 2012-08- | 
| 18 | 
            +
            date: 2012-08-14 00:00:00 Z
         | 
| 19 19 | 
             
            dependencies: 
         | 
| 20 20 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| 21 21 | 
             
              name: json
         |