kontena-cli 0.16.0.pre3 → 0.16.0.pre4
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/callbacks/master/deploy/04_default_master_version.rb +18 -0
- data/lib/kontena/callbacks/master/deploy/05_before_deploy_configuration_wizard.rb +2 -2
- data/lib/kontena/callbacks/master/deploy/50_authenticate_after_deploy.rb +1 -1
- data/lib/kontena/command.rb +49 -32
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 36e047ed9eeab9703d96bf167ae05ae212a8d696
|
4
|
+
data.tar.gz: 4c947a57f0d149044c1aa255e317db8115d2e305
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dd2d2120ea3c23cfb2d3be1d867ec2b05475a9c6f9abfa689efe9ff6682ea6740ff10079163c104a7f3fcc65a818ce2fb688a48fea6f8703cc4a8bb4248bebd0
|
7
|
+
data.tar.gz: 86e61055eb8c0c34e0569c5bc26ae0f96055cca0dc90c3c6f8eaacae09752c7409ae666ca038a1a6a0ef8ce03b44327eec08d72e5ef383fd0215fd7d88937f9e
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.16.0.
|
1
|
+
0.16.0.pre4
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Kontena
|
2
|
+
module Callbacks
|
3
|
+
class DefaultMasterVersion < Kontena::Callback
|
4
|
+
|
5
|
+
matches_commands 'master create'
|
6
|
+
|
7
|
+
def after_load
|
8
|
+
# Only run this for prerelease cli
|
9
|
+
return unless Kontena::Cli::VERSION =~ /\d\.(?:pre|rc|beta|edge)/
|
10
|
+
version_switch = command.recognised_options.find {|opt| opt.switches.include?('--version')}
|
11
|
+
if version_switch
|
12
|
+
version_switch.instance_variable_set(:@default_value, 'edge')
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
@@ -84,13 +84,13 @@ module Kontena
|
|
84
84
|
command.skip_auth_provider = false
|
85
85
|
when :custom
|
86
86
|
puts
|
87
|
-
puts 'Learn how to configure custom user authentication provider after installation at: www.kontena.io/docs/
|
87
|
+
puts 'Learn how to configure custom user authentication provider after installation at: www.kontena.io/docs/using-kontena/authentication'
|
88
88
|
puts
|
89
89
|
command.cloud_master_id = nil
|
90
90
|
command.skip_auth_provider = true
|
91
91
|
when :none
|
92
92
|
puts
|
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/
|
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/using-kontena/authentication"
|
94
94
|
puts
|
95
95
|
command.cloud_master_id = nil
|
96
96
|
command.skip_auth_provider = true
|
@@ -44,7 +44,7 @@ module Kontena
|
|
44
44
|
end
|
45
45
|
|
46
46
|
require 'shellwords'
|
47
|
-
cmd = "master login --verbose --name #{command.result[:name].shellescape} --code #{command.result[:code].shellescape} #{new_master.url.shellescape}"
|
47
|
+
cmd = "master login --skip-grid-auto-select --verbose --name #{command.result[:name].shellescape} --code #{command.result[:code].shellescape} #{new_master.url.shellescape}"
|
48
48
|
ENV["DEBUG"] && puts("Running: #{cmd}")
|
49
49
|
Kontena.run(cmd)
|
50
50
|
end
|
data/lib/kontena/command.rb
CHANGED
@@ -6,38 +6,51 @@ class Kontena::Command < Clamp::Command
|
|
6
6
|
attr_reader :result
|
7
7
|
attr_reader :exit_code
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
#
|
21
|
-
# In comes: ['ExternalRegistry', 'UseCommand']
|
22
|
-
# Out goes: [:external_registry, :use]
|
23
|
-
name_parts = name_parts.map { |np|
|
24
|
-
np.gsub(/Command$/, '').
|
25
|
-
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
|
26
|
-
gsub(/([a-z\d])([A-Z])/,'\1_\2').
|
27
|
-
tr("-", "_").
|
28
|
-
downcase.
|
29
|
-
to_sym
|
30
|
-
}
|
31
|
-
where.callback_matcher(*name_parts)
|
9
|
+
module Finalizer
|
10
|
+
def self.extended(obj)
|
11
|
+
# Tracepoint is used to trigger finalize once the command is completely
|
12
|
+
# loaded. If done through def self.inherited the finalizer and
|
13
|
+
# after_load callbacks would run before the options are defined.
|
14
|
+
TracePoint.trace(:end) do |t|
|
15
|
+
if obj == t.self
|
16
|
+
obj.finalize
|
17
|
+
t.disable
|
18
|
+
end
|
19
|
+
end
|
32
20
|
end
|
33
21
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
22
|
+
def finalize
|
23
|
+
return if self.has_subcommands?
|
24
|
+
return if self.callback_matcher
|
25
|
+
|
26
|
+
name_parts = self.name.split('::')[-2, 2]
|
27
|
+
|
28
|
+
unless name_parts.compact.empty?
|
29
|
+
# 1: Remove trailing 'Command' from for example AuthCommand
|
30
|
+
# 2: Convert the string from CamelCase to under_score
|
31
|
+
# 3: Convert the string into a symbol
|
32
|
+
#
|
33
|
+
# In comes: ['ExternalRegistry', 'UseCommand']
|
34
|
+
# Out goes: [:external_registry, :use]
|
35
|
+
name_parts = name_parts.map { |np|
|
36
|
+
np.gsub(/Command$/, '').
|
37
|
+
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
|
38
|
+
gsub(/([a-z\d])([A-Z])/,'\1_\2').
|
39
|
+
tr("-", "_").
|
40
|
+
downcase.
|
41
|
+
to_sym
|
42
|
+
}
|
43
|
+
self.callback_matcher(*name_parts)
|
44
|
+
end
|
45
|
+
|
46
|
+
# Run all #after_load callbacks for this command.
|
47
|
+
[name_parts.last, :all].compact.uniq.each do |cmd_type|
|
48
|
+
[name_parts.first, :all].compact.uniq.each do |cmd_class|
|
49
|
+
if Kontena::Callback.callbacks.fetch(cmd_class, {}).fetch(cmd_type, nil)
|
50
|
+
Kontena::Callback.callbacks[cmd_class][cmd_type].each do |cb|
|
51
|
+
if cb.instance_methods.include?(:after_load)
|
52
|
+
cb.new(self).after_load
|
53
|
+
end
|
41
54
|
end
|
42
55
|
end
|
43
56
|
end
|
@@ -45,6 +58,10 @@ class Kontena::Command < Clamp::Command
|
|
45
58
|
end
|
46
59
|
end
|
47
60
|
|
61
|
+
def self.inherited(where)
|
62
|
+
where.extend Finalizer
|
63
|
+
end
|
64
|
+
|
48
65
|
def self.callback_matcher(cmd_class = nil, cmd_type = nil)
|
49
66
|
unless cmd_class
|
50
67
|
if @command_class.nil?
|
@@ -59,7 +76,7 @@ class Kontena::Command < Clamp::Command
|
|
59
76
|
end
|
60
77
|
|
61
78
|
def run_callbacks(state)
|
62
|
-
if self.class.respond_to?(:callback_matcher) && !self.class.callback_matcher.compact.empty?
|
79
|
+
if self.class.respond_to?(:callback_matcher) && !self.class.callback_matcher.nil? && !self.class.callback_matcher.compact.empty?
|
63
80
|
Kontena::Callback.run_callbacks(self.class.callback_matcher, state, self)
|
64
81
|
end
|
65
82
|
end
|
@@ -146,7 +163,7 @@ class Kontena::Command < Clamp::Command
|
|
146
163
|
end
|
147
164
|
|
148
165
|
def run(arguments)
|
149
|
-
ENV["DEBUG"] && puts("Running #{self} -- callback matcher = '#{self.class.callback_matcher.map(&:to_s).join(' ')}'")
|
166
|
+
ENV["DEBUG"] && puts("Running #{self} -- callback matcher = '#{self.class.callback_matcher.nil? ? "nil" : self.class.callback_matcher.map(&:to_s).join(' ')}'")
|
150
167
|
@arguments = arguments
|
151
168
|
|
152
169
|
run_callbacks :before_parse unless help_requested?
|
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.
|
4
|
+
version: 0.16.0.pre4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kontena, Inc
|
@@ -212,6 +212,7 @@ files:
|
|
212
212
|
- lib/kontena/callbacks/auth/01_list_and_select_grid_after_master_auth.rb
|
213
213
|
- lib/kontena/callbacks/master/01_clear_current_master_after_terminate.rb
|
214
214
|
- lib/kontena/callbacks/master/deploy/01_show_logo_before_deploy.rb
|
215
|
+
- lib/kontena/callbacks/master/deploy/04_default_master_version.rb
|
215
216
|
- lib/kontena/callbacks/master/deploy/05_before_deploy_configuration_wizard.rb
|
216
217
|
- lib/kontena/callbacks/master/deploy/50_authenticate_after_deploy.rb
|
217
218
|
- lib/kontena/callbacks/master/deploy/55_create_initial_grid_after_deploy.rb
|