Merge "Change class name to use camelCase"
This commit is contained in:
commit
8405f3b47c
|
@ -30,6 +30,7 @@ load-plugins=
|
|||
# R detect Refactor for a "good practice" metric violation
|
||||
# W detect Warning for stylistic problems, or minor programming issues
|
||||
disable=broad-except,
|
||||
duplicate-code,
|
||||
invalid-name,
|
||||
missing-class-docstring,
|
||||
missing-function-docstring,
|
||||
|
@ -44,7 +45,6 @@ disable=broad-except,
|
|||
too-many-locals,
|
||||
too-many-public-methods,
|
||||
too-many-statements,
|
||||
duplicate-code,
|
||||
|
||||
[REPORTS]
|
||||
# Set the output format. Available formats are text, parseable, colorized, msvs
|
||||
|
|
|
@ -43,6 +43,7 @@ def log_request(func):
|
|||
|
||||
|
||||
class HTTPClient:
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
base_url,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Copyright (c) 2017 Ericsson AB.
|
||||
# Copyright (c) 2017-2021 Wind River Systems, Inc.
|
||||
# Copyright (c) 2017-2021, 2024 Wind River Systems, Inc.
|
||||
# All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
|
@ -20,10 +20,9 @@ from dcmanagerclient.api.base import get_json
|
|||
|
||||
|
||||
class AlarmSummary(base.Resource):
|
||||
resource_name = 'alarms'
|
||||
resource_name = "alarms"
|
||||
|
||||
def __init__(self, manager, name, critical, major,
|
||||
minor, warnings, status):
|
||||
def __init__(self, manager, name, critical, major, minor, warnings, status):
|
||||
self.manger = manager
|
||||
self.name = name
|
||||
self.critical = critical
|
||||
|
@ -33,7 +32,7 @@ class AlarmSummary(base.Resource):
|
|||
self.status = status
|
||||
|
||||
|
||||
class alarm_manager(base.ResourceManager):
|
||||
class AlarmManager(base.ResourceManager):
|
||||
resource_class = AlarmSummary
|
||||
|
||||
def alarm_summary_list(self, url):
|
||||
|
@ -41,20 +40,22 @@ class alarm_manager(base.ResourceManager):
|
|||
if resp.status_code != 200:
|
||||
self._raise_api_exception(resp)
|
||||
json_response_key = get_json(resp)
|
||||
json_objects = json_response_key['alarm_summary']
|
||||
json_objects = json_response_key["alarm_summary"]
|
||||
resource = []
|
||||
for json_object in json_objects:
|
||||
resource.append(
|
||||
self.resource_class(
|
||||
self,
|
||||
name=json_object['region_name'],
|
||||
critical=json_object['critical_alarms'],
|
||||
major=json_object['major_alarms'],
|
||||
minor=json_object['minor_alarms'],
|
||||
warnings=json_object['warnings'],
|
||||
status=json_object['cloud_status']))
|
||||
name=json_object["region_name"],
|
||||
critical=json_object["critical_alarms"],
|
||||
major=json_object["major_alarms"],
|
||||
minor=json_object["minor_alarms"],
|
||||
warnings=json_object["warnings"],
|
||||
status=json_object["cloud_status"],
|
||||
)
|
||||
)
|
||||
return resource
|
||||
|
||||
def list_alarms(self):
|
||||
url = '/alarms/'
|
||||
url = "/alarms/"
|
||||
return self.alarm_summary_list(url)
|
||||
|
|
|
@ -22,25 +22,28 @@ import six
|
|||
from keystoneauth1 import session as ks_session
|
||||
|
||||
from dcmanagerclient.api import httpclient
|
||||
from dcmanagerclient.api.v1 import alarm_manager as am
|
||||
from dcmanagerclient.api.v1 import fw_update_manager as fum
|
||||
from dcmanagerclient.api.v1 import kube_rootca_update_manager as krum
|
||||
from dcmanagerclient.api.v1 import kube_upgrade_manager as kupm
|
||||
from dcmanagerclient.api.v1 import peer_group_association_manager as pgam
|
||||
from dcmanagerclient.api.v1 import phased_subcloud_deploy_manager as psdm
|
||||
from dcmanagerclient.api.v1 import strategy_step_manager as ssm
|
||||
from dcmanagerclient.api.v1 import subcloud_backup_manager as sbm
|
||||
from dcmanagerclient.api.v1 import subcloud_deploy_manager as sdm
|
||||
from dcmanagerclient.api.v1 import subcloud_group_manager as gm
|
||||
from dcmanagerclient.api.v1 import subcloud_manager as sm
|
||||
from dcmanagerclient.api.v1 import subcloud_peer_group_manager as pm
|
||||
from dcmanagerclient.api.v1 import sw_deploy_manager as swdm
|
||||
from dcmanagerclient.api.v1 import sw_patch_manager as spm
|
||||
from dcmanagerclient.api.v1 import sw_prestage_manager as spr
|
||||
from dcmanagerclient.api.v1 import sw_strategy_manager as sstm
|
||||
from dcmanagerclient.api.v1 import sw_update_options_manager as suom
|
||||
from dcmanagerclient.api.v1 import sw_upgrade_manager as supm
|
||||
from dcmanagerclient.api.v1 import system_peer_manager as sp
|
||||
from dcmanagerclient.api.v1.alarm_manager import AlarmManager
|
||||
from dcmanagerclient.api.v1.fw_update_manager import FwUpdateManager
|
||||
from dcmanagerclient.api.v1.kube_rootca_update_manager import KubeRootcaUpdateManager
|
||||
from dcmanagerclient.api.v1.kube_upgrade_manager import KubeUpgradeManager
|
||||
from dcmanagerclient.api.v1.peer_group_association_manager import \
|
||||
PeerGroupAssociationManager
|
||||
from dcmanagerclient.api.v1.phased_subcloud_deploy_manager import \
|
||||
PhasedSubcloudDeployManager
|
||||
from dcmanagerclient.api.v1.strategy_step_manager import StrategyStepManager
|
||||
from dcmanagerclient.api.v1.subcloud_backup_manager import SubcloudBackupManager
|
||||
from dcmanagerclient.api.v1.subcloud_deploy_manager import SubcloudDeployManager
|
||||
from dcmanagerclient.api.v1.subcloud_group_manager import SubcloudGroupManager
|
||||
from dcmanagerclient.api.v1.subcloud_manager import SubcloudManager
|
||||
from dcmanagerclient.api.v1.subcloud_peer_group_manager import \
|
||||
SubcloudPeerGroupManager
|
||||
from dcmanagerclient.api.v1.sw_deploy_manager import SwDeployManager
|
||||
from dcmanagerclient.api.v1.sw_patch_manager import SwPatchManager
|
||||
from dcmanagerclient.api.v1.sw_prestage_manager import SwPrestageManager
|
||||
from dcmanagerclient.api.v1.sw_strategy_manager import SwStrategyManager
|
||||
from dcmanagerclient.api.v1.sw_update_options_manager import SwUpdateOptionsManager
|
||||
from dcmanagerclient.api.v1.sw_upgrade_manager import SwUpgradeManager
|
||||
from dcmanagerclient.api.v1.system_peer_manager import SystemPeerManager
|
||||
|
||||
_DEFAULT_DCMANAGER_URL = "http://localhost:8119/v1.0"
|
||||
|
||||
|
@ -113,37 +116,33 @@ class Client:
|
|||
)
|
||||
|
||||
# Create all managers
|
||||
self.subcloud_manager = sm.subcloud_manager(self.http_client)
|
||||
self.subcloud_group_manager = gm.subcloud_group_manager(
|
||||
self.subcloud_manager = SubcloudManager(self.http_client)
|
||||
self.subcloud_group_manager = SubcloudGroupManager(
|
||||
self.http_client, self.subcloud_manager
|
||||
)
|
||||
self.subcloud_peer_group_manager = pm.subcloud_peer_group_manager(
|
||||
self.subcloud_peer_group_manager = SubcloudPeerGroupManager(
|
||||
self.http_client, self.subcloud_manager
|
||||
)
|
||||
self.peer_group_association_manager = pgam.peer_group_association_manager(
|
||||
self.peer_group_association_manager = PeerGroupAssociationManager(
|
||||
self.http_client
|
||||
)
|
||||
self.subcloud_backup_manager = sbm.subcloud_backup_manager(self.http_client)
|
||||
self.subcloud_deploy_manager = sdm.subcloud_deploy_manager(self.http_client)
|
||||
self.system_peer_manager = sp.system_peer_manager(
|
||||
self.subcloud_backup_manager = SubcloudBackupManager(self.http_client)
|
||||
self.subcloud_deploy_manager = SubcloudDeployManager(self.http_client)
|
||||
self.system_peer_manager = SystemPeerManager(
|
||||
self.http_client, self.subcloud_peer_group_manager
|
||||
)
|
||||
self.alarm_manager = am.alarm_manager(self.http_client)
|
||||
self.fw_update_manager = fum.fw_update_manager(self.http_client)
|
||||
self.kube_rootca_update_manager = krum.kube_rootca_update_manager(
|
||||
self.http_client
|
||||
)
|
||||
self.kube_upgrade_manager = kupm.kube_upgrade_manager(self.http_client)
|
||||
self.sw_deploy_manager = swdm.SwDeployManager(self.http_client)
|
||||
self.sw_patch_manager = spm.sw_patch_manager(self.http_client)
|
||||
self.sw_prestage_manager = spr.sw_prestage_manager(self.http_client)
|
||||
self.sw_update_options_manager = suom.sw_update_options_manager(
|
||||
self.http_client
|
||||
)
|
||||
self.sw_upgrade_manager = supm.sw_upgrade_manager(self.http_client)
|
||||
self.strategy_step_manager = ssm.strategy_step_manager(self.http_client)
|
||||
self.sw_strategy_manager = sstm.sw_strategy_manager(self.http_client)
|
||||
self.phased_subcloud_deploy_manager = psdm.phased_subcloud_deploy_manager(
|
||||
self.alarm_manager = AlarmManager(self.http_client)
|
||||
self.fw_update_manager = FwUpdateManager(self.http_client)
|
||||
self.kube_rootca_update_manager = KubeRootcaUpdateManager(self.http_client)
|
||||
self.kube_upgrade_manager = KubeUpgradeManager(self.http_client)
|
||||
self.sw_deploy_manager = SwDeployManager(self.http_client)
|
||||
self.sw_patch_manager = SwPatchManager(self.http_client)
|
||||
self.sw_prestage_manager = SwPrestageManager(self.http_client)
|
||||
self.sw_update_options_manager = SwUpdateOptionsManager(self.http_client)
|
||||
self.sw_upgrade_manager = SwUpgradeManager(self.http_client)
|
||||
self.strategy_step_manager = StrategyStepManager(self.http_client)
|
||||
self.sw_strategy_manager = SwStrategyManager(self.http_client)
|
||||
self.phased_subcloud_deploy_manager = PhasedSubcloudDeployManager(
|
||||
self.http_client
|
||||
)
|
||||
|
||||
|
|
|
@ -14,12 +14,12 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
from dcmanagerclient.api.v1.sw_update_manager import sw_update_manager
|
||||
from dcmanagerclient.api.v1.sw_update_manager import SwUpdateManager
|
||||
|
||||
SW_UPDATE_TYPE_FIRMWARE = "firmware"
|
||||
|
||||
|
||||
class fw_update_manager(sw_update_manager):
|
||||
class FwUpdateManager(SwUpdateManager):
|
||||
|
||||
def __init__(self, http_client):
|
||||
super().__init__(http_client, update_type=SW_UPDATE_TYPE_FIRMWARE)
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
from dcmanagerclient.api.v1.sw_update_manager import sw_update_manager
|
||||
from dcmanagerclient.api.v1.sw_update_manager import SwUpdateManager
|
||||
|
||||
SW_UPDATE_TYPE_KUBE_ROOTCA_UPDATE = "kube-rootca-update"
|
||||
|
||||
|
||||
class kube_rootca_update_manager(sw_update_manager):
|
||||
class KubeRootcaUpdateManager(SwUpdateManager):
|
||||
|
||||
def __init__(self, http_client):
|
||||
super().__init__(http_client, update_type=SW_UPDATE_TYPE_KUBE_ROOTCA_UPDATE)
|
||||
|
|
|
@ -14,12 +14,12 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
from dcmanagerclient.api.v1.sw_update_manager import sw_update_manager
|
||||
from dcmanagerclient.api.v1.sw_update_manager import SwUpdateManager
|
||||
|
||||
SW_UPDATE_TYPE_KUBERNETES = "kubernetes"
|
||||
|
||||
|
||||
class kube_upgrade_manager(sw_update_manager):
|
||||
class KubeUpgradeManager(SwUpdateManager):
|
||||
|
||||
def __init__(self, http_client):
|
||||
super().__init__(http_client, update_type=SW_UPDATE_TYPE_KUBERNETES)
|
||||
|
|
|
@ -42,7 +42,7 @@ class PeerGroupAssociation(base.Resource):
|
|||
self.updated_at = updated_at
|
||||
|
||||
|
||||
class peer_group_association_manager(base.ResourceManager):
|
||||
class PeerGroupAssociationManager(base.ResourceManager):
|
||||
resource_class = PeerGroupAssociation
|
||||
|
||||
def _json_to_resource(self, json_object):
|
||||
|
|
|
@ -12,7 +12,7 @@ from dcmanagerclient.api.base import get_json
|
|||
BASE_URL = "/phased-subcloud-deploy/"
|
||||
|
||||
|
||||
class phased_subcloud_deploy_manager(base.ResourceManager):
|
||||
class PhasedSubcloudDeployManager(base.ResourceManager):
|
||||
resource_class = base.Subcloud
|
||||
|
||||
def json_to_resource(self, json_object):
|
||||
|
|
|
@ -44,7 +44,7 @@ class StrategyStep(base.Resource):
|
|||
self.updated_at = updated_at
|
||||
|
||||
|
||||
class strategy_step_manager(base.ResourceManager):
|
||||
class StrategyStepManager(base.ResourceManager):
|
||||
|
||||
def __init__(self, http_client):
|
||||
super().__init__(http_client)
|
||||
|
|
|
@ -12,7 +12,7 @@ from dcmanagerclient.api import base
|
|||
from dcmanagerclient.api.base import get_json
|
||||
|
||||
|
||||
class subcloud_backup_manager(base.ResourceManager):
|
||||
class SubcloudBackupManager(base.ResourceManager):
|
||||
|
||||
resource_class = base.Subcloud
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ class SubcloudDeploy(base.Resource):
|
|||
self.software_version = software_version
|
||||
|
||||
|
||||
class subcloud_deploy_manager(base.ResourceManager):
|
||||
class SubcloudDeployManager(base.ResourceManager):
|
||||
resource_class = SubcloudDeploy
|
||||
|
||||
def _process_json_response(self, json_object):
|
||||
|
|
|
@ -45,7 +45,7 @@ class SubcloudGroup(base.Resource):
|
|||
self.updated_at = updated_at
|
||||
|
||||
|
||||
class subcloud_group_manager(base.ResourceManager):
|
||||
class SubcloudGroupManager(base.ResourceManager):
|
||||
resource_class = SubcloudGroup
|
||||
|
||||
def __init__(self, http_client, subcloud_manager):
|
||||
|
|
|
@ -23,7 +23,7 @@ from dcmanagerclient.api import base
|
|||
from dcmanagerclient.api.base import get_json
|
||||
|
||||
|
||||
class subcloud_manager(base.ResourceManager):
|
||||
class SubcloudManager(base.ResourceManager):
|
||||
resource_class = base.Subcloud
|
||||
|
||||
def json_to_resource(self, json_object):
|
||||
|
|
|
@ -40,7 +40,7 @@ class SubcloudPeerGroup(base.Resource):
|
|||
self.updated_at = updated_at
|
||||
|
||||
|
||||
class subcloud_peer_group_manager(base.ResourceManager):
|
||||
class SubcloudPeerGroupManager(base.ResourceManager):
|
||||
resource_class = SubcloudPeerGroup
|
||||
|
||||
def __init__(self, http_client, subcloud_manager):
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
from dcmanagerclient.api.v1.sw_update_manager import sw_update_manager
|
||||
from dcmanagerclient.api.v1.sw_update_manager import SwUpdateManager
|
||||
|
||||
SW_UPDATE_TYPE_USM = "software"
|
||||
|
||||
|
||||
class SwDeployManager(sw_update_manager):
|
||||
class SwDeployManager(SwUpdateManager):
|
||||
def __init__(self, http_client):
|
||||
super().__init__(
|
||||
http_client, update_type=SW_UPDATE_TYPE_USM, extra_args=["release"]
|
||||
|
|
|
@ -14,12 +14,12 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
from dcmanagerclient.api.v1.sw_update_manager import sw_update_manager
|
||||
from dcmanagerclient.api.v1.sw_update_manager import SwUpdateManager
|
||||
|
||||
SW_UPDATE_TYPE_PATCH = "patch"
|
||||
|
||||
|
||||
class sw_patch_manager(sw_update_manager):
|
||||
class SwPatchManager(SwUpdateManager):
|
||||
def __init__(self, http_client):
|
||||
super().__init__(
|
||||
http_client, update_type=SW_UPDATE_TYPE_PATCH, extra_args=["upload-only"]
|
||||
|
|
|
@ -13,12 +13,12 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
from dcmanagerclient.api.v1.sw_update_manager import sw_update_manager
|
||||
from dcmanagerclient.api.v1.sw_update_manager import SwUpdateManager
|
||||
|
||||
SW_UPDATE_TYPE_PRESTAGE = "prestage"
|
||||
|
||||
|
||||
class sw_prestage_manager(sw_update_manager):
|
||||
class SwPrestageManager(SwUpdateManager):
|
||||
|
||||
def __init__(self, http_client):
|
||||
super().__init__(
|
||||
|
|
|
@ -14,10 +14,10 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
from dcmanagerclient.api.v1.sw_update_manager import sw_update_manager
|
||||
from dcmanagerclient.api.v1.sw_update_manager import SwUpdateManager
|
||||
|
||||
|
||||
class sw_strategy_manager(sw_update_manager):
|
||||
class SwStrategyManager(SwUpdateManager):
|
||||
def __init__(self, http_client, url="sw-update-strategy"):
|
||||
super().__init__(http_client, update_type=None)
|
||||
|
||||
|
|
|
@ -47,8 +47,8 @@ class SwUpdateStrategy(base.Resource):
|
|||
self.extra_args = extra_args
|
||||
|
||||
|
||||
class sw_update_manager(base.ResourceManager):
|
||||
"""sw_update_manager
|
||||
class SwUpdateManager(base.ResourceManager):
|
||||
"""SwUpdateManager
|
||||
|
||||
sw_update_manager is an abstract class that is used by subclasses to
|
||||
manage API actions for specific update strategy types such as software
|
||||
|
|
|
@ -49,7 +49,7 @@ class SwUpdateOptions(base.Resource):
|
|||
self.updated_at = updated_at
|
||||
|
||||
|
||||
class sw_update_options_manager(base.ResourceManager):
|
||||
class SwUpdateOptionsManager(base.ResourceManager):
|
||||
resource_class = SwUpdateOptions
|
||||
|
||||
def sw_update_options_update(self, subcloud_ref, **kwargs):
|
||||
|
|
|
@ -14,12 +14,12 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
from dcmanagerclient.api.v1.sw_update_manager import sw_update_manager
|
||||
from dcmanagerclient.api.v1.sw_update_manager import SwUpdateManager
|
||||
|
||||
SW_UPDATE_TYPE_UPGRADE = "upgrade"
|
||||
|
||||
|
||||
class sw_upgrade_manager(sw_update_manager):
|
||||
class SwUpgradeManager(SwUpdateManager):
|
||||
|
||||
def __init__(self, http_client):
|
||||
super().__init__(http_client, update_type=SW_UPDATE_TYPE_UPGRADE)
|
||||
|
|
|
@ -50,7 +50,7 @@ class SystemPeer(base.Resource):
|
|||
self.updated_at = updated_at
|
||||
|
||||
|
||||
class system_peer_manager(base.ResourceManager):
|
||||
class SystemPeerManager(base.ResourceManager):
|
||||
resource_class = SystemPeer
|
||||
|
||||
def __init__(self, http_client, subcloud_peer_group_manager):
|
||||
|
|
|
@ -54,5 +54,5 @@ class ListAlarmSummary(base.DCManagerLister):
|
|||
return parser
|
||||
|
||||
def _get_resources(self, parsed_args):
|
||||
dcmanager_client = self.app.client_manager.alarm_manager
|
||||
return dcmanager_client.alarm_manager.list_alarms()
|
||||
alarm_manager = self.app.client_manager.alarm_manager
|
||||
return alarm_manager.list_alarms()
|
||||
|
|
|
@ -20,8 +20,8 @@ class FwUpdateManagerMixin:
|
|||
"""This Mixin provides the update manager used for firmware updates."""
|
||||
|
||||
def get_sw_update_manager(self):
|
||||
dcmanager_client = self.app.client_manager.fw_update_manager
|
||||
return dcmanager_client.fw_update_manager
|
||||
fw_update_manager = self.app.client_manager.fw_update_manager
|
||||
return fw_update_manager
|
||||
|
||||
|
||||
class CreateFwUpdateStrategy(
|
||||
|
|
|
@ -12,8 +12,7 @@ class KubeRootcaUpdateManagerMixin:
|
|||
"""This Mixin provides the update manager used for kube rootca updates."""
|
||||
|
||||
def get_sw_update_manager(self):
|
||||
dcmanager_client = self.app.client_manager.kube_rootca_update_manager
|
||||
return dcmanager_client.kube_rootca_update_manager
|
||||
return self.app.client_manager.kube_rootca_update_manager
|
||||
|
||||
|
||||
class CreateKubeRootcaUpdateStrategy(
|
||||
|
|
|
@ -20,8 +20,8 @@ class KubeUpgradeManagerMixin:
|
|||
"""This Mixin provides the update manager used for kubernetes upgrades."""
|
||||
|
||||
def get_sw_update_manager(self):
|
||||
dcmanager_client = self.app.client_manager.kube_upgrade_manager
|
||||
return dcmanager_client.kube_upgrade_manager
|
||||
kube_upgrade_manager = self.app.client_manager.kube_upgrade_manager
|
||||
return kube_upgrade_manager
|
||||
|
||||
|
||||
class CreateKubeUpgradeStrategy(
|
||||
|
|
|
@ -95,14 +95,16 @@ class AddPeerGroupAssociation(base.DCManagerShowOne):
|
|||
return parser
|
||||
|
||||
def _get_resources(self, parsed_args):
|
||||
dcmanager_client = self.app.client_manager.peer_group_association_manager
|
||||
peer_group_association_manager = (
|
||||
self.app.client_manager.peer_group_association_manager
|
||||
)
|
||||
|
||||
kwargs = {
|
||||
"peer_group_id": parsed_args.peer_group_id,
|
||||
"system_peer_id": parsed_args.system_peer_id,
|
||||
"peer_group_priority": parsed_args.peer_group_priority,
|
||||
}
|
||||
return dcmanager_client.peer_group_association_manager.\
|
||||
add_peer_group_association(**kwargs)
|
||||
return peer_group_association_manager.add_peer_group_association(**kwargs)
|
||||
|
||||
|
||||
class ListPeerGroupAssociation(base.DCManagerLister):
|
||||
|
@ -116,9 +118,10 @@ class ListPeerGroupAssociation(base.DCManagerLister):
|
|||
return parser
|
||||
|
||||
def _get_resources(self, parsed_args):
|
||||
dcmanager_client = self.app.client_manager.peer_group_association_manager
|
||||
return dcmanager_client.peer_group_association_manager.\
|
||||
list_peer_group_associations()
|
||||
peer_group_association_manager = (
|
||||
self.app.client_manager.peer_group_association_manager
|
||||
)
|
||||
return peer_group_association_manager.list_peer_group_associations()
|
||||
|
||||
|
||||
class ShowPeerGroupAssociation(base.DCManagerShowOne):
|
||||
|
@ -138,9 +141,12 @@ class ShowPeerGroupAssociation(base.DCManagerShowOne):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
association_ref = parsed_args.id
|
||||
dcmanager_client = self.app.client_manager.peer_group_association_manager
|
||||
return dcmanager_client.peer_group_association_manager.\
|
||||
peer_group_association_detail(association_ref)
|
||||
peer_group_association_manager = (
|
||||
self.app.client_manager.peer_group_association_manager
|
||||
)
|
||||
return peer_group_association_manager.peer_group_association_detail(
|
||||
association_ref
|
||||
)
|
||||
|
||||
|
||||
class SyncPeerGroupAssociation(base.DCManagerShowOne):
|
||||
|
@ -158,9 +164,12 @@ class SyncPeerGroupAssociation(base.DCManagerShowOne):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
association_ref = parsed_args.id
|
||||
dcmanager_client = self.app.client_manager.peer_group_association_manager
|
||||
return dcmanager_client.peer_group_association_manager.\
|
||||
sync_peer_group_association(association_ref)
|
||||
peer_group_association_manager = (
|
||||
self.app.client_manager.peer_group_association_manager
|
||||
)
|
||||
return peer_group_association_manager.sync_peer_group_association(
|
||||
association_ref
|
||||
)
|
||||
|
||||
|
||||
class DeletePeerGroupAssociation(command.Command):
|
||||
|
@ -173,12 +182,15 @@ class DeletePeerGroupAssociation(command.Command):
|
|||
return parser
|
||||
|
||||
def take_action(self, parsed_args):
|
||||
dcmanager_client = self.app.client_manager.peer_group_association_manager
|
||||
peer_group_association_manager = (
|
||||
self.app.client_manager.peer_group_association_manager
|
||||
)
|
||||
try:
|
||||
dcmanager_client.peer_group_association_manager.\
|
||||
delete_peer_group_association(parsed_args.id)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
peer_group_association_manager.delete_peer_group_association(
|
||||
parsed_args.id
|
||||
)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
msg = f"Unable to delete peer group association {parsed_args.id}"
|
||||
raise exceptions.DCManagerClientException(msg)
|
||||
|
||||
|
@ -203,13 +215,16 @@ class UpdatePeerGroupAssociation(base.DCManagerShowOne):
|
|||
return parser
|
||||
|
||||
def _get_resources(self, parsed_args):
|
||||
dcmanager_client = self.app.client_manager.peer_group_association_manager
|
||||
peer_group_association_manager = (
|
||||
self.app.client_manager.peer_group_association_manager
|
||||
)
|
||||
|
||||
kwargs = {"peer_group_priority": parsed_args.peer_group_priority}
|
||||
try:
|
||||
return dcmanager_client.peer_group_association_manager.\
|
||||
update_peer_group_association(parsed_args.id, **kwargs)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
return peer_group_association_manager.update_peer_group_association(
|
||||
parsed_args.id, **kwargs
|
||||
)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
msg = f"Unable to update peer group association {parsed_args.id}"
|
||||
raise exceptions.DCManagerClientException(msg)
|
||||
|
|
|
@ -29,13 +29,16 @@ class AbortPhasedSubcloudDeploy(base.DCManagerShowOne):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
subcloud_ref = parsed_args.subcloud
|
||||
dcmanager_client = self.app.client_manager.\
|
||||
phased_subcloud_deploy_manager.phased_subcloud_deploy_manager
|
||||
phased_subcloud_deploy_manager = (
|
||||
self.app.client_manager.phased_subcloud_deploy_manager
|
||||
)
|
||||
|
||||
try:
|
||||
return dcmanager_client.subcloud_deploy_abort(subcloud_ref=subcloud_ref)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
return phased_subcloud_deploy_manager.subcloud_deploy_abort(
|
||||
subcloud_ref=subcloud_ref
|
||||
)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
error_msg = f"Unable to abort subcloud deploy {subcloud_ref}"
|
||||
raise exceptions.DCManagerClientException(error_msg)
|
||||
|
||||
|
@ -106,8 +109,9 @@ class PhasedSubcloudDeployResume(base.DCManagerShowOne):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
subcloud_ref = parsed_args.subcloud
|
||||
dcmanager_client = self.app.client_manager.phased_subcloud_deploy_manager.\
|
||||
phased_subcloud_deploy_manager
|
||||
phased_subcloud_deploy_manager = (
|
||||
self.app.client_manager.phased_subcloud_deploy_manager
|
||||
)
|
||||
files = {}
|
||||
data = {}
|
||||
|
||||
|
@ -163,7 +167,7 @@ class PhasedSubcloudDeployResume(base.DCManagerShowOne):
|
|||
if parsed_args.release:
|
||||
data["release"] = parsed_args.release
|
||||
|
||||
return dcmanager_client.subcloud_deploy_resume(
|
||||
return phased_subcloud_deploy_manager.subcloud_deploy_resume(
|
||||
subcloud_ref=subcloud_ref, files=files, data=data
|
||||
)
|
||||
|
||||
|
@ -226,8 +230,9 @@ class CreatePhasedSubcloudDeploy(base.DCManagerShowOne):
|
|||
return parser
|
||||
|
||||
def _get_resources(self, parsed_args):
|
||||
dcmanager_client = self.app.client_manager.phased_subcloud_deploy_manager.\
|
||||
phased_subcloud_deploy_manager
|
||||
phased_subcloud_deploy_manager = (
|
||||
self.app.client_manager.phased_subcloud_deploy_manager
|
||||
)
|
||||
files = {}
|
||||
data = {}
|
||||
|
||||
|
@ -273,7 +278,9 @@ class CreatePhasedSubcloudDeploy(base.DCManagerShowOne):
|
|||
if parsed_args.release:
|
||||
data["release"] = parsed_args.release
|
||||
|
||||
return dcmanager_client.subcloud_deploy_create(files=files, data=data)
|
||||
return phased_subcloud_deploy_manager.subcloud_deploy_create(
|
||||
files=files, data=data
|
||||
)
|
||||
|
||||
|
||||
class InstallPhasedSubcloudDeploy(base.DCManagerShowOne):
|
||||
|
@ -322,8 +329,9 @@ class InstallPhasedSubcloudDeploy(base.DCManagerShowOne):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
subcloud_ref = parsed_args.subcloud
|
||||
dcmanager_client = self.app.client_manager.phased_subcloud_deploy_manager.\
|
||||
phased_subcloud_deploy_manager
|
||||
phased_subcloud_deploy_manager = (
|
||||
self.app.client_manager.phased_subcloud_deploy_manager
|
||||
)
|
||||
files = {}
|
||||
data = {}
|
||||
|
||||
|
@ -355,11 +363,11 @@ class InstallPhasedSubcloudDeploy(base.DCManagerShowOne):
|
|||
data["release"] = parsed_args.release
|
||||
|
||||
try:
|
||||
return dcmanager_client.subcloud_deploy_install(
|
||||
return phased_subcloud_deploy_manager.subcloud_deploy_install(
|
||||
subcloud_ref=subcloud_ref, files=files, data=data
|
||||
)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
error_msg = f"Unable to install subcloud {subcloud_ref}"
|
||||
raise exceptions.DCManagerClientException(error_msg)
|
||||
|
||||
|
@ -400,8 +408,9 @@ class BootstrapPhasedSubcloudDeploy(base.DCManagerShowOne):
|
|||
return parser
|
||||
|
||||
def _get_resources(self, parsed_args):
|
||||
dcmanager_client = self.app.client_manager.phased_subcloud_deploy_manager.\
|
||||
phased_subcloud_deploy_manager
|
||||
phased_subcloud_deploy_manager = (
|
||||
self.app.client_manager.phased_subcloud_deploy_manager
|
||||
)
|
||||
files = {}
|
||||
data = {}
|
||||
|
||||
|
@ -429,7 +438,7 @@ class BootstrapPhasedSubcloudDeploy(base.DCManagerShowOne):
|
|||
|
||||
subcloud_ref = parsed_args.subcloud
|
||||
|
||||
return dcmanager_client.subcloud_deploy_bootstrap(
|
||||
return phased_subcloud_deploy_manager.subcloud_deploy_bootstrap(
|
||||
subcloud_ref, files=files, data=data
|
||||
)
|
||||
|
||||
|
@ -463,8 +472,9 @@ class ConfigPhasedSubcloudDeploy(base.DCManagerShowOne):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
subcloud_ref = parsed_args.subcloud
|
||||
dcmanager_client = self.app.client_manager.phased_subcloud_deploy_manager.\
|
||||
phased_subcloud_deploy_manager
|
||||
phased_subcloud_deploy_manager = (
|
||||
self.app.client_manager.phased_subcloud_deploy_manager
|
||||
)
|
||||
files = {}
|
||||
data = {}
|
||||
|
||||
|
@ -487,11 +497,11 @@ class ConfigPhasedSubcloudDeploy(base.DCManagerShowOne):
|
|||
data["sysadmin_password"] = base64.b64encode(password.encode("utf-8"))
|
||||
|
||||
try:
|
||||
return dcmanager_client.subcloud_deploy_config(
|
||||
return phased_subcloud_deploy_manager.subcloud_deploy_config(
|
||||
subcloud_ref=subcloud_ref, files=files, data=data
|
||||
)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
error_msg = f"Unable to configure subcloud {subcloud_ref}"
|
||||
raise exceptions.DCManagerClientException(error_msg)
|
||||
|
||||
|
@ -513,13 +523,16 @@ class CompletePhasedSubcloudDeploy(base.DCManagerShowOne):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
subcloud_ref = parsed_args.subcloud
|
||||
dcmanager_client = self.app.client_manager.phased_subcloud_deploy_manager.\
|
||||
phased_subcloud_deploy_manager
|
||||
phased_subcloud_deploy_manager = (
|
||||
self.app.client_manager.phased_subcloud_deploy_manager
|
||||
)
|
||||
|
||||
try:
|
||||
return dcmanager_client.subcloud_deploy_complete(subcloud_ref)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
return phased_subcloud_deploy_manager.subcloud_deploy_complete(
|
||||
subcloud_ref
|
||||
)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
error_msg = (
|
||||
f"Unable to complete the deployment of subcloud {subcloud_ref}"
|
||||
)
|
||||
|
|
|
@ -9,7 +9,8 @@ import os
|
|||
|
||||
from osc_lib.command import command
|
||||
|
||||
from dcmanagerclient import exceptions, utils
|
||||
from dcmanagerclient import exceptions
|
||||
from dcmanagerclient import utils
|
||||
from dcmanagerclient.commands.v1 import base
|
||||
|
||||
|
||||
|
@ -131,7 +132,7 @@ class CreateSubcloudBackup(base.DCManagerShow):
|
|||
return parser
|
||||
|
||||
def _get_resources(self, parsed_args):
|
||||
dcmanager_client = self.app.client_manager.subcloud_backup_manager
|
||||
subcloud_backup_manager = self.app.client_manager.subcloud_backup_manager
|
||||
data = {}
|
||||
files = {}
|
||||
|
||||
|
@ -191,12 +192,12 @@ class CreateSubcloudBackup(base.DCManagerShow):
|
|||
files["backup_values"] = parsed_args.backup_values
|
||||
|
||||
try:
|
||||
return dcmanager_client.subcloud_backup_manager.backup_subcloud_create(
|
||||
return subcloud_backup_manager.backup_subcloud_create(
|
||||
data=data, files=files
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
print(e)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
error_msg = "Unable to create subcloud backup"
|
||||
raise exceptions.DCManagerClientException(error_msg)
|
||||
|
||||
|
@ -245,7 +246,7 @@ class DeleteSubcloudBackup(command.Command):
|
|||
return parser
|
||||
|
||||
def take_action(self, parsed_args):
|
||||
dcmanager_client = self.app.client_manager.subcloud_backup_manager
|
||||
subcloud_backup_manager = self.app.client_manager.subcloud_backup_manager
|
||||
release_version = parsed_args.release
|
||||
subcloud_ref = parsed_args.subcloud
|
||||
data = {}
|
||||
|
@ -285,12 +286,12 @@ class DeleteSubcloudBackup(command.Command):
|
|||
).decode("utf-8")
|
||||
|
||||
try:
|
||||
return dcmanager_client.subcloud_backup_manager.backup_subcloud_delete(
|
||||
return subcloud_backup_manager.backup_subcloud_delete(
|
||||
subcloud_ref=subcloud_ref, release_version=release_version, data=data
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
print(e)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
error_msg = "Unable to delete backup"
|
||||
raise exceptions.DCManagerClientException(error_msg)
|
||||
|
||||
|
@ -372,7 +373,7 @@ class RestoreSubcloudBackup(base.DCManagerShow):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
|
||||
dcmanager_client = self.app.client_manager.subcloud_backup_manager
|
||||
subcloud_backup_manager = self.app.client_manager.subcloud_backup_manager
|
||||
data = {}
|
||||
files = {}
|
||||
|
||||
|
@ -444,11 +445,11 @@ class RestoreSubcloudBackup(base.DCManagerShow):
|
|||
files["restore_values"] = parsed_args.restore_values
|
||||
|
||||
try:
|
||||
return dcmanager_client.subcloud_backup_manager.backup_subcloud_restore(
|
||||
return subcloud_backup_manager.backup_subcloud_restore(
|
||||
data=data, files=files
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
print(e)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
error_msg = "Unable to restore subcloud backup"
|
||||
raise exceptions.DCManagerClientException(error_msg)
|
||||
|
|
|
@ -109,7 +109,7 @@ class SubcloudDeployUpload(base.DCManagerShowOne):
|
|||
return parser
|
||||
|
||||
def _get_resources(self, parsed_args):
|
||||
dcmanager_client = self.app.client_manager.subcloud_deploy_manager
|
||||
subcloud_deploy_manager = self.app.client_manager.subcloud_deploy_manager
|
||||
|
||||
data = {}
|
||||
files = {}
|
||||
|
@ -131,11 +131,11 @@ class SubcloudDeployUpload(base.DCManagerShowOne):
|
|||
data["release"] = parsed_args.release
|
||||
|
||||
try:
|
||||
return dcmanager_client.subcloud_deploy_manager.subcloud_deploy_upload(
|
||||
return subcloud_deploy_manager.subcloud_deploy_upload(
|
||||
files=files, data=data
|
||||
)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
error_msg = "Unable to upload subcloud deploy files"
|
||||
raise exceptions.DCManagerClientException(error_msg)
|
||||
|
||||
|
@ -159,10 +159,8 @@ class SubcloudDeployShow(base.DCManagerShowOne):
|
|||
return parser
|
||||
|
||||
def _get_resources(self, parsed_args):
|
||||
dcmanager_client = self.app.client_manager.subcloud_deploy_manager
|
||||
return dcmanager_client.subcloud_deploy_manager.subcloud_deploy_show(
|
||||
parsed_args.release
|
||||
)
|
||||
subcloud_deploy_manager = self.app.client_manager.subcloud_deploy_manager
|
||||
return subcloud_deploy_manager.subcloud_deploy_show(parsed_args.release)
|
||||
|
||||
|
||||
class DeprecatedSubcloudDeployShow(SubcloudDeployShow):
|
||||
|
@ -214,7 +212,7 @@ class SubcloudDeployDelete(command.Command):
|
|||
return parser
|
||||
|
||||
def take_action(self, parsed_args):
|
||||
dcmanager_client = self.app.client_manager.subcloud_deploy_manager
|
||||
subcloud_deploy_manager = self.app.client_manager.subcloud_deploy_manager
|
||||
release = parsed_args.release
|
||||
data = {}
|
||||
if parsed_args.prestage_images is not None:
|
||||
|
@ -223,10 +221,8 @@ class SubcloudDeployDelete(command.Command):
|
|||
data["deployment_files"] = str(parsed_args.deployment_files)
|
||||
|
||||
try:
|
||||
dcmanager_client.subcloud_deploy_manager.subcloud_deploy_delete(
|
||||
release, data=data
|
||||
)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
subcloud_deploy_manager.subcloud_deploy_delete(release, data=data)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
error_msg = "Unable to delete subcloud deploy files"
|
||||
raise exceptions.DCManagerClientException(error_msg)
|
||||
|
|
|
@ -109,7 +109,7 @@ class AddSubcloudGroup(base.DCManagerShowOne):
|
|||
return parser
|
||||
|
||||
def _get_resources(self, parsed_args):
|
||||
dcmanager_client = self.app.client_manager.subcloud_group_manager
|
||||
subcloud_group_manager = self.app.client_manager.subcloud_group_manager
|
||||
kwargs = {}
|
||||
|
||||
if parsed_args.name is not None:
|
||||
|
@ -123,7 +123,7 @@ class AddSubcloudGroup(base.DCManagerShowOne):
|
|||
|
||||
if parsed_args.max_parallel_subclouds is not None:
|
||||
kwargs["max_parallel_subclouds"] = parsed_args.max_parallel_subclouds
|
||||
return dcmanager_client.subcloud_group_manager.add_subcloud_group(**kwargs)
|
||||
return subcloud_group_manager.add_subcloud_group(**kwargs)
|
||||
|
||||
|
||||
class ListSubcloudGroup(base.DCManagerLister):
|
||||
|
@ -137,8 +137,8 @@ class ListSubcloudGroup(base.DCManagerLister):
|
|||
return parser
|
||||
|
||||
def _get_resources(self, parsed_args):
|
||||
dcmanager_client = self.app.client_manager.subcloud_group_manager
|
||||
return dcmanager_client.subcloud_group_manager.list_subcloud_groups()
|
||||
subcloud_group_manager = self.app.client_manager.subcloud_group_manager
|
||||
return subcloud_group_manager.list_subcloud_groups()
|
||||
|
||||
|
||||
class ListSubcloudGroupSubclouds(base.DCManagerLister):
|
||||
|
@ -157,11 +157,9 @@ class ListSubcloudGroupSubclouds(base.DCManagerLister):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
subcloud_group_ref = parsed_args.group
|
||||
dcmanager_client = self.app.client_manager.subcloud_group_manager
|
||||
result = (
|
||||
dcmanager_client.subcloud_group_manager.subcloud_group_list_subclouds(
|
||||
subcloud_group_ref
|
||||
)
|
||||
subcloud_group_manager = self.app.client_manager.subcloud_group_manager
|
||||
result = subcloud_group_manager.subcloud_group_list_subclouds(
|
||||
subcloud_group_ref
|
||||
)
|
||||
update_fields_values(result)
|
||||
return result
|
||||
|
@ -184,10 +182,8 @@ class ShowSubcloudGroup(base.DCManagerShowOne):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
subcloud_group_ref = parsed_args.group
|
||||
dcmanager_client = self.app.client_manager.subcloud_group_manager
|
||||
return dcmanager_client.subcloud_group_manager.subcloud_group_detail(
|
||||
subcloud_group_ref
|
||||
)
|
||||
subcloud_group_manager = self.app.client_manager.subcloud_group_manager
|
||||
return subcloud_group_manager.subcloud_group_detail(subcloud_group_ref)
|
||||
|
||||
|
||||
class DeleteSubcloudGroup(command.Command):
|
||||
|
@ -203,13 +199,11 @@ class DeleteSubcloudGroup(command.Command):
|
|||
|
||||
def take_action(self, parsed_args):
|
||||
subcloud_group_ref = parsed_args.group
|
||||
dcmanager_client = self.app.client_manager.subcloud_group_manager
|
||||
subcloud_group_manager = self.app.client_manager.subcloud_group_manager
|
||||
try:
|
||||
dcmanager_client.subcloud_group_manager.delete_subcloud_group(
|
||||
subcloud_group_ref
|
||||
)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
subcloud_group_manager.delete_subcloud_group(subcloud_group_ref)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
msg = f"Unable to delete subcloud group {subcloud_group_ref}"
|
||||
raise exceptions.DCManagerClientException(msg)
|
||||
|
||||
|
@ -250,7 +244,7 @@ class UpdateSubcloudGroup(base.DCManagerShowOne):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
subcloud_group_ref = parsed_args.group
|
||||
dcmanager_client = self.app.client_manager.subcloud_group_manager
|
||||
subcloud_group_manager = self.app.client_manager.subcloud_group_manager
|
||||
kwargs = {}
|
||||
if parsed_args.name:
|
||||
kwargs["name"] = parsed_args.name
|
||||
|
@ -265,10 +259,10 @@ class UpdateSubcloudGroup(base.DCManagerShowOne):
|
|||
raise exceptions.DCManagerClientException(error_msg)
|
||||
|
||||
try:
|
||||
return dcmanager_client.subcloud_group_manager.update_subcloud_group(
|
||||
return subcloud_group_manager.update_subcloud_group(
|
||||
subcloud_group_ref, **kwargs
|
||||
)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
msg = f"Unable to update subcloud group {subcloud_group_ref}"
|
||||
raise exceptions.DCManagerClientException(msg)
|
||||
|
|
|
@ -17,10 +17,11 @@
|
|||
import base64
|
||||
import os
|
||||
|
||||
import six
|
||||
from osc_lib.command import command
|
||||
import six
|
||||
|
||||
from dcmanagerclient import exceptions, utils
|
||||
from dcmanagerclient import exceptions
|
||||
from dcmanagerclient import utils
|
||||
from dcmanagerclient.commands.v1 import base
|
||||
|
||||
SET_FIELD_VALUE_DICT = {"region_name": None}
|
||||
|
@ -263,7 +264,7 @@ class AddSubcloud(base.DCManagerShowOne):
|
|||
return parser
|
||||
|
||||
def _get_resources(self, parsed_args):
|
||||
dcmanager_client = self.app.client_manager.subcloud_manager
|
||||
subcloud_manager = self.app.client_manager.subcloud_manager
|
||||
files = {}
|
||||
data = {}
|
||||
data["bootstrap-address"] = parsed_args.bootstrap_address
|
||||
|
@ -334,9 +335,7 @@ class AddSubcloud(base.DCManagerShowOne):
|
|||
--migrate option."
|
||||
raise exceptions.DCManagerClientException(error_msg)
|
||||
|
||||
result = dcmanager_client.subcloud_manager.add_subcloud(
|
||||
files=files, data=data
|
||||
)
|
||||
result = subcloud_manager.add_subcloud(files=files, data=data)
|
||||
update_fields_values(result)
|
||||
return result
|
||||
|
||||
|
@ -374,8 +373,8 @@ class ListSubcloud(base.DCManagerLister):
|
|||
return parser
|
||||
|
||||
def _get_resources(self, parsed_args):
|
||||
dcmanager_client = self.app.client_manager.subcloud_manager
|
||||
subclouds = dcmanager_client.subcloud_manager.list_subclouds()
|
||||
subcloud_manager = self.app.client_manager.subcloud_manager
|
||||
subclouds = subcloud_manager.list_subclouds()
|
||||
|
||||
# for '--all' parameter, show all subclouds.
|
||||
# for no parameter, hidden all 'secondary/secondary-failed'
|
||||
|
@ -414,12 +413,10 @@ class ShowSubcloud(base.DCManagerShowOne):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
subcloud_ref = parsed_args.subcloud
|
||||
dcmanager_client = self.app.client_manager.subcloud_manager
|
||||
subcloud_manager = self.app.client_manager.subcloud_manager
|
||||
if parsed_args.detail:
|
||||
return dcmanager_client.subcloud_manager.subcloud_additional_details(
|
||||
subcloud_ref
|
||||
)
|
||||
return dcmanager_client.subcloud_manager.subcloud_detail(subcloud_ref)
|
||||
return subcloud_manager.subcloud_additional_details(subcloud_ref)
|
||||
return subcloud_manager.subcloud_detail(subcloud_ref)
|
||||
|
||||
|
||||
class ShowSubcloudError(command.Command):
|
||||
|
@ -435,8 +432,8 @@ class ShowSubcloudError(command.Command):
|
|||
|
||||
def take_action(self, parsed_args):
|
||||
subcloud_ref = parsed_args.subcloud
|
||||
dcmanager_client = self.app.client_manager.subcloud_manager
|
||||
ret = dcmanager_client.subcloud_manager.subcloud_detail(subcloud_ref)
|
||||
subcloud_manager = self.app.client_manager.subcloud_manager
|
||||
ret = subcloud_manager.subcloud_detail(subcloud_ref)
|
||||
data = ret[0].error_description
|
||||
print("".join(data))
|
||||
|
||||
|
@ -452,11 +449,11 @@ class DeleteSubcloud(command.Command):
|
|||
|
||||
def take_action(self, parsed_args):
|
||||
subcloud_ref = parsed_args.subcloud
|
||||
dcmanager_client = self.app.client_manager.subcloud_manager
|
||||
subcloud_manager = self.app.client_manager.subcloud_manager
|
||||
try:
|
||||
dcmanager_client.subcloud_manager.delete_subcloud(subcloud_ref)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
subcloud_manager.delete_subcloud(subcloud_ref)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
error_msg = f"Unable to delete subcloud {subcloud_ref}"
|
||||
raise exceptions.DCManagerClientException(error_msg)
|
||||
|
||||
|
@ -485,7 +482,7 @@ class UnmanageSubcloud(base.DCManagerShowOne):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
subcloud_ref = parsed_args.subcloud
|
||||
dcmanager_client = self.app.client_manager.subcloud_manager
|
||||
subcloud_manager = self.app.client_manager.subcloud_manager
|
||||
kwargs = {}
|
||||
kwargs["management-state"] = "unmanaged"
|
||||
|
||||
|
@ -493,13 +490,13 @@ class UnmanageSubcloud(base.DCManagerShowOne):
|
|||
kwargs["migrate"] = "true"
|
||||
|
||||
try:
|
||||
result = dcmanager_client.subcloud_manager.update_subcloud(
|
||||
result = subcloud_manager.update_subcloud(
|
||||
subcloud_ref, files=None, data=kwargs
|
||||
)
|
||||
update_fields_values(result)
|
||||
return result
|
||||
except Exception as e:
|
||||
print(e)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
error_msg = f"Unable to unmanage subcloud {subcloud_ref}"
|
||||
raise exceptions.DCManagerClientException(error_msg)
|
||||
|
||||
|
@ -526,20 +523,20 @@ class ManageSubcloud(base.DCManagerShowOne):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
subcloud_ref = parsed_args.subcloud
|
||||
dcmanager_client = self.app.client_manager.subcloud_manager
|
||||
subcloud_manager = self.app.client_manager.subcloud_manager
|
||||
kwargs = {}
|
||||
kwargs["management-state"] = "managed"
|
||||
if parsed_args.force:
|
||||
kwargs["force"] = "true"
|
||||
|
||||
try:
|
||||
result = dcmanager_client.subcloud_manager.update_subcloud(
|
||||
result = subcloud_manager.update_subcloud(
|
||||
subcloud_ref, files=None, data=kwargs
|
||||
)
|
||||
update_fields_values(result)
|
||||
return result
|
||||
except Exception as e:
|
||||
print(e)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
error_msg = f"Unable to manage subcloud {subcloud_ref}"
|
||||
raise exceptions.DCManagerClientException(error_msg)
|
||||
|
||||
|
@ -631,7 +628,7 @@ class UpdateSubcloud(base.DCManagerShowOne):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
subcloud_ref = parsed_args.subcloud
|
||||
dcmanager_client = self.app.client_manager.subcloud_manager
|
||||
subcloud_manager = self.app.client_manager.subcloud_manager
|
||||
files = {}
|
||||
data = {}
|
||||
|
||||
|
@ -724,13 +721,13 @@ class UpdateSubcloud(base.DCManagerShowOne):
|
|||
raise exceptions.DCManagerClientException(error_msg)
|
||||
|
||||
try:
|
||||
result = dcmanager_client.subcloud_manager.update_subcloud(
|
||||
result = subcloud_manager.update_subcloud(
|
||||
subcloud_ref, files=files, data=data
|
||||
)
|
||||
update_fields_values(result)
|
||||
return result
|
||||
except Exception as e:
|
||||
print(e)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
error_msg = f"Unable to update subcloud {subcloud_ref}"
|
||||
raise exceptions.DCManagerClientException(error_msg)
|
||||
|
||||
|
@ -823,7 +820,7 @@ class RedeploySubcloud(base.DCManagerShowOne):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
subcloud_ref = parsed_args.subcloud
|
||||
dcmanager_client = self.app.client_manager.subcloud_manager
|
||||
subcloud_manager = self.app.client_manager.subcloud_manager
|
||||
files = {}
|
||||
data = {}
|
||||
|
||||
|
@ -886,11 +883,11 @@ class RedeploySubcloud(base.DCManagerShowOne):
|
|||
)
|
||||
if confirm == "redeploy":
|
||||
try:
|
||||
return dcmanager_client.subcloud_manager.redeploy_subcloud(
|
||||
return subcloud_manager.redeploy_subcloud(
|
||||
subcloud_ref=subcloud_ref, files=files, data=data
|
||||
)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
error_msg = f"Unable to redeploy subcloud {subcloud_ref}"
|
||||
raise exceptions.DCManagerClientException(error_msg)
|
||||
else:
|
||||
|
@ -980,7 +977,7 @@ class PrestageSubcloud(base.DCManagerShowOne):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
subcloud_ref = parsed_args.subcloud
|
||||
dcmanager_client = self.app.client_manager.subcloud_manager
|
||||
subcloud_manager = self.app.client_manager.subcloud_manager
|
||||
data = {}
|
||||
|
||||
if parsed_args.force:
|
||||
|
@ -1000,13 +997,13 @@ class PrestageSubcloud(base.DCManagerShowOne):
|
|||
data["release"] = parsed_args.release
|
||||
|
||||
try:
|
||||
result = dcmanager_client.subcloud_manager.prestage_subcloud(
|
||||
result = subcloud_manager.prestage_subcloud(
|
||||
subcloud_ref=subcloud_ref, data=data
|
||||
)
|
||||
update_fields_values(result)
|
||||
return result
|
||||
|
||||
except Exception as e:
|
||||
print(e)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
error_msg = f"Unable to prestage subcloud {subcloud_ref}"
|
||||
raise exceptions.DCManagerClientException(error_msg)
|
||||
|
|
|
@ -6,7 +6,8 @@ import base64
|
|||
|
||||
from osc_lib.command import command
|
||||
|
||||
from dcmanagerclient import exceptions, utils
|
||||
from dcmanagerclient import exceptions
|
||||
from dcmanagerclient import utils
|
||||
from dcmanagerclient.commands.v1 import base
|
||||
|
||||
|
||||
|
@ -65,7 +66,9 @@ class MigrateSubcloudPeerGroup(base.DCManagerLister):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
subcloud_peer_group_ref = parsed_args.group
|
||||
dcmanager_client = self.app.client_manager.subcloud_peer_group_manager
|
||||
subcloud_peer_group_manager = (
|
||||
self.app.client_manager.subcloud_peer_group_manager
|
||||
)
|
||||
kwargs = {}
|
||||
|
||||
if parsed_args.sysadmin_password is not None:
|
||||
|
@ -79,10 +82,11 @@ class MigrateSubcloudPeerGroup(base.DCManagerLister):
|
|||
).decode("utf-8")
|
||||
|
||||
try:
|
||||
return dcmanager_client.subcloud_peer_group_manager.\
|
||||
migrate_subcloud_peer_group(subcloud_peer_group_ref, **kwargs)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
return subcloud_peer_group_manager.migrate_subcloud_peer_group(
|
||||
subcloud_peer_group_ref, **kwargs
|
||||
)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
msg = f"Unable to migrate subcloud peer group {subcloud_peer_group_ref}"
|
||||
raise exceptions.DCManagerClientException(msg)
|
||||
|
||||
|
@ -120,7 +124,9 @@ class AddSubcloudPeerGroup(base.DCManagerShowOne):
|
|||
return parser
|
||||
|
||||
def _get_resources(self, parsed_args):
|
||||
dcmanager_client = self.app.client_manager.subcloud_peer_group_manager
|
||||
subcloud_peer_group_manager = (
|
||||
self.app.client_manager.subcloud_peer_group_manager
|
||||
)
|
||||
kwargs = {}
|
||||
|
||||
kwargs["peer-group-name"] = parsed_args.peer_group_name
|
||||
|
@ -131,9 +137,7 @@ class AddSubcloudPeerGroup(base.DCManagerShowOne):
|
|||
if parsed_args.max_subcloud_rehoming is not None:
|
||||
kwargs["max-subcloud-rehoming"] = parsed_args.max_subcloud_rehoming
|
||||
|
||||
return dcmanager_client.subcloud_peer_group_manager.add_subcloud_peer_group(
|
||||
**kwargs
|
||||
)
|
||||
return subcloud_peer_group_manager.add_subcloud_peer_group(**kwargs)
|
||||
|
||||
|
||||
class DeleteSubcloudPeerGroup(command.Command):
|
||||
|
@ -149,13 +153,15 @@ class DeleteSubcloudPeerGroup(command.Command):
|
|||
|
||||
def take_action(self, parsed_args):
|
||||
subcloud_peer_group_ref = parsed_args.group
|
||||
dcmanager_client = self.app.client_manager.subcloud_peer_group_manager
|
||||
subcloud_peer_group_manager = (
|
||||
self.app.client_manager.subcloud_peer_group_manager
|
||||
)
|
||||
try:
|
||||
dcmanager_client.subcloud_peer_group_manager.delete_subcloud_peer_group(
|
||||
subcloud_peer_group_manager.delete_subcloud_peer_group(
|
||||
subcloud_peer_group_ref
|
||||
)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
msg = f"Unable to delete subcloud peer group {subcloud_peer_group_ref}"
|
||||
raise exceptions.DCManagerClientException(msg)
|
||||
|
||||
|
@ -177,11 +183,11 @@ class ShowSubcloudPeerGroup(base.DCManagerShowOne):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
subcloud_peer_group_ref = parsed_args.group
|
||||
dcmanager_client = self.app.client_manager.subcloud_peer_group_manager
|
||||
return (
|
||||
dcmanager_client.subcloud_peer_group_manager.subcloud_peer_group_detail(
|
||||
subcloud_peer_group_ref
|
||||
)
|
||||
subcloud_peer_group_manager = (
|
||||
self.app.client_manager.subcloud_peer_group_manager
|
||||
)
|
||||
return subcloud_peer_group_manager.subcloud_peer_group_detail(
|
||||
subcloud_peer_group_ref
|
||||
)
|
||||
|
||||
|
||||
|
@ -196,10 +202,10 @@ class ListSubcloudPeerGroup(base.DCManagerLister):
|
|||
return parser
|
||||
|
||||
def _get_resources(self, parsed_args):
|
||||
dcmanager_client = self.app.client_manager.subcloud_peer_group_manager
|
||||
return (
|
||||
dcmanager_client.subcloud_peer_group_manager.list_subcloud_peer_groups()
|
||||
subcloud_peer_group_manager = (
|
||||
self.app.client_manager.subcloud_peer_group_manager
|
||||
)
|
||||
return subcloud_peer_group_manager.list_subcloud_peer_groups()
|
||||
|
||||
|
||||
class ListSubcloudPeerGroupSubclouds(base.DCManagerLister):
|
||||
|
@ -219,10 +225,12 @@ class ListSubcloudPeerGroupSubclouds(base.DCManagerLister):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
subcloud_peer_group_ref = parsed_args.group
|
||||
client_manager = self.app.client_manager
|
||||
dcmanager_client = client_manager.subcloud_peer_group_manager
|
||||
return dcmanager_client.subcloud_peer_group_manager.\
|
||||
subcloud_peer_group_list_subclouds(subcloud_peer_group_ref)
|
||||
subcloud_peer_group_manager = (
|
||||
self.app.client_manager.subcloud_peer_group_manager
|
||||
)
|
||||
return subcloud_peer_group_manager.subcloud_peer_group_list_subclouds(
|
||||
subcloud_peer_group_ref
|
||||
)
|
||||
|
||||
|
||||
class UpdateSubcloudPeerGroup(base.DCManagerShowOne):
|
||||
|
@ -261,7 +269,9 @@ class UpdateSubcloudPeerGroup(base.DCManagerShowOne):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
subcloud_peer_group_ref = parsed_args.group
|
||||
dcmanager_client = self.app.client_manager.subcloud_peer_group_manager
|
||||
subcloud_peer_group_manager = (
|
||||
self.app.client_manager.subcloud_peer_group_manager
|
||||
)
|
||||
kwargs = {}
|
||||
|
||||
if parsed_args.peer_group_name is not None:
|
||||
|
@ -278,10 +288,11 @@ class UpdateSubcloudPeerGroup(base.DCManagerShowOne):
|
|||
raise exceptions.DCManagerClientException(error_msg)
|
||||
|
||||
try:
|
||||
return dcmanager_client.subcloud_peer_group_manager.\
|
||||
update_subcloud_peer_group(subcloud_peer_group_ref, **kwargs)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
return subcloud_peer_group_manager.update_subcloud_peer_group(
|
||||
subcloud_peer_group_ref, **kwargs
|
||||
)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
msg = f"Unable to update subcloud peer group {subcloud_peer_group_ref}"
|
||||
raise exceptions.DCManagerClientException(msg)
|
||||
|
||||
|
@ -334,9 +345,9 @@ class StatusSubcloudPeerGroup(base.DCManagerShowOne):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
subcloud_peer_group_ref = parsed_args.group
|
||||
dcmanager_client = self.app.client_manager.subcloud_peer_group_manager
|
||||
return (
|
||||
dcmanager_client.subcloud_peer_group_manager.subcloud_peer_group_status(
|
||||
subcloud_peer_group_ref
|
||||
)
|
||||
subcloud_peer_group_manager = (
|
||||
self.app.client_manager.subcloud_peer_group_manager
|
||||
)
|
||||
return subcloud_peer_group_manager.subcloud_peer_group_status(
|
||||
subcloud_peer_group_ref
|
||||
)
|
||||
|
|
|
@ -11,8 +11,8 @@ class SwDeployManagerMixin:
|
|||
"""This Mixin provides the manager used for software deploy releases."""
|
||||
|
||||
def get_sw_update_manager(self):
|
||||
dcmanager_client = self.app.client_manager.sw_deploy_manager
|
||||
return dcmanager_client.sw_deploy_manager
|
||||
sw_deploy_manager = self.app.client_manager.sw_deploy_manager
|
||||
return sw_deploy_manager
|
||||
|
||||
def custom_format_function(self, sw_update_strategy=None):
|
||||
original_fmt_func = super()._get_format_function()
|
||||
|
@ -26,14 +26,14 @@ class SwDeployManagerMixin:
|
|||
|
||||
# Insert the 'release_id' field after the 'stop on failure',
|
||||
columns = (
|
||||
columns[:failure_status_index + 1]
|
||||
columns[: failure_status_index + 1]
|
||||
+ ("release_id",)
|
||||
+ columns[failure_status_index + 1:]
|
||||
+ columns[failure_status_index + 1 :]
|
||||
)
|
||||
data = (
|
||||
data[:failure_status_index + 1]
|
||||
data[: failure_status_index + 1]
|
||||
+ (release_id,)
|
||||
+ data[failure_status_index + 1:]
|
||||
+ data[failure_status_index + 1 :]
|
||||
)
|
||||
return columns, data
|
||||
|
||||
|
|
|
@ -20,8 +20,8 @@ class SwPatchManagerMixin:
|
|||
"""This Mixin provides the update manager used for sw patch."""
|
||||
|
||||
def get_sw_update_manager(self):
|
||||
dcmanager_client = self.app.client_manager.sw_patch_manager
|
||||
return dcmanager_client.sw_patch_manager
|
||||
sw_patch_manager = self.app.client_manager.sw_patch_manager
|
||||
return sw_patch_manager
|
||||
|
||||
def custom_format_function(self, sw_update_strategy=None):
|
||||
original_fmt_func = super()._get_format_function()
|
||||
|
|
|
@ -23,8 +23,8 @@ class SwPrestageManagerMixin:
|
|||
"""This Mixin provides the update manager used for sw prestage."""
|
||||
|
||||
def get_sw_update_manager(self):
|
||||
dcmanager_client = self.app.client_manager.sw_prestage_manager
|
||||
return dcmanager_client.sw_prestage_manager
|
||||
sw_prestage_manager = self.app.client_manager.sw_prestage_manager
|
||||
return sw_prestage_manager
|
||||
|
||||
def custom_format_function(self, sw_update_strategy=None):
|
||||
original_fmt_func = super()._get_format_function()
|
||||
|
|
|
@ -284,8 +284,8 @@ class ListSwUpdateStrategyStep(base.DCManagerLister):
|
|||
"""List strategy steps."""
|
||||
|
||||
def get_strategy_step_manager(self):
|
||||
dcmanager_client = self.app.client_manager.strategy_step_manager
|
||||
return dcmanager_client.strategy_step_manager
|
||||
strategy_step_manager = self.app.client_manager.strategy_step_manager
|
||||
return strategy_step_manager
|
||||
|
||||
def _get_format_function(self):
|
||||
return strategy_step_format
|
||||
|
@ -298,8 +298,8 @@ class ShowSwUpdateStrategyStep(base.DCManagerShowOne):
|
|||
"""Show the details of a strategy step."""
|
||||
|
||||
def get_strategy_step_manager(self):
|
||||
dcmanager_client = self.app.client_manager.strategy_step_manager
|
||||
return dcmanager_client.strategy_step_manager
|
||||
strategy_step_manager = self.app.client_manager.strategy_step_manager
|
||||
return strategy_step_manager
|
||||
|
||||
def _get_format_function(self):
|
||||
return detail_strategy_step_format
|
||||
|
|
|
@ -134,7 +134,7 @@ class UpdateSwUpdateOptions(base.DCManagerShowOne):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
subcloud_ref = parsed_args.subcloud
|
||||
dcmanager_client = self.app.client_manager.sw_update_options_manager
|
||||
sw_update_options_manager = self.app.client_manager.sw_update_options_manager
|
||||
kwargs = {}
|
||||
kwargs["storage-apply-type"] = parsed_args.storage_apply_type
|
||||
kwargs["worker-apply-type"] = parsed_args.worker_apply_type
|
||||
|
@ -143,13 +143,11 @@ class UpdateSwUpdateOptions(base.DCManagerShowOne):
|
|||
kwargs["default-instance-action"] = parsed_args.default_instance_action
|
||||
|
||||
try:
|
||||
return (
|
||||
dcmanager_client.sw_update_options_manager.sw_update_options_update(
|
||||
subcloud_ref, **kwargs
|
||||
)
|
||||
return sw_update_options_manager.sw_update_options_update(
|
||||
subcloud_ref, **kwargs
|
||||
)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
error_msg = f"Unable to update patch options for subcloud {subcloud_ref}"
|
||||
raise exceptions.DCManagerClientException(error_msg)
|
||||
|
||||
|
@ -165,8 +163,8 @@ class ListSwUpdateOptions(base.DCManagerLister):
|
|||
return parser
|
||||
|
||||
def _get_resources(self, parsed_args):
|
||||
dcmanager_client = self.app.client_manager.sw_update_options_manager
|
||||
return dcmanager_client.sw_update_options_manager.sw_update_options_list()
|
||||
sw_update_options_manager = self.app.client_manager.sw_update_options_manager
|
||||
return sw_update_options_manager.sw_update_options_list()
|
||||
|
||||
|
||||
class ShowSwUpdateOptions(base.DCManagerShowOne):
|
||||
|
@ -189,10 +187,8 @@ class ShowSwUpdateOptions(base.DCManagerShowOne):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
subcloud_ref = parsed_args.subcloud
|
||||
dcmanager_client = self.app.client_manager.sw_update_options_manager
|
||||
return dcmanager_client.sw_update_options_manager.sw_update_options_detail(
|
||||
subcloud_ref
|
||||
)
|
||||
sw_update_options_manager = self.app.client_manager.sw_update_options_manager
|
||||
return sw_update_options_manager.sw_update_options_detail(subcloud_ref)
|
||||
|
||||
|
||||
class DeleteSwUpdateOptions(command.Command):
|
||||
|
@ -207,14 +203,10 @@ class DeleteSwUpdateOptions(command.Command):
|
|||
|
||||
def take_action(self, parsed_args):
|
||||
subcloud_ref = parsed_args.subcloud
|
||||
dcmanager_client = self.app.client_manager.sw_update_options_manager
|
||||
sw_update_options_manager = self.app.client_manager.sw_update_options_manager
|
||||
try:
|
||||
return (
|
||||
dcmanager_client.sw_update_options_manager.sw_update_options_delete(
|
||||
subcloud_ref
|
||||
)
|
||||
)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
return sw_update_options_manager.sw_update_options_delete(subcloud_ref)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
error_msg = "Unable to delete patch options"
|
||||
raise exceptions.DCManagerClientException(error_msg)
|
||||
|
|
|
@ -20,8 +20,8 @@ class SwUpgradeManagerMixin:
|
|||
"""This Mixin provides the update manager used for software upgrades."""
|
||||
|
||||
def get_sw_update_manager(self):
|
||||
dcmanager_client = self.app.client_manager.sw_upgrade_manager
|
||||
return dcmanager_client.sw_upgrade_manager
|
||||
sw_upgrade_manager = self.app.client_manager.sw_upgrade_manager
|
||||
return sw_upgrade_manager
|
||||
|
||||
|
||||
class CreateSwUpgradeStrategy(
|
||||
|
|
|
@ -8,7 +8,8 @@ import base64
|
|||
|
||||
from osc_lib.command import command
|
||||
|
||||
from dcmanagerclient import exceptions, utils
|
||||
from dcmanagerclient import exceptions
|
||||
from dcmanagerclient import utils
|
||||
from dcmanagerclient.commands.v1 import base
|
||||
|
||||
|
||||
|
@ -191,7 +192,7 @@ class AddSystemPeer(base.DCManagerShowOne):
|
|||
return parser
|
||||
|
||||
def _get_resources(self, parsed_args):
|
||||
dcmanager_client = self.app.client_manager.system_peer_manager
|
||||
system_peer_manager = self.app.client_manager.system_peer_manager
|
||||
kwargs = {}
|
||||
|
||||
if parsed_args.peer_uuid is not None:
|
||||
|
@ -242,7 +243,7 @@ class AddSystemPeer(base.DCManagerShowOne):
|
|||
kwargs["heartbeat_maintenance_timeout"] = (
|
||||
parsed_args.heartbeat_maintenance_timeout
|
||||
)
|
||||
return dcmanager_client.system_peer_manager.add_system_peer(**kwargs)
|
||||
return system_peer_manager.add_system_peer(**kwargs)
|
||||
|
||||
|
||||
class ListSystemPeer(base.DCManagerLister):
|
||||
|
@ -256,8 +257,8 @@ class ListSystemPeer(base.DCManagerLister):
|
|||
return parser
|
||||
|
||||
def _get_resources(self, parsed_args):
|
||||
dcmanager_client = self.app.client_manager.system_peer_manager
|
||||
return dcmanager_client.system_peer_manager.list_system_peers()
|
||||
system_peer_manager = self.app.client_manager.system_peer_manager
|
||||
return system_peer_manager.list_system_peers()
|
||||
|
||||
|
||||
class ListSystemPeerSubcloudPeerGroups(base.DCManagerLister):
|
||||
|
@ -279,10 +280,8 @@ class ListSystemPeerSubcloudPeerGroups(base.DCManagerLister):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
system_peer_ref = parsed_args.peer
|
||||
dcmanager_client = self.app.client_manager.system_peer_manager
|
||||
return dcmanager_client.system_peer_manager.system_peer_list_peer_groups(
|
||||
system_peer_ref
|
||||
)
|
||||
system_peer_manager = self.app.client_manager.system_peer_manager
|
||||
return system_peer_manager.system_peer_list_peer_groups(system_peer_ref)
|
||||
|
||||
|
||||
class ShowSystemPeer(base.DCManagerShowOne):
|
||||
|
@ -302,10 +301,8 @@ class ShowSystemPeer(base.DCManagerShowOne):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
system_peer_ref = parsed_args.peer
|
||||
dcmanager_client = self.app.client_manager.system_peer_manager
|
||||
return dcmanager_client.system_peer_manager.system_peer_detail(
|
||||
system_peer_ref
|
||||
)
|
||||
system_peer_manager = self.app.client_manager.system_peer_manager
|
||||
return system_peer_manager.system_peer_detail(system_peer_ref)
|
||||
|
||||
|
||||
class DeleteSystemPeer(command.Command):
|
||||
|
@ -319,11 +316,11 @@ class DeleteSystemPeer(command.Command):
|
|||
|
||||
def take_action(self, parsed_args):
|
||||
system_peer_ref = parsed_args.peer
|
||||
dcmanager_client = self.app.client_manager.system_peer_manager
|
||||
system_peer_manager = self.app.client_manager.system_peer_manager
|
||||
try:
|
||||
dcmanager_client.system_peer_manager.delete_system_peer(system_peer_ref)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
system_peer_manager.delete_system_peer(system_peer_ref)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
msg = f"Unable to delete system peer {system_peer_ref}"
|
||||
raise exceptions.DCManagerClientException(msg)
|
||||
|
||||
|
@ -415,7 +412,7 @@ class UpdateSystemPeer(base.DCManagerShowOne):
|
|||
|
||||
def _get_resources(self, parsed_args):
|
||||
system_peer_ref = parsed_args.peer
|
||||
dcmanager_client = self.app.client_manager.system_peer_manager
|
||||
system_peer_manager = self.app.client_manager.system_peer_manager
|
||||
kwargs = {}
|
||||
if parsed_args.peer_uuid:
|
||||
kwargs["peer_uuid"] = parsed_args.peer_uuid
|
||||
|
@ -460,10 +457,8 @@ class UpdateSystemPeer(base.DCManagerShowOne):
|
|||
raise exceptions.DCManagerClientException(error_msg)
|
||||
|
||||
try:
|
||||
return dcmanager_client.system_peer_manager.update_system_peer(
|
||||
system_peer_ref, **kwargs
|
||||
)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
return system_peer_manager.update_system_peer(system_peer_ref, **kwargs)
|
||||
except Exception as exc:
|
||||
print(exc)
|
||||
msg = f"Unable to update system peer {system_peer_ref}"
|
||||
raise exceptions.DCManagerClientException(msg)
|
||||
|
|
|
@ -113,8 +113,8 @@ class HelpAction(argparse.Action):
|
|||
parser.print_help(main_app.stdout)
|
||||
main_app.stdout.write("\nCommands for API v1 :\n")
|
||||
|
||||
for name, ep in sorted(main_app.command_manager):
|
||||
factory = ep.load()
|
||||
for name, app_cmd in sorted(main_app.command_manager):
|
||||
factory = app_cmd.load()
|
||||
cmd = factory(self, None)
|
||||
one_liner = cmd.get_description().split("\n")[0]
|
||||
outputs.append((name, one_liner))
|
||||
|
@ -135,17 +135,18 @@ class BashCompletionCommand(command.Command):
|
|||
|
||||
for (
|
||||
option,
|
||||
_action,
|
||||
_,
|
||||
) in self.app.parser._option_string_actions.items():
|
||||
options.add(option)
|
||||
|
||||
for command_name, _cmd in self.app.command_manager:
|
||||
for command_name, _ in self.app.command_manager:
|
||||
commands.add(command_name)
|
||||
|
||||
print(" ".join(commands | options))
|
||||
|
||||
|
||||
class DCManagerShell(app.App):
|
||||
|
||||
def __init__(self):
|
||||
super().__init__(
|
||||
description=__doc__.strip(),
|
||||
|
@ -487,53 +488,60 @@ class DCManagerShell(app.App):
|
|||
)
|
||||
)
|
||||
|
||||
phased_subcloud_deploy_manager = self.client.phased_subcloud_deploy_manager
|
||||
peer_group_association_manager = self.client.peer_group_association_manager
|
||||
client_keys = {
|
||||
"alarm_manager": self.client.alarm_manager,
|
||||
"fw_update_manager": self.client.fw_update_manager,
|
||||
"kube_rootca_update_manager": self.client.kube_rootca_update_manager,
|
||||
"kube_upgrade_manager": self.client.kube_upgrade_manager,
|
||||
"peer_group_association_manager": peer_group_association_manager,
|
||||
"phased_subcloud_deploy_manager": phased_subcloud_deploy_manager,
|
||||
"strategy_step_manager": self.client.strategy_step_manager,
|
||||
"subcloud_backup_manager": self.client.subcloud_backup_manager,
|
||||
"subcloud_deploy_manager": self.client.subcloud_deploy_manager,
|
||||
"subcloud_group_manager": self.client.subcloud_group_manager,
|
||||
"subcloud_peer_group_manager": self.client.subcloud_peer_group_manager,
|
||||
"subcloud_manager": self.client.subcloud_manager,
|
||||
"sw_deploy_manager": self.client.sw_deploy_manager,
|
||||
"sw_patch_manager": self.client.sw_patch_manager,
|
||||
"sw_prestage_manager": self.client.sw_prestage_manager,
|
||||
"sw_update_options_manager": self.client.sw_update_options_manager,
|
||||
"sw_upgrade_manager": self.client.sw_upgrade_manager,
|
||||
"system_peer_manager": self.client.system_peer_manager,
|
||||
}
|
||||
|
||||
# Adding client_manager variable to make dcmanager client work with
|
||||
# unified OpenStack client.
|
||||
ClientManager = type(
|
||||
"ClientManager",
|
||||
(object,),
|
||||
{
|
||||
"subcloud_manager": self.client,
|
||||
"subcloud_backup_manager": self.client,
|
||||
"subcloud_group_manager": self.client,
|
||||
"subcloud_deploy_manager": self.client,
|
||||
"system_peer_manager": self.client,
|
||||
"alarm_manager": self.client,
|
||||
"fw_update_manager": self.client,
|
||||
"sw_patch_manager": self.client,
|
||||
"strategy_step_manager": self.client,
|
||||
"sw_update_options_manager": self.client,
|
||||
"sw_upgrade_manager": self.client,
|
||||
"kube_upgrade_manager": self.client,
|
||||
"kube_rootca_update_manager": self.client,
|
||||
"sw_prestage_manager": self.client,
|
||||
"phased_subcloud_deploy_manager": self.client,
|
||||
"subcloud_peer_group_manager": self.client,
|
||||
"peer_group_association_manager": self.client,
|
||||
},
|
||||
client_keys,
|
||||
)
|
||||
self.client_manager = ClientManager()
|
||||
|
||||
def _set_shell_commands(self, cmds_dict):
|
||||
for k, v in cmds_dict.items():
|
||||
self.command_manager.add_command(k, v)
|
||||
for cmd, cmd_class in cmds_dict.items():
|
||||
self.command_manager.add_command(cmd, cmd_class)
|
||||
|
||||
def _clear_shell_commands(self):
|
||||
exclude_cmds = ["help", "complete"]
|
||||
|
||||
cmds = self.command_manager.commands.copy()
|
||||
for k, _v in cmds.items():
|
||||
for k, _ in cmds.items():
|
||||
if k not in exclude_cmds:
|
||||
self.command_manager.commands.pop(k)
|
||||
|
||||
def _get_commands(self, version):
|
||||
if version == 1:
|
||||
return self._get_commands_v1()
|
||||
|
||||
return {}
|
||||
|
||||
@staticmethod
|
||||
def _get_commands_v1():
|
||||
list_system_peer_groups = sp.ListSystemPeerSubcloudPeerGroups
|
||||
create_kube_root_update = krum.CreateKubeRootcaUpdateStrategy
|
||||
delete_kube_root_update = krum.DeleteKubeRootcaUpdateStrategy
|
||||
return {
|
||||
"alarm summary": am.ListAlarmSummary,
|
||||
"bash-completion": BashCompletionCommand,
|
||||
|
@ -544,10 +552,8 @@ class DCManagerShell(app.App):
|
|||
"fw-update-strategy show": fum.ShowFwUpdateStrategy,
|
||||
"kube-rootca-update-strategy abort": krum.AbortKubeRootcaUpdateStrategy,
|
||||
"kube-rootca-update-strategy apply": krum.ApplyKubeRootcaUpdateStrategy,
|
||||
"kube-rootca-update-strategy create":
|
||||
krum.CreateKubeRootcaUpdateStrategy,
|
||||
"kube-rootca-update-strategy delete":
|
||||
krum.DeleteKubeRootcaUpdateStrategy,
|
||||
"kube-rootca-update-strategy create": create_kube_root_update,
|
||||
"kube-rootca-update-strategy delete": delete_kube_root_update,
|
||||
"kube-rootca-update-strategy show": krum.ShowKubeRootcaUpdateStrategy,
|
||||
"kube-upgrade-strategy abort": kupm.AbortKubeUpgradeStrategy,
|
||||
"kube-upgrade-strategy apply": kupm.ApplyKubeUpgradeStrategy,
|
||||
|
@ -630,8 +636,7 @@ class DCManagerShell(app.App):
|
|||
"system-peer add": sp.AddSystemPeer,
|
||||
"system-peer delete": sp.DeleteSystemPeer,
|
||||
"system-peer list": sp.ListSystemPeer,
|
||||
"system-peer list-subcloud-peer-groups":
|
||||
sp.ListSystemPeerSubcloudPeerGroups,
|
||||
"system-peer list-subcloud-peer-groups": list_system_peer_groups,
|
||||
"system-peer show": sp.ShowSystemPeer,
|
||||
"system-peer update": sp.UpdateSystemPeer,
|
||||
"upgrade-strategy abort": supm.AbortSwUpgradeStrategy,
|
||||
|
|
|
@ -318,7 +318,7 @@ class BaseCommandTest(testtools.TestCase):
|
|||
def setUp(self):
|
||||
super().setUp()
|
||||
self.app = mock.Mock()
|
||||
self.client = self.app.client_manager.subcloud_manager
|
||||
self.client = self.app.client_manager
|
||||
self.parsed_args = None
|
||||
|
||||
def call(self, command, app_args=None, prog_name=""):
|
||||
|
|
|
@ -35,7 +35,7 @@ class TestCLIAlarmSummaryV1(base.BaseCommandTest):
|
|||
self.client = self.app.client_manager.alarm_manager
|
||||
|
||||
def test_list_alarm_summary(self):
|
||||
self.client.alarm_manager.list_alarms.return_value = [ALARM_SUMMARY]
|
||||
self.client.list_alarms.return_value = [ALARM_SUMMARY]
|
||||
actual_call = self.call(alarm_cmd.ListAlarmSummary)
|
||||
self.assertEqual(
|
||||
[
|
||||
|
|
|
@ -13,9 +13,7 @@ class TestFwUpdateStrategy(UpdateStrategyMixin, base.BaseCommandTest):
|
|||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.sw_update_manager = (
|
||||
self.app.client_manager.fw_update_manager.fw_update_manager
|
||||
)
|
||||
self.sw_update_manager = self.app.client_manager.fw_update_manager
|
||||
self.create_command = cli_cmd.CreateFwUpdateStrategy
|
||||
self.show_command = cli_cmd.ShowFwUpdateStrategy
|
||||
self.delete_command = cli_cmd.DeleteFwUpdateStrategy
|
||||
|
|
|
@ -13,8 +13,7 @@ class TestKubeRootcaUpdateStrategy(UpdateStrategyMixin, base.BaseCommandTest):
|
|||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.sw_update_manager = self.app.client_manager.kube_rootca_update_manager.\
|
||||
kube_rootca_update_manager
|
||||
self.sw_update_manager = self.app.client_manager.kube_rootca_update_manager
|
||||
self.create_command = cli_cmd.CreateKubeRootcaUpdateStrategy
|
||||
self.show_command = cli_cmd.ShowKubeRootcaUpdateStrategy
|
||||
self.delete_command = cli_cmd.DeleteKubeRootcaUpdateStrategy
|
||||
|
|
|
@ -13,9 +13,7 @@ class TestKubeUpgradeStrategy(UpdateStrategyMixin, base.BaseCommandTest):
|
|||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.sw_update_manager = (
|
||||
self.app.client_manager.kube_upgrade_manager.kube_upgrade_manager
|
||||
)
|
||||
self.sw_update_manager = self.app.client_manager.kube_upgrade_manager
|
||||
self.create_command = cli_cmd.CreateKubeUpgradeStrategy
|
||||
self.show_command = cli_cmd.ShowKubeUpgradeStrategy
|
||||
self.delete_command = cli_cmd.DeleteKubeUpgradeStrategy
|
||||
|
|
|
@ -18,9 +18,7 @@ class TestPatchUpdateStrategy(UpdateStrategyMixin, base.BaseCommandTest):
|
|||
# Increase results_length due to the 'upload only' field
|
||||
self.results_length += 1
|
||||
|
||||
self.sw_update_manager = (
|
||||
self.app.client_manager.sw_patch_manager.sw_patch_manager
|
||||
)
|
||||
self.sw_update_manager = self.app.client_manager.sw_patch_manager
|
||||
self.create_command = cli_cmd.CreatePatchUpdateStrategy
|
||||
self.show_command = cli_cmd.ShowPatchUpdateStrategy
|
||||
self.delete_command = cli_cmd.DeletePatchUpdateStrategy
|
||||
|
|
|
@ -77,14 +77,14 @@ class TestCLIPeerGroupAssociationV1(base.BaseCommandTest):
|
|||
self.client = self.app.client_manager.peer_group_association_manager
|
||||
|
||||
def test_list_peer_group_association(self):
|
||||
self.client.peer_group_association_manager.list_peer_group_associations.\
|
||||
return_value = [PEER_GROUP_ASSOCIATION]
|
||||
self.client.list_peer_group_associations.return_value = [
|
||||
PEER_GROUP_ASSOCIATION
|
||||
]
|
||||
actual_call = self.call(peer_group_association_cmd.ListPeerGroupAssociation)
|
||||
self.assertEqual([PEER_GROUP_ASSOCIATION_TUPLE], actual_call[1])
|
||||
|
||||
def test_list_peer_group_association_empty(self):
|
||||
self.client.peer_group_association_manager.list_peer_group_associations.\
|
||||
return_value = ([])
|
||||
self.client.list_peer_group_associations.return_value = []
|
||||
actual_call = self.call(peer_group_association_cmd.ListPeerGroupAssociation)
|
||||
self.assertEqual(
|
||||
(tuple("<none>" for _ in range(len(PEER_GROUP_ASSOCIATION_TUPLE))),),
|
||||
|
@ -92,8 +92,9 @@ class TestCLIPeerGroupAssociationV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_add_peer_group_association(self):
|
||||
self.client.peer_group_association_manager.add_peer_group_association.\
|
||||
return_value = [PEER_GROUP_ASSOCIATION]
|
||||
self.client.add_peer_group_association.return_value = [
|
||||
PEER_GROUP_ASSOCIATION
|
||||
]
|
||||
actual_call = self.call(
|
||||
peer_group_association_cmd.AddPeerGroupAssociation,
|
||||
app_args=[
|
||||
|
@ -108,8 +109,9 @@ class TestCLIPeerGroupAssociationV1(base.BaseCommandTest):
|
|||
self.assertEqual(PEER_GROUP_ASSOCIATION_DETAIL_TUPLE, actual_call[1])
|
||||
|
||||
def test_show_peer_group_association(self):
|
||||
self.client.peer_group_association_manager.peer_group_association_detail.\
|
||||
return_value = [PEER_GROUP_ASSOCIATION]
|
||||
self.client.peer_group_association_detail.return_value = [
|
||||
PEER_GROUP_ASSOCIATION
|
||||
]
|
||||
actual_call = self.call(
|
||||
peer_group_association_cmd.ShowPeerGroupAssociation,
|
||||
app_args=[PEER_GROUP_ASSOCIATION_ID],
|
||||
|
@ -130,8 +132,7 @@ class TestCLIPeerGroupAssociationV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_show_peer_group_association_without_id(self):
|
||||
self.client.peer_group_association_manager.peer_group_association_detail.\
|
||||
return_value = ([])
|
||||
self.client.peer_group_association_detail.return_value = []
|
||||
self.assertRaises(
|
||||
SystemExit,
|
||||
self.call,
|
||||
|
@ -144,8 +145,9 @@ class TestCLIPeerGroupAssociationV1(base.BaseCommandTest):
|
|||
peer_group_association_cmd.DeletePeerGroupAssociation,
|
||||
app_args=[PEER_GROUP_ASSOCIATION_ID],
|
||||
)
|
||||
self.client.peer_group_association_manager.delete_peer_group_association.\
|
||||
assert_called_once_with(PEER_GROUP_ASSOCIATION_ID)
|
||||
self.client.delete_peer_group_association.assert_called_once_with(
|
||||
PEER_GROUP_ASSOCIATION_ID
|
||||
)
|
||||
|
||||
def test_delete_peer_group_association_without_id(self):
|
||||
self.assertRaises(
|
||||
|
@ -160,8 +162,9 @@ class TestCLIPeerGroupAssociationV1(base.BaseCommandTest):
|
|||
updated_peed_group_association.peer_group_priority = (
|
||||
PG_GROUP_PRIORITY_UPDATED
|
||||
)
|
||||
self.client.peer_group_association_manager.update_peer_group_association.\
|
||||
return_value = [updated_peed_group_association]
|
||||
self.client.update_peer_group_association.return_value = [
|
||||
updated_peed_group_association
|
||||
]
|
||||
actual_call = self.call(
|
||||
peer_group_association_cmd.UpdatePeerGroupAssociation,
|
||||
app_args=[
|
||||
|
@ -173,8 +176,9 @@ class TestCLIPeerGroupAssociationV1(base.BaseCommandTest):
|
|||
self.assertEqual((PEER_GROUP_ASSOCIATION_TUPLE_UPDATED), actual_call[1])
|
||||
|
||||
def test_update_peer_group_association_without_priority(self):
|
||||
self.client.peer_group_association_manager.update_peer_group_association.\
|
||||
return_value = [PEER_GROUP_ASSOCIATION]
|
||||
self.client.update_peer_group_association.return_value = [
|
||||
PEER_GROUP_ASSOCIATION
|
||||
]
|
||||
self.assertRaises(
|
||||
SystemExit,
|
||||
self.call,
|
||||
|
@ -183,8 +187,9 @@ class TestCLIPeerGroupAssociationV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_sync_peer_group_association(self):
|
||||
self.client.peer_group_association_manager.sync_peer_group_association.\
|
||||
return_value = [PEER_GROUP_ASSOCIATION]
|
||||
self.client.sync_peer_group_association.return_value = [
|
||||
PEER_GROUP_ASSOCIATION
|
||||
]
|
||||
actual_call = self.call(
|
||||
peer_group_association_cmd.SyncPeerGroupAssociation,
|
||||
app_args=[PEER_GROUP_ASSOCIATION_ID],
|
||||
|
|
|
@ -15,247 +15,259 @@ from dcmanagerclient.exceptions import DCManagerClientException
|
|||
from dcmanagerclient.tests import base
|
||||
|
||||
|
||||
@mock.patch('getpass.getpass', new=mock.Mock(return_value='testpassword'))
|
||||
@mock.patch("getpass.getpass", new=mock.Mock(return_value="testpassword"))
|
||||
class TestCLIPhasedSubcloudDeployManagerV1(base.BaseCommandTest):
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
# The client is the subcloud_deploy_manager
|
||||
self.client = self.app.client_manager.phased_subcloud_deploy_manager.\
|
||||
phased_subcloud_deploy_manager
|
||||
self.client = self.app.client_manager.phased_subcloud_deploy_manager
|
||||
|
||||
def test_subcloud_deploy_create(self):
|
||||
self.client.subcloud_deploy_create.return_value = [
|
||||
base.SUBCLOUD_RESOURCE]
|
||||
self.client.subcloud_deploy_create.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
|
||||
with tempfile.NamedTemporaryFile(mode='w') as bootstrap_file, \
|
||||
tempfile.NamedTemporaryFile(mode='w') as config_file, \
|
||||
tempfile.NamedTemporaryFile(mode='w') as install_file:
|
||||
with tempfile.NamedTemporaryFile(
|
||||
mode="w"
|
||||
) as bootstrap_file, tempfile.NamedTemporaryFile(
|
||||
mode="w"
|
||||
) as config_file, tempfile.NamedTemporaryFile(
|
||||
mode="w"
|
||||
) as install_file:
|
||||
|
||||
bootstrap_file_path = os.path.abspath(bootstrap_file.name)
|
||||
config_file_path = os.path.abspath(config_file.name)
|
||||
install_file_path = os.path.abspath(install_file.name)
|
||||
|
||||
actual_call = self.call(
|
||||
cmd.CreatePhasedSubcloudDeploy, app_args=[
|
||||
'--bootstrap-address', base.BOOTSTRAP_ADDRESS,
|
||||
'--install-values', install_file_path,
|
||||
'--bootstrap-values', bootstrap_file_path,
|
||||
'--deploy-config', config_file_path,
|
||||
'--release', base.SOFTWARE_VERSION,
|
||||
])
|
||||
self.assertEqual(
|
||||
base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID,
|
||||
actual_call[1])
|
||||
cmd.CreatePhasedSubcloudDeploy,
|
||||
app_args=[
|
||||
"--bootstrap-address",
|
||||
base.BOOTSTRAP_ADDRESS,
|
||||
"--install-values",
|
||||
install_file_path,
|
||||
"--bootstrap-values",
|
||||
bootstrap_file_path,
|
||||
"--deploy-config",
|
||||
config_file_path,
|
||||
"--release",
|
||||
base.SOFTWARE_VERSION,
|
||||
],
|
||||
)
|
||||
self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, actual_call[1])
|
||||
|
||||
def test_subcloud_deploy_bootstrap(self):
|
||||
self.client.subcloud_deploy_bootstrap.return_value = [
|
||||
base.SUBCLOUD_RESOURCE]
|
||||
self.client.subcloud_deploy_bootstrap.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
|
||||
with tempfile.NamedTemporaryFile(mode='w') as bootstrap_file:
|
||||
with tempfile.NamedTemporaryFile(mode="w") as bootstrap_file:
|
||||
bootstrap_file_path = os.path.abspath(bootstrap_file.name)
|
||||
|
||||
actual_call = self.call(
|
||||
cmd.BootstrapPhasedSubcloudDeploy, app_args=[
|
||||
cmd.BootstrapPhasedSubcloudDeploy,
|
||||
app_args=[
|
||||
base.ID,
|
||||
'--bootstrap-address', base.BOOTSTRAP_ADDRESS,
|
||||
'--bootstrap-values', bootstrap_file_path,
|
||||
])
|
||||
self.assertEqual(
|
||||
base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID,
|
||||
actual_call[1])
|
||||
"--bootstrap-address",
|
||||
base.BOOTSTRAP_ADDRESS,
|
||||
"--bootstrap-values",
|
||||
bootstrap_file_path,
|
||||
],
|
||||
)
|
||||
self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, actual_call[1])
|
||||
|
||||
def test_install_subcloud(self):
|
||||
self.client.subcloud_deploy_install.return_value = [
|
||||
base.SUBCLOUD_RESOURCE]
|
||||
self.client.subcloud_deploy_install.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
|
||||
with tempfile.NamedTemporaryFile(mode='w') as f:
|
||||
with tempfile.NamedTemporaryFile(mode="w") as f:
|
||||
yaml.dump(base.FAKE_INSTALL_VALUES, f)
|
||||
file_path = os.path.abspath(f.name)
|
||||
actual_call = self.call(
|
||||
cmd.InstallPhasedSubcloudDeploy, app_args=[
|
||||
base.NAME, '--install-values', file_path,
|
||||
])
|
||||
self.assertEqual(
|
||||
base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID,
|
||||
actual_call[1])
|
||||
cmd.InstallPhasedSubcloudDeploy,
|
||||
app_args=[
|
||||
base.NAME,
|
||||
"--install-values",
|
||||
file_path,
|
||||
],
|
||||
)
|
||||
self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, actual_call[1])
|
||||
|
||||
def test_install_subcloud_with_release(self):
|
||||
self.client.subcloud_deploy_install.return_value = [
|
||||
base.SUBCLOUD_RESOURCE]
|
||||
self.client.subcloud_deploy_install.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
|
||||
with tempfile.NamedTemporaryFile(mode='w') as f:
|
||||
with tempfile.NamedTemporaryFile(mode="w") as f:
|
||||
yaml.dump(base.FAKE_INSTALL_VALUES, f)
|
||||
file_path = os.path.abspath(f.name)
|
||||
actual_call = self.call(
|
||||
cmd.InstallPhasedSubcloudDeploy, app_args=[
|
||||
cmd.InstallPhasedSubcloudDeploy,
|
||||
app_args=[
|
||||
base.NAME,
|
||||
'--install-values', file_path,
|
||||
'--release', base.SOFTWARE_VERSION,
|
||||
])
|
||||
self.assertEqual(
|
||||
base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID,
|
||||
actual_call[1])
|
||||
"--install-values",
|
||||
file_path,
|
||||
"--release",
|
||||
base.SOFTWARE_VERSION,
|
||||
],
|
||||
)
|
||||
self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, actual_call[1])
|
||||
|
||||
def test_install_subcloud_without_install_values(self):
|
||||
self.client.subcloud_deploy_install.return_value = [
|
||||
base.SUBCLOUD_RESOURCE]
|
||||
self.client.subcloud_deploy_install.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
|
||||
actual_call = self.call(
|
||||
cmd.InstallPhasedSubcloudDeploy, app_args=[base.NAME])
|
||||
cmd.InstallPhasedSubcloudDeploy, app_args=[base.NAME]
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID,
|
||||
actual_call[1])
|
||||
self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, actual_call[1])
|
||||
|
||||
def test_install_file_does_not_exist(self):
|
||||
self.client.subcloud_deploy_install.return_value = [
|
||||
base.SUBCLOUD_RESOURCE]
|
||||
self.client.subcloud_deploy_install.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
with tempfile.NamedTemporaryFile() as f:
|
||||
file_path = os.path.abspath(f.name)
|
||||
|
||||
e = self.assertRaises(DCManagerClientException,
|
||||
self.call,
|
||||
cmd.InstallPhasedSubcloudDeploy,
|
||||
app_args=[base.NAME,
|
||||
'--install-values', file_path]
|
||||
)
|
||||
self.assertTrue('install-values does not exist'
|
||||
in str(e))
|
||||
e = self.assertRaises(
|
||||
DCManagerClientException,
|
||||
self.call,
|
||||
cmd.InstallPhasedSubcloudDeploy,
|
||||
app_args=[base.NAME, "--install-values", file_path],
|
||||
)
|
||||
self.assertTrue("install-values does not exist" in str(e))
|
||||
|
||||
def test_configure_subcloud(self):
|
||||
self.client.subcloud_deploy_config.return_value = [
|
||||
base.SUBCLOUD_RESOURCE]
|
||||
self.client.subcloud_deploy_config.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
|
||||
with tempfile.NamedTemporaryFile() as f:
|
||||
file_path = os.path.abspath(f.name)
|
||||
actual_call = self.call(
|
||||
cmd.ConfigPhasedSubcloudDeploy,
|
||||
app_args=[base.NAME, '--deploy-config', file_path])
|
||||
self.assertEqual(
|
||||
base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID,
|
||||
actual_call[1])
|
||||
app_args=[base.NAME, "--deploy-config", file_path],
|
||||
)
|
||||
self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, actual_call[1])
|
||||
|
||||
def test_configure_file_does_not_exist(self):
|
||||
self.client.subcloud_deploy_config.return_value = [
|
||||
base.SUBCLOUD_RESOURCE]
|
||||
self.client.subcloud_deploy_config.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
|
||||
with tempfile.NamedTemporaryFile() as f:
|
||||
file_path = os.path.abspath(f.name)
|
||||
|
||||
e = self.assertRaises(DCManagerClientException,
|
||||
self.call,
|
||||
cmd.ConfigPhasedSubcloudDeploy,
|
||||
app_args=[base.NAME,
|
||||
'--deploy-config', file_path])
|
||||
self.assertTrue('deploy-config file does not exist' in str(e))
|
||||
e = self.assertRaises(
|
||||
DCManagerClientException,
|
||||
self.call,
|
||||
cmd.ConfigPhasedSubcloudDeploy,
|
||||
app_args=[base.NAME, "--deploy-config", file_path],
|
||||
)
|
||||
self.assertTrue("deploy-config file does not exist" in str(e))
|
||||
|
||||
def test_complete_subcloud_deployment(self):
|
||||
self.client.subcloud_deploy_complete.return_value = [
|
||||
base.SUBCLOUD_RESOURCE]
|
||||
self.client.subcloud_deploy_complete.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
actual_call = self.call(
|
||||
cmd.CompletePhasedSubcloudDeploy,
|
||||
app_args=[base.NAME])
|
||||
self.assertEqual(
|
||||
base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID,
|
||||
actual_call[1])
|
||||
cmd.CompletePhasedSubcloudDeploy, app_args=[base.NAME]
|
||||
)
|
||||
self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, actual_call[1])
|
||||
|
||||
def test_abort_subcloud(self):
|
||||
self.client.subcloud_deploy_abort.return_value = [
|
||||
base.SUBCLOUD_RESOURCE]
|
||||
actual_call = self.call(
|
||||
cmd.AbortPhasedSubcloudDeploy,
|
||||
app_args=[base.NAME])
|
||||
self.assertEqual(
|
||||
base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID,
|
||||
actual_call[1])
|
||||
self.client.subcloud_deploy_abort.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
actual_call = self.call(cmd.AbortPhasedSubcloudDeploy, app_args=[base.NAME])
|
||||
self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, actual_call[1])
|
||||
|
||||
def test_subcloud_deploy_resume_all_parameters(self):
|
||||
self.client.subcloud_deploy_resume.return_value = [
|
||||
base.SUBCLOUD_RESOURCE]
|
||||
self.client.subcloud_deploy_resume.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
|
||||
with tempfile.NamedTemporaryFile(mode='w') as bootstrap_file, \
|
||||
tempfile.NamedTemporaryFile(mode='w') as config_file, \
|
||||
tempfile.NamedTemporaryFile(mode='w') as install_file:
|
||||
with tempfile.NamedTemporaryFile(
|
||||
mode="w"
|
||||
) as bootstrap_file, tempfile.NamedTemporaryFile(
|
||||
mode="w"
|
||||
) as config_file, tempfile.NamedTemporaryFile(
|
||||
mode="w"
|
||||
) as install_file:
|
||||
|
||||
bootstrap_file_path = os.path.abspath(bootstrap_file.name)
|
||||
config_file_path = os.path.abspath(config_file.name)
|
||||
install_file_path = os.path.abspath(install_file.name)
|
||||
|
||||
actual_call = self.call(
|
||||
cmd.PhasedSubcloudDeployResume, app_args=[
|
||||
cmd.PhasedSubcloudDeployResume,
|
||||
app_args=[
|
||||
base.NAME,
|
||||
'--bootstrap-address', base.BOOTSTRAP_ADDRESS,
|
||||
'--bootstrap-values', bootstrap_file_path,
|
||||
'--install-values', install_file_path,
|
||||
'--deploy-config', config_file_path,
|
||||
'--release', base.SOFTWARE_VERSION,
|
||||
])
|
||||
self.assertEqual(
|
||||
base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID,
|
||||
actual_call[1])
|
||||
"--bootstrap-address",
|
||||
base.BOOTSTRAP_ADDRESS,
|
||||
"--bootstrap-values",
|
||||
bootstrap_file_path,
|
||||
"--install-values",
|
||||
install_file_path,
|
||||
"--deploy-config",
|
||||
config_file_path,
|
||||
"--release",
|
||||
base.SOFTWARE_VERSION,
|
||||
],
|
||||
)
|
||||
self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, actual_call[1])
|
||||
|
||||
def test_subcloud_deploy_resume_missing_files(self):
|
||||
self.client.subcloud_deploy_resume.return_value = [
|
||||
base.SUBCLOUD_RESOURCE]
|
||||
self.client.subcloud_deploy_resume.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
|
||||
with tempfile.NamedTemporaryFile(mode='w') as bootstrap_file, \
|
||||
tempfile.NamedTemporaryFile(mode='w') as config_file, \
|
||||
tempfile.NamedTemporaryFile(mode='w') as install_file:
|
||||
with tempfile.NamedTemporaryFile(
|
||||
mode="w"
|
||||
) as bootstrap_file, tempfile.NamedTemporaryFile(
|
||||
mode="w"
|
||||
) as config_file, tempfile.NamedTemporaryFile(
|
||||
mode="w"
|
||||
) as install_file:
|
||||
|
||||
bootstrap_file_path = os.path.abspath(bootstrap_file.name)
|
||||
config_file_path = os.path.abspath(config_file.name)
|
||||
install_file_path = os.path.abspath(install_file.name)
|
||||
|
||||
# Missing bootstrap values
|
||||
app_args_bootstrap = [base.NAME,
|
||||
'--bootstrap-address', base.BOOTSTRAP_ADDRESS,
|
||||
'--bootstrap-values', bootstrap_file_path]
|
||||
error_msg_bootstrap = 'bootstrap-values does not exist'
|
||||
call_bootstrap = self.assertRaises(DCManagerClientException,
|
||||
self.call,
|
||||
cmd.PhasedSubcloudDeployResume,
|
||||
app_args=app_args_bootstrap)
|
||||
app_args_bootstrap = [
|
||||
base.NAME,
|
||||
"--bootstrap-address",
|
||||
base.BOOTSTRAP_ADDRESS,
|
||||
"--bootstrap-values",
|
||||
bootstrap_file_path,
|
||||
]
|
||||
error_msg_bootstrap = "bootstrap-values does not exist"
|
||||
call_bootstrap = self.assertRaises(
|
||||
DCManagerClientException,
|
||||
self.call,
|
||||
cmd.PhasedSubcloudDeployResume,
|
||||
app_args=app_args_bootstrap,
|
||||
)
|
||||
self.assertTrue(error_msg_bootstrap in str(call_bootstrap))
|
||||
|
||||
# Missing install values
|
||||
app_args_install = [base.NAME, '--install-values', install_file_path]
|
||||
error_msg_install = 'install-values does not exist'
|
||||
call_install = self.assertRaises(DCManagerClientException,
|
||||
self.call,
|
||||
cmd.PhasedSubcloudDeployResume,
|
||||
app_args=app_args_install)
|
||||
app_args_install = [base.NAME, "--install-values", install_file_path]
|
||||
error_msg_install = "install-values does not exist"
|
||||
call_install = self.assertRaises(
|
||||
DCManagerClientException,
|
||||
self.call,
|
||||
cmd.PhasedSubcloudDeployResume,
|
||||
app_args=app_args_install,
|
||||
)
|
||||
self.assertTrue(error_msg_install in str(call_install))
|
||||
|
||||
# Missing deploy config values
|
||||
app_args_config = [base.NAME, '--deploy-config', config_file_path]
|
||||
error_msg_config = 'deploy-config does not exist'
|
||||
call_config = self.assertRaises(DCManagerClientException,
|
||||
self.call,
|
||||
cmd.PhasedSubcloudDeployResume,
|
||||
app_args=app_args_config)
|
||||
app_args_config = [base.NAME, "--deploy-config", config_file_path]
|
||||
error_msg_config = "deploy-config does not exist"
|
||||
call_config = self.assertRaises(
|
||||
DCManagerClientException,
|
||||
self.call,
|
||||
cmd.PhasedSubcloudDeployResume,
|
||||
app_args=app_args_config,
|
||||
)
|
||||
self.assertTrue(error_msg_config in str(call_config))
|
||||
|
||||
def test_subcloud_deploy_resume_no_parameters(self):
|
||||
self.client.subcloud_deploy_resume.return_value = [
|
||||
base.SUBCLOUD_RESOURCE]
|
||||
self.client.subcloud_deploy_resume.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
|
||||
actual_call = self.call(cmd.PhasedSubcloudDeployResume, app_args=[base.NAME])
|
||||
self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, actual_call[1])
|
||||
|
||||
def test_subcloud_deploy_resume_no_files_only_release(self):
|
||||
self.client.subcloud_deploy_resume.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
|
||||
actual_call = self.call(
|
||||
cmd.PhasedSubcloudDeployResume,
|
||||
app_args=[base.NAME])
|
||||
self.assertEqual(
|
||||
base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID,
|
||||
actual_call[1])
|
||||
|
||||
def test_subcloud_deploy_resume_no_files_only_release(self):
|
||||
self.client.subcloud_deploy_resume.return_value = [
|
||||
base.SUBCLOUD_RESOURCE]
|
||||
|
||||
actual_call = self.call(
|
||||
cmd.PhasedSubcloudDeployResume, app_args=[
|
||||
app_args=[
|
||||
base.NAME,
|
||||
'--release', base.SOFTWARE_VERSION,
|
||||
])
|
||||
self.assertEqual(
|
||||
base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID,
|
||||
actual_call[1])
|
||||
"--release",
|
||||
base.SOFTWARE_VERSION,
|
||||
],
|
||||
)
|
||||
self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, actual_call[1])
|
||||
|
|
|
@ -48,9 +48,7 @@ class TestCLI(base.BaseCommandTest):
|
|||
)
|
||||
results = []
|
||||
results.append(sample_step)
|
||||
step_manager = (
|
||||
self.app.client_manager.strategy_step_manager.strategy_step_manager
|
||||
)
|
||||
step_manager = self.app.client_manager.strategy_step_manager
|
||||
step_manager.list_strategy_steps.return_value = results
|
||||
|
||||
actual_call = self.call(cli_cmd.ListSwUpdateStrategyStep)
|
||||
|
|
|
@ -30,9 +30,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
|
|||
|
||||
def test_backup_create_subcloud(self):
|
||||
|
||||
self.client.subcloud_backup_manager.backup_subcloud_create.return_value = [
|
||||
base.SUBCLOUD_RESOURCE
|
||||
]
|
||||
self.client.backup_subcloud_create.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
|
||||
backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml"))
|
||||
with open(backup_path, mode="w", encoding="UTF-8") as f:
|
||||
|
@ -55,9 +53,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
|
|||
|
||||
def test_backup_create_group(self):
|
||||
|
||||
self.client.subcloud_backup_manager.backup_subcloud_create.return_value = [
|
||||
base.SUBCLOUD_RESOURCE
|
||||
]
|
||||
self.client.backup_subcloud_create.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
|
||||
backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml"))
|
||||
with open(backup_path, mode="w", encoding="UTF-8") as f:
|
||||
|
@ -77,7 +73,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
|
|||
self.assertEqual([base.SUBCLOUD_FIELD_RESULT_LIST], actual_call[1])
|
||||
|
||||
def test_backup_create_group_subcloud(self):
|
||||
self.client.subcloud_backup_manager.backup_subcloud_create.return_value = []
|
||||
self.client.backup_subcloud_create.return_value = []
|
||||
|
||||
backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml"))
|
||||
with open(backup_path, mode="w", encoding="UTF-8") as f:
|
||||
|
@ -108,7 +104,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_backup_create_no_group_no_subcloud(self):
|
||||
self.client.subcloud_backup_manager.backup_subcloud_create.return_value = []
|
||||
self.client.backup_subcloud_create.return_value = []
|
||||
|
||||
backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml"))
|
||||
with open(backup_path, mode="w", encoding="UTF-8") as f:
|
||||
|
@ -133,7 +129,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_backup_create_backup_value_not_a_file(self):
|
||||
self.client.subcloud_backup_manager.backup_subcloud_create.return_value = []
|
||||
self.client.backup_subcloud_create.return_value = []
|
||||
|
||||
e = self.assertRaises(
|
||||
DCManagerClientException,
|
||||
|
@ -155,9 +151,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
|
|||
@mock.patch("getpass.getpass", return_value="testpassword")
|
||||
def test_backup_create_prompt_ask_for_password(self, _mock_getpass):
|
||||
|
||||
self.client.subcloud_backup_manager.backup_subcloud_create.return_value = [
|
||||
base.SUBCLOUD_RESOURCE
|
||||
]
|
||||
self.client.backup_subcloud_create.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
|
||||
backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml"))
|
||||
with open(backup_path, mode="w", encoding="UTF-8") as f:
|
||||
|
@ -203,7 +197,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_backup_delete_no_group_no_subcloud(self):
|
||||
self.client.subcloud_backup_manager.backup_subcloud_delete.return_value = []
|
||||
self.client.backup_subcloud_delete.return_value = []
|
||||
|
||||
e = self.assertRaises(
|
||||
DCManagerClientException,
|
||||
|
@ -223,7 +217,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_backup_delete_group_subcloud(self):
|
||||
self.client.subcloud_backup_manager.backup_subcloud_delete.return_value = []
|
||||
self.client.backup_subcloud_delete.return_value = []
|
||||
|
||||
e = self.assertRaises(
|
||||
DCManagerClientException,
|
||||
|
@ -274,8 +268,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
|
|||
|
||||
self.call(subcloud_backup_cmd.DeleteSubcloudBackup, app_args=app_args)
|
||||
|
||||
subcloud_delete = self.client.subcloud_backup_manager.backup_subcloud_delete
|
||||
subcloud_delete.assert_called_once_with(
|
||||
self.client.backup_subcloud_delete.assert_called_once_with(
|
||||
data=payload, release_version=release_version, subcloud_ref=None
|
||||
)
|
||||
|
||||
|
@ -304,8 +297,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
|
|||
|
||||
self.call(subcloud_backup_cmd.DeleteSubcloudBackup, app_args=app_args)
|
||||
|
||||
subcloud_delete = self.client.subcloud_backup_manager.backup_subcloud_delete
|
||||
subcloud_delete.assert_called_once_with(
|
||||
self.client.backup_subcloud_delete.assert_called_once_with(
|
||||
data=payload, release_version=release_version, subcloud_ref=subcloud_name
|
||||
)
|
||||
|
||||
|
@ -333,8 +325,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
|
|||
|
||||
self.call(subcloud_backup_cmd.DeleteSubcloudBackup, app_args=app_args)
|
||||
|
||||
subcloud_delete = self.client.subcloud_backup_manager.backup_subcloud_delete
|
||||
subcloud_delete.assert_called_once_with(
|
||||
self.client.backup_subcloud_delete.assert_called_once_with(
|
||||
data=payload, release_version=release_version, subcloud_ref=None
|
||||
)
|
||||
|
||||
|
@ -357,8 +348,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
|
|||
|
||||
self.call(subcloud_backup_cmd.DeleteSubcloudBackup, app_args=app_args)
|
||||
|
||||
subcloud_delete = self.client.subcloud_backup_manager.backup_subcloud_delete
|
||||
subcloud_delete.assert_called_once_with(
|
||||
self.client.backup_subcloud_delete.assert_called_once_with(
|
||||
data=payload, release_version=release_version, subcloud_ref=None
|
||||
)
|
||||
|
||||
|
@ -384,9 +374,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
|
|||
|
||||
def test_backup_restore(self):
|
||||
|
||||
self.client.subcloud_backup_manager.backup_subcloud_restore.return_value = [
|
||||
base.SUBCLOUD_RESOURCE
|
||||
]
|
||||
self.client.backup_subcloud_restore.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
|
||||
backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml"))
|
||||
with open(backup_path, mode="w", encoding="UTF-8") as f:
|
||||
|
@ -410,9 +398,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
|
|||
|
||||
def test_backup_restore_no_restore_values(self):
|
||||
|
||||
self.client.subcloud_backup_manager.backup_subcloud_restore.return_value = [
|
||||
base.SUBCLOUD_RESOURCE
|
||||
]
|
||||
self.client.backup_subcloud_restore.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
|
||||
actual_call = self.call(
|
||||
subcloud_backup_cmd.RestoreSubcloudBackup,
|
||||
|
@ -429,9 +415,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
|
|||
|
||||
def test_backup_restore_with_group(self):
|
||||
|
||||
self.client.subcloud_backup_manager.backup_subcloud_restore.return_value = [
|
||||
base.SUBCLOUD_RESOURCE
|
||||
]
|
||||
self.client.backup_subcloud_restore.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
|
||||
backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml"))
|
||||
with open(backup_path, mode="w", encoding="UTF-8") as f:
|
||||
|
@ -452,7 +436,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
|
|||
self.assertEqual([base.SUBCLOUD_FIELD_RESULT_LIST], actual_call[1])
|
||||
|
||||
def test_backup_restore_group_and_subcloud(self):
|
||||
self.client.subcloud_backup_manager.backup_subcloud_restore.return_value = []
|
||||
self.client.backup_subcloud_restore.return_value = []
|
||||
|
||||
backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml"))
|
||||
|
||||
|
@ -484,7 +468,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_backup_restore_no_group_and_no_subcloud(self):
|
||||
self.client.subcloud_backup_manager.backup_subcloud_restore.return_value = []
|
||||
self.client.backup_subcloud_restore.return_value = []
|
||||
|
||||
backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml"))
|
||||
|
||||
|
@ -510,7 +494,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_backup_restore_backup_value_not_a_file(self):
|
||||
self.client.subcloud_backup_manager.backup_subcloud_restore.return_value = []
|
||||
self.client.backup_subcloud_restore.return_value = []
|
||||
|
||||
e = self.assertRaises(
|
||||
DCManagerClientException,
|
||||
|
@ -532,9 +516,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
|
|||
@mock.patch("getpass.getpass", return_value="testpassword")
|
||||
def test_backup_restore_prompt_ask_for_password(self, _mock_getpass):
|
||||
|
||||
self.client.subcloud_backup_manager.backup_subcloud_restore.return_value = [
|
||||
base.SUBCLOUD_RESOURCE
|
||||
]
|
||||
self.client.backup_subcloud_restore.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
|
||||
backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml"))
|
||||
|
||||
|
@ -579,9 +561,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_backup_restore_with_install_no_release(self):
|
||||
self.client.subcloud_backup_manager.backup_subcloud_restore.return_value = [
|
||||
base.SUBCLOUD_RESOURCE
|
||||
]
|
||||
self.client.backup_subcloud_restore.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
|
||||
backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml"))
|
||||
with open(backup_path, mode="w", encoding="UTF-8") as f:
|
||||
|
@ -605,9 +585,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
|
|||
self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST, actual_call[1])
|
||||
|
||||
def test_backup_restore_with_install_with_release(self):
|
||||
self.client.subcloud_backup_manager.backup_subcloud_restore.return_value = [
|
||||
base.SUBCLOUD_RESOURCE
|
||||
]
|
||||
self.client.backup_subcloud_restore.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
|
||||
backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml"))
|
||||
with open(backup_path, mode="w", encoding="UTF-8") as f:
|
||||
|
@ -633,9 +611,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
|
|||
self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST, actual_call[1])
|
||||
|
||||
def test_backup_restore_no_install_with_release(self):
|
||||
self.client.subcloud_backup_manager.backup_subcloud_restore.return_value = [
|
||||
base.SUBCLOUD_RESOURCE
|
||||
]
|
||||
self.client.backup_subcloud_restore.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
|
||||
backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml"))
|
||||
with open(backup_path, mode="w", encoding="UTF-8") as f:
|
||||
|
|
|
@ -83,9 +83,7 @@ class TestCLISubcloudDeployManagerV1(base.BaseCommandTest):
|
|||
self.client = self.app.client_manager.subcloud_deploy_manager
|
||||
|
||||
def test_subcloud_deploy_show(self):
|
||||
self.client.subcloud_deploy_manager.subcloud_deploy_show.return_value = [
|
||||
SUBCLOUD_DEPLOY_ALL
|
||||
]
|
||||
self.client.subcloud_deploy_show.return_value = [SUBCLOUD_DEPLOY_ALL]
|
||||
|
||||
# Without "--release" parameter
|
||||
actual_call1 = self.call(subcloud_deploy_manager.SubcloudDeployShow)
|
||||
|
@ -119,14 +117,14 @@ class TestCLISubcloudDeployManagerV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_subcloud_deploy_upload_all(self):
|
||||
self.client.subcloud_deploy_manager.subcloud_deploy_upload.return_value = [
|
||||
SUBCLOUD_DEPLOY_ALL
|
||||
]
|
||||
self.client.subcloud_deploy_upload.return_value = [SUBCLOUD_DEPLOY_ALL]
|
||||
|
||||
with tempfile.NamedTemporaryFile() as f1, \
|
||||
tempfile.NamedTemporaryFile() as f2, \
|
||||
tempfile.NamedTemporaryFile() as f3, \
|
||||
tempfile.NamedTemporaryFile() as f4:
|
||||
f1 = tempfile.NamedTemporaryFile()
|
||||
f2 = tempfile.NamedTemporaryFile()
|
||||
f3 = tempfile.NamedTemporaryFile()
|
||||
f4 = tempfile.NamedTemporaryFile()
|
||||
|
||||
with f1, f2, f3, f4:
|
||||
file_path_1 = os.path.abspath(f1.name)
|
||||
file_path_2 = os.path.abspath(f2.name)
|
||||
file_path_3 = os.path.abspath(f3.name)
|
||||
|
@ -157,13 +155,15 @@ class TestCLISubcloudDeployManagerV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_subcloud_deploy_upload_no_prestage(self):
|
||||
self.client.subcloud_deploy_manager.subcloud_deploy_upload.return_value = [
|
||||
self.client.subcloud_deploy_upload.return_value = [
|
||||
SUBCLOUD_DEPLOY_NO_PRESTAGE
|
||||
]
|
||||
|
||||
with tempfile.NamedTemporaryFile() as f1, \
|
||||
tempfile.NamedTemporaryFile() as f2, \
|
||||
tempfile.NamedTemporaryFile() as f3:
|
||||
f1 = tempfile.NamedTemporaryFile()
|
||||
f2 = tempfile.NamedTemporaryFile()
|
||||
f3 = tempfile.NamedTemporaryFile()
|
||||
|
||||
with f1, f2, f3:
|
||||
file_path_1 = os.path.abspath(f1.name)
|
||||
file_path_2 = os.path.abspath(f2.name)
|
||||
file_path_3 = os.path.abspath(f3.name)
|
||||
|
@ -191,9 +191,7 @@ class TestCLISubcloudDeployManagerV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_subcloud_deploy_upload_prestage(self):
|
||||
self.client.subcloud_deploy_manager.subcloud_deploy_upload.return_value = [
|
||||
SUBCLOUD_DEPLOY_PRESTAGE
|
||||
]
|
||||
self.client.subcloud_deploy_upload.return_value = [SUBCLOUD_DEPLOY_PRESTAGE]
|
||||
|
||||
with tempfile.NamedTemporaryFile() as f1:
|
||||
file_path_1 = os.path.abspath(f1.name)
|
||||
|
@ -207,13 +205,15 @@ class TestCLISubcloudDeployManagerV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_subcloud_deploy_upload_no_playbook(self):
|
||||
self.client.subcloud_deploy_manager.subcloud_deploy_upload.return_value = [
|
||||
self.client.subcloud_deploy_upload.return_value = [
|
||||
SUBCLOUD_DEPLOY_NO_PLAYBOOK
|
||||
]
|
||||
|
||||
with tempfile.NamedTemporaryFile() as f1, \
|
||||
tempfile.NamedTemporaryFile() as f2, \
|
||||
tempfile.NamedTemporaryFile() as f3:
|
||||
f1 = tempfile.NamedTemporaryFile()
|
||||
f2 = tempfile.NamedTemporaryFile()
|
||||
f3 = tempfile.NamedTemporaryFile()
|
||||
|
||||
with f1, f2, f3:
|
||||
file_path_1 = os.path.abspath(f1.name)
|
||||
file_path_2 = os.path.abspath(f2.name)
|
||||
file_path_3 = os.path.abspath(f3.name)
|
||||
|
@ -240,12 +240,14 @@ class TestCLISubcloudDeployManagerV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_subcloud_deploy_upload_no_playbook_overrides(self):
|
||||
self.client.subcloud_deploy_manager.subcloud_deploy_upload.return_value = [
|
||||
self.client.subcloud_deploy_upload.return_value = [
|
||||
SUBCLOUD_DEPLOY_NO_PLAYBOOK_OVERRIDES
|
||||
]
|
||||
|
||||
with tempfile.NamedTemporaryFile() as f1, \
|
||||
tempfile.NamedTemporaryFile() as f2:
|
||||
f1 = tempfile.NamedTemporaryFile()
|
||||
f2 = tempfile.NamedTemporaryFile()
|
||||
|
||||
with f1, f2:
|
||||
file_path_1 = os.path.abspath(f1.name)
|
||||
file_path_2 = os.path.abspath(f2.name)
|
||||
actual_call = self.call(
|
||||
|
@ -257,20 +259,26 @@ class TestCLISubcloudDeployManagerV1(base.BaseCommandTest):
|
|||
file_path_2,
|
||||
],
|
||||
)
|
||||
self.assertEqual((
|
||||
None, None,
|
||||
DEPLOY_CHART,
|
||||
DEPLOY_PRESTAGE_IMAGES,
|
||||
base.SOFTWARE_VERSION
|
||||
), actual_call[1],)
|
||||
self.assertEqual(
|
||||
(
|
||||
None,
|
||||
None,
|
||||
DEPLOY_CHART,
|
||||
DEPLOY_PRESTAGE_IMAGES,
|
||||
base.SOFTWARE_VERSION,
|
||||
),
|
||||
actual_call[1],
|
||||
)
|
||||
|
||||
def test_subcloud_deploy_upload_no_overrides_chart(self):
|
||||
self.client.subcloud_deploy_manager.subcloud_deploy_upload.return_value = [
|
||||
self.client.subcloud_deploy_upload.return_value = [
|
||||
SUBCLOUD_DEPLOY_NO_OVERRIDES_CHART
|
||||
]
|
||||
|
||||
with tempfile.NamedTemporaryFile() as f1, \
|
||||
tempfile.NamedTemporaryFile() as f2:
|
||||
f1 = tempfile.NamedTemporaryFile()
|
||||
f2 = tempfile.NamedTemporaryFile()
|
||||
|
||||
with f1, f2:
|
||||
file_path_1 = os.path.abspath(f1.name)
|
||||
file_path_2 = os.path.abspath(f2.name)
|
||||
actual_call = self.call(
|
||||
|
@ -297,13 +305,16 @@ class TestCLISubcloudDeployManagerV1(base.BaseCommandTest):
|
|||
|
||||
@mock.patch("builtins.print")
|
||||
def test_subcloud_deploy_upload_invalid_path(self, mock_print):
|
||||
self.client.subcloud_deploy_manager.subcloud_deploy_upload.return_value = [
|
||||
self.client.subcloud_deploy_upload.return_value = [
|
||||
SUBCLOUD_DEPLOY_NO_PRESTAGE
|
||||
]
|
||||
mock_print.return_value = mock.ANY
|
||||
file_path_1 = "not_a_valid_path"
|
||||
with tempfile.NamedTemporaryFile() as f2, \
|
||||
tempfile.NamedTemporaryFile() as f3:
|
||||
|
||||
f2 = tempfile.NamedTemporaryFile()
|
||||
f3 = tempfile.NamedTemporaryFile()
|
||||
|
||||
with f2, f3:
|
||||
file_path_2 = os.path.abspath(f2.name)
|
||||
file_path_3 = os.path.abspath(f3.name)
|
||||
|
||||
|
@ -333,12 +344,12 @@ class TestCLISubcloudDeployManagerV1(base.BaseCommandTest):
|
|||
|
||||
self.call(subcloud_deploy_manager.SubcloudDeployDelete, app_args=app_args)
|
||||
|
||||
self.client.subcloud_deploy_manager.subcloud_deploy_delete.\
|
||||
assert_called_once_with(release_version, data=data)
|
||||
self.client.subcloud_deploy_delete.assert_called_once_with(
|
||||
release_version, data=data
|
||||
)
|
||||
|
||||
def test_subcloud_deploy_delete_without_release(self):
|
||||
|
||||
self.call(subcloud_deploy_manager.SubcloudDeployDelete)
|
||||
data = {"prestage_images": "False", "deployment_files": "False"}
|
||||
self.client.subcloud_deploy_manager.subcloud_deploy_delete.\
|
||||
assert_called_once_with(None, data=data)
|
||||
self.client.subcloud_deploy_delete.assert_called_once_with(None, data=data)
|
||||
|
|
|
@ -61,33 +61,30 @@ class TestCLISubcloudGroupManagerV1(base.BaseCommandTest):
|
|||
self.client = self.app.client_manager.subcloud_group_manager
|
||||
|
||||
def test_list_subcloud_groups(self):
|
||||
self.client.subcloud_group_manager.list_subcloud_groups.return_value = [
|
||||
SUBCLOUD_GROUP
|
||||
]
|
||||
self.client.list_subcloud_groups.return_value = [SUBCLOUD_GROUP]
|
||||
actual_call = self.call(subcloud_group_cmd.ListSubcloudGroup)
|
||||
self.assertEqual([(ID, NAME, DESCRIPTION)], actual_call[1])
|
||||
|
||||
def test_list_subcloud_groups_empty(self):
|
||||
self.client.subcloud_group_manager.list_subcloud_groups.return_value = []
|
||||
self.client.list_subcloud_groups.return_value = []
|
||||
actual_call = self.call(subcloud_group_cmd.ListSubcloudGroup)
|
||||
self.assertEqual((("<none>", "<none>", "<none>"),), actual_call[1])
|
||||
|
||||
def test_list_subcloud_group_subclouds(self):
|
||||
self.client.subcloud_group_manager.\
|
||||
subcloud_group_list_subclouds.return_value = [base.SUBCLOUD_RESOURCE]
|
||||
self.client.subcloud_group_list_subclouds.return_value = [
|
||||
base.SUBCLOUD_RESOURCE
|
||||
]
|
||||
actual_call = self.call(
|
||||
subcloud_group_cmd.ListSubcloudGroupSubclouds, app_args=[ID]
|
||||
)
|
||||
self.client.subcloud_group_manager.subcloud_group_list_subclouds.\
|
||||
assert_called_once_with(ID)
|
||||
self.client.subcloud_group_list_subclouds.assert_called_once_with(ID)
|
||||
self.assertEqual(
|
||||
[base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID], actual_call[1]
|
||||
)
|
||||
|
||||
def test_delete_subcloud_group_by_id(self):
|
||||
self.call(subcloud_group_cmd.DeleteSubcloudGroup, app_args=[ID])
|
||||
self.client.subcloud_group_manager.delete_subcloud_group.\
|
||||
assert_called_once_with(ID)
|
||||
self.client.delete_subcloud_group.assert_called_once_with(ID)
|
||||
|
||||
def test_delete_subcloud_group_without_id(self):
|
||||
self.assertRaises(
|
||||
|
@ -98,9 +95,7 @@ class TestCLISubcloudGroupManagerV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_show_subcloud_group_with_id(self):
|
||||
self.client.subcloud_group_manager.subcloud_group_detail.return_value = [
|
||||
SUBCLOUD_GROUP
|
||||
]
|
||||
self.client.subcloud_group_detail.return_value = [SUBCLOUD_GROUP]
|
||||
actual_call = self.call(subcloud_group_cmd.ShowSubcloudGroup, app_args=[ID])
|
||||
self.assertEqual(
|
||||
(
|
||||
|
@ -116,7 +111,7 @@ class TestCLISubcloudGroupManagerV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_show_subcloud_group_without_id(self):
|
||||
self.client.subcloud_group_manager.subcloud_group_detail.return_value = []
|
||||
self.client.subcloud_group_detail.return_value = []
|
||||
actual_call = self.call(subcloud_group_cmd.ShowSubcloudGroup, app_args=[ID])
|
||||
self.assertEqual(
|
||||
(
|
||||
|
@ -134,9 +129,7 @@ class TestCLISubcloudGroupManagerV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_add_subcloud_group(self):
|
||||
self.client.subcloud_group_manager.add_subcloud_group.return_value = [
|
||||
SUBCLOUD_GROUP
|
||||
]
|
||||
self.client.add_subcloud_group.return_value = [SUBCLOUD_GROUP]
|
||||
|
||||
actual_call = self.call(
|
||||
subcloud_group_cmd.AddSubcloudGroup,
|
||||
|
@ -158,9 +151,7 @@ class TestCLISubcloudGroupManagerV1(base.BaseCommandTest):
|
|||
def test_update_subcloud_group(self):
|
||||
updated_subloud = copy.copy(SUBCLOUD_GROUP)
|
||||
updated_subloud.description = NEW_DESCRIPTION
|
||||
self.client.subcloud_group_manager.update_subcloud_group.return_value = [
|
||||
updated_subloud
|
||||
]
|
||||
self.client.update_subcloud_group.return_value = [updated_subloud]
|
||||
actual_call = self.call(
|
||||
subcloud_group_cmd.UpdateSubcloudGroup,
|
||||
app_args=[SUBCLOUD_GROUP.group_id, "--description", NEW_DESCRIPTION],
|
||||
|
|
|
@ -58,22 +58,21 @@ class TestCLISubcloudPeerGroupManager(base.BaseCommandTest):
|
|||
self.client = self.app.client_manager.subcloud_peer_group_manager
|
||||
|
||||
def test_list_subcloud_peer_groups(self):
|
||||
self.client.subcloud_peer_group_manager.\
|
||||
list_subcloud_peer_groups.return_value = [SubcloudPeerGroup]
|
||||
self.client.list_subcloud_peer_groups.return_value = [SubcloudPeerGroup]
|
||||
actual_call = self.call(subcloud_peer_group_cmd.ListSubcloudPeerGroup)
|
||||
self.assertEqual([PG_TUPLE_WITH_DATE], actual_call[1])
|
||||
|
||||
def test_show_subcloud_peer_group(self):
|
||||
self.client.subcloud_peer_group_manager.\
|
||||
subcloud_peer_group_detail.return_value = [SubcloudPeerGroup]
|
||||
self.client.subcloud_peer_group_detail.return_value = [SubcloudPeerGroup]
|
||||
actual_call = self.call(
|
||||
subcloud_peer_group_cmd.ShowSubcloudPeerGroup, app_args=[PG_ID]
|
||||
)
|
||||
self.assertEqual(PG_TUPLE_WITH_DATE, actual_call[1])
|
||||
|
||||
def test_list_subcloud_peer_group_subclouds(self):
|
||||
self.client.subcloud_peer_group_manager.subcloud_peer_group_list_subclouds.\
|
||||
return_value = [base.SUBCLOUD_RESOURCE_WITH_PEERID]
|
||||
self.client.subcloud_peer_group_list_subclouds.return_value = [
|
||||
base.SUBCLOUD_RESOURCE_WITH_PEERID
|
||||
]
|
||||
actual_call = self.call(
|
||||
subcloud_peer_group_cmd.ListSubcloudPeerGroupSubclouds,
|
||||
app_args=[base.ID],
|
||||
|
@ -83,8 +82,7 @@ class TestCLISubcloudPeerGroupManager(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_add_subcloud_peer_group(self):
|
||||
self.client.subcloud_peer_group_manager.add_subcloud_peer_group.\
|
||||
return_value = [SubcloudPeerGroup]
|
||||
self.client.add_subcloud_peer_group.return_value = [SubcloudPeerGroup]
|
||||
actual_call1 = self.call(
|
||||
subcloud_peer_group_cmd.AddSubcloudPeerGroup,
|
||||
app_args=["--peer-group-name", PG_NAME],
|
||||
|
@ -106,12 +104,10 @@ class TestCLISubcloudPeerGroupManager(base.BaseCommandTest):
|
|||
|
||||
def test_delete_subcloud_peer_group(self):
|
||||
self.call(subcloud_peer_group_cmd.DeleteSubcloudPeerGroup, app_args=[PG_ID])
|
||||
self.client.subcloud_peer_group_manager.delete_subcloud_peer_group.\
|
||||
assert_called_once_with(PG_ID)
|
||||
self.client.delete_subcloud_peer_group.assert_called_once_with(PG_ID)
|
||||
|
||||
def test_update_subcloud_peer_group(self):
|
||||
self.client.subcloud_peer_group_manager.update_subcloud_peer_group.\
|
||||
return_value = [SubcloudPeerGroup]
|
||||
self.client.update_subcloud_peer_group.return_value = [SubcloudPeerGroup]
|
||||
actual_call = self.call(
|
||||
subcloud_peer_group_cmd.UpdateSubcloudPeerGroup,
|
||||
app_args=[
|
||||
|
|
|
@ -18,9 +18,7 @@ class TestSwDeployStrategy(UpdateStrategyMixin, base.BaseCommandTest):
|
|||
# Increase results_length due to the 'upload only' field
|
||||
self.results_length += 1
|
||||
|
||||
self.sw_update_manager = (
|
||||
self.app.client_manager.sw_deploy_manager.sw_deploy_manager
|
||||
)
|
||||
self.sw_update_manager = self.app.client_manager.sw_deploy_manager
|
||||
self.create_command = cli_cmd.CreateSwDeployStrategy
|
||||
self.show_command = cli_cmd.ShowSwDeployStrategy
|
||||
self.delete_command = cli_cmd.DeleteSwDeployStrategy
|
||||
|
|
|
@ -20,9 +20,7 @@ class TestSwPrestageStrategy(UpdateStrategyMixin, base.BaseCommandTest):
|
|||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.sw_update_manager = (
|
||||
self.app.client_manager.sw_prestage_manager.sw_prestage_manager
|
||||
)
|
||||
self.sw_update_manager = self.app.client_manager.sw_prestage_manager
|
||||
|
||||
p = mock.patch.object(getpass, "getpass")
|
||||
self.mock_prompt = p.start()
|
||||
|
|
|
@ -39,7 +39,7 @@ class TestCLISWUpdateManagerV1(base.BaseCommandTest):
|
|||
def test_show_sw_update_strategy_step(self):
|
||||
results = []
|
||||
results.append(STRATEGY_STEP)
|
||||
self.client.strategy_step_manager.strategy_step_detail.return_value = results
|
||||
self.client.strategy_step_detail.return_value = results
|
||||
actual_call = self.call(
|
||||
sw_update_cmd.ShowSwUpdateStrategyStep, app_args=[FAKE_CLOUD]
|
||||
)
|
||||
|
|
22
distributedcloud-client/dcmanagerclient/tests/v1/test_sw_update_options_manager.py
Executable file → Normal file
22
distributedcloud-client/dcmanagerclient/tests/v1/test_sw_update_options_manager.py
Executable file → Normal file
|
@ -54,9 +54,7 @@ class TestCLISWUpdateOptionsManagerV1(base.BaseCommandTest):
|
|||
self.client = self.app.client_manager.sw_update_options_manager
|
||||
|
||||
def test_list_sw_update_options(self):
|
||||
self.client.sw_update_options_manager.sw_update_options_list.return_value = [
|
||||
SW_UPDATE_OPTION
|
||||
]
|
||||
self.client.sw_update_options_list.return_value = [SW_UPDATE_OPTION]
|
||||
actual_call = self.call(sw_update_options_cmd.ListSwUpdateOptions)
|
||||
self.assertEqual(
|
||||
[
|
||||
|
@ -73,9 +71,7 @@ class TestCLISWUpdateOptionsManagerV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_list_sw_update_options_empty(self):
|
||||
self.client.sw_update_options_manager.sw_update_options_list.return_value = (
|
||||
[]
|
||||
)
|
||||
self.client.sw_update_options_list.return_value = []
|
||||
actual_call = self.call(sw_update_options_cmd.ListSwUpdateOptions)
|
||||
self.assertEqual(
|
||||
(("<none>", "<none>", "<none>", "<none>", "<none>", "<none>"),),
|
||||
|
@ -83,8 +79,7 @@ class TestCLISWUpdateOptionsManagerV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_show_sw_update_options_default(self):
|
||||
self.client.sw_update_options_manager.sw_update_options_detail.\
|
||||
return_value = [SW_UPDATE_OPTION]
|
||||
self.client.sw_update_options_detail.return_value = [SW_UPDATE_OPTION]
|
||||
actual_call = self.call(sw_update_options_cmd.ShowSwUpdateOptions)
|
||||
self.assertEqual(
|
||||
(
|
||||
|
@ -101,8 +96,7 @@ class TestCLISWUpdateOptionsManagerV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_show_sw_update_options_by_ref(self):
|
||||
self.client.sw_update_options_manager.sw_update_options_detail.\
|
||||
return_value = [SW_UPDATE_OPTION]
|
||||
self.client.sw_update_options_detail.return_value = [SW_UPDATE_OPTION]
|
||||
actual_call = self.call(
|
||||
sw_update_options_cmd.ShowSwUpdateOptions, app_args=[FAKE_CLOUD]
|
||||
)
|
||||
|
@ -121,8 +115,9 @@ class TestCLISWUpdateOptionsManagerV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_update_sw_update_options(self):
|
||||
self.client.sw_update_options_manager.sw_update_options_update.\
|
||||
return_value = [UPDATED_SW_UPDATE_OPTION]
|
||||
self.client.sw_update_options_update.return_value = [
|
||||
UPDATED_SW_UPDATE_OPTION
|
||||
]
|
||||
actual_call = self.call(
|
||||
sw_update_options_cmd.UpdateSwUpdateOptions,
|
||||
app_args=[
|
||||
|
@ -149,8 +144,7 @@ class TestCLISWUpdateOptionsManagerV1(base.BaseCommandTest):
|
|||
|
||||
def test_delete_sw_update_options_by_ref(self):
|
||||
self.call(sw_update_options_cmd.DeleteSwUpdateOptions, app_args=[FAKE_CLOUD])
|
||||
self.client.sw_update_options_manager.sw_update_options_delete.\
|
||||
assert_called_once_with(FAKE_CLOUD)
|
||||
self.client.sw_update_options_delete.assert_called_once_with(FAKE_CLOUD)
|
||||
|
||||
def test_delete_sw_update_options_without_ref(self):
|
||||
self.assertRaises(
|
||||
|
|
|
@ -13,9 +13,7 @@ class TestSwUpgradeStrategy(UpdateStrategyMixin, base.BaseCommandTest):
|
|||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.sw_update_manager = (
|
||||
self.app.client_manager.sw_upgrade_manager.sw_upgrade_manager
|
||||
)
|
||||
self.sw_update_manager = self.app.client_manager.sw_upgrade_manager
|
||||
self.create_command = cli_cmd.CreateSwUpgradeStrategy
|
||||
self.show_command = cli_cmd.ShowSwUpgradeStrategy
|
||||
self.delete_command = cli_cmd.DeleteSwUpgradeStrategy
|
||||
|
|
|
@ -112,9 +112,7 @@ class TestCLISystemPeerManagerV1(base.BaseCommandTest):
|
|||
self.client = self.app.client_manager.system_peer_manager
|
||||
|
||||
def test_list_system_peers(self):
|
||||
self.client.system_peer_manager.list_system_peers.return_value = [
|
||||
SYSTEM_PEER
|
||||
]
|
||||
self.client.list_system_peers.return_value = [SYSTEM_PEER]
|
||||
actual_call = self.call(system_peer_cmd.ListSystemPeer)
|
||||
self.assertEqual(
|
||||
[
|
||||
|
@ -130,15 +128,13 @@ class TestCLISystemPeerManagerV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_list_system_peers_empty(self):
|
||||
self.client.system_peer_manager.list_system_peers.return_value = []
|
||||
self.client.list_system_peers.return_value = []
|
||||
actual_call = self.call(system_peer_cmd.ListSystemPeer)
|
||||
self.assertEqual((tuple("<none>" for _ in range(5)),), actual_call[1])
|
||||
|
||||
def test_delete_system_peer_by_id(self):
|
||||
self.call(system_peer_cmd.DeleteSystemPeer, app_args=[ID])
|
||||
self.client.system_peer_manager.delete_system_peer.assert_called_once_with(
|
||||
ID
|
||||
)
|
||||
self.client.delete_system_peer.assert_called_once_with(ID)
|
||||
|
||||
def test_delete_system_peer_without_id(self):
|
||||
self.assertRaises(
|
||||
|
@ -146,9 +142,7 @@ class TestCLISystemPeerManagerV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_show_system_peer_with_id(self):
|
||||
self.client.system_peer_manager.system_peer_detail.return_value = [
|
||||
SYSTEM_PEER
|
||||
]
|
||||
self.client.system_peer_detail.return_value = [SYSTEM_PEER]
|
||||
actual_call = self.call(system_peer_cmd.ShowSystemPeer, app_args=[ID])
|
||||
self.assertEqual(
|
||||
(
|
||||
|
@ -171,21 +165,19 @@ class TestCLISystemPeerManagerV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_show_system_peer_without_id(self):
|
||||
self.client.system_peer_manager.system_peer_detail.return_value = []
|
||||
self.client.system_peer_detail.return_value = []
|
||||
actual_call = self.call(system_peer_cmd.ShowSystemPeer, app_args=[ID])
|
||||
self.assertEqual((tuple("<none>" for _ in range(14)),), actual_call[1])
|
||||
|
||||
def test_list_system_peer_subcloud_peer_groups(self):
|
||||
self.client.system_peer_manager.system_peer_list_peer_groups.return_value = [
|
||||
PEER_GROUP
|
||||
]
|
||||
self.client.system_peer_list_peer_groups.return_value = [PEER_GROUP]
|
||||
actual_call = self.call(
|
||||
system_peer_cmd.ListSystemPeerSubcloudPeerGroups, app_args=[ID]
|
||||
)
|
||||
self.assertEqual([PG_TUPLE], actual_call[1])
|
||||
|
||||
def test_add_system_peer(self):
|
||||
self.client.system_peer_manager.add_system_peer.return_value = [SYSTEM_PEER]
|
||||
self.client.add_system_peer.return_value = [SYSTEM_PEER]
|
||||
|
||||
actual_call = self.call(
|
||||
system_peer_cmd.AddSystemPeer,
|
||||
|
@ -235,13 +227,11 @@ class TestCLISystemPeerManagerV1(base.BaseCommandTest):
|
|||
)
|
||||
|
||||
def test_update_system_peer(self):
|
||||
UPDATED_SYSTEM_PEER = copy.copy(SYSTEM_PEER)
|
||||
UPDATED_SYSTEM_PEER.peer_controller_gateway_ip = (
|
||||
updated_system_peer = copy.copy(SYSTEM_PEER)
|
||||
updated_system_peer.peer_controller_gateway_ip = (
|
||||
NEW_PEER_CONTROLLER_GATEWAY_IP
|
||||
)
|
||||
self.client.system_peer_manager.update_system_peer.return_value = [
|
||||
UPDATED_SYSTEM_PEER
|
||||
]
|
||||
self.client.update_system_peer.return_value = [updated_system_peer]
|
||||
actual_call = self.call(
|
||||
system_peer_cmd.UpdateSystemPeer,
|
||||
app_args=[
|
||||
|
|
|
@ -34,9 +34,9 @@ def do_action_on_many(action, resources, success_msg, error_msg):
|
|||
try:
|
||||
action(resource)
|
||||
print(success_msg % resource)
|
||||
except Exception as e:
|
||||
except Exception as exc:
|
||||
failure_flag = True
|
||||
print(e)
|
||||
print(exc)
|
||||
|
||||
if failure_flag:
|
||||
raise exceptions.DCManagerClientException(error_msg)
|
||||
|
@ -73,9 +73,9 @@ def get_contents_if_file(contents_or_file_name):
|
|||
path = os.path.abspath(contents_or_file_name)
|
||||
definition_url = parse.urljoin("file:", request.pathname2url(path))
|
||||
return request.urlopen(definition_url).read().decode("utf8")
|
||||
except Exception as e:
|
||||
except Exception as exc:
|
||||
raise exceptions.DCManagerClientException(
|
||||
f"Error: Could not open file {contents_or_file_name}: {e}"
|
||||
f"Error: Could not open file {contents_or_file_name}: {exc}"
|
||||
)
|
||||
|
||||
|
||||
|
@ -96,10 +96,10 @@ def prompt_for_password(password_type="sysadmin", item_type="subcloud"):
|
|||
print("Passwords did not match")
|
||||
continue
|
||||
break
|
||||
except KeyboardInterrupt as e:
|
||||
except KeyboardInterrupt as exc:
|
||||
raise exceptions.DCManagerClientException(
|
||||
"\nPassword prompt interrupted."
|
||||
) from e
|
||||
) from exc
|
||||
return password
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue