kontena-cli 0.16.0.pre1 → 0.16.0.pre2

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
  SHA1:
3
- metadata.gz: 6dd79efbf65d99f1a53951c4064ae5361a6f45e7
4
- data.tar.gz: 826215936d53f0c1e45896d648c21c3fbd2862b4
3
+ metadata.gz: 1dc5728b1347004899b102ebd4866c211042e5a0
4
+ data.tar.gz: 9db1ef29e2fc497e4714601c853fa05e8a348b7d
5
5
  SHA512:
6
- metadata.gz: 226857ae59df5a8d5e4d9ae3eb22900360ee35eb3dc84754ad242d06c48e04dcc5130f47888abc555c850d438c9757eb716323474125cbb38c84e3e829d2046a
7
- data.tar.gz: da4bc3d5892b56af1bb0adc7ab1d1fd2ab581fdcf0284675fa703d5d8ad8c27b1ca81db89ae73e7b78483f023448f1a3876cf82c22c037375ed4104a1eaccce6
6
+ metadata.gz: c6e669442d78dd7bed60f5946f45827f974db78c57f27a8c5d7443d6af316b816f3fd4d1a64bf5f53231964cdd1b3e5390d2c196381195d2bf383d2d10eecfa2
7
+ data.tar.gz: f965ff386e19547fafec5949b224eaaf3c8231a679232f8969ad3629922853eec714d4d6c760328caa00e0472cf720484210bc4dcc6a56ef12dde06038596911
data/Dockerfile CHANGED
@@ -5,7 +5,7 @@ ADD https://get.docker.com/builds/Linux/x86_64/docker-1.10.3 /usr/local/bin/dock
5
5
  ARG CLI_VERSION
6
6
 
7
7
  RUN apk update && \
8
- apk --update add ruby ruby-json ruby-bigdecimal \
8
+ apk --update add ruby ruby-json ruby-bigdecimal ruby-io-console \
9
9
  ca-certificates libssl1.0 openssl libstdc++ && \
10
10
  gem install kontena-cli --no-rdoc --no-ri -v ${CLI_VERSION} && \
11
11
  adduser kontena -D -h /home/kontena -s /bin/sh && \
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.16.0.pre1
1
+ 0.16.0.pre2
@@ -23,8 +23,8 @@ module Kontena
23
23
  # Scans config server names and returns default-2 if default exists,
24
24
  # default-3 if default-2 exists, etc.
25
25
  def next_default_name
26
- last_default = config.servers.map(&:name).select{ |n| n =~ /default(?:\-\d+)?$/ }.sort.last
27
- return "default" unless last_default
26
+ last_default = config.servers.map(&:name).select{ |n| n =~ /kontena\-master(?:\-\d+)?$/ }.sort.last
27
+ return "kontena-master" unless last_default
28
28
  unless last_default =~ /\d$/
29
29
  last_default << "-1"
30
30
  end
@@ -42,33 +42,13 @@ module Kontena
42
42
  cloud_client.authentication_ok?(kontena_account.userinfo_endpoint)
43
43
  end
44
44
 
45
- def select_cloud_master
46
- masters = []
47
- spinner "Retrieving a list of registered masters on your Kontena Cloud account" do
48
- masters = cloud_client.get("user/masters")["data"]
49
- end
50
- if masters.empty?
51
- puts
52
- puts "You have no registered masters. Adding a new master."
53
- puts
54
- return create_cloud_master
55
- else
56
- puts
57
- return prompt.select("Select master") do |menu|
58
- masters.each do |master|
59
- name = master['attributes']['name']
60
- url = master['attributes']['url']
61
- master_id = master['id']
62
- menu.choice "#{master['attributes']['name']} (#{url.nil? ? "setup not done" : url})", master_id
63
- end
64
- end
65
- end
66
- end
67
-
68
45
  def create_cloud_master
69
46
  master_id = nil
70
- spinner "Registering a new cloud master '#{command.name}'" do
71
- master_id = Kontena.run("cloud master add --return #{command.name}", returning: :result)
47
+ begin
48
+ spinner "Registering a new master '#{command.name}' to Kontena Cloud" do
49
+ master_id = Kontena.run("cloud master add --return #{command.name}", returning: :result)
50
+ end
51
+ rescue SystemExit
72
52
  end
