kaname 0.7.1 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
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: []