avmtrf1-tools 0.37.0 → 0.38.2
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/Gemfile +2 -0
- data/lib/avmtrf1/git/gitlab.rb +1 -1
- data/lib/avmtrf1/git/push_large/lfs_commit/cache.rb +4 -2
- data/lib/avmtrf1/git/push_large/lfs_commit.rb +1 -1
- data/lib/avmtrf1/git/push_large/source_commit.rb +1 -1
- data/lib/avmtrf1/gitlab/repository.rb +1 -1
- data/lib/avmtrf1/{core_ext.rb → tools/core_ext.rb} +0 -0
- data/lib/avmtrf1/tools/msgraph/token_retrieve.rb +42 -0
- data/lib/avmtrf1/tools/msgraph.rb +11 -0
- data/lib/avmtrf1/tools/runner/app_src.rb +1 -1
- data/lib/avmtrf1/tools/runner/check_point/login.rb +1 -1
- data/lib/avmtrf1/tools/runner/check_point.rb +1 -1
- data/lib/avmtrf1/tools/runner/esosti/changed.rb +1 -1
- data/lib/avmtrf1/tools/runner/esosti/fetch.rb +1 -1
- data/lib/avmtrf1/tools/runner/esosti/request.rb +1 -1
- data/lib/avmtrf1/tools/runner/esosti.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/forponto.rb +1 -1
- data/lib/avmtrf1/tools/runner/git/gitlab/commit_link.rb +1 -1
- data/lib/avmtrf1/tools/runner/git/gitlab.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/git.rb +1 -1
- data/lib/avmtrf1/tools/runner/msgraph/token.rb +31 -0
- data/lib/avmtrf1/tools/runner/msgraph.rb +29 -0
- 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/oracle.rb +1 -1
- data/lib/avmtrf1/tools/runner/red.rb +1 -1
- data/lib/avmtrf1/tools/runner/trf1_dspace_base0.rb +1 -1
- data/lib/avmtrf1/tools/version.rb +1 -1
- data/template/avmtrf1/php/docker_image/Dockerfile.template +3 -0
- data/template/avmtrf1/php/docker_image/aux/apache_user.sh +32 -12
- data/template/avmtrf1/tools/msgraph/token_retrieve/python_retriever.py +85 -0
- metadata +8 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 037a6ec540a874c12392621c8b3f464d5361d98249b1e9119e8332b061de26ab
|
|
4
|
+
data.tar.gz: b620adfa7a3c73c3624f3333baf0964d4953c8be195d9b7e92a06c6ff0c1c0a9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3aa77327c882bf6f591e7cdfed791e226bca9789207ae8bb24040a9d5a959723349f933d1759e02bee96853a900ee282cd0b7199d2ac2c57e732b21a17a4e07b
|
|
7
|
+
data.tar.gz: e4574401f796466b176217b928b6e346f3d19119ba57c03bd98c5c78513c31e4ec58b52ef409202255c82adee9d98e7ca6dad4a2df017cbd07c0c30e3fbf7f3d
|
data/Gemfile
CHANGED
data/lib/avmtrf1/git/gitlab.rb
CHANGED
|
@@ -5,8 +5,10 @@ module Avmtrf1
|
|
|
5
5
|
class PushLarge
|
|
6
6
|
class LfsCommit
|
|
7
7
|
module Cache
|
|
8
|
-
def
|
|
9
|
-
source_commit.fs_cache.child(
|
|
8
|
+
def fs_cache
|
|
9
|
+
@fs_cache ||= source_commit.fs_cache.child(
|
|
10
|
+
lfs_file_min_size.present? ? lfs_file_min_size : 'nil'
|
|
11
|
+
)
|
|
10
12
|
end
|
|
11
13
|
|
|
12
14
|
%w[sha1 files_size push_pack_error].each do |attr|
|
|
File without changes
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'eac_rest/api'
|
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
|
5
|
+
require 'eac_ruby_utils/fs/temp'
|
|
6
|
+
require 'avmtrf1/template'
|
|
7
|
+
|
|
8
|
+
module Avmtrf1
|
|
9
|
+
module Tools
|
|
10
|
+
module Msgraph
|
|
11
|
+
class TokenRetrieve
|
|
12
|
+
enable_simple_cache
|
|
13
|
+
common_constructor :client_id
|
|
14
|
+
|
|
15
|
+
private
|
|
16
|
+
|
|
17
|
+
def python_retrieve_command(file)
|
|
18
|
+
::EacRubyUtils::Envs.local.command(python_retrieve_program_path, client_id, file)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# @return [Hash]
|
|
22
|
+
def result_uncached
|
|
23
|
+
::EacRubyUtils::Yaml.load(result_string)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# @return [String]
|
|
27
|
+
def result_string
|
|
28
|
+
::EacRubyUtils::Fs::Temp.on_file do |file|
|
|
29
|
+
raise ::RuntimeError, result.pretty_inspect unless python_retrieve_command(file.to_path)
|
|
30
|
+
.system
|
|
31
|
+
|
|
32
|
+
file.read
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def python_retrieve_program_path
|
|
37
|
+
template.child('python_retriever.py').path
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'avmtrf1/tools/core_ext'
|
|
4
|
+
require 'avmtrf1/tools/msgraph/token_retrieve'
|
|
5
|
+
|
|
6
|
+
module Avmtrf1
|
|
7
|
+
module Tools
|
|
8
|
+
class Runner
|
|
9
|
+
class Msgraph
|
|
10
|
+
class Token
|
|
11
|
+
runner_with :help, :output
|
|
12
|
+
|
|
13
|
+
def run
|
|
14
|
+
infov 'Client ID', token_retrieve.client_id
|
|
15
|
+
run_output
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
private
|
|
19
|
+
|
|
20
|
+
def output_content
|
|
21
|
+
::EacRubyUtils::Yaml.dump(token_retrieve.result)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def token_retrieve_uncached
|
|
25
|
+
::Avmtrf1::Tools::Msgraph::TokenRetrieve.new(runner_context.call(:client_id))
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'avmtrf1/tools/core_ext'
|
|
4
|
+
|
|
5
|
+
module Avmtrf1
|
|
6
|
+
module Tools
|
|
7
|
+
class Runner
|
|
8
|
+
class Msgraph
|
|
9
|
+
require_sub __FILE__
|
|
10
|
+
runner_with :help, :subcommands do
|
|
11
|
+
arg_opt '-i', '--client-id', 'ID de aplicação cliente alternativo.'
|
|
12
|
+
subcommands
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def client_id
|
|
16
|
+
client_id_by_argument || client_id_by_config
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def client_id_by_argument
|
|
20
|
+
parsed.client_id.presence
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def client_id_by_config
|
|
24
|
+
::EacConfig::Node.context.current.entry('msgraph.client_id').value
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -39,6 +39,9 @@ RUN docker-php-ext-install ldap
|
|
|
39
39
|
RUN apt-get install -y libmcrypt-dev
|
|
40
40
|
%%MCRYPT_INSTALL%%
|
|
41
41
|
|
|
42
|
+
# Extensão PHP "pcntl"
|
|
43
|
+
RUN docker-php-ext-install pcntl
|
|
44
|
+
|
|
42
45
|
# Extensão PHP "snmp"
|
|
43
46
|
RUN apt-get install -y libsnmp-dev snmp
|
|
44
47
|
RUN docker-php-ext-install snmp
|
|
@@ -12,23 +12,43 @@ done
|
|
|
12
12
|
DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )"
|
|
13
13
|
source "$DIR/init.sh"
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
infom "Alterando ID do usuário \"$APACHE_USER_NAME\"..."
|
|
19
|
-
usermod --uid "$APP_USER_ID" "$APACHE_USER_NAME"
|
|
20
|
-
else
|
|
21
|
-
infom "Criando usuário \"$APACHE_USER_NAME\"..."
|
|
22
|
-
useradd --uid "$APP_USER_ID" "$APACHE_USER_NAME"
|
|
23
|
-
fi
|
|
15
|
+
function apache_user_home() {
|
|
16
|
+
getent passwd "$APP_USER_ID" | cut '-d:' '-f6'
|
|
17
|
+
}
|
|
24
18
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
19
|
+
function assert_apache_user() {
|
|
20
|
+
if user_exist_by_id "$APP_USER_ID"; then
|
|
21
|
+
infom "ID de usuário \"$APP_USER_ID\" já existe"
|
|
22
|
+
elif user_exist_by_name "$APACHE_USER_NAME"; then
|
|
23
|
+
infom "Alterando ID do usuário \"$APACHE_USER_NAME\"..."
|
|
24
|
+
usermod --uid "$APP_USER_ID" "$APACHE_USER_NAME"
|
|
25
|
+
else
|
|
26
|
+
infom "Criando usuário \"$APACHE_USER_NAME\"..."
|
|
27
|
+
useradd --uid "$APP_USER_ID" "$APACHE_USER_NAME"
|
|
28
|
+
fi
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
function assert_apache_user_home() {
|
|
33
|
+
infom 'Assegurando diretório de usuário...'
|
|
34
|
+
mkdir -p "$(apache_user_home)"
|
|
35
|
+
chown --recursive "${APP_USER_ID}:$(id -g "$APP_USER_ID")" "$(apache_user_home)"
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function setup_apache_user_envvars() {
|
|
28
39
|
infom "Configurando usuário/grupo de execução do Apache..."
|
|
29
40
|
export APACHE_RUN_USER="$(id -nu "$APP_USER_ID")"
|
|
30
41
|
export APACHE_RUN_GROUP="$(id -ng "$APACHE_RUN_USER")"
|
|
31
42
|
infov "Execução do Apache"
|
|
32
43
|
infov ' * $APACHE_RUN_USER' "$APACHE_RUN_USER (ID: $APP_USER_ID)"
|
|
33
44
|
infov ' * $APACHE_RUN_GROUP' "$APACHE_RUN_GROUP (ID: $(id -g "$APACHE_RUN_USER"))"
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
assert_apache_user
|
|
48
|
+
|
|
49
|
+
if [[ "$APP_USER_ID" == '0' ]]; then
|
|
50
|
+
infom "\$APP_USER_ID é 0 (root). Apache executará com usuário padrão (Nenhuma alteração)"
|
|
51
|
+
else
|
|
52
|
+
assert_apache_user_home
|
|
53
|
+
setup_apache_user_envvars
|
|
34
54
|
fi
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
|
|
3
|
+
# Requirements
|
|
4
|
+
# pyperclip>=1.6.0
|
|
5
|
+
# requests>=2.18.4
|
|
6
|
+
# adal>=1.0.0
|
|
7
|
+
# pyyaml
|
|
8
|
+
|
|
9
|
+
from adal import AuthenticationContext
|
|
10
|
+
import argparse
|
|
11
|
+
import pyperclip
|
|
12
|
+
import sys
|
|
13
|
+
import webbrowser
|
|
14
|
+
import yaml
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class Config:
|
|
18
|
+
AUTHORITY_URL = 'https://login.microsoftonline.com/common'
|
|
19
|
+
RESOURCE = 'https://graph.microsoft.com'
|
|
20
|
+
API_VERSION = 'beta'
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class TokenInfo:
|
|
24
|
+
def __init__(self, args):
|
|
25
|
+
self.__device = None
|
|
26
|
+
self.__token = None
|
|
27
|
+
self.__context = None
|
|
28
|
+
self.__args = args
|
|
29
|
+
|
|
30
|
+
def context(self):
|
|
31
|
+
if not self.__context:
|
|
32
|
+
self.__context = AuthenticationContext(Config.AUTHORITY_URL,
|
|
33
|
+
api_version=None)
|
|
34
|
+
return self.__context
|
|
35
|
+
|
|
36
|
+
def device(self):
|
|
37
|
+
if not self.__device:
|
|
38
|
+
self.__device = self.context().acquire_user_code(
|
|
39
|
+
Config.RESOURCE, self.__args.client_id)
|
|
40
|
+
return self.__device
|
|
41
|
+
|
|
42
|
+
def token(self, auto=True):
|
|
43
|
+
if not self.__token:
|
|
44
|
+
device_code = self.device()
|
|
45
|
+
if auto:
|
|
46
|
+
pyperclip.copy(
|
|
47
|
+
device_code['user_code']) # copy user code to clipboard
|
|
48
|
+
webbrowser.open(
|
|
49
|
+
device_code['verification_url']) # open browser
|
|
50
|
+
self.info(
|
|
51
|
+
f'The code {device_code["user_code"]} has been copied to your clipboard, '
|
|
52
|
+
f'and your web browser is opening {device_code["verification_url"]}. '
|
|
53
|
+
'Paste the code to sign in.\n')
|
|
54
|
+
else:
|
|
55
|
+
self.info(device_code['message'])
|
|
56
|
+
|
|
57
|
+
self.__token = self.context().acquire_token_with_device_code(
|
|
58
|
+
Config.RESOURCE, device_code, self.__args.client_id)
|
|
59
|
+
return self.__token
|
|
60
|
+
|
|
61
|
+
def info(self, message):
|
|
62
|
+
sys.stderr.write(message + "\n")
|
|
63
|
+
|
|
64
|
+
def result(self):
|
|
65
|
+
if self.token():
|
|
66
|
+
return {'device': self.device(), 'token': self.token()}
|
|
67
|
+
else:
|
|
68
|
+
return None
|
|
69
|
+
|
|
70
|
+
def run(self):
|
|
71
|
+
if self.result():
|
|
72
|
+
with open(self.__args.output_path, 'w') as outfile:
|
|
73
|
+
yaml.dump(self.result(), outfile, default_flow_style=False)
|
|
74
|
+
self.info('Result writed in "%s"' % (self.__args.output_path))
|
|
75
|
+
else:
|
|
76
|
+
sys.exit("Result empty!")
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
if __name__ == '__main__':
|
|
80
|
+
parser = argparse.ArgumentParser(
|
|
81
|
+
description='Recupera token de acesso ao MSGraph')
|
|
82
|
+
parser.add_argument('client_id')
|
|
83
|
+
parser.add_argument('output_path')
|
|
84
|
+
args = parser.parse_args()
|
|
85
|
+
TokenInfo(args).run()
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: avmtrf1-tools
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.38.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Eduardo H. Bogoni
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-
|
|
11
|
+
date: 2022-06-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: aranha-selenium
|
|
@@ -148,7 +148,6 @@ files:
|
|
|
148
148
|
- lib/avmtrf1/check_point.rb
|
|
149
149
|
- lib/avmtrf1/check_point/session.rb
|
|
150
150
|
- lib/avmtrf1/check_point/session/login.rb
|
|
151
|
-
- lib/avmtrf1/core_ext.rb
|
|
152
151
|
- lib/avmtrf1/default_esosti.rb
|
|
153
152
|
- lib/avmtrf1/default_jira.rb
|
|
154
153
|
- lib/avmtrf1/default_redmine.rb
|
|
@@ -284,6 +283,9 @@ files:
|
|
|
284
283
|
- lib/avmtrf1/template.rb
|
|
285
284
|
- lib/avmtrf1/tools.rb
|
|
286
285
|
- lib/avmtrf1/tools/application.rb
|
|
286
|
+
- lib/avmtrf1/tools/core_ext.rb
|
|
287
|
+
- lib/avmtrf1/tools/msgraph.rb
|
|
288
|
+
- lib/avmtrf1/tools/msgraph/token_retrieve.rb
|
|
287
289
|
- lib/avmtrf1/tools/runner.rb
|
|
288
290
|
- lib/avmtrf1/tools/runner/app_src.rb
|
|
289
291
|
- lib/avmtrf1/tools/runner/check_point.rb
|
|
@@ -303,6 +305,8 @@ files:
|
|
|
303
305
|
- lib/avmtrf1/tools/runner/git/issues_check.rb
|
|
304
306
|
- lib/avmtrf1/tools/runner/git/push_large.rb
|
|
305
307
|
- lib/avmtrf1/tools/runner/inventario_sistemas.rb
|
|
308
|
+
- lib/avmtrf1/tools/runner/msgraph.rb
|
|
309
|
+
- lib/avmtrf1/tools/runner/msgraph/token.rb
|
|
306
310
|
- lib/avmtrf1/tools/runner/node_js.rb
|
|
307
311
|
- lib/avmtrf1/tools/runner/node_js/docker.rb
|
|
308
312
|
- lib/avmtrf1/tools/runner/openvpn.rb
|
|
@@ -338,6 +342,7 @@ files:
|
|
|
338
342
|
- template/avmtrf1/php/docker_image/aux/setup_apache_site.sh
|
|
339
343
|
- template/avmtrf1/php/docker_image/aux/start.sh
|
|
340
344
|
- template/avmtrf1/php/docker_image/aux/templates/apache_site.conf
|
|
345
|
+
- template/avmtrf1/tools/msgraph/token_retrieve/python_retriever.py
|
|
341
346
|
- template/avmtrf1/trf1_dspace_base0/deploy/build.properties.template
|
|
342
347
|
homepage: http://redmine.trf1.gov.br/projects/avm-trf1
|
|
343
348
|
licenses: []
|