
This commit introduces dccertmon, a new managed service for DC certificate auditing and management. Currently, platform cert management, DC cert management, and subcloud cert auditing are coupled into a single platform service (certmon). To meet the requirements of DC scalability and portability, DC specific functionality must be decoupled. These changes lay the groundwork for the new service, by: - Creating the necessary service files. - Introducing configs for the service. - Declaring high level methods (Skeleton - lifecycle and manager) DC-specific functionality will be migrated to this dccertmon service and optimized in subsequent changes. Non-DC cert management will continue to be handled by certmon. Overall, this commit introduces: - The OCF file necessary for high availability management of the dccertmon service by SM. - Package configurations to build the service (Package: distributedcloud-dccertmon). - Lifecycle manager for a running DC cert monitor service. - Skeleton/base service application logic - CertificateMonitorManager. - RPC notification handlers for subcloud online/managed. - Configuration for the log folders and log rotation. The logs will be available in /var/log/dccertmon/dccertmon.log. These changes are part of a set of commits to introduce the dccertmon service: [1] https://review.opendev.org/c/starlingx/ha/+/941205 [2] https://review.opendev.org/c/starlingx/stx-puppet/+/941208 Test Plan: - PASS: Build dccertmon package - PASS: Install and bootstrap system with custom ISO containing the newly created dccertmon package - PASS: Verify that the dccertmon.service is loaded - PASS: Verify dccertmon is being properly logged to the correct folder. - PASS: Check logged messages and verify execution of - Cert Watcher thread - Task Executor (Audit thread) - Periodic tasks running at expected intervals - PASS: Configure and provision the service using SM and verify it has correctly started and can be restarted with 'sm-restart'. - PASS: Tox checks running on dccertmon Note: This commit has been tested alongside the related changes and their respective test plans. [1][2] Story: 2011311 Task: 51663 Change-Id: Ic23d8d13e4b292cf0508d23eaae99b8e07f36d31 Signed-off-by: Salman Rana <salman.rana@windriver.com>
104 lines
2.9 KiB
INI
104 lines
2.9 KiB
INI
[tox]
|
|
envlist = py39,pep8,pylint,black
|
|
minversion = 4.4.0
|
|
skipsdist = True
|
|
|
|
# move tox work directory out of the source tree
|
|
toxworkdir = /tmp/{env:USER}_dctox
|
|
|
|
[dc]
|
|
stx_config_dir = ../../config
|
|
stx_fault_dir = ../../fault
|
|
|
|
cgcs_patch_src_dir = ../../update/sw-patch/cgcs-patch
|
|
cgtsclient_src_dir = {[dc]stx_config_dir}/sysinv/cgts-client/cgts-client
|
|
fmclient_src_dir = {[dc]stx_fault_dir}/python-fmclient/fmclient
|
|
fm_api_src_dir = {[dc]stx_fault_dir}/fm-api/source
|
|
nfv_client_src_dir = ../../nfv/nfv/nfv-client
|
|
tsconfig_src_dir = {[dc]stx_config_dir}/tsconfig/tsconfig
|
|
software_src_dir = ../../update/software
|
|
|
|
[testenv]
|
|
basepython = python3.9
|
|
sitepackages = False
|
|
setenv =
|
|
VIRTUAL_ENV={envdir}
|
|
OS_STDOUT_CAPTURE=1
|
|
OS_STDERR_CAPTURE=1
|
|
OS_TEST_TIMEOUT=60
|
|
CURRENT_CFG_FILE={toxinidir}/.current.cfg
|
|
SINGLE_REPO=True
|
|
OSLO_LOCK_PATH={toxinidir}
|
|
deps =
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/starlingx/root/raw/branch/master/build-tools/requirements/debian/upper-constraints.txt}
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
-e{[dc]cgcs_patch_src_dir}
|
|
-e{[dc]cgtsclient_src_dir}
|
|
-e{[dc]fmclient_src_dir}
|
|
-e{[dc]fm_api_src_dir}
|
|
-e{[dc]nfv_client_src_dir}
|
|
-e{[dc]tsconfig_src_dir}
|
|
-e{[dc]software_src_dir}
|
|
allowlist_externals =
|
|
rm
|
|
find
|
|
|
|
[testenv:py39]
|
|
commands =
|
|
find {toxinidir} -not -path '{toxinidir}/.tox/*' -name '*.py[c|o]' -delete
|
|
python setup.py testr --slowest --testr-args='{posargs}'
|
|
|
|
[testenv:pep8]
|
|
commands = flake8
|
|
|
|
[testenv:cover]
|
|
commands =
|
|
coverage erase
|
|
rm -Rf cover
|
|
rm -f coverage.xml
|
|
find {toxinidir} -not -path '{toxinidir}/.tox/*' -name '*.py[c|o]' -delete
|
|
python setup.py testr --coverage --testr-args='{posargs}'
|
|
coverage html -d cover
|
|
coverage xml --rcfile=.coveragerc_xml
|
|
coverage report
|
|
|
|
[testenv:debug]
|
|
commands = oslo_debug_helper {posargs}
|
|
|
|
[flake8]
|
|
show-source = True
|
|
max-line-length = 88
|
|
# Suppressed flake8 codes
|
|
# E203 whitespace before ':'; conflict with Black
|
|
# E731 do not assign a lambda expression, use a def
|
|
# H301 one import per line; conflict with Black
|
|
# W503 line break before binary operator; conflict with Black
|
|
# W504 line break after binary operator
|
|
# W605 invalid escape sequence
|
|
ignore = E203,E731,H301,W503,W504,W605
|
|
builtins = _
|
|
|
|
[testenv:genconfig]
|
|
commands =
|
|
oslo-config-generator --config-file=tools/config-generator.conf
|
|
|
|
[hacking]
|
|
import_exceptions = dcmanager.common.i18n,dcorch.common.i18n
|
|
|
|
[testenv:pylint]
|
|
setenv =
|
|
{[testenv]setenv}
|
|
PYTHONPATH = {toxinidir}
|
|
commands =
|
|
pylint {posargs} dccommon dcdbsync dcmanager dcorch dcagent dccertmon --rcfile=./.pylintrc
|
|
|
|
[testenv:black]
|
|
# This environment checks and displays the recommended changes by Black for formatting
|
|
# Python files.
|
|
# To apply the format in a specific file, use the following command: black <file_path>
|
|
deps =
|
|
black>=23.11.0 # MIT
|
|
commands =
|
|
black --check --diff .
|