kaname 0.7.1 → 0.9.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 93ce158126b82364f8793a40de13258e28b776ad7ee2a8bd35ac6b5f32f4b526
4
- data.tar.gz: d2641332e6d266521f3faad66b6482ad057d04688c7fce8cbb9e463f7bd9de20
3
+ metadata.gz: 12a0e64803312f26a75142e7149aaa0842da976002a4e5283d228954efb92ce0
4
+ data.tar.gz: bf43563c58a86f6e0d9eeed5dc03c2ef31230f2dba8eed3e9f6c42d2f58e6fd8
5
5
  SHA512:
6
- metadata.gz: e891cc790d96086bb83065651ec61d3763ed13c1156991f5f6c0631c73b8ccdf4c6e1b4f2da2faec8f853aae6c3aa686fec3ee228f52c45f9709f90ac0ccecfd
7
- data.tar.gz: f72fd7ce52e9d195014f2eb654659aa50279404a45371d570e21c0e673b23ac2f10b1409f987a9effe3edf51c6c98d5bdafe1c85062278286f50eadc86d972ae
6
+ metadata.gz: f5babea09ab0917e1207e7ec50f28c59700997f8a0d102c87d71e97feb56b89676826819037a4a3e62a2fb7d01eeadab900adc9e34a3441d95effc553be20453
7
+ data.tar.gz: fa1b59301c571ed3f57479fa406e33db14e48102ed9631ffc01e97db43b6b2a2023627471d7543e45f88d22dbfde12797866e93d4a8db4602fcf0adf8b6b302c
data/.travis.yml CHANGED
@@ -1,5 +1,4 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.1.10
4
- - 2.2.5
5
- - 2.3.1
3
+ - 2.6.6
4
+ - 2.7.2
data/README.md CHANGED
@@ -26,7 +26,7 @@ hsbt:
26
26
  production: "member"
27
27
  ```
28
28
 
29
- You can also define `all_tenants` for config all tenants' authority.
29
+ You can also define `all_tenants` for config all tenants' authority.
30
30
  If both tenants and all_tenants are setting, tenants is preferred.
31
31
 
32
32
  ```yaml
@@ -35,22 +35,14 @@ suzupy:
35
35
  all_tenants: member
36
36
  ```
37
37
 
38
- You need to put a configuration file to home directory.
38
+ You will need to set some ENV.
39
39
 
40
40
  ```sh
