tools 0.4.5 → 0.4.6

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.
@@ -1,4 +1,4 @@
1
1
  module Tools
2
- VERSION = "0.4.5"
3
- HOMEPAGE = "https://github.com/Xyko/tools"
2
+ VERSION = '0.4.6'.freeze
3
+ HOMEPAGE = 'https://github.com/Xyko/tools'.freeze
4
4
  end
@@ -1,19 +1,18 @@
1
1
  class ToolsModuleTest < Minitest::Test
2
-
3
2
  def self.test_order
4
3
  :sorted
5
4
  end
6
5
 
7
6
  def test_hash_A_extract_first
8
- assert_equal ['a','b','c'].extract_first, 'a'
7
+ assert_equal %w[a b c].extract_first, 'a'
9
8
  end
10
9
 
11
10
  def test_hash_B_extract_first
12
- assert_equal (['a',:color,'c'].extract_symbol :color), true
11
+ assert_equal (['a', :color, 'c'].extract_symbol :color), true
13
12
  end
14
13
 
15
14
  def test_hash_C_extract_color
16
- args = ['xxx', '-x', '-vvv', :yellow, '-c', '-vcv', '-v2', '-vvvvv', '-s', :json, :red, :json]
15
+ args = ['xxx', '-x', '-vvv', :yellow, '-c', '-vcv', '-v2', '-vvvvv', '-s', :json, :red, :json]
17
16
  yellow = args.extract_color
18
17
  color = args.extract_color
19
18
  assert_equal yellow, :yellow
@@ -21,7 +20,7 @@ class ToolsModuleTest < Minitest::Test
21
20
  end
22
21
 
23
22
  def test_hash_D_extract_option
24
- args = ['xxx', '-x', '-vvv', :yellow, ':red','-c', '-vcv', '-v2', '-vvvvv', '-s', :json, :red, :json]
23
+ args = ['xxx', '-x', '-vvv', :yellow, ':red', '-c', '-vcv', '-v2', '-vvvvv', '-s', :json, :red, :json]
25
24
  yellow = args.extract_color
26
25
  red1 = args.extract_color
27
26
  red2 = args.extract_color
@@ -38,16 +37,12 @@ class ToolsModuleTest < Minitest::Test
38
37
  end
39
38
 
40
39
  def test_hash_D_extract_option_value
41
- args = ['-o', 'um', '-o', 'dois', '--desc', 'description', '-v', '-v', '-o', 'tres', '-s', :json, :red, :json]
40
+ args = ['-o', 'um', '-o', 'dois', '--desc', 'description', '-v', '-v', '-o', 'tres', '-s', :json, :red, :json]
42
41
  desc_status, desc = args.extract_option_value '--desc'
43
- status, origin = args.extract_option_value '-o', {:multiple => true}
42
+ status, origin = args.extract_option_value '-o', multiple: true
44
43
  assert_equal desc_status, true
45
44
  assert_equal desc, 'description'
46
45
  assert_equal status, true
47
- assert_equal origin, ['um','um','dois','dois','tres','tres']
46
+ assert_equal origin, %w[um um dois dois tres tres]
48
47
  end
49
-
50
-
51
48
  end
52
-
53
-
@@ -1,28 +1,25 @@
1
1
  class ToolsModuleTest < Minitest::Test
2
-
3
2
  def self.test_order
4
3
  :sorted
5
4
  end
6
5
 
7
6
  def test_cache_A_all_operators
8
7
  ToolsFiles.remove_file '/home/francisco/2018/xykotools/tools/teste-persistent.cache'
9
- ToolsCache.create_cache_file 'tools', (File.dirname __dir__) + '/teste-persistent.cache', 60
8
+ ToolsCache.create_cache_file 'tools', (File.dirname __dir__) + '/teste-persistent.cache', 60
10
9
  assert_equal ToolsCache.tools_list, {}
11
10
  ToolsCache.tools_set :k1, 100
12
- assert_equal ToolsCache.tools_list, {:k1 => 100}
11
+ assert_equal ToolsCache.tools_list, k1: 100
13
12
  ToolsCache.tools_unset :k1
14
13
  assert_equal ToolsCache.tools_list, {}
15
- ToolsCache.tools_set :k2, {:i => 100, :j => 200}
16
- ToolsCache.tools_set :k2, {:l => 100, :m => 200}
14
+ ToolsCache.tools_set :k2, i: 100, j: 200
15
+ ToolsCache.tools_set :k2, l: 100, m: 200
17
16
  ToolsCache.tools_set :k3, []
