avmtrf1-tools 0.31.1 → 0.33.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/avmtrf1/active_directory/user.rb +3 -3
- data/lib/avmtrf1/check_point/session.rb +10 -9
- data/lib/avmtrf1/core_ext.rb +4 -0
- data/lib/avmtrf1/default_jira.rb +2 -2
- data/lib/avmtrf1/executables.rb +10 -2
- data/lib/avmtrf1/git/cached_repository.rb +2 -2
- data/lib/avmtrf1/git/issue_on_repository.rb +2 -2
- data/lib/avmtrf1/git/push_large.rb +4 -4
- data/lib/avmtrf1/git/push_large/lfs_commit.rb +5 -10
- data/lib/avmtrf1/git/push_large/lfs_commit/cache.rb +19 -0
- data/lib/avmtrf1/git/push_large/lfs_commit/checkout_previous_revision.rb +35 -0
- data/lib/avmtrf1/git/push_large/lfs_commit/commit_changes.rb +48 -0
- data/lib/avmtrf1/git/push_large/lfs_commit/helpers.rb +29 -0
- data/lib/avmtrf1/git/push_large/lfs_commit/pick_source_revision.rb +103 -0
- data/lib/avmtrf1/git/push_large/lfs_commit/push.rb +90 -0
- data/lib/avmtrf1/git/push_large/lfs_commit/track_large_files.rb +53 -0
- data/lib/avmtrf1/git/push_large/source_commit.rb +4 -7
- data/lib/avmtrf1/git/push_large/source_commit/push.rb +42 -0
- data/lib/avmtrf1/inventario_sistemas/site_build/html_page_base.rb +1 -1
- data/lib/avmtrf1/openvpn/config/builder.rb +59 -0
- data/lib/avmtrf1/openvpn/config/parser.rb +20 -0
- data/lib/avmtrf1/openvpn/config/parser/builder.rb +62 -0
- data/lib/avmtrf1/openvpn/config/parser/line.rb +47 -0
- data/lib/avmtrf1/openvpn/config/parser/simple.rb +27 -0
- data/lib/avmtrf1/openvpn/config/parser/tag.rb +39 -0
- data/lib/avmtrf1/patches.rb +3 -0
- data/lib/avmtrf1/patches/avm.rb +4 -0
- data/lib/avmtrf1/patches/avm/git.rb +4 -0
- data/lib/avmtrf1/patches/avm/git/issue.rb +4 -0
- data/lib/avmtrf1/patches/avm/launcher.rb +4 -0
- data/lib/avmtrf1/patches/avm/launcher/git.rb +4 -0
- data/lib/avmtrf1/patches/avm/launcher/git/base.rb +46 -0
- data/lib/avmtrf1/red/helper.rb +2 -2
- data/lib/avmtrf1/template.rb +2 -2
- data/lib/avmtrf1/tools/application.rb +13 -0
- data/lib/avmtrf1/tools/runner.rb +18 -25
- data/lib/avmtrf1/tools/runner/check_point.rb +3 -3
- data/lib/avmtrf1/tools/runner/check_point/login.rb +6 -6
- data/lib/avmtrf1/tools/runner/esosti.rb +4 -4
- data/lib/avmtrf1/tools/runner/esosti/changed.rb +5 -5
- data/lib/avmtrf1/tools/runner/esosti/fetch.rb +5 -5
- data/lib/avmtrf1/tools/runner/esosti/request.rb +5 -5
- data/lib/avmtrf1/tools/runner/forponto.rb +7 -7
- data/lib/avmtrf1/tools/runner/forponto/espelho.rb +6 -6
- data/lib/avmtrf1/tools/runner/forponto/marcacoes.rb +5 -5
- data/lib/avmtrf1/tools/runner/forponto/resumos.rb +6 -6
- data/lib/avmtrf1/tools/runner/forponto/saldo.rb +6 -6
- data/lib/avmtrf1/tools/runner/git.rb +2 -2
- data/lib/avmtrf1/tools/runner/git/issues_check.rb +8 -19
- data/lib/avmtrf1/tools/runner/git/push_large.rb +28 -19
- data/lib/avmtrf1/tools/runner/inventario_sistemas.rb +7 -9
- data/lib/avmtrf1/tools/runner/openvpn.rb +91 -0
- data/lib/avmtrf1/tools/runner/oracle.rb +16 -23
- data/lib/avmtrf1/tools/runner/oracle/query.rb +11 -13
- data/lib/avmtrf1/tools/runner/oracle/source_get.rb +18 -19
- data/lib/avmtrf1/tools/runner/oracle/user_clear.rb +8 -16
- data/lib/avmtrf1/tools/runner/php.rb +8 -15
- data/lib/avmtrf1/tools/runner/php/docker.rb +21 -31
- data/lib/avmtrf1/tools/runner/red.rb +22 -26
- data/lib/avmtrf1/tools/runner/trf1_dspace_base0.rb +10 -19
- data/lib/avmtrf1/tools/runner/trf1_dspace_base0/deploy.rb +2 -2
- data/lib/avmtrf1/tools/version.rb +1 -1
- data/template/avmtrf1/php/docker_image/Dockerfile.template +4 -1
- metadata +30 -93
- data/lib/avmtrf1/configs.rb +0 -24
- data/lib/avmtrf1/git/push_large/lfs_commit/_00_checkout_previous_revision.rb +0 -33
- data/lib/avmtrf1/git/push_large/lfs_commit/_01_cherry_pick_source_revision.rb +0 -89
- data/lib/avmtrf1/git/push_large/lfs_commit/_02_track_large_files.rb +0 -51
- data/lib/avmtrf1/git/push_large/lfs_commit/_03_commit_changes.rb +0 -46
- data/lib/avmtrf1/git/push_large/lfs_commit/_04_push.rb +0 -88
- data/lib/avmtrf1/git/push_large/lfs_commit/_cache.rb +0 -17
- data/lib/avmtrf1/git/push_large/lfs_commit/_helpers.rb +0 -27
- data/lib/avmtrf1/git/push_large/source_commit/_push.rb +0 -40
- data/lib/avmtrf1/patches/eac_launcher/git/base.rb +0 -43
@@ -0,0 +1,53 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Avmtrf1
|
4
|
+
module Git
|
5
|
+
class PushLarge
|
6
|
+
class LfsCommit
|
7
|
+
module TrackLargeFiles
|
8
|
+
private
|
9
|
+
|
10
|
+
EXTENSIONS_REQUIRED_TO_TRACK = %w[
|
11
|
+
bak bkp bmp bpm cfm chm dat db doc fla flv gz jar log mp3 mp4 otf pdf ppt psd rar rtf
|
12
|
+
swf ttf wav wmf wmv wmz woff woff2 xmind z zip
|
13
|
+
].freeze
|
14
|
+
|
15
|
+
def track_large_files_uncached
|
16
|
+
cherry_pick_source_revision
|
17
|
+
if lfs_file_min_size.present?
|
18
|
+
|
19
|
+
source_commit.files.each do |file|
|
20
|
+
next unless track_file_with_lfs?(file)
|
21
|
+
|
22
|
+
track_file(file)
|
23
|
+
end
|
24
|
+
raise 'None file was tracked' unless tracked_files.positive?
|
25
|
+
end
|
26
|
+
infov message('Tracked files'), @tracked_files
|
27
|
+
end
|
28
|
+
|
29
|
+
def track_file(file)
|
30
|
+
infov message('Tracking with LFS'), file
|
31
|
+
git.execute!('rm', '--cached', file.path)
|
32
|
+
git.execute!('lfs', 'track', file.path) unless tracked_file?(file)
|
33
|
+
@tracked_files += 1
|
34
|
+
end
|
35
|
+
|
36
|
+
def track_file_with_lfs?(file)
|
37
|
+
return false unless file.dst_size.positive?
|
38
|
+
|
39
|
+
required_extesion_to_track?(file) || (file.dst_size >= lfs_file_min_size)
|
40
|
+
end
|
41
|
+
|
42
|
+
def required_extesion_to_track?(file)
|
43
|
+
EXTENSIONS_REQUIRED_TO_TRACK.include?(::File.extname(file.path).gsub(/\A\./, ''))
|
44
|
+
end
|
45
|
+
|
46
|
+
def tracked_file?(file)
|
47
|
+
git.execute!('check-attr', '--all', '--', file.path).strip.present?
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -1,18 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'avm/git/commit'
|
4
|
-
require '
|
5
|
-
require 'eac_ruby_utils/simple_cache'
|
6
|
-
require 'eac_ruby_utils/require_sub'
|
4
|
+
require 'avmtrf1/core_ext'
|
7
5
|
|
8
6
|
module Avmtrf1
|
9
7
|
module Git
|
10
8
|
class PushLarge
|
11
9
|
class SourceCommit < ::Avm::Git::Commit
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
::EacRubyUtils.require_sub(__FILE__)
|
10
|
+
require_sub __FILE__, include_modules: true
|
11
|
+
enable_simple_cache
|
12
|
+
enable_speaker
|
16
13
|
|
17
14
|
attr_reader :push_large, :sha1, :no_lfs_max_size
|
18
15
|
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'filesize'
|
4
|
+
|
5
|
+
module Avmtrf1
|
6
|
+
module Git
|
7
|
+
class PushLarge
|
8
|
+
class SourceCommit
|
9
|
+
module Push
|
10
|
+
private
|
11
|
+
|
12
|
+
LFS_FILE_MIN_SIZES = [nil, 1_048_576, 524_288, 131_072].freeze
|
13
|
+
|
14
|
+
def pushed_revision_uncached
|
15
|
+
fs_cache.child('pushed_revision')
|
16
|
+
end
|
17
|
+
|
18
|
+
def run_pushs
|
19
|
+
return if LFS_FILE_MIN_SIZES.any? do |lfs_file_min_size|
|
20
|
+
lfs_commit = ::Avmtrf1::Git::PushLarge::LfsCommit.new(self, lfs_file_min_size)
|
21
|
+
lfs_commit.start_banner
|
22
|
+
push_with_lfs(lfs_commit)
|
23
|
+
end
|
24
|
+
|
25
|
+
raise 'Push de todos os commits falharam'
|
26
|
+
end
|
27
|
+
|
28
|
+
def push_with_lfs(lfs_commit)
|
29
|
+
if lfs_commit.push_ok?
|
30
|
+
pushed_revision.write(lfs_commit.commit.sha1)
|
31
|
+
success " * Pushed: #{pushed_revision.read}"
|
32
|
+
true
|
33
|
+
else
|
34
|
+
warn ' * Push failed'
|
35
|
+
false
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avmtrf1/openvpn/config/parser'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
require 'eac_ruby_utils/fs/temp'
|
6
|
+
|
7
|
+
module Avmtrf1
|
8
|
+
module Openvpn
|
9
|
+
module Config
|
10
|
+
class Builder
|
11
|
+
common_constructor :source_data do
|
12
|
+
unless source_data.is_a?(::Hash)
|
13
|
+
self.source_data = ::Avmtrf1::Openvpn::Config::Parser.new(source_data.to_s).data
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def data
|
18
|
+
[simple, tags].reject(&:blank?).join("\n")
|
19
|
+
end
|
20
|
+
|
21
|
+
def on_data_file
|
22
|
+
::EacRubyUtils::Fs::Temp.on_file do |file|
|
23
|
+
file.write(data)
|
24
|
+
yield(file)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def simple
|
29
|
+
source_data.fetch(:simple)
|
30
|
+
.map { |s| ::Shellwords.join([s.fetch(:attribute)] + s.fetch(:args)) }
|
31
|
+
.map { |s| "#{s}\n" }.join
|
32
|
+
end
|
33
|
+
|
34
|
+
def simple_add_or_update(name, args)
|
35
|
+
new_data = { attribute: name, args: args }
|
36
|
+
s = simple_find(name)
|
37
|
+
if s
|
38
|
+
s.merge!(new_data)
|
39
|
+
else
|
40
|
+
source_data.fetch(:simple) << new_data
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def tags
|
45
|
+
source_data.fetch(:tags).map { |t| tag_to_data(t) }
|
46
|
+
end
|
47
|
+
|
48
|
+
def tag_to_data(tag)
|
49
|
+
["<#{tag.fetch(:name)}>", tag.fetch(:content), "</#{tag.fetch(:name)}>"]
|
50
|
+
.map { |v| "#{v}\n" }.join
|
51
|
+
end
|
52
|
+
|
53
|
+
def simple_find(name)
|
54
|
+
source_data.fetch(:simple).find { |s| s.fetch(:attribute) == name }
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'aranha/parsers/base'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
|
6
|
+
module Avmtrf1
|
7
|
+
module Openvpn
|
8
|
+
module Config
|
9
|
+
class Parser < ::Aranha::Parsers::Base
|
10
|
+
require_sub __FILE__
|
11
|
+
|
12
|
+
def data
|
13
|
+
builder = ::Avmtrf1::Openvpn::Config::Parser::Builder.new
|
14
|
+
content.each_line { |line| builder.add_line(line) }
|
15
|
+
{ simple: builder.simple.map(&:data), tags: builder.tags.map(&:data) }
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avmtrf1/openvpn/config/parser/line'
|
4
|
+
require 'avmtrf1/openvpn/config/parser/simple'
|
5
|
+
require 'avmtrf1/openvpn/config/parser/tag'
|
6
|
+
|
7
|
+
module Avmtrf1
|
8
|
+
module Openvpn
|
9
|
+
module Config
|
10
|
+
class Parser < ::Aranha::Parsers::Base
|
11
|
+
class Builder
|
12
|
+
attr_reader :simple, :tags
|
13
|
+
|
14
|
+
def initialize
|
15
|
+
@simple = []
|
16
|
+
@tags = []
|
17
|
+
end
|
18
|
+
|
19
|
+
def add_line(line_text)
|
20
|
+
line = ::Avmtrf1::Openvpn::Config::Parser::Line.new(line_text)
|
21
|
+
if on_tag?
|
22
|
+
add_line_on_tag(line)
|
23
|
+
else
|
24
|
+
add_line_not_on_tag(line)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def add_line_on_tag(line)
|
29
|
+
if line.close_tag?
|
30
|
+
if line.tag_name != current_tag.name
|
31
|
+
raise("Closing tag \"#{line.tag_name}\" does not match current tag " \
|
32
|
+
"\"#{current_tag}\"")
|
33
|
+
end
|
34
|
+
|
35
|
+
current_tag.close
|
36
|
+
else
|
37
|
+
current_tag.add_line(line.text)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def add_line_not_on_tag(line)
|
42
|
+
return if line.blank_text?
|
43
|
+
|
44
|
+
if line.open_tag?
|
45
|
+
tags << ::Avmtrf1::Openvpn::Config::Parser::Tag.new(line.tag_name)
|
46
|
+
else
|
47
|
+
simple << ::Avmtrf1::Openvpn::Config::Parser::Simple.new(line.simple_parts)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def current_tag
|
52
|
+
tags.last
|
53
|
+
end
|
54
|
+
|
55
|
+
def on_tag?
|
56
|
+
tags.last.if_present(false, &:open?)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avmtrf1
|
6
|
+
module Openvpn
|
7
|
+
module Config
|
8
|
+
class Parser < ::Aranha::Parsers::Base
|
9
|
+
class Line
|
10
|
+
OPEN_TAG_PATTERN = /\A<(.+)>\z/.freeze
|
11
|
+
CLOSE_TAG_PATTERN = %r{\A</(.+)>\z}.freeze
|
12
|
+
SIMPLE_PATTERN = /\A(\S+)(?:\s+(\S.*))\z/.freeze
|
13
|
+
|
14
|
+
common_constructor :text do
|
15
|
+
self.text = text.rstrip
|
16
|
+
end
|
17
|
+
|
18
|
+
def simple_parts
|
19
|
+
::Shellwords.split(text)
|
20
|
+
end
|
21
|
+
|
22
|
+
def blank_text?
|
23
|
+
text.blank?
|
24
|
+
end
|
25
|
+
|
26
|
+
def open_tag?
|
27
|
+
OPEN_TAG_PATTERN.match?(text)
|
28
|
+
end
|
29
|
+
|
30
|
+
def close_tag?
|
31
|
+
CLOSE_TAG_PATTERN.match?(text)
|
32
|
+
end
|
33
|
+
|
34
|
+
def tag_name
|
35
|
+
if close_tag?
|
36
|
+
CLOSE_TAG_PATTERN.if_match(text) { |m| m[1] }
|
37
|
+
elsif open_tag?
|
38
|
+
OPEN_TAG_PATTERN.if_match(text) { |m| m[1] }
|
39
|
+
else
|
40
|
+
raise "Unmapped branch in #{__method__}"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avmtrf1
|
6
|
+
module Openvpn
|
7
|
+
module Config
|
8
|
+
class Parser < ::Aranha::Parsers::Base
|
9
|
+
class Simple
|
10
|
+
common_constructor :parts
|
11
|
+
|
12
|
+
def data
|
13
|
+
{ attribute: attribute, args: args }
|
14
|
+
end
|
15
|
+
|
16
|
+
def attribute
|
17
|
+
parts.first
|
18
|
+
end
|
19
|
+
|
20
|
+
def args
|
21
|
+
parts[1..-1]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avmtrf1
|
6
|
+
module Openvpn
|
7
|
+
module Config
|
8
|
+
class Parser < ::Aranha::Parsers::Base
|
9
|
+
class Tag
|
10
|
+
common_constructor :name do
|
11
|
+
@open = true
|
12
|
+
end
|
13
|
+
|
14
|
+
def add_line(text)
|
15
|
+
lines << text
|
16
|
+
end
|
17
|
+
|
18
|
+
def data
|
19
|
+
{ name: name, content: lines.join("\n") }
|
20
|
+
end
|
21
|
+
|
22
|
+
def open?
|
23
|
+
@open
|
24
|
+
end
|
25
|
+
|
26
|
+
def close
|
27
|
+
@open = false
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def lines
|
33
|
+
@lines ||= []
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/lib/avmtrf1/patches.rb
CHANGED
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/launcher/git/base'
|
4
|
+
require 'eac_ruby_utils/patch'
|
5
|
+
require 'active_support/concern'
|
6
|
+
|
7
|
+
module Avmtrf1
|
8
|
+
module Patches
|
9
|
+
module Avm
|
10
|
+
module Launcher
|
11
|
+
module Git
|
12
|
+
module Base
|
13
|
+
extend ActiveSupport::Concern
|
14
|
+
|
15
|
+
included do
|
16
|
+
include InstanceMethods
|
17
|
+
end
|
18
|
+
|
19
|
+
module InstanceMethods
|
20
|
+
def status_files
|
21
|
+
execute!('-c', 'core.quotepath=off', 'status', '--porcelain')
|
22
|
+
.each_line.map do |line|
|
23
|
+
parse_status_file(line)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def parse_status_file(line)
|
30
|
+
m = /\A(.)(.)\s*(\S.*)\z/.match(line.strip)
|
31
|
+
return ::OpenStruct.new(stage: m[1], dirty: m[2], path: m[3]) if m
|
32
|
+
|
33
|
+
raise "\"#{line.strip}\" did not match pattern"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
::EacRubyUtils.patch(
|
44
|
+
::Avm::Launcher::Git::Base,
|
45
|
+
::Avmtrf1::Patches::Avm::Launcher::Git::Base
|
46
|
+
)
|