73
53
  if master_id.to_s =~ /^[0-9a-f]{16,32}$/
74
54
  master_id
@@ -92,30 +72,34 @@ module Kontena
92
72
  if command.no_prompt?
93
73
  command.cloud_master_id ||= create_cloud_master
94
74
  elsif command.cloud_master_id.nil?
95
- answer = prompt.select("Select user authentication provider") do |menu|
96
- menu.choice 'Kontena Cloud (add a new master)', :kontena_new
97
- menu.choice 'Kontena Cloud (use an existing master)', :kontena_existing
75
+ answer = prompt.select("Select OAuth2 authentication provider: ") do |menu|
76
+ menu.choice 'Kontena Cloud (recommended)', :kontena_new
98
77
  menu.choice 'Custom', :custom
99
78
  menu.choice 'None (single user mode)', :none
100
79
  end
101
80
  case answer
102
- when :kontena_new, :kontena_existing
81
+ when :kontena_new
103
82
  login_to_kontena || abort('You must login to Kontena Cloud')
104
- if answer == :kontena_new
105
- command.cloud_master_id = create_cloud_master
106
- else
107
- command.cloud_master_id = select_cloud_master
108
- end
83
+ command.cloud_master_id = create_cloud_master
84
+ command.skip_auth_provider = false
109
85
  when :custom
86
+ puts
110
87
  puts 'Learn how to configure custom user authentication provider after installation at: www.kontena.io/docs/configuring-custom-auth-provider'
88
+ puts
89
+ command.cloud_master_id = nil
90
+ command.skip_auth_provider = true
111
91
  when :none
92
+ puts
112
93
  puts "You have selected to use Kontena Master in single user mode. You can configure an authentication provider later. For more information, see here: www.kontena.io/docs/configuring-custom-auth-provider"
94
+ puts
95
+ command.cloud_master_id = nil
96
+ command.skip_auth_provider = true
113
97
  else
114
98
  abort 'Should never be here'
115
99
  end
116
100
  end
117
- command.skip_auth_provider = !command.cloud_master_id.nil?
118
101
  end
102
+ true
119
103
  end
120
104
  end
121
105
  end
@@ -18,10 +18,8 @@ module Kontena
18
18
 
19
19
  def configure_auth_provider(oauth_config)
20
20
  require 'shellwords'
21
- spinner "Setting Kontena Cloud authentication provider base settings to Master config" do
21
+ spinner "Setting Kontena Cloud authentication provider settings to Master config" do
22
22
  Kontena.run("master config import --force --preset kontena_auth_provider")
23
- end
24
- spinner "Setting Kontena Cloud authentication provider consumer credentials to Master config" do
25
23
  Kontena.run("master config set oauth2.client_id=#{oauth_config['client-id'].shellescape} oauth2.client_secret=#{oauth_config['client-secret'].shellescape} server.root_url=#{config.current_master.url.shellescape}")
26
24
  end
27
25
  end
@@ -67,11 +67,11 @@ module Kontena::Cli::Cloud
67
67
  uri.query = URI.encode_www_form(params)
68
68
 
69
69
  puts "Opening a browser to #{uri.scheme}://#{uri.host}"
70
- puts
71
- puts "If you are running this command over an ssh connection or it's"
72
- puts "otherwise not possible to open a browser from this terminal"
73
- puts "then you must use a pregenerated access token using the --token"
74
- puts "option : kontena cloud login --token <access_token>"
70
+ #puts
71
+ #puts "If you are running this command over an ssh connection or it's"
72
+ #puts "otherwise not possible to open a browser from this terminal"
73
+ #puts "then you must use a pregenerated access token using the --token"
74
+ #puts "option : kontena cloud login --token <access_token>"
75
75
  puts
76
76
  puts "Once the authentication is complete you can close the browser"
77
77
  puts "window or tab and return to this window to continue."
@@ -85,7 +85,9 @@ module Kontena::Cli::Cloud
85
85
  server_thread = Thread.new { Thread.main['response'] = web_server.serve_one }
86
86
  browser_thread = Thread.new { Launchy.open(uri.to_s) }
87
87
 
88
- server_thread.join
88
+ vspinner "Waiting for browser authorization response" do
89
+ server_thread.join
90
+ end
89
91
  browser_thread.join