18
- ToolsCache.tools_set :k3, [1,2,3]
19
- ToolsCache.tools_set :k3, [4, ['a','b']]
20
- assert_equal (ToolsCache.tools_get :k3), [1,2,3,4,['a','b']]
21
- assert_equal (ToolsCache.tools_get :k2), {:i => 100, :j => 200,:l => 100, :m => 200}
17
+ ToolsCache.tools_set :k3, [1, 2, 3]
18
+ ToolsCache.tools_set :k3, [4, %w[a b]]
19
+ assert_equal (ToolsCache.tools_get :k3), [1, 2, 3, 4, %w[a b]]
20
+ assert_equal (ToolsCache.tools_get :k2), i: 100, j: 200, l: 100, m: 200
22
21
  ToolsCache.tools_clear
23
22
  assert_equal ToolsCache.tools_list, {}
24
23
  ToolsFiles.remove_file '/home/francisco/2018/xykotools/tools/teste-persistent.cache'
25
24
  end
26
-
27
-
28
- end
25
+ end
@@ -1,28 +1,37 @@
1
1
  class ToolsModuleTest < Minitest::Test
2
-
3
2
  def self.test_order
4
3
  :sorted
5
4
  end
6
5
 
7
- def test_log_A_all_operations
8
-
6
+ def test_config_A_before
9
7
  ToolsFiles.remove_file (File.dirname __dir__) + '/tools_yaml.config'
10
8
  ToolsFiles.remove_file (File.dirname __dir__) + '/tools_json.config'
11
- ToolsConfig.create_config_file 'tools_yaml', (File.dirname __dir__) +'/tools_yaml.config', :yaml, {:first_time => true}
12
- ToolsConfig.create_config_file 'tools_json', (File.dirname __dir__) +'/tools_json.config', :json, {:first_time => true}
13
- ToolsConfig.create_config_file 'tools_json', (File.dirname __dir__) +'/tools_json.config', :json, {:first_time => true}
9
+ end
10
+
11
+ def test_config_B_create
12
+ ToolsConfig.create_config_file 'tools_yaml', (File.dirname __dir__) + '/tools_yaml.config', :yaml, first_time: true
13
+ ToolsConfig.create_config_file 'tools_json', (File.dirname __dir__) + '/tools_json.config', :json, first_time: true
14
+ ToolsConfig.create_config_file 'tools_json', (File.dirname __dir__) + '/tools_json.config', :json, first_time: true
15
+ end
16
+
17
+ def test_config_C_load
14
18
  ToolsConfig.load_config (File.dirname __dir__) + '/tools_yaml.config'
15
19
  ToolsConfig.load_config (File.dirname __dir__) + '/tools_json.config'
20
+ end
16
21
 
17
- ToolsConfig.insert_in_config (File.dirname __dir__) +'/tools_yaml.config', {:first_time => false,}
18
- ToolsConfig.insert_in_config (File.dirname __dir__) +'/tools_json.config', {:first_time => false,}
22
+ def test_config_D_insert
23
+ ToolsConfig.insert_in_config (File.dirname __dir__) + '/tools_yaml.config', first_time: false
24
+ ToolsConfig.insert_in_config (File.dirname __dir__) + '/tools_json.config', first_time: false
25
+ end
19
26
 
20
- ToolsConfig.change_value_in_config (File.dirname __dir__) +'/tools_yaml.config', true , :first_time
21
- ToolsConfig.change_value_in_config (File.dirname __dir__) +'/tools_json.config', true , :first_time
27
+ def test_config_E_change
28
+ ToolsConfig.change_value_in_config (File.dirname __dir__) + '/tools_yaml.config', true, :first_time
29
+ ToolsConfig.change_value_in_config (File.dirname __dir__) + '/tools_json.config', true, :first_time
30
+ end
22
31
 
32
+ def test_config_F_after
23
33
  ToolsFiles.remove_file (File.dirname __dir__) + '/tools_yaml.config'
24
34
  ToolsFiles.remove_file (File.dirname __dir__) + '/tools_json.config'
25
-
26
35
  end
27
36
 
28
- end
37
+ end
@@ -1,20 +1,18 @@
1
-
2
1
  class ToolsModuleTest < Minitest::Test
3
-
4
2
  def self.test_order
5
3
  :sorted
6
4
  end
7
5
 
