yao 0.11.3 → 0.12.0
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 +4 -4
- data/Gemfile +1 -1
- data/Rakefile +1 -0
- data/lib/yao/auth.rb +7 -0
- data/lib/yao/client.rb +6 -1
- data/lib/yao/resources.rb +1 -0
- data/lib/yao/resources/server_group.rb +9 -0
- data/lib/yao/version.rb +1 -1
- data/test/yao/resources/test_server_group.rb +23 -0
- data/test/yao/test_authv3.rb +8 -4
- metadata +5 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: b2ea8c98f6fdefadcfeca2782ed5dde20a91423afc3cc44b925a64fdee3b552a
         | 
| 4 | 
            +
              data.tar.gz: a0993ca6bd8ddb9a222d632e98c77031682b492756be20c164632410da64bed4
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: aa2d0252174bc0e69a7697d6fb8e90aba053105fa416219bb5c7b0800a861fcffee6d1e48d0fdc3d84a38f20cb4790d8030dbafbae65f1548c221ae79dbd7e52
         | 
| 7 | 
            +
              data.tar.gz: ccef8bca36eda0c7191017929f466a9b424ca8ac697e2e0f104519394ccdc022bd7159391ad1cfebbf9590635ca4b74c5a5705823b2fc54a27027877e252bcb5
         | 
    
        data/Gemfile
    CHANGED
    
    
    
        data/Rakefile
    CHANGED
    
    
    
        data/lib/yao/auth.rb
    CHANGED
    
    | @@ -19,6 +19,7 @@ module Yao | |
| 19 19 | 
             
                  end
         | 
| 20 20 |  | 
| 21 21 | 
             
                  def build_authv3_info(tenant_name, username, password,
         | 
| 22 | 
            +
                                        default_domain,
         | 
| 22 23 | 
             
                                        user_domain_id, user_domain_name,
         | 
| 23 24 | 
             
                                        project_domain_id, project_domain_name)
         | 
