kontena-cli 0.16.0.pre4 → 0.16.0.pre5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/kontena/cli/master/token/common.rb +28 -0
- data/lib/kontena/cli/master/token/create_command.rb +41 -0
- data/lib/kontena/cli/master/token/current_command.rb +40 -0
- data/lib/kontena/cli/master/token/list_command.rb +28 -0
- data/lib/kontena/cli/master/token/remove_command.rb +19 -0
- data/lib/kontena/cli/master/token/show_command.rb +24 -0
- data/lib/kontena/cli/master/token_command.rb +18 -0
- data/lib/kontena/cli/master_command.rb +2 -0
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 24c6e241c38b9d4dece50e6d97443dc68d7a4e38
|
4
|
+
data.tar.gz: 9fdd643f7b747b5898d1d40a651f98dba8b216aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 185b33efb5684e45c185af579c6c777a824fdb0a04db46f48dc470f1ba1c57577fa9cbc2a797c853913e07ec9b18708ef92a86ca6f8305c5fc7dc0e61b2611c4
|
7
|
+
data.tar.gz: 2278e96ea747b84bea482dc92b62dbdd799f890067978881084aa2b1cd77a7af4713cbffb27fc3f8545b81d6e3fa1a158fb5255550287ff529c62d08cc647984
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.16.0.
|
1
|
+
0.16.0.pre5
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Kontena::Cli::Master::Token
|
2
|
+
module Common
|
3
|
+
|
4
|
+
def token_data_to_hash(data)
|
5
|
+
output = {
|
6
|
+
id: data["id"],
|
7
|
+
token_type: data["token_type"] || data["grant_type"],
|
8
|
+
scopes: data["scopes"],
|
9
|
+
user_id: data["user"]["id"],
|
10
|
+
user_email: data["user"]["email"],
|
11
|
+
user_name: data["user"]["name"],
|
12
|
+
server_name: data["server"]["name"]
|
13
|
+
}
|
14
|
+
if data["token_type"] == "bearer"
|
15
|
+
output[:access_token_last_four] = data["access_token_last_four"]
|
16
|
+
output[:refresh_token_last_four] = data["refresh_token_last_four"]
|
17
|
+
output[:token_type] = data["token_type"]
|
18
|
+
output[:access_token] = data["access_token"] if data["access_token"]
|
19
|
+
output[:refresh_token] = data["refresh_token"] if data["refresh_token"]
|
20
|
+
output[:expires_in] = data["expires_in"]
|
21
|
+
else
|
22
|
+
output[:code] = data["code"]
|
23
|
+
output[:token_type] = data["grant_type"]
|
24
|
+
end
|
25
|
+
output
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require_relative 'common'
|
2
|
+
|
3
|
+
module Kontena::Cli::Master::Token
|
4
|
+
class CreateCommand < Kontena::Command
|
5
|
+
|
6
|
+
include Kontena::Cli::Common
|
7
|
+
include Common
|
8
|
+
|
9
|
+
requires_current_master
|
10
|
+
requires_current_master_token
|
11
|
+
|
12
|
+
option ['-s', '--scopes'], '[SCOPES]', "Comma separated list of access scopes for the generated token", default: 'user'
|
13
|
+
option ['-e', '--expires-in'], '[SECONDS]', "Access token expiration time. Use 0 for never.", default: '7200'
|
14
|
+
option ['-c', '--code'], :flag, "Generate an authorization code"
|
15
|
+
option ['--id'], :flag, "Only output the token ID"
|
16
|
+
option ['--token'], :flag, "Only output the access_token (or authorization code)"
|
17
|
+
|
18
|
+
def execute
|
19
|
+
params = {
|
20
|
+
response_type: self.code? ? 'code' : 'token',
|
21
|
+
scope: self.scopes,
|
22
|
+
expires_in: self.expires_in
|
23
|
+
}
|
24
|
+
data = token_data_to_hash(client.post("/oauth2/authorize", params))
|
25
|
+
|
26
|
+
if self.id?
|
27
|
+
puts data[:id]
|
28
|
+
exit 0
|
29
|
+
end
|
30
|
+
|
31
|
+
if self.token?
|
32
|
+
puts data[:access_token] || data[:code]
|
33
|
+
exit 0
|
34
|
+
end
|
35
|
+
|
36
|
+
data.each do |key, value|
|
37
|
+
puts "%26.26s : %s" % [key, value]
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require_relative 'common'
|
2
|
+
|
3
|
+
module Kontena::Cli::Master::Token
|
4
|
+
class CurrentCommand < Kontena::Command
|
5
|
+
|
6
|
+
include Kontena::Cli::Common
|
7
|
+
include Common
|
8
|
+
|
9
|
+
requires_current_master
|
10
|
+
requires_current_master_token
|
11
|
+
|
12
|
+
option '--token', :flag, "Only output access token"
|
13
|
+
option '--refresh-token', :flag, "Only output refresh token"
|
14
|
+
option '--expires-in', :flag, "Only output expires in seconds"
|
15
|
+
|
16
|
+
def execute
|
17
|
+
if self.token?
|
18
|
+
puts current_master.token.access_token
|
19
|
+
exit 0
|
20
|
+
end
|
21
|
+
|
22
|
+
if self.refresh_token?
|
23
|
+
if current_master.token.refresh_token
|
24
|
+
puts current_master.token.refresh_token
|
25
|
+
end
|
26
|
+
exit 0
|
27
|
+
end
|
28
|
+
|
29
|
+
if self.expires_in?
|
30
|
+
if current_master.token.expires_at.to_i > 0
|
31
|
+
puts Time.now.utc.to_i - current_master.token.expires_at
|
32
|
+
end
|
33
|
+
exit 0
|
34
|
+
end
|
35
|
+
|
36
|
+
Kontena.run("master token show #{current_master.token.access_token}")
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require_relative 'common'
|
2
|
+
|
3
|
+
module Kontena::Cli::Master::Token
|
4
|
+
class ListCommand < Kontena::Command
|
5
|
+
|
6
|
+
include Kontena::Cli::Common
|
7
|
+
include Common
|
8
|
+
|
9
|
+
requires_current_master
|
10
|
+
requires_current_master_token
|
11
|
+
|
12
|
+
def execute
|
13
|
+
rows = []
|
14
|
+
puts "%-26s %-18s %-11s %-10s %-20s" % ["ID", "TOKEN_TYPE", "TOKEN_LAST4", "EXPIRES_IN", "SCOPES"]
|
15
|
+
client.get("/oauth2/tokens")["tokens"].each do |row_data|
|
16
|
+
data = token_data_to_hash(row_data)
|
17
|
+
puts "%-26s %-18s %-11s %-10s %-20s" % [
|
18
|
+
data[:id],
|
19
|
+
data[:token_type],
|
20
|
+
data[:access_token_last_four],
|
21
|
+
data[:expires_in],
|
22
|
+
data[:scopes]
|
23
|
+
]
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Kontena::Cli::Master::Token
|
2
|
+
class RemoveCommand < Kontena::Command
|
3
|
+
|
4
|
+
parameter "TOKEN_OR_ID", "Access token or access token id"
|
5
|
+
|
6
|
+
option ['-f', '--force'], :flag, "Don't ask questions"
|
7
|
+
|
8
|
+
include Kontena::Cli::Common
|
9
|
+
|
10
|
+
requires_current_master
|
11
|
+
requires_current_master_token
|
12
|
+
|
13
|
+
def execute
|
14
|
+
confirm
|
15
|
+
client.delete("/oauth2/tokens/#{token_or_id}")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require_relative 'common'
|
2
|
+
|
3
|
+
module Kontena::Cli::Master::Token
|
4
|
+
class ShowCommand < Kontena::Command
|
5
|
+
|
6
|
+
parameter "TOKEN_OR_ID", "Access token or access token id"
|
7
|
+
|
8
|
+
include Kontena::Cli::Common
|
9
|
+
include Common
|
10
|
+
|
11
|
+
requires_current_master
|
12
|
+
requires_current_master_token
|
13
|
+
|
14
|
+
def execute
|
15
|
+
data = client.get("/oauth2/tokens/#{token_or_id}")
|
16
|
+
output = token_data_to_hash(data)
|
17
|
+
output.each do |key, value|
|
18
|
+
puts "%26.26s : %s" % [key, value]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative 'token/list_command'
|
2
|
+
require_relative 'token/remove_command'
|
3
|
+
require_relative 'token/create_command'
|
4
|
+
require_relative 'token/current_command'
|
5
|
+
require_relative 'token/show_command'
|
6
|
+
|
7
|
+
module Kontena::Cli::Master
|
8
|
+
class TokenCommand < Kontena::Command
|
9
|
+
subcommand ["list", "ls"], "List access tokens", Kontena::Cli::Master::Token::ListCommand
|
10
|
+
subcommand ["rm", "remove"], "Remove / revoke an access token", Kontena::Cli::Master::Token::RemoveCommand
|
11
|
+
subcommand "show", "Display access token", Kontena::Cli::Master::Token::ShowCommand
|
12
|
+
subcommand "current", "Display current access token", Kontena::Cli::Master::Token::CurrentCommand
|
13
|
+
subcommand "create", "Generate an access token", Kontena::Cli::Master::Token::CreateCommand
|
14
|
+
|
15
|
+
def execute
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -7,6 +7,7 @@ require_relative 'master/config_command'
|
|
7
7
|
require_relative 'master/login_command'
|
8
8
|
require_relative 'master/join_command'
|
9
9
|
require_relative 'master/audit_log_command'
|
10
|
+
require_relative 'master/token_command'
|
10
11
|
|
11
12
|
if ENV["DEV"]
|
12
13
|
begin
|
@@ -22,6 +23,7 @@ class Kontena::Cli::MasterCommand < Kontena::Command
|
|
22
23
|
subcommand "users", "Users specific commands", Kontena::Cli::Master::UsersCommand
|
23
24
|
subcommand "current", "Show current master details", Kontena::Cli::Master::CurrentCommand
|
24
25
|
subcommand "login", "Authenticate to Kontena Master", Kontena::Cli::Master::LoginCommand
|
26
|
+
subcommand "token", "Manage Kontena Master access tokens", Kontena::Cli::Master::TokenCommand
|
25
27
|
subcommand "join", "Join Kontena Master using an invitation code", Kontena::Cli::Master::JoinCommand
|
26
28
|
subcommand "audit-log", "Show master audit logs", Kontena::Cli::Master::AuditLogCommand
|
27
29
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kontena-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.16.0.
|
4
|
+
version: 0.16.0.pre5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kontena, Inc
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-09-
|
11
|
+
date: 2016-09-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -313,6 +313,13 @@ files:
|
|
313
313
|
- lib/kontena/cli/master/join_command.rb
|
314
314
|
- lib/kontena/cli/master/list_command.rb
|
315
315
|
- lib/kontena/cli/master/login_command.rb
|
316
|
+
- lib/kontena/cli/master/token/common.rb
|
317
|
+
- lib/kontena/cli/master/token/create_command.rb
|
318
|
+
- lib/kontena/cli/master/token/current_command.rb
|
319
|
+
- lib/kontena/cli/master/token/list_command.rb
|
320
|
+
- lib/kontena/cli/master/token/remove_command.rb
|
321
|
+
- lib/kontena/cli/master/token/show_command.rb
|
322
|
+
- lib/kontena/cli/master/token_command.rb
|
316
323
|
- lib/kontena/cli/master/use_command.rb
|
317
324
|
- lib/kontena/cli/master/users/invite_command.rb
|
318
325
|
- lib/kontena/cli/master/users/list_command.rb
|