8
-
9
6
  def test_console_A_run_console
10
- mock = MiniTest::Mock.new
11
- def mock.start *args; true; end
7
+ mock = MiniTest::Mock.new
8
+ def mock.start(*_args)
9
+ true
10
+ end
12
11
  Prompt::Console.stub :start, mock do
13
12
  assert_equal ToolsConsole.create_console.class, Array
14
13
  assert_equal (ToolsConsole.exec_console ['test']), true
15
14
  assert_equal (ToolsConsole.exec_console ['tes']), false
16
- assert_equal ToolsConsole.run_console.class, Minitest::Mock
15
+ ToolsConsole.run_console
17
16
  end
18
17
  end
19
-
20
- end
18
+ end
@@ -1,5 +1,4 @@
1
1
  class ToolsModuleTest < Minitest::Test
2
-
3
2
  def self.test_order
4
3
  :sorted
5
4
  end
@@ -9,7 +8,7 @@ class ToolsModuleTest < Minitest::Test
9
8
  old_stdout = $stdout
10
9
  captured_stdio = StringIO.new('', 'w')
11
10
  $stdout = captured_stdio
12
- ToolsDisplay.show "TEXTO VERDE", :green
11
+ ToolsDisplay.show 'TEXTO VERDE', :green
13
12
  $stdout = old_stdout
14
13
  assert_equal "\e[0;32;49mTEXTO VERDE\n\e[0m", captured_stdio.string
15
14
  end
@@ -19,7 +18,7 @@ class ToolsModuleTest < Minitest::Test
19
18
  old_stdout = $stdout
20
19
  captured_stdio = StringIO.new('', 'w')
21
20
  $stdout = captured_stdio
22
- ToolsDisplay.show "TEXTO SAMELINE", :sameline
21
+ ToolsDisplay.show 'TEXTO SAMELINE', :sameline
23
22
  $stdout = old_stdout
24
23
  assert_equal "\e[0;39;49mTEXTO SAMELINE\e[0m", captured_stdio.string
25
24
  end
@@ -29,7 +28,7 @@ class ToolsModuleTest < Minitest::Test
29
28
  old_stdout = $stdout
30
29
  captured_stdio = StringIO.new('', 'w')
31
30
  $stdout = captured_stdio
32
- ToolsDisplay.show_colorize "red".red+ " " + "white".white
31
+ ToolsDisplay.show_colorize 'red'.red + ' ' + 'white'.white
33
32
  $stdout = old_stdout
34
33
  assert_equal "\e[0;31;49mred\e[0m \e[0;37;49mwhite\e[0m\n", captured_stdio.string
35
34
  end
@@ -39,15 +38,13 @@ class ToolsModuleTest < Minitest::Test
39
38
  old_stdout = $stdout
40
39
  captured_stdio = StringIO.new('', 'w')
41
40
  $stdout = captured_stdio
42
- ToolsDisplay.show "red".red+ " " + "white".white, :colorized
41
+ ToolsDisplay.show 'red'.red + ' ' + 'white'.white, :colorized
43
42
  $stdout = old_stdout
44
43
  assert_equal "\e[0;31;49mred\e[0m \e[0;37;49mwhite\e[0m\n", captured_stdio.string
45
44
  end
46
45
 
47
46
  def test_dislay_E_error
48
47
  result = ToolsDisplay.show []
49
- assert_equal "Array", result
48
+ assert_equal 'Array', result
50
49
  end
51
-
52
-
53
- end
50
+ end
@@ -1,32 +1,32 @@
1
1
  class ToolsModuleTest < Minitest::Test
2
-
3
2
  def self.test_order
4
3
  :sorted
5
4
  end
6
5
 
7
6
  def test_file_A_purge
8
7
  mock = MiniTest::Mock.new
9
- def mock.delete *args; Array; end
8
+ def mock.delete(*_args)
9
+ Array
10
+ end
10
11
  File.stub :delete, mock do
11
- assert_equal (ToolsFiles.purge_files (File.dirname __dir__)+'/pkg', '*.gem', 1).class, Array
12
+ assert_equal (ToolsFiles.purge_files (File.dirname __dir__) + '/pkg', '*.gem', 1).class, Array
12
13
  end
13
14
  end
14
15
 
15
16
  def test_file_B_create_dir
16
17
  mock = MiniTest::Mock.new
