fc5afdacf2
This change breaks down the monolithic 'dcmanager' process into a separate state-handling multi-process architecture. Subcloud state management is handled by the new state processes. This is a performance optimization, increasing the throughput of subcloud state change operations during dcmanager audits. It also optimizes performance handling of state updates from dcorch. Refactoring. These top-level methods are moved from dcmanager SubcloudManager to SubcloudStateManager (along with associated RPC/service APIs above): - update_subcloud_endpoint_status - update_subcloud_availability - plus internal methods, including the subcloud-level synchronization block New service: DCManagerStateService() - distributedcloud/dcmanager/state/service.py - overriding max_pool_size, max_overflow values from /etc/dcmanager/dcmanager.conf New state manager: SubcloudStateManager() - distributedcloud/dcmanager/state/subcloud_state_manager.py New RPC client: SubcloudStateClient() - Added to existing distributedcloud/dcmanager/rpc/client.py New RPC topic: - TOPIC_DC_MANAGER_STATE = "dcmanager-state" SM service changes: - distributedcloud/dcmanager/cmd/state.py - distributedcloud/ocf/dcmanager-state Other notable changes (from testing): - Cleanup: unused ThreadGroupManager removed from dcmananager service.py - generic_sync_manager: Add eventlet yield during subcloud processing during initialization - dcorch: fix exceptions on shutdown due to race on threadgroup shutdown - dcorch: log service startup with worker config Test cases: - update test cases where necessary to used the newly refactored code - since there is no new logic, no additional tests are required Test Plan: PASS: - Test various audit scenarios in small virtualized environment - Test audit scenarios in lab setting with a large number of subclouds - subclouds going offline/online (including flooding) - dead office recovery - swact - system soak - Validate dcmanager-state service lifecycle and dependencies Story: 2009725 Task: 44317 Change-Id: I2c9a0f84e8cf638632ca319545e9e93e6f43f263 Signed-off-by: Kyle MacLeod <kyle.macleod@windriver.com>
58 lines
2.0 KiB
INI
58 lines
2.0 KiB
INI
[metadata]
|
|
name = distributedcloud
|
|
summary = Distributed Cloud
|
|
description-file =
|
|
README.rst
|
|
author = StarlingX
|
|
author-email = starlingx-discuss@lists.starlingx.io
|
|
home-page = https://www.starlingx.io/
|
|
classifier =
|
|
Environment :: StarlingX
|
|
Intended Audience :: Information Technology
|
|
Intended Audience :: System Administrators
|
|
License :: OSI Approved :: Apache Software License
|
|
Operating System :: POSIX :: Linux
|
|
Programming Language :: Python
|
|
Programming Language :: Python :: 2
|
|
Programming Language :: Python :: 2.7
|
|
Programming Language :: Python :: 3
|
|
Programming Language :: Python :: 3.3
|
|
Programming Language :: Python :: 3.4
|
|
|
|
[files]
|
|
packages =
|
|
dccommon
|
|
dcmanager
|
|
dcorch
|
|
dcdbsync
|
|
|
|
[entry_points]
|
|
console_scripts =
|
|
dcmanager-api = dcmanager.cmd.api:main
|
|
dcmanager-audit = dcmanager.cmd.audit:main
|
|
dcmanager-audit-worker = dcmanager.cmd.audit_worker:main
|
|
dcmanager-orchestrator = dcmanager.cmd.orchestrator:main
|
|
dcmanager-manager = dcmanager.cmd.manager:main
|
|
dcmanager-manage = dcmanager.cmd.manage:main
|
|
dcmanager-state = dcmanager.cmd.state:main
|
|
dcorch-api = dcorch.cmd.api:main
|
|
dcorch-engine = dcorch.cmd.engine:main
|
|
dcorch-manage = dcorch.cmd.manage:main
|
|
dcorch-api-proxy = dcorch.cmd.api_proxy:main
|
|
dcdbsync-api = dcdbsync.cmd.api:main
|
|
|
|
oslo.config.opts =
|
|
dcorch.common.config = dcorch.common.config:list_opts
|
|
dcorch.common.api.api_config = dcorch.api.api_config:list_opts
|
|
dcorch.engine.quota_manager = dcorch.engine.quota_manager:list_opts
|
|
dcorch.engine.dcorch_lock = dcorch.engine.dcorch_lock:list_opts
|
|
dcmanager.common.config = dcmanager.common.config:list_opts
|
|
dcmanager.common.api.api_config = dcmanager.api.api_config:list_opts
|
|
dcdbsync.common.config = dcdbsync.common.config:list_opts
|
|
dcdbsync.common.api.api_config = dcdbsync.api.api_config:list_opts
|
|
|
|
[extract_messages]
|
|
keywords = _ gettext ngettext l_ lazy_gettext
|
|
mapping_file = babel.cfg
|
|
output_file = dcmanager/locale/dcmanager.pot
|