dtk-client 0.7.4 → 0.7.4.1

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: 9c2082aad673f9f8c447569657217f0649a15744
4
- data.tar.gz: 5ccfc71b0d65e0e3e3d003ae6ab859ad1d770982
3
+ metadata.gz: 6a7875186712bb106f9fbbf11458c702e66041ae
4
+ data.tar.gz: 23996874f5fb73b451fab137e6157252addb9224
5
5
  SHA512:
6
- metadata.gz: 4be06f509b412e40853aa433f1c8259ed5cda041fbf4386106d9ccdc27681a05b285fd93f14b03553ee794bc15d89b408e9e87f29680d28f216e33e635f160ae
7
- data.tar.gz: fb600d5f4c54c9c01364c24175be7170a49804846330f0d2d4efaa2a210bd85ba07e6a0dc3bad590bf063ba3d8154b9fe34f333ea3d576e7d295f1ad93893f7f
6
+ metadata.gz: 6b938efca3539c8ba284580cfc4f747c179e45939abe5025f479c696fa227618c4c98731e8b493f77834ed396c31b63f81230b3e324b8618be907da363efd3ea
7
+ data.tar.gz: f428e0857dbea981c780d12bc8e4fb7cf31d2a249282302d29d358917364a52230426c9dcf6802e85289b9859c7cf15f223b194a7a7a6dbb2a21b2aacf0292f8
@@ -18,9 +18,10 @@ module DTK::Client
18
18
  ##
19
19
  # Method will trigger pull from dtkn for each existing module
20
20
  #
21
+ def trigger_module_auto_pull(required_modules, force = false)
22
+ return if required_modules.empty?
21
23
 
22
- def trigger_module_auto_pull(required_modules)
23
- if !required_modules.empty? && Console.confirmation_prompt("Do you want to update in addition to this module its dependent modules from the catalog?")
24
+ if force || Console.confirmation_prompt("Do you want to update in addition to this module its dependent modules from the catalog?")
24
25
  required_modules.each do |r_module|
25
26
  module_name = full_module_name(r_module)
26
27
  module_type = r_module['type']
@@ -37,7 +38,7 @@ module DTK::Client
37
38
  raise DTK::Client::DtkError, response.error_message unless response.ok?
38
39
  end
39
40
 
40
- print "Resuming pull ... "
41
+ print "Resuming pull ... " unless force
41
42
  end
42
43
  end
43
44
 
@@ -47,13 +48,31 @@ module DTK::Client
47
48
  #
48
49
  def trigger_module_auto_import(modules_to_import, required_modules, opts={})
49
50
  puts "Auto-importing missing module(s)"
51
+ update_all, update_none = false, false
50
52
 
51
- # Print out installed modules
53
+ # Print out or update installed modules from catalog
52
54
  required_modules.each do |r_module|
53
55
  module_name = full_module_name(r_module)
54
56
  module_type = r_module['type']
55
57
 
56
58
  print "Using #{module_type.gsub('_',' ')} '#{module_name}'\n"
59
+ next if update_none || opts[:update_none]
60
+
61
+ if update_all
62
+ trigger_module_auto_pull([r_module], true)
63
+ else
64
+ update = Console.confirmation_prompt_additional_options("Do you want to update dependent #{module_type.gsub('_',' ')} '#{module_name}' from the catalog?", ['all', 'none'])
65
+ next unless update
66
+
67
+ if update.to_s.eql?('all')
68
+ update_all = true
69
+ trigger_module_auto_pull([r_module], true)
70
+ elsif update.to_s.eql?('none')
71
+ update_none = true
72
+ else
73
+ trigger_module_auto_pull([r_module], true)
74
+ end
75
+ end
57
76
  end
58
77
 
59
78
  # Trigger import/install for missing modules
@@ -275,6 +275,7 @@ module DTK::Client
275
275
  required_components = response.data(:required_modules)
276
276
  opts = {:do_not_raise=>true}
277
277
  module_opts = ignore_component_error ? opts.merge(:ignore_component_error => true) : opts.merge(:additional_message=>true)
278
+ module_opts.merge!(:update_none => true) if options.update_none?
278
279
 
279
280
  continue = trigger_module_auto_import(missing_components, required_components, module_opts)
280
281
  return unless continue
@@ -184,6 +184,7 @@ module DTK::Client
184
184
  desc "install NAMESPACE/REMOTE-SERVICE-MODULE-NAME [-y] [-i]", "Install remote service module into local environment. -y will automatically clone component modules. -i will ignore component import error."
185
185
  method_option :force, :aliases => '-y', :type => :boolean, :default => false
186
186
  method_option :ignore, :aliases => '-i', :type => :boolean, :default => false
187
+ method_option :update_none, :type => :boolean, :default => false
187
188
  def install(context_params)
188
189
  response = install_module_aux(context_params)
189
190
  @@invalidate_map << :service_module if response && response.ok?
@@ -1,3 +1,3 @@
1
1
  module DtkClient
2
- VERSION="0.7.4"
2
+ VERSION="0.7.4.1"
3
3
  end
data/lib/util/console.rb CHANGED
@@ -52,6 +52,30 @@ module DTK::Client
52
52
  end
53
53
  end
54
54
 
55
+ #
56
+ # Display confirmation prompt and repeat message until expected answer is given
57
+ # options should be sent as array ['all', 'none']
58
+ def confirmation_prompt_additional_options(message, options = [])
59
+ raise DTK::Client::DtkValidationError, "Options should be sent as array: ['all', 'none']" unless options.is_a?(Array)
60
+
61
+ # used to disable skip with ctrl+c
62
+ trap("INT", "SIG_IGN")
63
+ message += " (yes/no#{options.empty? ? '' : ('/' + options.join('/'))})"
64
+
65
+ while line = Readline.readline("#{message}: ", true)
66
+ if line.eql?("yes") || line.eql?("y")
67
+ trap("INT",false)
68
+ return true
69
+ elsif line.eql?("no") || line.eql?("n")
70
+ trap("INT",false)
71
+ return false
72
+ elsif options.include?(line)
73
+ trap("INT",false)
74
+ return line
75
+ end
76
+ end
77
+ end
78
+
55
79
  # Loading output used to display waiting status
56
80
  def wait_animation(message, time_seconds)
57
81
  print message
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dtk-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.4
4
+ version: 0.7.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rich PELAVIN
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-20 00:00:00.000000000 Z
11
+ date: 2015-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mime-types
@@ -367,7 +367,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
367
367
  version: '0'
368
368
  requirements: []
369
369
  rubyforge_project:
370
- rubygems_version: 2.4.1
370
+ rubygems_version: 2.4.6
371
371
  signing_key:
372
372
  specification_version: 4
373
373
  summary: DTK CLI client for DTK server interaction.