yao 0.4.1 → 0.4.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.
- checksums.yaml +5 -5
- data/lib/yao/resources/restfully_accessible.rb +15 -11
- data/lib/yao/version.rb +1 -1
- metadata +3 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
             | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 2 | 
            +
            SHA256:
         | 
| 3 | 
            +
              metadata.gz: e1789686116892938a28b82e269c12b5f5ef72c49c1e9f5135f24e98351d208a
         | 
| 4 | 
            +
              data.tar.gz: c2c470d8474707f81999cc6fa7f1a470315a2dd7d7ccc525c321ce5c5457d63b
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 2cd63d1b7243beb3593f63ff2f9fd5869a61bf77887c9e8217c7a90cb460968221afa3cf639916c940cce4ec68b1a9372cb006b60e7bc979dda010e4ee49db92
         | 
| 7 | 
            +
              data.tar.gz: aee7a7cbf7e888bd0cd2c6cb6e0a2a78e206526c3140fd914426b6a794077e537238845fea29ef7eb0324ced1eee26e9ddce9b7dd35d0a9593a5c74d063e6c7d
         | 
| @@ -20,15 +20,15 @@ module Yao::Resources | |
| 20 20 | 
             
                end
         | 
| 21 21 | 
             
                attr_reader :service
         | 
| 22 22 |  | 
| 23 | 
            +
                def api_version
         | 
| 24 | 
            +
                  @api_version || ''
         | 
| 25 | 
            +
                end
         | 
| 26 | 
            +
             | 
| 23 27 | 
             
                def api_version=(v)
         | 
| 24 28 | 
             
                  raise("Set api_version after service is declared") unless service
         | 
| 25 29 | 
             
                  @api_version = v
         | 
| 26 | 
            -
                  if cli = client
         | 
| 27 | 
            -
                    cli.url_prefix.path += "/#{api_version}" unless cli.url_prefix.to_s.include?("/#{api_version}")
         | 
| 28 | 
            -
                  end
         | 
| 29 30 | 
             
                  api_version
         | 
| 30 31 | 
             
                end
         | 
| 31 | 
            -
                attr_reader :api_version
         | 
| 32 32 |  | 
| 33 33 | 
             
                def admin=(bool)
         | 
| 34 34 | 
             
                  @admin = bool
         | 
| @@ -76,7 +76,7 @@ module Yao::Resources | |
| 76 76 |  | 
| 77 77 | 
             
                # restful methods
         | 
| 78 78 | 
             
                def list(query={})
         | 
| 79 | 
            -
                  json = GET(resources_path, query).body
         | 
| 79 | 
            +
                  json = GET(create_url([api_version, resources_path]), query).body
         | 
| 80 80 | 
             
                  if @return_single_on_querying && !query.empty?
         | 
| 81 81 | 
             
                    return_resource(resource_from_json(json))
         | 
| 82 82 | 
             
                  else
         | 
| @@ -88,7 +88,7 @@ module Yao::Resources | |
| 88 88 | 
             
                  res = if id_or_name_or_permalink.start_with?("http://", "https://")
         | 
| 89 89 | 
             
                          GET(id_or_name_or_permalink, query)
         | 
| 90 90 | 
             
                        elsif uuid?(id_or_name_or_permalink)
         | 
