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 +4 -4
- data/.travis.yml +2 -3
- data/README.md +7 -15
- data/kaname.gemspec +1 -1
- data/lib/kaname/adapter/read_and_write.rb +1 -1
- data/lib/kaname/adapter/read_only.rb +10 -2
- data/lib/kaname/cli.rb +2 -1
- data/lib/kaname/config.rb +13 -38
- data/lib/kaname/version.rb +1 -1
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 12a0e64803312f26a75142e7149aaa0842da976002a4e5283d228954efb92ce0
|
4
|
+
data.tar.gz: bf43563c58a86f6e0d9eeed5dc03c2ef31230f2dba8eed3e9f6c42d2f58e6fd8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f5babea09ab0917e1207e7ec50f28c59700997f8a0d102c87d71e97feb56b89676826819037a4a3e62a2fb7d01eeadab900adc9e34a3441d95effc553be20453
|
7
|
+
data.tar.gz: fa1b59301c571ed3f57479fa406e33db14e48102ed9631ffc01e97db43b6b2a2023627471d7543e45f88d22dbfde12797866e93d4a8db4602fcf0adf8b6b302c
|
data/.travis.yml
CHANGED
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
|
38
|
+
You will need to set some ENV.
|
39
39
|
|
40
40
|
```sh
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
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.
|
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
|
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 ||=
|
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
|
51
|
-
tenant_name
|
52
|
-
username
|
53
|
-
password
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
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
|
data/lib/kaname/version.rb
CHANGED
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.
|
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:
|
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.
|
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.
|
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.
|
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: []
|