Li Zhu d205e1b40f Synchronize subcloud software version after manual upgrade
When the subclouds are manually upgraded by directly calling VIM APIs,
the dcmanager and dcorch databases on the system controller wouldn’t
automatically detect and update the software version. This task aims to
update the software version in the dcmanager and dcorch databases
if the software audit finds a different version on the subcloud.
Additionally, the software and Kubernetes audit intervals are changed
to 40 seconds to align with the interval of periodic subcloud audit.

Test Plan:
PASS: Verify that software and kubernetes audits run every 40 seconds.
PASS: Confirm that the subcloud software version is updated in both
      the dcmanager and dcorch databases following a manual upgrade and
      that the software audit status changes from out-of-sync to
      in-sync.

Story: 2010651
Task: 51334

Change-Id: Ib4657400362c59757b9946ce79304206bc548c9b
Signed-off-by: lzhu1 <li.zhu@windriver.com>
2024-11-18 15:36:22 -05:00

71 lines
2.0 KiB
Python

# Copyright (c) 2021, 2024 Wind River Systems, Inc.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
"""
DC Manager Audit Worker Service.
"""
import eventlet
eventlet.monkey_patch()
# pylint: disable=wrong-import-position
from oslo_config import cfg # noqa: E402
from oslo_i18n import _lazy # noqa: E402
from oslo_log import log as logging # noqa: E402
from oslo_service import service # noqa: E402
from dcmanager.common import config # noqa: E402
from dcmanager.common import messaging # noqa: E402
from dcorch.common import messaging as dcorch_messaging # noqa: E402
# pylint: enable=wrong-import-position
_lazy.enable_lazy()
config.register_options()
config.register_keystone_options()
LOG = logging.getLogger("dcmanager.audit-worker")
CONF = cfg.CONF
def main():
logging.register_options(CONF)
CONF(project="dcmanager", prog="dcmanager-audit-worker")
logging.setup(cfg.CONF, "dcmanager-audit-worker")
logging.set_defaults()
messaging.setup()
dcorch_messaging.setup()
from dcmanager.audit import service as audit
# Override values from /etc/dcmanager/dcmanager.conf specific
# to dcmanager-audit-worker:
cfg.CONF.set_override("http_discovery_timeout", 5, group="endpoint_cache")
srv = audit.DCManagerAuditWorkerService()
launcher = service.launch(cfg.CONF, srv, workers=CONF.audit_worker_workers)
LOG.info("Starting...")
LOG.debug("Configuration:")
cfg.CONF.log_opt_values(LOG, logging.DEBUG)
launcher.wait()
if __name__ == "__main__":
main()