| 91 | 
            -
                          GET([resources_path, id_or_name_or_permalink] | 
| 91 | 
            +
                          GET(create_url([api_version, resources_path, id_or_name_or_permalink]), query)
         | 
| 92 92 | 
             
                        else
         | 
| 93 93 | 
             
                          get_by_name(id_or_name_or_permalink, query)
         | 
| 94 94 | 
             
                        end
         | 
| @@ -105,7 +105,7 @@ module Yao::Resources | |
| 105 105 | 
             
                  params = {
         | 
| 106 106 | 
             
                    resource_name_in_json => resource_params
         | 
| 107 107 | 
             
                  }
         | 
| 108 | 
            -
                  res = POST(resources_path) do |req|
         | 
| 108 | 
            +
                  res = POST(create_url([api_version, resources_path])) do |req|
         | 
| 109 109 | 
             
                    req.body = params.to_json
         | 
| 110 110 | 
             
                    req.headers['Content-Type'] = 'application/json'
         | 
| 111 111 | 
             
                  end
         | 
| @@ -116,7 +116,7 @@ module Yao::Resources | |
| 116 116 | 
             
                  params = {
         | 
| 117 117 | 
             
                    resource_name_in_json => resource_params
         | 
| 118 118 | 
             
                  }
         | 
| 119 | 
            -
                  res = PUT([resources_path, id] | 
| 119 | 
            +
                  res = PUT(create_url([api_version, resources_path, id])) do |req|
         | 
| 120 120 | 
             
                    req.body = params.to_json
         | 
| 121 121 | 
             
                    req.headers['Content-Type'] = 'application/json'
         | 
| 122 122 | 
             
                  end
         | 
| @@ -124,11 +124,15 @@ module Yao::Resources | |
| 124 124 | 
             
                end
         | 
| 125 125 |  | 
| 126 126 | 
             
                def destroy(id)
         | 
| 127 | 
            -
                  res = DELETE([resources_path, id] | 
| 127 | 
            +
                  res = DELETE(create_url([api_version, resources_path, id]))
         | 
| 128 128 | 
             
                  res.body
         | 
| 129 129 | 
             
                end
         | 
| 130 130 |  | 
| 131 131 | 
             
                private
         | 
| 132 | 
            +
                def create_url(paths)
         | 
| 133 | 
            +
                  paths.select{|s| s != ''}.join('/')
         | 
| 134 | 
            +
                end
         | 
| 135 | 
            +
             | 
| 132 136 | 
             
                def resource_name_in_json
         | 
| 133 137 | 
             
                  @_resource_name_in_json ||= resource_name.sub(/^os-/, "").tr("-", "_")
         | 
| 134 138 | 
             
                end
         | 
| @@ -157,13 +161,13 @@ module Yao::Resources | |
| 157 161 | 
             
                def get_by_name(name, query={})
         | 
| 158 162 | 
             
                  # At first, search by ID. If nothing is found, search by name.
         | 
| 159 163 | 
             
                  begin
         | 
| 160 | 
            -
                    GET([resources_path, name] | 
| 164 | 
            +
                    GET(create_url([api_version, resources_path, name]), query)
         | 
| 161 165 | 
             
                  rescue Yao::ItemNotFound
         | 
| 162 166 | 
             
                    item = find_by_name(name)
         | 
| 163 167 | 
             
                    if item.size > 1
         | 
| 164 168 | 
             
                      raise Yao::TooManyItemFonud.new("More than one resource exists with the name '#{name}'")
         | 
| 165 169 | 
             
                    end
         | 
| 166 | 
            -
                    GET([resources_path, item.first.id] | 
| 170 | 
            +
                    GET(create_url([api_version, resources_path, item.first.id]), query)
         | 
| 167 171 | 
             
                  end
         | 
| 168 172 | 
             
                end
         | 
| 169 173 | 
             
              end
         | 
    
        data/lib/yao/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: yao
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.4. | 
| 4 | 
            +
              version: 0.4.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Uchio, KONDO
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2018- | 
| 11 | 
            +
            date: 2018-08-01 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: json
         | 
| @@ -263,7 +263,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 263 263 | 
             
                  version: '0'
         | 
| 264 264 | 
             
            requirements: []
         | 
| 265 265 | 
             
            rubyforge_project: 
         | 
| 266 | 
            -
            rubygems_version: 2.6 | 
| 266 | 
            +
            rubygems_version: 2.7.6
         | 
| 267 267 | 
             
            signing_key: 
         | 
| 268 268 | 
             
            specification_version: 4
         | 
| 269 269 | 
             
            summary: Yet Another OpenStack API Wrapper that rocks!!
         |