| 24 25 | 
             
                      identity = {
         | 
| @@ -31,6 +32,8 @@ module Yao | |
| 31 32 | 
             
                        identity[:password][:user][:domain] = { id: user_domain_id }
         | 
| 32 33 | 
             
                      elsif user_domain_name
         | 
| 33 34 | 
             
                        identity[:password][:user][:domain] = { name: user_domain_name }
         | 
| 35 | 
            +
                      elsif default_domain
         | 
| 36 | 
            +
                        identity[:password][:user][:domain] = { id: default_domain }
         | 
| 34 37 | 
             
                      end
         | 
| 35 38 |  | 
| 36 39 | 
             
                      scope = {
         | 
| @@ -40,6 +43,8 @@ module Yao | |
| 40 43 | 
             
                        scope[:project][:domain] = { id: project_domain_id }
         | 
| 41 44 | 
             
                      elsif project_domain_name
         | 
| 42 45 | 
             
                        scope[:project][:domain] = { name: project_domain_name }
         | 
| 46 | 
            +
                      elsif default_domain
         | 
| 47 | 
            +
                        scope[:project][:domain] = { id: default_domain }
         | 
| 43 48 | 
             
                      end
         | 
| 44 49 |  | 
| 45 50 | 
             
                      {
         | 
| @@ -68,6 +73,7 @@ module Yao | |
| 68 73 | 
             
                      username: Yao.config.username,
         | 
| 69 74 | 
             
                      password: Yao.config.password,
         | 
| 70 75 | 
             
                      identity_api_version: Yao.config.identity_api_version,
         | 
| 76 | 
            +
                      default_domain: Yao.config.default_domain,
         | 
| 71 77 | 
             
                      user_domain_id: Yao.config.user_domain_id,
         | 
| 72 78 | 
             
                      user_domain_name: Yao.config.user_domain_name,
         | 
| 73 79 | 
             
                      project_domain_id: Yao.config.project_domain_id,
         | 
| @@ -75,6 +81,7 @@ module Yao | |
| 75 81 | 
             
                  )
         | 
| 76 82 | 
             
                    if identity_api_version.to_i == 3
         | 
| 77 83 | 
             
                      auth_info = build_authv3_info(tenant_name, username, password,
         | 
| 84 | 
            +
                                                    default_domain,
         | 
| 78 85 | 
             
                                                    user_domain_id, user_domain_name,
         | 
| 79 86 | 
             
                                                    project_domain_id, project_domain_name)
         | 
| 80 87 | 
             
                      issue = TokenV3.issue(Yao.default_client.default, auth_info)
         | 
    
        data/lib/yao/client.rb
    CHANGED
    
    | @@ -107,7 +107,10 @@ module Yao | |
| 107 107 | 
             
                  # @param [String]
         | 
| 108 108 | 
             
                  def reset_client(new_endpoint=nil)
         | 
| 109 109 | 
             
                    set = ClientSet.new
         | 
| 110 | 
            -
                     | 
| 110 | 
            +
                    endpoint = {
         | 
| 111 | 
            +
                      "default" => {public_url: new_endpoint || Yao.config.endpoint}
         | 
| 112 | 
            +
                    }
         | 
| 113 | 
            +
                    set.register_endpoints(endpoint)
         | 
| 111 114 | 
             
                    self.default_client = set
         | 
| 112 115 | 
             
                  end
         | 
| 113 116 |  | 
| @@ -145,6 +148,8 @@ module Yao | |
| 145 148 | 
             
                Yao::Client.default_client
         | 
| 146 149 | 
             
              end
         | 
| 147 150 |  | 
| 151 | 
            +
              Yao.config.param :default_domain, 'default'
         | 
| 152 | 
            +
             | 
| 148 153 | 
             
              Yao.config.param :noop_on_write, false
         | 
| 149 154 | 
             
              Yao.config.param :raise_on_write, false
         | 
| 150 155 |  | 
    
        data/lib/yao/resources.rb
    CHANGED
    
    | @@ -6,6 +6,7 @@ module Yao | |
| 6 6 | 
             
                require "yao/resources/network_associationable"
         | 
| 7 7 |  | 
| 8 8 | 
             
                autoload :Server,                    "yao/resources/server"
         | 
| 9 | 
            +
                autoload :ServerGroup,               "yao/resources/server_group"
         | 
| 9 10 | 
             
                autoload :Flavor,                    "yao/resources/flavor"
         | 
| 10 11 | 
             
                autoload :Image,                     "yao/resources/image"
         | 
| 11 12 | 
             
                autoload :SecurityGroup,             "yao/resources/security_group"
         | 
| @@ -0,0 +1,9 @@ | |
| 1 | 
            +
            module Yao::Resources
         | 
| 2 | 
            +
              class ServerGroup < Base
         | 
| 3 | 
            +
                friendly_attributes :name, :poicies, :members, :metadata, :project_id, :user_id, :policy, :rules
         | 
| 4 | 
            +
             | 
| 5 | 
            +
                self.service        = "compute"
         | 
| 6 | 
            +
                self.resource_name  = "server_group"
         | 
| 7 | 
            +
                self.resources_name = "os-server-groups"
         | 
| 8 | 
            +
              end
         | 
| 9 | 
            +
            end
         | 
    
        data/lib/yao/version.rb
    CHANGED
    
    
| @@ -0,0 +1,23 @@ | |
| 1 | 
            +
            class TestServerGroup < TestYaoResource
         | 
| 2 | 
            +
              def test_server_group
         | 
| 3 | 
            +
                # https://docs.openstack.org/api-ref/compute/?expanded=list-server-groups-detail,show-server-group-details-detail#list-server-groups
         | 
| 4 | 
            +
                params = {
         | 
| 5 | 
            +
                  "id" => "616fb98f-46ca-475e-917e-2563e5a8cd19",
         | 
| 6 | 
            +
                  "name" => "test",
         | 
| 7 | 
            +
                  "policy" => "anti-affinity",
         | 
| 8 | 
            +
                  "rules" => {"max_server_per_host" => 3},
         | 
| 9 | 
            +
                  "members" => [],
         | 
| 10 | 
            +
                  "project_id" => "6f70656e737461636b20342065766572",
         | 
| 11 | 
            +
                  "user_id" => "fake"
         | 
| 12 | 
            +
                }
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                sg = Yao::ServerGroup.new(params)
         | 
| 15 | 
            +
                assert_equal("616fb98f-46ca-475e-917e-2563e5a8cd19", sg.id)
         | 
| 16 | 
            +
                assert_equal("test", sg.name)
         | 
| 17 | 
            +
                assert_equal("anti-affinity", sg.policy)
         | 
| 18 | 
            +
                assert_equal({"max_server_per_host" => 3}, sg.rules)
         | 
| 19 | 
            +
                assert_equal([], sg.members)
         | 
| 20 | 
            +
                assert_equal("6f70656e737461636b20342065766572", sg.project_id)
         | 
| 21 | 
            +
                assert_equal("fake", sg.user_id)
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
            end
         | 
    
        data/test/yao/test_authv3.rb
    CHANGED
    
    | @@ -103,18 +103,22 @@ class TestAuthV3 < Test::Unit::TestCase | |
| 103 103 | 
             
              end
         | 
| 104 104 |  | 
| 105 105 | 
             
              def test_build_authv3_info
         | 
| 106 | 
            -
                auth_info = Yao::Auth.build_authv3_info("example", "udzura", "XXXXXXXX", " | 
| 106 | 
            +
                auth_info = Yao::Auth.build_authv3_info("example", "udzura", "XXXXXXXX", "test", nil, nil, nil, nil)
         | 
| 107 107 |  | 
| 108 108 | 
             
                user = auth_info[:auth][:identity][:password][:user]
         | 
| 109 109 | 
             
                assert { user[:name] == "udzura" }
         | 
| 110 110 | 
             
                assert { user[:password] == "XXXXXXXX" }
         | 
| 111 | 
            -
                assert { user[:domain][:id] == " | 
| 111 | 
            +
                assert { user[:domain][:id] == "test" }
         | 
| 112 112 |  | 
| 113 113 | 
             
                project = auth_info[:auth][:scope][:project]
         | 
| 114 114 | 
             
                assert { project[:name] == "example" }
         | 
| 115 | 
            -
                assert { project[:domain][:id] == " | 
| 115 | 
            +
                assert { project[:domain][:id] == "test" }
         | 
| 116 116 |  | 
| 117 | 
            -
                auth_info = Yao::Auth.build_authv3_info("example", "udzura", "XXXXXXXX", nil, "default", nil, "default")
         | 
| 117 | 
            +
                auth_info = Yao::Auth.build_authv3_info("example", "udzura", "XXXXXXXX", nil, "default", nil, "default", nil)
         | 
| 118 | 
            +
                assert { auth_info[:auth][:identity][:password][:user][:domain][:id] == "default" }
         | 
| 119 | 
            +
                assert { auth_info[:auth][:scope][:project][:domain][:id] == "default" }
         | 
| 120 | 
            +
             | 
| 121 | 
            +
                auth_info = Yao::Auth.build_authv3_info("example", "udzura", "XXXXXXXX", nil, nil, "default", nil, "default")
         | 
| 118 122 | 
             
                assert { auth_info[:auth][:identity][:password][:user][:domain][:name] == "default" }
         | 
| 119 123 | 
             
                assert { auth_info[:auth][:scope][:project][:domain][:name] == "default" }
         | 
| 120 124 | 
             
              end
         | 
    
        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 | 
            +
              version: 0.12.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Uchio, KONDO
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2020-02- | 
| 11 | 
            +
            date: 2020-02-28 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: json
         | 
| @@ -116,6 +116,7 @@ files: | |
| 116 116 | 
             
            - lib/yao/resources/security_group.rb
         | 
| 117 117 | 
             
            - lib/yao/resources/security_group_rule.rb
         | 
| 118 118 | 
             
            - lib/yao/resources/server.rb
         | 
| 119 | 
            +
            - lib/yao/resources/server_group.rb
         | 
| 119 120 | 
             
            - lib/yao/resources/subnet.rb
         | 
| 120 121 | 
             
            - lib/yao/resources/tenant.rb
         | 
| 121 122 | 
             
            - lib/yao/resources/tenant_associationable.rb
         | 
| @@ -163,6 +164,7 @@ files: | |
| 163 164 | 
             
            - test/yao/resources/test_security_group.rb
         | 
| 164 165 | 
             
            - test/yao/resources/test_security_group_rule.rb
         | 
| 165 166 | 
             
            - test/yao/resources/test_server.rb
         | 
| 167 | 
            +
            - test/yao/resources/test_server_group.rb
         | 
| 166 168 | 
             
            - test/yao/resources/test_subnet.rb
         | 
| 167 169 | 
             
            - test/yao/resources/test_user.rb
         | 
| 168 170 | 
             
            - test/yao/resources/test_volume.rb
         | 
| @@ -239,6 +241,7 @@ test_files: | |
| 239 241 | 
             
            - test/yao/resources/test_security_group.rb
         | 
| 240 242 | 
             
            - test/yao/resources/test_security_group_rule.rb
         | 
| 241 243 | 
             
            - test/yao/resources/test_server.rb
         | 
| 244 | 
            +
            - test/yao/resources/test_server_group.rb
         | 
| 242 245 | 
             
            - test/yao/resources/test_subnet.rb
         | 
| 243 246 | 
             
            - test/yao/resources/test_user.rb
         | 
| 244 247 | 
             
            - test/yao/resources/test_volume.rb
         |