90
92
 
91
93
  response = Thread.main['response']
@@ -10,9 +10,9 @@ module Kontena::Cli::Master::Config
10
10
 
11
11
  parameter '[PATH]', "Input from file in PATH, default: STDIN", required: false
12
12
 
13
- option ['--preset'], '[NAME]', 'Load preset'
13
+ option ['--preset'], '[NAME]', 'Load preset', hidden: true
14
14
 
15
- option ['--format'], '[FORMAT]', "Specify output format (json, yaml) (default: guess from PATH or json)"
15
+ option ['--format'], '[FORMAT]', "Specify input format (json, yaml) (default: guess from PATH or json)"
16
16
  option ['--full'], :flag, "Perform full update, keys that are not present in the input are cleared"
17
17
  option ['-f', '--force'], :flag, "Don't ask for confirmation"
18
18
 
@@ -1,3 +1,5 @@
1
+ #TODO: Something wrong with picking up wrong server in config using the url,
2
+ #maybe remove that part altogether.
1
3
  require 'uri'
2
4
 
3
5
  module Kontena::Cli::Master
@@ -92,8 +94,8 @@ module Kontena::Cli::Master
92
94
  end
93
95
 
94
96
  def find_server_or_create_new(url)
95
- existing_server = config.find_server_by(url: url)
96
- if existing_server && (!self.name || existing_server.name == self.name)
97
+ existing_server = config.find_server_by(url: url, name: self.name)
98
+ if existing_server
97
99
  config.current_server = existing_server.name
98
100
  existing_server
99
101
  else
@@ -10,7 +10,8 @@ module Kontena::Cli::Master
10
10
  abort pastel.red("Could not resolve master by name '#{name}'.") +
11
11
  "\nFor a list of known masters please run: kontena master list"
12
12
  else
13
- self.current_master = master['name']
13
+ config.current_master = master['name']
14
+ config.write
14
15
  puts "Using master: #{pastel.cyan(master['name'])} (#{master['url']})"
15
16
  puts "Using grid: #{current_grid ? pastel.cyan(current_grid) : "<none>"}"
16
17
  end
@@ -4,7 +4,7 @@ oauth2.code_requires_basic_auth: false
4
4
  oauth2.token_endpoint: https://auth2.kontena.io/v1/oauth2/token
5
5
  oauth2.token_method: post
6
6
  oauth2.token_post_content_type: application/x-www-form-urlencoded
7
- oauth2.userinfo_endpoint: https://auth2.kontena.io/v1/user
7
+ oauth2.userinfo_endpoint: https://cloud-api.kontena.io/user
8
8
  oauth2.userinfo_username_jsonpath: "$..username"
9
9
  oauth2.userinfo_email_jsonpath: "$..email"
10
10
  oauth2.userinfo_user_id_jsonpath: "$..id"
data/lib/kontena_cli.rb CHANGED
@@ -8,10 +8,13 @@ module Kontena
8
8
  # @return [Fixnum] exit_code
9
9
  def self.run(cmdline = "", returning: :status)
10
10
  require 'shellwords'
11
+ ENV["DEBUG"] && puts("Running Kontena.run(#{cmdline.inspect}, returning: #{returning}")
11
12
  result = Kontena::MainCommand.new(File.basename(__FILE__)).run(cmdline.shellsplit)
13
+ ENV["DEBUG"] && puts("Command completed, result: #{result.inspect} status: 0")
12
14
  return 0 if returning == :status
13
15
  return result if returning == :result
14
16
  rescue SystemExit
17
+ ENV["DEBUG"] && puts("Command completed with failure, result: #{result.inspect} status: #{$!.status}")
15
18
  returning == :status ? $!.status : nil
16
19
  end
17
20
 
@@ -11,8 +11,9 @@ describe Kontena::Cli::Master::UseCommand do
11
11
 
12
12
  describe '#use' do
13
13
  it 'should update current master' do
14
- expect(subject).to receive(:current_master=).with('some_master')
14
+ expect(subject.config).to receive(:write).and_return(true)
15
15
  subject.run(['some_master'])
16
+ expect(subject.config.current_server).to eq 'some_master'
16
17
  end
17
18
  end
18
19
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kontena-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.0.pre1
4
+ version: 0.16.0.pre2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kontena, Inc