17
- def mock.mkdir *args; String; end
18
+ def mock.mkdir(*_args)
19
+ String
20
+ end
18
21
  Dir.stub :mkdir, mock do
19
- assert_equal (ToolsFiles.create_dir (File.dirname __dir__)+'/pkg', 'minitest').class, String
20
- assert_equal (ToolsFiles.create_dir (File.dirname __dir__)+'/pkg2', 'minitest').class, String
22
+ assert_equal (ToolsFiles.create_dir (File.dirname __dir__) + '/pkg', 'minitest').class, String
23
+ assert_equal (ToolsFiles.create_dir (File.dirname __dir__) + '/pkg2', 'minitest').class, String
21
24
  end
22
25
  end
23
26
 
24
- def test_file_C_create_file
25
- mock = MiniTest::Mock.new
26
- def mock.open *args; String; end
27
- File.stub :open, mock do
28
- assert_equal (ToolsFiles.create_file (File.dirname __dir__)+'/pkg', 'minitest', 'minitest').class, String
29
- end
27
+ def test_file_C_create_delete_file
28
+ ToolsFiles.create_file (File.dirname __dir__), '/create_file', 'teste'
29
+ ToolsFiles.remove_file (File.dirname __dir__) + '/create_file'
30
30
  end
31
31
 
32
32
  def test_file_D_load_file
@@ -44,21 +44,17 @@ class ToolsModuleTest < Minitest::Test
44
44
  end
45
45
 
46
46
  def test_file_G_open_file
47
+
47
48
  mock = MiniTest::Mock.new
48
- def mock.open *args; true; end
49
+ def mock.open(*_args)
50
+ true
51
+ end
49
52
  TTY::Editor.stub :open, mock do
50
- assert_equal (ToolsFiles.open_file '').class, Minitest::Mock
51
- assert_equal (ToolsFiles.open_file '', :vi).class, Minitest::Mock
53
+ file = (File.dirname __dir__) + '/TODO.txt'
54
+ ToolsFiles.open_file file, :vi
55
+ ToolsFiles.open_file file
52
56
  end
53
57
  end
54
58
 
55
59
 
56
- def test_file_H_remove_file
57
- mock = MiniTest::Mock.new
58
- def mock.remove_file *args; String; end
59
- FileUtils.stub :remove_file, mock do
60
- assert_equal (ToolsFiles.remove_file (File.dirname __dir__)+'/pkg').class, Minitest::Mock
61
- end
62
- end
63
-
64
- end
60
+ end
@@ -1,5 +1,4 @@
1
1
  class ToolsModuleTest < Minitest::Test
2
-
3
2
  def self.test_order
4
3
  :sorted
5
4
  end
@@ -8,60 +7,51 @@ class ToolsModuleTest < Minitest::Test
8
7
  data = {
9
8
  'k1' => 100,
10
9
  'k2' => 'v2',
11
- :k3 => {
12
- :a => 100,
13
- },
10
+ :k3 => {
11
+ a: 100
12
+ }
14
13
  }
