avmtrf1-tools 0.29.0 → 0.32.0
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.
- checksums.yaml +4 -4
- data/lib/avmtrf1/check_point/session.rb +10 -9
- data/lib/avmtrf1/esosti/instance/changed.rb +8 -5
- data/lib/avmtrf1/executables.rb +10 -2
- data/lib/avmtrf1/forponto/user/month.rb +1 -1
- data/lib/avmtrf1/inventario_sistemas.rb +40 -0
- data/lib/avmtrf1/inventario_sistemas/parser.rb +42 -0
- data/lib/avmtrf1/inventario_sistemas/parser/body.rb +27 -0
- data/lib/avmtrf1/inventario_sistemas/parser/body_row.rb +12 -0
- data/lib/avmtrf1/inventario_sistemas/parser/header.rb +38 -0
- data/lib/avmtrf1/inventario_sistemas/parser/header_column.rb +27 -0
- data/lib/avmtrf1/inventario_sistemas/site_build.rb +71 -0
- data/lib/avmtrf1/inventario_sistemas/site_build/html_page_base.rb +41 -0
- data/lib/avmtrf1/inventario_sistemas/site_build/html_page_base/elements.rb +54 -0
- data/lib/avmtrf1/inventario_sistemas/site_build/html_page_base/layout.rb +55 -0
- data/lib/avmtrf1/inventario_sistemas/site_build/html_page_base/stylesheet.css +57 -0
- data/lib/avmtrf1/inventario_sistemas/site_build/index.rb +20 -0
- data/lib/avmtrf1/inventario_sistemas/site_build/sistema.rb +62 -0
- data/lib/avmtrf1/inventario_sistemas/site_build/sistemas_index.rb +31 -0
- data/lib/avmtrf1/patches/eac_launcher/git/base.rb +0 -15
- data/lib/avmtrf1/redmine/instance.rb +2 -1
- data/lib/avmtrf1/rest_provider/instance.rb +13 -55
- data/lib/avmtrf1/rest_provider/instance/issues.rb +30 -0
- data/lib/avmtrf1/rest_provider/request.rb +44 -0
- data/lib/avmtrf1/rest_provider/response.rb +77 -0
- data/lib/avmtrf1/tools/application.rb +13 -0
- data/lib/avmtrf1/tools/runner.rb +16 -26
- data/lib/avmtrf1/tools/runner/check_point.rb +1 -1
- data/lib/avmtrf1/tools/runner/check_point/login.rb +1 -1
- data/lib/avmtrf1/tools/runner/esosti.rb +1 -1
- data/lib/avmtrf1/tools/runner/esosti/changed.rb +7 -2
- data/lib/avmtrf1/tools/runner/esosti/fetch.rb +7 -2
- data/lib/avmtrf1/tools/runner/esosti/request.rb +88 -0
- data/lib/avmtrf1/tools/runner/forponto.rb +1 -1
- data/lib/avmtrf1/tools/runner/forponto/espelho.rb +1 -1
- data/lib/avmtrf1/tools/runner/forponto/marcacoes.rb +1 -1
- data/lib/avmtrf1/tools/runner/forponto/resumos.rb +1 -1
- data/lib/avmtrf1/tools/runner/forponto/saldo.rb +1 -1
- data/lib/avmtrf1/tools/runner/git.rb +1 -1
- data/lib/avmtrf1/tools/runner/git/issues_check.rb +1 -1
- data/lib/avmtrf1/tools/runner/git/push_large.rb +1 -1
- data/lib/avmtrf1/tools/runner/inventario_sistemas.rb +71 -0
- data/lib/avmtrf1/tools/runner/openvpn.rb +38 -0
- data/lib/avmtrf1/tools/runner/oracle.rb +1 -1
- data/lib/avmtrf1/tools/runner/oracle/query.rb +1 -1
- data/lib/avmtrf1/tools/runner/oracle/source_get.rb +1 -1
- data/lib/avmtrf1/tools/runner/oracle/user_clear.rb +1 -1
- data/lib/avmtrf1/tools/runner/php.rb +8 -15
- data/lib/avmtrf1/tools/runner/php/docker.rb +19 -29
- data/lib/avmtrf1/tools/runner/red.rb +1 -1
- data/lib/avmtrf1/tools/runner/trf1_dspace_base0.rb +1 -1
- data/lib/avmtrf1/tools/runner/trf1_dspace_base0/deploy.rb +3 -3
- data/lib/avmtrf1/tools/version.rb +1 -1
- data/lib/avmtrf1/trf1_dspace_base0/deploy.rb +3 -3
- metadata +56 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d9aa73e79e88cb8fc99c82fcba49ed37759cbedf50e56638043a5c2d2eb21ead
|
4
|
+
data.tar.gz: 10cd681c9fdf7204ad4a2f1b114618cb1423275488dbf4a10c6b9131109a9d82
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 25533ea02ba54e86d4db42d91c79d9d5c8dcaf08f91530e0a8b94cfce4bdf13a32bec4972186d021ea1716111dc352a57e6fb929bef1c7b8f3d3ce6e389e07fc
|
7
|
+
data.tar.gz: 2999ace653f5ae5a4d97ac0ab859e52ba103ac2a7907f27d7d6de11017b6ad2b3b86635922c28040d9a1accacd4f52c005baa2c79bbbe93538e16d05b633bfce
|
@@ -2,10 +2,13 @@
|
|
2
2
|
|
3
3
|
require 'avmtrf1/ad_user'
|
4
4
|
require 'avmtrf1/check_point/session/login'
|
5
|
+
require 'eac_ruby_utils/core_ext'
|
5
6
|
|
6
7
|
module Avmtrf1
|
7
8
|
module CheckPoint
|
8
9
|
class Session
|
10
|
+
enable_simple_cache
|
11
|
+
|
9
12
|
ROOT_URL = 'https://cp.trf1.jus.br'
|
10
13
|
LOGIN_URL = "#{ROOT_URL}/connect/PortalMain"
|
11
14
|
LOGGED_TITLE_TEXT = 'Network Access Granted'
|
@@ -24,15 +27,7 @@ module Avmtrf1
|
|
24
27
|
end
|
25
28
|
end
|
26
29
|
|
27
|
-
|
28
|
-
|
29
|
-
def initialize(username, password, driver_options = {})
|
30
|
-
@username = username
|
31
|
-
@password = password
|
32
|
-
@session = ::Aranha::Selenium::Session.new(
|
33
|
-
driver_options.merge(accept_insecure_certs: true)
|
34
|
-
)
|
35
|
-
end
|
30
|
+
common_constructor :username, :password, :driver_options, default: [{}]
|
36
31
|
|
37
32
|
def logged?
|
38
33
|
session.navigate.to LOGIN_URL
|
@@ -54,6 +49,12 @@ module Avmtrf1
|
|
54
49
|
end
|
55
50
|
result_text
|
56
51
|
end
|
52
|
+
|
53
|
+
private
|
54
|
+
|
55
|
+
def session_uncached
|
56
|
+
::Aranha::Selenium::Session.new(driver_options.merge(accept_insecure_certs: true))
|
57
|
+
end
|
57
58
|
end
|
58
59
|
end
|
59
60
|
end
|
@@ -1,19 +1,22 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'avmtrf1/esosti/raw_data_sanitizer'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
4
5
|
|
5
6
|
module Avmtrf1
|
6
7
|
module Esosti
|
7
8
|
class Instance < ::Avmtrf1::RestProvider::Instance
|
8
9
|
module Changed
|
9
10
|
def changed(since)
|
10
|
-
|
11
|
+
changed_request(since).response.body_data_or_raise
|
11
12
|
end
|
12
13
|
|
13
|
-
def
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
def changed_request(since)
|
15
|
+
request_json(changed_url_suffix(since)) do |data|
|
16
|
+
::Avmtrf1::Esosti::RawDataSanitizer.sanitize(
|
17
|
+
data.fetch('TICKETMboSet').fetch('TICKET')
|
18
|
+
).map { |ticket| ticket.fetch('Attributes').fetch('TICKETID').downcase }
|
19
|
+
end
|
17
20
|
end
|
18
21
|
|
19
22
|
def changed_url_suffix(since)
|
data/lib/avmtrf1/executables.rb
CHANGED
@@ -1,14 +1,22 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
3
5
|
module Avmtrf1
|
4
6
|
module Executables
|
5
7
|
class << self
|
8
|
+
enable_simple_cache
|
9
|
+
|
6
10
|
def env
|
7
11
|
::EacRubyUtils::Envs.local
|
8
12
|
end
|
9
13
|
|
10
|
-
|
11
|
-
|
14
|
+
private
|
15
|
+
|
16
|
+
%w[docker sudo].each do |program|
|
17
|
+
define_method(program.underscore + '_uncached') do
|
18
|
+
env.executable(program, '--version')
|
19
|
+
end
|
12
20
|
end
|
13
21
|
end
|
14
22
|
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
require 'roo'
|
5
|
+
|
6
|
+
module Avmtrf1
|
7
|
+
class InventarioSistemas
|
8
|
+
require_sub __FILE__, include_modules: true
|
9
|
+
|
10
|
+
SHEET_NAME = 'TRF1'
|
11
|
+
UNUSED_OFFSET = 1
|
12
|
+
UNUSED_SIZE = 2
|
13
|
+
HEADER_OFFSET = UNUSED_OFFSET + UNUSED_SIZE
|
14
|
+
HEADER_SIZE = 2
|
15
|
+
BODY_OFFSET = HEADER_OFFSET + HEADER_SIZE
|
16
|
+
|
17
|
+
enable_simple_cache
|
18
|
+
common_constructor :path do
|
19
|
+
self.path = path.to_pathname
|
20
|
+
end
|
21
|
+
|
22
|
+
def to_s
|
23
|
+
path.to_s
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def roo_uncached
|
29
|
+
::Roo::Spreadsheet.open(path.to_path)
|
30
|
+
end
|
31
|
+
|
32
|
+
def sheet_uncached
|
33
|
+
roo.sheet(SHEET_NAME) || raise("Sheet not found: \"#{SHEET_NAME}\"")
|
34
|
+
end
|
35
|
+
|
36
|
+
def sheet_row_count
|
37
|
+
sheet.last_row
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
require 'roo'
|
5
|
+
|
6
|
+
module Avmtrf1
|
7
|
+
class InventarioSistemas
|
8
|
+
class Parser
|
9
|
+
require_sub __FILE__, include_modules: true
|
10
|
+
|
11
|
+
SHEET_NAME = 'TRF1'
|
12
|
+
UNUSED_OFFSET = 1
|
13
|
+
UNUSED_SIZE = 2
|
14
|
+
HEADER_OFFSET = UNUSED_OFFSET + UNUSED_SIZE
|
15
|
+
HEADER_SIZE = 2
|
16
|
+
BODY_OFFSET = HEADER_OFFSET + HEADER_SIZE
|
17
|
+
|
18
|
+
enable_simple_cache
|
19
|
+
common_constructor :path do
|
20
|
+
self.path = path.to_pathname
|
21
|
+
end
|
22
|
+
|
23
|
+
def to_s
|
24
|
+
path.to_s
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def roo_uncached
|
30
|
+
::Roo::Spreadsheet.open(path.to_path)
|
31
|
+
end
|
32
|
+
|
33
|
+
def sheet_uncached
|
34
|
+
roo.sheet(SHEET_NAME) || raise("Sheet not found: \"#{SHEET_NAME}\"")
|
35
|
+
end
|
36
|
+
|
37
|
+
def sheet_row_count
|
38
|
+
sheet.last_row
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avmtrf1
|
6
|
+
class InventarioSistemas
|
7
|
+
class Parser
|
8
|
+
module Body
|
9
|
+
def body_rows_uncached
|
10
|
+
index = 0
|
11
|
+
r = []
|
12
|
+
loop do
|
13
|
+
raw_row_i = BODY_OFFSET + index
|
14
|
+
return r if raw_row_i > sheet.last_row
|
15
|
+
|
16
|
+
r << sheet.row(raw_row_i).map { |v| v.to_s.strip }
|
17
|
+
index += 1
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def body_rows_offset
|
22
|
+
Header::HEADER_ROW_OFFSET + Header::HEADER_ROWS_SIZE
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avmtrf1
|
6
|
+
class InventarioSistemas
|
7
|
+
class Parser
|
8
|
+
module Header
|
9
|
+
HEADER_ROW_OFFSET = 3
|
10
|
+
HEADER_ROWS_SIZE = 2
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def header_columns_uncached
|
15
|
+
r = []
|
16
|
+
last_main = nil
|
17
|
+
main_row.each_with_index do |main, index|
|
18
|
+
sub = sub_row[index]
|
19
|
+
main ||= last_main
|
20
|
+
raise "[main] is blank (Index: #{index}, Sub: #{sub})" if main.blank?
|
21
|
+
|
22
|
+
r << HeaderColumn.new(index, main, sub)
|
23
|
+
last_main = main if main.present?
|
24
|
+
end
|
25
|
+
r
|
26
|
+
end
|
27
|
+
|
28
|
+
def main_row_uncached
|
29
|
+
sheet.row(HEADER_ROW_OFFSET)
|
30
|
+
end
|
31
|
+
|
32
|
+
def sub_row_uncached
|
33
|
+
sheet.row(HEADER_ROW_OFFSET + 1)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avmtrf1
|
6
|
+
class InventarioSistemas
|
7
|
+
class Parser
|
8
|
+
class HeaderColumn
|
9
|
+
class << self
|
10
|
+
def build_id(main, sub)
|
11
|
+
"#{main}_#{sub || 'nil'}".downcase.parameterize
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
common_constructor :index, :main, :sub
|
16
|
+
|
17
|
+
def id
|
18
|
+
self.class.build_id(main, sub)
|
19
|
+
end
|
20
|
+
|
21
|
+
def key
|
22
|
+
main + sub.if_present('') { |v| "/#{v}" }
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avmtrf1
|
6
|
+
class InventarioSistemas
|
7
|
+
class SiteBuild
|
8
|
+
require_sub __FILE__
|
9
|
+
enable_simple_cache
|
10
|
+
common_constructor :input_file, :output_directory
|
11
|
+
|
12
|
+
UNIQUES = %w[index sistemas_index].freeze
|
13
|
+
|
14
|
+
def run
|
15
|
+
create_output_directory
|
16
|
+
build_uniques
|
17
|
+
build_sistemas
|
18
|
+
end
|
19
|
+
|
20
|
+
def column(main, sub)
|
21
|
+
indexed_columns.fetch(
|
22
|
+
::Avmtrf1::InventarioSistemas::Parser::HeaderColumn.build_id(main, sub)
|
23
|
+
)
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def build_uniques
|
29
|
+
UNIQUES.each { |unique| send(unique).build }
|
30
|
+
end
|
31
|
+
|
32
|
+
def build_sistemas
|
33
|
+
sistemas.each(&:build)
|
34
|
+
end
|
35
|
+
|
36
|
+
def create_output_directory
|
37
|
+
output_directory.mkpath
|
38
|
+
end
|
39
|
+
|
40
|
+
def parser_uncached
|
41
|
+
::Avmtrf1::InventarioSistemas::Parser.new(input_file)
|
42
|
+
end
|
43
|
+
|
44
|
+
def sistemas_uncached
|
45
|
+
parser.body_rows
|
46
|
+
.map { |body_row| new_sistema(body_row) }
|
47
|
+
.sort_by { |sistema| [sistema.title.downcase] }
|
48
|
+
end
|
49
|
+
|
50
|
+
def indexed_columns_uncached
|
51
|
+
parser.header_columns.map do |c|
|
52
|
+
[c.id, c]
|
53
|
+
end.to_h
|
54
|
+
end
|
55
|
+
|
56
|
+
def index_uncached
|
57
|
+
::Avmtrf1::InventarioSistemas::SiteBuild::Index.new(self, nil)
|
58
|
+
end
|
59
|
+
|
60
|
+
def sistemas_index_uncached
|
61
|
+
::Avmtrf1::InventarioSistemas::SiteBuild::SistemasIndex.new(self, index)
|
62
|
+
end
|
63
|
+
|
64
|
+
def new_sistema(body_row)
|
65
|
+
::Avmtrf1::InventarioSistemas::SiteBuild::Sistema.new(
|
66
|
+
self, sistemas_index, body_row
|
67
|
+
)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avmtrf1
|
6
|
+
class InventarioSistemas
|
7
|
+
class SiteBuild
|
8
|
+
class HtmlPageBase
|
9
|
+
require_sub __FILE__, include_modules: true
|
10
|
+
enable_console_speaker
|
11
|
+
common_constructor :site, :parent
|
12
|
+
|
13
|
+
SITE_TITLE = 'Inventário de Sistemas'
|
14
|
+
NAVBAR_SEPARATOR = ' > '
|
15
|
+
|
16
|
+
def build
|
17
|
+
infom "Building #{href}..."
|
18
|
+
output_path.write(output_content)
|
19
|
+
end
|
20
|
+
|
21
|
+
def href
|
22
|
+
"#{uid}.html"
|
23
|
+
end
|
24
|
+
|
25
|
+
def output_path
|
26
|
+
site.output_directory.join(href)
|
27
|
+
end
|
28
|
+
|
29
|
+
def uid
|
30
|
+
r = self.class.name.demodulize
|
31
|
+
r += "_#{id}" if respond_to?(:id)
|
32
|
+
r.parameterize
|
33
|
+
end
|
34
|
+
|
35
|
+
def site_title
|
36
|
+
SITE_TITLE.to_s
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'addressable'
|
4
|
+
|
5
|
+
module Avmtrf1
|
6
|
+
class InventarioSistemas
|
7
|
+
class SiteBuild
|
8
|
+
class HtmlPageBase
|
9
|
+
module Elements
|
10
|
+
def html_link(link_text, link_href)
|
11
|
+
"<a href=#{link_href}>#{link_text}</a>"
|
12
|
+
end
|
13
|
+
|
14
|
+
def html_linkfy(input)
|
15
|
+
output = url_or_text(input)
|
16
|
+
if output.is_a?(::Addressable::URI)
|
17
|
+
html_link(output, output)
|
18
|
+
else
|
19
|
+
output
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def html_table(columns, rows)
|
24
|
+
b = '<table><theader>'
|
25
|
+
b += html_table_row(columns, 'th', '')
|
26
|
+
b += '</theader><tbody>'
|
27
|
+
rows.each_with_index do |row, index|
|
28
|
+
b += html_table_row(row, 'td', (index % 2).zero? ? 'even' : 'odd')
|
29
|
+
end
|
30
|
+
b + '</tbody></theader>'
|
31
|
+
end
|
32
|
+
|
33
|
+
def html_table_row(values, tag, css_class)
|
34
|
+
begin_tag = "<#{tag} class='#{css_class}'>"
|
35
|
+
end_tag = "</#{tag}>"
|
36
|
+
'<tr>' + values.map { |v| begin_tag + v + end_tag }.join + "</tr>\n"
|
37
|
+
end
|
38
|
+
|
39
|
+
def self_html_link
|
40
|
+
html_link(title, href)
|
41
|
+
end
|
42
|
+
|
43
|
+
def url_or_text(input)
|
44
|
+
converted_input = input.gsub('\\', '/').gsub(%r{\A//}, 'smb://')
|
45
|
+
uri = ::Addressable::URI.parse(converted_input)
|
46
|
+
uri.scheme.present? && uri.host.present? ? uri : input
|
47
|
+
rescue Addressable::URI::InvalidURIError
|
48
|
+
input
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|