41
- % cat ~/.kaname
42
- auth_url: "http://your-openstack-auth-endpoint/v2.0"
43
- username: "admin"
44
- tenant: "admin"
45
- password: "admin-no-password"
46
- ```
47
-
48
- also, you can set some options.
49
-
50
- ```
51
- client_cert: "/path/to/cert.pem"
52
- client_key: "/path/to/key.pem"
53
- region_name: "YourRegion"
41
+ $ export OS_AUTH_URL="http://your-openstack-auth-endpoint/v3"
42
+ $ export OS_USERNAME="admin"
43
+ $ export OS_PASSWORD="admin"
44
+ $ export OS_PROJECT_NAME=admin
45
+ $ export OS_TENANT_NAME=admin
54
46
  ```
55
47
 
56
48
  run following command.
data/kaname.gemspec CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
21
 
22
- spec.add_dependency "yao", ">= 0.3.3"
22
+ spec.add_dependency "yao", ">= 0.13.4"
23
23
  spec.add_dependency "diffy"
24
24
  spec.add_dependency "hashdiff", ">= 1.0.0"
25
25
  spec.add_dependency "thor"
@@ -28,7 +28,7 @@ module Kaname
28
28
  end
29
29
 
30
30
  if res.status == 200
31
- puts "Your password is updated. Please update your ~/.kaname configuration too."
31
+ puts "Your password is updated. Please update your $OS_PASSWORD configuration too."
32
32
  else
33
33
  raise "password updating is failed"
34
34
  end
@@ -10,12 +10,16 @@ module Kaname
10
10
  end
11
11
 
12
12
  def find_user(name)
13
- user = Yao::User.find_by_name(name)
13
+ user = Yao::User.find_by_name(name).first
14
14
  {"id" => user.id, "name" => user.name}
15
15
  end
16
16
 
17
17
  def list_tenants
18
- @_tenants ||= Yao::Tenant.list
18
+ @_tenants ||= if keystone_v2?
19
+ Yao::Tenant.list
20
+ else
21
+ Yao::Project.list
22
+ end
19
23
  end
20
24
 
21
25
  def list_roles
@@ -62,6 +66,10 @@ module Kaname
62
66
 
63
67
  private
64
68
 
69
+ def keystone_v2?
70
+ Yao.default_client.pool["identity"].url_prefix.to_s.match(/v2\.0/)
71
+ end
72
+
65
73
  def tenant_role_hash(user_id)
66
74
  list_role_assignments.each_with_object(Hash.new) do |t,th|
67
75
  if t.user.id == user_id
data/lib/kaname/cli.rb CHANGED
@@ -20,6 +20,7 @@ module Kaname
20
20
  end
21
21
 
22
22
  option :dryrun, type: :boolean
23
+ option :filename, aliases: :f, type: :string, default: 'keystone.yml'
23
24
  desc 'apply', 'Commands about configuration apply'
24
25
  def apply
25
26
  adapter = if options[:dryrun]
@@ -28,7 +29,7 @@ module Kaname
28
29
  Kaname::Adapter::ReadAndWrite.new
29
30
  end
30
31
 
31
- if Kaname::Resource.yaml
32
+ if Kaname::Resource.yaml(options[:filename])
32
33
  diffs = Hashdiff.diff(adapter.users_hash, Kaname::Resource.yaml)
33
34
  diffs.each do |diff|
34
35
  resource = diff[1].split('.')
data/lib/kaname/config.rb CHANGED
@@ -4,11 +4,11 @@ require 'yaml'
4
4
  module Kaname
5
5
  class Config
6
6
  @@username = String.new
7
+ @@ca_cert = nil
7
8
  @@client_key = nil
8
9
  @@client_cert = nil
9
10
 
10
11
  def self.setup
11
- load_config unless envs_exist?
12
12
  setup_yao
13
13
  end
14
14
 
@@ -18,45 +18,20 @@ module Kaname
18
18
 
19
19
  private
20
20
 
21
- def self.envs_exist?
22
- %w[OS_AUTH_URL OS_TENANT_NAME OS_USERNAME OS_PASSWORD OS_CERT OS_KEY OS_REGION_NAME OS_IDENTITY_API_VERSION].any?{|k|ENV[k]}
23
- end
24
-
25
- def self.load_config
26
- config_file = File.join(Dir.home, '.kaname')
27
- raise '~/.kaname is missing' unless File.exists?(config_file)
28
-
29
- config = YAML.load_file(config_file)
30
-
31
- %w[auth_url tenant username password].each do |conf_item|
32
- raise "Configuration '#{conf_item}' is missing. Check your ~/.kaname" unless config[conf_item]
33
- end
34
-
35
- @@auth_url = config['auth_url']
36
- @@tenant = config['tenant']
37
- @@username = config['username']
38
- @@password = config['password']
39
- @@client_cert = config['client_cert']
40
- @@client_key = config['client_key']
41
- @@region_name = config['region_name']
42
- @@user_domain_name = config['user_domain_name']
43
- @@project_domain_name = config['project_domain_name']
44
- @@identity_api_version = config['identity_api_version']
45
- true
46
- end
47
-
48
21
  def self.setup_yao
49
22
  Yao.configure do
50
- auth_url (ENV['OS_AUTH_URL'] || @@auth_url)
51
- tenant_name (ENV['OS_TENANT_NAME'] || @@tenant)
52
- username (ENV['OS_USERNAME'] || @@username)
53
- password (ENV['OS_PASSWORD'] || @@password)
54
- client_cert (ENV['OS_CERT'] || @@client_cert)
55
- client_key (ENV['OS_KEY'] || @@client_key)
56
- region_name (ENV['OS_REGION_NAME'] || @@region_name)
57
- identity_api_version (ENV['OS_IDENTITY_API_VERSION'] || @@identity_api_version)
58
- user_domain_name (ENV['OS_USER_DOMAIN_NAME'] || @@user_domain_name)
59
- project_domain_name (ENV['OS_PROJECT_DOMAIN_NAME'] || @@project_domain_name)
23
+ auth_url ENV['OS_AUTH_URL']
24
+ tenant_name ENV['OS_TENANT_NAME']
25
+ username ENV['OS_USERNAME']
26
+ password ENV['OS_PASSWORD']
27
+ ca_cert ENV['OS_CACERT']
28
+ client_cert ENV['OS_CERT']
29
+ client_key ENV['OS_KEY']
30
+ region_name ENV['OS_REGION_NAME']
31
+ identity_api_version ENV['OS_IDENTITY_API_VERSION']
32
+ user_domain_name ENV['OS_USER_DOMAIN_NAME']
33
+ project_domain_name ENV['OS_PROJECT_DOMAIN_NAME']
34
+ debug ENV['YAO_DEBUG']
60
35
  end
61
36
  end
62
37
  end
@@ -1,3 +1,3 @@
1
1
  module Kaname
2
- VERSION = "0.7.1"
2
+ VERSION = "0.9.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kaname
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - SHIBATA Hiroshi
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-07-26 00:00:00.000000000 Z
11
+ date: 2021-12-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: yao
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.3.3
19
+ version: 0.13.4
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.3.3
26
+ version: 0.13.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: diffy
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -182,7 +182,7 @@ homepage: https://github.com/yaocloud/kaname
182
182
  licenses:
183
183
  - MIT
184
184
  metadata: {}
185
- post_install_message:
185
+ post_install_message:
186
186
  rdoc_options: []
187
187
  require_paths:
188
188
  - lib
@@ -197,8 +197,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
197
197
  - !ruby/object:Gem::Version
198
198
  version: '0'
199
199
  requirements: []
200
- rubygems_version: 3.0.1
201
- signing_key:
200
+ rubygems_version: 3.2.32
201
+ signing_key:
202
202
  specification_version: 4
203
203
  summary: Identity configuration tool for OpenStack.
204
204
  test_files: []