15
14
  result = {
16
- "k1" => 100,
17
- "k2" => "v2",
18
- :k3 => {
19
- :a => 100,
20
- :k2 => 200
15
+ 'k1' => 100,
16
+ 'k2' => 'v2',
17
+ :k3 => {
18
+ a: 100,
19
+ k2: 200
21
20
  },
22
- :k1 => 100,
21
+ :k1 => 100
23
22
  }
24
- data.rmerge!( {:k1 => 100} )
25
- data.rmerge!( {:k3 => {:k2 => 200}})
23
+ data.rmerge!(k1: 100)
24
+ data.rmerge!(k3: { k2: 200 })
26
25
  assert_equal data, result
27
26
 
28
27
  result_merge = {
29
- "k1" => 100,
30
- "k2" => "v2",
31
- :k3 => {
32
- :a => 100,
33
- :k2 => 200
34
- },
35
- :k1 => 100
28
+ 'k1' => 100,
29
+ 'k2' => 'v2',
30
+ :k3 => {
31
+ a: 100,
32
+ k2: 200
33
+ },
34
+ :k1 => 100
36
35
  }
37
36
 
38
- hash = data.rmerge( {:k1 => 100} )
37
+ hash = data.rmerge(k1: 100)
39
38
  assert_equal hash, result_merge
40
39
 
41
- x = {:k1 => 100 , :k2 => { :k3 => {:a => 100}}}
42
- assert_equal x.rblank, {:k2 => {:k3 => {}}}
43
- assert_equal x.rblank!, {:k2 => {:k3 => {}}}
40
+ x = { k1: 100, k2: { k3: { a: 100 } } }
41
+ assert_equal x.rblank, k2: { k3: {} }
42
+ assert_equal x.rblank!, k2: { k3: {} }
44
43
 
45
- x = {:k1 => 100 , :k2 => { :k3 => {:a => 100}}}
44
+ x = { k1: 100, k2: { k3: { a: 100 } } }
46
45
  y = x.rblank
47
46
  diff = x.diff y
48
- assert_equal diff, {:k1=>[100, nil], :k2=>{:k3=>{:a=>[100, nil]}}}
49
-
50
-
51
- x = {:k1 => 100 , :k2 => { :k3 => {:a => 100}}}
52
- y = x.nested_set [:k2,:k3,:a], 200
53
- assert_equal x, {:k1 => 100 , :k2 => { :k3 => {:a => 200}}}
47
+ assert_equal diff, k1: [100, nil], k2: { k3: { a: [100, nil] } }
54
48
 
49
+ x = { k1: 100, k2: { k3: { a: 100 } } }
50
+ y = x.nested_set %i[k2 k3 a], 200
51
+ assert_equal x, k1: 100, k2: { k3: { a: 200 } }
55
52
  end
56
-
57
-
58
-
59
-
60
-
61
53
  end
62
54
 
63
-
64
-
65
55
  # module HashRecursiveBlank
66
56
  # def rblank
67
57
  # r = {}
@@ -124,7 +114,6 @@ end
124
114
  # end
125
115
  # end
126
116
 
127
-
128
117
  # class Hash
129
118
 
130
119
  # # ensures nested hash from keys, and sets final key to value
@@ -1,5 +1,4 @@
1
1
  class ToolsModuleTest < Minitest::Test
2
-
3
2
  def self.test_order
4
3
  :sorted
5
4
  end
@@ -8,7 +7,7 @@ class ToolsModuleTest < Minitest::Test
8
7
  ToolsFiles.remove_file (File.dirname __dir__) + '/teste.log'
9
8
  ToolsLog.create_log_file 'test', (File.dirname __dir__) + '/teste.log'
10
9
  ToolsLog.create_log_file 'test', (File.dirname __dir__) + '/teste.log'
11
- FileUtils.touch (File.dirname __dir__) + '/teste.log', :mtime => (Time.now - 86400)
10
+ FileUtils.touch (File.dirname __dir__) + '/teste.log', mtime: (Time.now - 86_400)
12
11
  ToolsLog.test_info 'Minitest.: test_log'
13
12
  ToolsLog.test_warn 'Minitest.: test_log'
14
13
  ToolsLog.test_error 'Minitest.: test_log'
@@ -17,5 +16,4 @@ class ToolsModuleTest < Minitest::Test
17
16
  ToolsLog.test_ucolorx 'Minitest.: test_log'
18
17
  ToolsFiles.remove_file (File.dirname __dir__) + '/teste.log'
19
18
  end
20
-
21
- end
19
+ end
@@ -1,5 +1,4 @@
1
1
  class ToolsModuleTest < Minitest::Test
2
-
3
2
  def self.test_order
4
3
  :sorted
5
4
  end
@@ -15,209 +14,192 @@ class ToolsModuleTest < Minitest::Test
15
14
  assert_equal (ToolsNet.validate_ipaddress ip)[:type], 'ip'
16
15
  assert_equal (ToolsNet.validate_ipaddress '100.0.0.0/28')[:status], true
17
16
  assert_equal (ToolsNet.validate_ipaddress '100.0.0.0/28')[:type], 'mask'
18
- assert_equal (ToolsNet.validate_ipaddress ip+'x')[:status], false
17
+ assert_equal (ToolsNet.validate_ipaddress ip + 'x')[:status], false
19
18
  assert_equal (ToolsNet.validate_ipaddress '100.0.0.0/28x')[:status], false
20
19
  assert_equal (ToolsNet.is_backend? '10.1.2.3'), true
21
20
  assert_equal (ToolsNet.is_backend? '201.0.0.1'), false
22
21
  assert_equal (ToolsNet.valid_network? ip), false
23
22
  assert_equal (ToolsNet.valid_network? '110.0.0.0/28'), true
24
- assert_equal (ToolsNet.resolv_dns 'www.wikipedia.org'), "208.80.154.224"
23
+ assert_equal (ToolsNet.resolv_dns 'www.wikipedia.org'), '208.80.154.224'
25
24
  assert_nil (ToolsNet.resolv_dns 'www.wikipedia.orgx')
26
- assert_equal (ToolsNet.resolv_ip_name "208.80.154.224"), "text-lb.eqiad.wikimedia.org"
27
- assert_equal (ToolsNet.resolv_ip_name "208.80.154.224x"), "cannot interpret as address: 208.80.154.224x"
25
+ assert_equal (ToolsNet.resolv_ip_name '208.80.154.224'), 'text-lb.eqiad.wikimedia.org'
26
+ assert_equal (ToolsNet.resolv_ip_name '208.80.154.224x'), 'cannot interpret as address: 208.80.154.224x'
28
27
  end
29
28
 
30
29
  def test_net_C_valid_port
31
30
  assert_equal (ToolsNet.valid_port? 8888), true
32
31
  assert_equal (ToolsNet.valid_port? -1), false
33
32
  assert_equal (ToolsNet.valid_port? 0), false
34
- assert_equal (ToolsNet.valid_port? 100000), false
33
+ assert_equal (ToolsNet.valid_port? 100_000), false
35
34
  end
36
35
 
37
-
38
36
  def test_net_D_doreq
39
37
  resource = RestClient::Resource.new('www.google.com')
40
- validate_opts = {quit_on_error: false}
38
+ validate_opts = { quit_on_error: false }
41
39
  method_opts = {}
42
- params={:method => :get}
40
+ params = { method: :get }
43
41
  uri = ''
44
- if params.has_key? :expected
45
- validate_opts[:expected] = params[:expected]
46
- end
47
- if params.has_key? :data
48
- method_opts = {:data => params[:data].to_json}
49
- end
50
- result = ToolsNet.doreq resource,
51
- uri,
52
- params[:method],
53
- show_progress: true,
54
- method_opts: method_opts,
55
- validate_opts: validate_opts,
56
- retry_opts: {
57
- attempts: 1,
58
- when_res: [nil, [], {}, ''],
59
- when_code: []}
42
+ validate_opts[:expected] = params[:expected] if params.key? :expected
43
+ method_opts = { data: params[:data].to_json } if params.key? :data
44
+ result = ToolsNet.doreq resource,
45
+ uri,
46
+ params[:method],
47
+ show_progress: true,
48
+ method_opts: method_opts,
49
+ validate_opts: validate_opts,
50
+ retry_opts: {
51
+ attempts: 1,
52
+ when_res: [nil, [], {}, ''],
53
+ when_code: []
54
+ }
60
55
  assert_equal result.code, 200
61
56
  end
62
-
63
-
64
57
  end
65
58
 
66
-
67
-
68
-
69
- # # Resolv a ip to a dns.
70
- # #
71
- # # @param ip variable ip to resolv
72
- # # @return [String] Dns name resolved
73
- # def self.resolv_ip_name ip
74
- # s = ''
75
- # begin
76
- # ret = Resolv.new.getname(ip)
77
- # return ret.instance_variable_get('@labels').join('.')
78
- # rescue Exception => e
79
- # case e.message
80
- # when "Dnsruby::NXDomain"
81
- # return nil
82
- # else
83
- # return e.message
84
- # end
85
- # end
86
- # return s.strip
87
- # end
88
-
89
-
90
- # # Resolv a dns to a ip.
91
- # #
92
- # # @param domain variable ip to resolv
93
- # # @return [String] Dns address resolved
94
- # def self.resolv_dns domain
95
- # begin
96
- # dns = Dnsruby::DNS.new()
97
- # ret = dns.getaddress(domain).to_s
98
- # rescue Exception => e
99
- # case e.message
100
- # when "Dnsruby::NXDomain"
101
- # return nil
102
- # else
103
- # return e.message
104
- # end
105
- # end
106
- # return ret
107
- # end
108
-
109
-
110
- # # Do the request, validate and decode response and do the retries if needed
111
- # #
112
- # # - restclient_obj: initialized RestClient object
113
- # # - path: URL path to request
114
- # # - method: symbol for HTTP Method to request
115
- # # - method_opts: options as passed to a RestClient call
116
- # # - validate_opts: options for response validation as used with
117
- # # validate_decode_response()
118
- # # - retry_opts: when_res: [nil, [], {}, 'str'], when_code: [404, 500],
119
- # # conditionals to retry even if no exceptions were catched
120
- # # @param restclient_obj Rest Object
121
- # # @param path path
122
- # # @param method method
123
- # # @param method_opts method opts
124
- # # @param validate_opts validate opts
125
- # # @param retry_opts retry opts
126
- # # @param show_progress default false
127
- # def self.doreq( restclient_obj, path, method, method_opts: {},validate_opts: {}, retry_opts: {}, show_progress: false)
128
- # res = nil
129
- # code = nil
130
- # data = method_opts.fetch(:data, nil)
131
- # method_opts.delete(:data)
132
-
133
- # # Retry loop due to:
134
- # # - 404 from Router API right after applying patch over a target
135
- # # - Intermittent connection reset from Manager API (HTTPS)
136
- # retries = retry_opts.fetch(:attempts, 10)
137
- # 1.upto(retries) do |try|
138
- # flag_error = false
139
- # # The request
140
- # begin
141
- # restclient_obj[path].send(method, *data, **method_opts) do |response, request, result|
142
- # res = validate_decode_response(response, request, result, validate_opts)
143
- # code = result.code.to_i
144
- # end
145
- # rescue Exception => error
146
- # flag_error = true
147
- # end
148
- # # Other conditionals to retry
149
- # unless retry_opts.empty?
150
- # if retry_opts.has_key?(:when_res)
151
- # flag_error = true if retry_opts[:when_res].include?(res)
152
- # end
153
- # if retry_opts.has_key?(:when_code)
154
- # flag_error = true if retry_opts[:when_code].include?(code)
155
- # end
156
- # end
157
- # return res unless flag_error # got response, break the loop
158
- # doReqMSG = sprintf "%d/%d", try, retries
159
- # if show_progress
160
- # ap doReqMSG
161
- # end
162
- # if try >= retries
163
- # ap doreq_code
164
- # return nil
165
- # else
166
- # sleep 1 # wait before next
167
- # end
168
- # end
169
- # end
170
-
171
- # # Return a valid decode response.
172
- # #
173
- # # @param response
174
- # # @param request
175
- # # @param result
176
- # # @param validate_opts
177
- # # @return [Object type] Array or Proc or String or Error
178
- # def self.validate_decode_response response, request, result, validate_opts
179
- # if validate_opts.has_key? :expected
180
- # expected = validate_opts[:expected]
181
- # case expected.class.name
182
- # when 'Array'
183
- # if validate_opts[:expected].include? response
184
- # return true
185
- # else
186
- # return false
187
- # end
188
- # when 'Proc'
189
- # response = expected.call(response, request, result)
190
- # return response
191
- # when 'String'
192
- # return result if validate_opts[:expected].eql? 'result'
193
- # return request if validate_opts[:expected].eql? 'request'
194
- # return response if validate_opts[:expected].eql? 'response'
195
- # else
196
- # ap expected.class.name
197
- # return response
198
- # end
199
- # else
200
- # return response
201
- # end
202
- # return true
203
- # end
204
-
205
-
206
- # # Validate.: port number between valid range?.
207
- # #
208
- # # @param port number to be validate.
209
- # # @return [Boolean]
210
- # def self.valid_port? port
211
- # if port.to_s.strip.match(/^\d{1,5}(?!\d)$/).nil?
212
- # return false
213
- # end
214
- # unless port.to_i.between?(1, 65535)
215
- # return false
216
- # end
217
- # return true
218
- # end
219
-
220
-
221
-
222
-
223
-
59
+ # # Resolv a ip to a dns.
60
+ # #
61
+ # # @param ip variable ip to resolv
62
+ # # @return [String] Dns name resolved
63
+ # def self.resolv_ip_name ip
64
+ # s = ''
65
+ # begin
66
+ # ret = Resolv.new.getname(ip)
67
+ # return ret.instance_variable_get('@labels').join('.')
68
+ # rescue Exception => e
69
+ # case e.message
70
+ # when "Dnsruby::NXDomain"
71
+ # return nil
72
+ # else
73
+ # return e.message
74
+ # end
75
+ # end
76
+ # return s.strip
77
+ # end
78
+
79
+ # # Resolv a dns to a ip.
80
+ # #
81
+ # # @param domain variable ip to resolv
82
+ # # @return [String] Dns address resolved
83
+ # def self.resolv_dns domain
84
+ # begin
85
+ # dns = Dnsruby::DNS.new()
86
+ # ret = dns.getaddress(domain).to_s
87
+ # rescue Exception => e
88
+ # case e.message
89
+ # when "Dnsruby::NXDomain"
90
+ # return nil
91
+ # else
92
+ # return e.message
93
+ # end
94
+ # end
95
+ # return ret
96
+ # end
97
+
98
+ # # Do the request, validate and decode response and do the retries if needed
99
+ # #
100
+ # # - restclient_obj: initialized RestClient object
101
+ # # - path: URL path to request
102
+ # # - method: symbol for HTTP Method to request
103
+ # # - method_opts: options as passed to a RestClient call
104
+ # # - validate_opts: options for response validation as used with
105
+ # # validate_decode_response()
106
+ # # - retry_opts: when_res: [nil, [], {}, 'str'], when_code: [404, 500],
107
+ # # conditionals to retry even if no exceptions were catched
108
+ # # @param restclient_obj Rest Object
109
+ # # @param path path
110
+ # # @param method method
111
+ # # @param method_opts method opts
112
+ # # @param validate_opts validate opts
113
+ # # @param retry_opts retry opts
114
+ # # @param show_progress default false
115
+ # def self.doreq( restclient_obj, path, method, method_opts: {},validate_opts: {}, retry_opts: {}, show_progress: false)
116
+ # res = nil
117
+ # code = nil
118
+ # data = method_opts.fetch(:data, nil)
119
+ # method_opts.delete(:data)
120
+
121
+ # # Retry loop due to:
122
+ # # - 404 from Router API right after applying patch over a target
123
+ # # - Intermittent connection reset from Manager API (HTTPS)
124
+ # retries = retry_opts.fetch(:attempts, 10)
125
+ # 1.upto(retries) do |try|
126
+ # flag_error = false
127
+ # # The request
128
+ # begin
129
+ # restclient_obj[path].send(method, *data, **method_opts) do |response, request, result|
130
+ # res = validate_decode_response(response, request, result, validate_opts)
131
+ # code = result.code.to_i
132
+ # end
133
+ # rescue Exception => error
134
+ # flag_error = true
135
+ # end
136
+ # # Other conditionals to retry
137
+ # unless retry_opts.empty?
138
+ # if retry_opts.has_key?(:when_res)
139
+ # flag_error = true if retry_opts[:when_res].include?(res)
140
+ # end
141
+ # if retry_opts.has_key?(:when_code)
142
+ # flag_error = true if retry_opts[:when_code].include?(code)
143
+ # end
144
+ # end
145
+ # return res unless flag_error # got response, break the loop
146
+ # doReqMSG = sprintf "%d/%d", try, retries
147
+ # if show_progress
148
+ # ap doReqMSG
149
+ # end
150
+ # if try >= retries
151
+ # ap doreq_code
152
+ # return nil
153
+ # else
154
+ # sleep 1 # wait before next
155
+ # end
156
+ # end
157
+ # end
158
+
159
+ # # Return a valid decode response.
160
+ # #
161
+ # # @param response
162
+ # # @param request
163
+ # # @param result
164
+ # # @param validate_opts
165
+ # # @return [Object type] Array or Proc or String or Error
166
+ # def self.validate_decode_response response, request, result, validate_opts
167
+ # if validate_opts.has_key? :expected
168
+ # expected = validate_opts[:expected]
169
+ # case expected.class.name
170
+ # when 'Array'
171
+ # if validate_opts[:expected].include? response
172
+ # return true
173
+ # else
174
+ # return false
175
+ # end
176
+ # when 'Proc'
177
+ # response = expected.call(response, request, result)
178
+ # return response
179
+ # when 'String'
180
+ # return result if validate_opts[:expected].eql? 'result'
181
+ # return request if validate_opts[:expected].eql? 'request'
182
+ # return response if validate_opts[:expected].eql? 'response'
183
+ # else
184
+ # ap expected.class.name
185
+ # return response
186
+ # end
187
+ # else
188
+ # return response
189
+ # end
190
+ # return true
191
+ # end
192
+
193
+ # # Validate.: port number between valid range?.
194
+ # #
195
+ # # @param port number to be validate.
196
+ # # @return [Boolean]
197
+ # def self.valid_port? port
198
+ # if port.to_s.strip.match(/^\d{1,5}(?!\d)$/).nil?
199
+ # return false
200
+ # end
201
+ # unless port.to_i.between?(1, 65535)
202
+ # return false
203
+ # end
204
+ # return true
205
+ # end