Change class name to use camelCase

Fixed some class names that were in snake_case because
it's not right according to PEP8/PyLint. Now they're all camelCase.

Also, did a direct assignment to client_manager attributes.

Test Plan:
PASS: Run tox command.
- pylint success
- pep8 success
- py39 success
PASS: Check if all commands are working properly.

Closes-bug: 2053023

Change-Id: Iba489e23eb27015f27c6b8d5231f5d6002fa6876
Signed-off-by: Hugo Brito <hugo.brito@windriver.com>
This commit is contained in:
Hugo Brito 2024-02-19 16:38:08 -03:00
parent a507c6449d
commit 1614a6ae75
63 changed files with 713 additions and 730 deletions

View File

@ -30,6 +30,7 @@ load-plugins=
# R detect Refactor for a "good practice" metric violation # R detect Refactor for a "good practice" metric violation
# W detect Warning for stylistic problems, or minor programming issues # W detect Warning for stylistic problems, or minor programming issues
disable=broad-except, disable=broad-except,
duplicate-code,
invalid-name, invalid-name,
missing-class-docstring, missing-class-docstring,
missing-function-docstring, missing-function-docstring,
@ -44,7 +45,6 @@ disable=broad-except,
too-many-locals, too-many-locals,
too-many-public-methods, too-many-public-methods,
too-many-statements, too-many-statements,
duplicate-code,
[REPORTS] [REPORTS]
# Set the output format. Available formats are text, parseable, colorized, msvs # Set the output format. Available formats are text, parseable, colorized, msvs

View File

@ -43,6 +43,7 @@ def log_request(func):
class HTTPClient: class HTTPClient:
def __init__( def __init__(
self, self,
base_url, base_url,

View File

@ -1,5 +1,5 @@
# Copyright (c) 2017 Ericsson AB. # 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. # All Rights Reserved.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # 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): class AlarmSummary(base.Resource):
resource_name = 'alarms' resource_name = "alarms"
def __init__(self, manager, name, critical, major, def __init__(self, manager, name, critical, major, minor, warnings, status):
minor, warnings, status):
self.manger = manager self.manger = manager
self.name = name self.name = name
self.critical = critical self.critical = critical
@ -33,7 +32,7 @@ class AlarmSummary(base.Resource):
self.status = status self.status = status
class alarm_manager(base.ResourceManager): class AlarmManager(base.ResourceManager):
resource_class = AlarmSummary resource_class = AlarmSummary
def alarm_summary_list(self, url): def alarm_summary_list(self, url):
@ -41,20 +40,22 @@ class alarm_manager(base.ResourceManager):
if resp.status_code != 200: if resp.status_code != 200:
self._raise_api_exception(resp) self._raise_api_exception(resp)
json_response_key = get_json(resp) json_response_key = get_json(resp)
json_objects = json_response_key['alarm_summary'] json_objects = json_response_key["alarm_summary"]
resource = [] resource = []
for json_object in json_objects: for json_object in json_objects:
resource.append( resource.append(
self.resource_class( self.resource_class(
self, self,
name=json_object['region_name'], name=json_object["region_name"],
critical=json_object['critical_alarms'], critical=json_object["critical_alarms"],
major=json_object['major_alarms'], major=json_object["major_alarms"],
minor=json_object['minor_alarms'], minor=json_object["minor_alarms"],
warnings=json_object['warnings'], warnings=json_object["warnings"],
status=json_object['cloud_status'])) status=json_object["cloud_status"],
)
)
return resource return resource
def list_alarms(self): def list_alarms(self):
url = '/alarms/' url = "/alarms/"
return self.alarm_summary_list(url) return self.alarm_summary_list(url)

View File

@ -22,25 +22,28 @@ import six
from keystoneauth1 import session as ks_session from keystoneauth1 import session as ks_session
from dcmanagerclient.api import httpclient from dcmanagerclient.api import httpclient
from dcmanagerclient.api.v1 import alarm_manager as am from dcmanagerclient.api.v1.alarm_manager import AlarmManager
from dcmanagerclient.api.v1 import fw_update_manager as fum from dcmanagerclient.api.v1.fw_update_manager import FwUpdateManager
from dcmanagerclient.api.v1 import kube_rootca_update_manager as krum from dcmanagerclient.api.v1.kube_rootca_update_manager import KubeRootcaUpdateManager
from dcmanagerclient.api.v1 import kube_upgrade_manager as kupm from dcmanagerclient.api.v1.kube_upgrade_manager import KubeUpgradeManager
from dcmanagerclient.api.v1 import peer_group_association_manager as pgam from dcmanagerclient.api.v1.peer_group_association_manager import \
from dcmanagerclient.api.v1 import phased_subcloud_deploy_manager as psdm PeerGroupAssociationManager
from dcmanagerclient.api.v1 import strategy_step_manager as ssm from dcmanagerclient.api.v1.phased_subcloud_deploy_manager import \
from dcmanagerclient.api.v1 import subcloud_backup_manager as sbm PhasedSubcloudDeployManager
from dcmanagerclient.api.v1 import subcloud_deploy_manager as sdm from dcmanagerclient.api.v1.strategy_step_manager import StrategyStepManager
from dcmanagerclient.api.v1 import subcloud_group_manager as gm from dcmanagerclient.api.v1.subcloud_backup_manager import SubcloudBackupManager
from dcmanagerclient.api.v1 import subcloud_manager as sm from dcmanagerclient.api.v1.subcloud_deploy_manager import SubcloudDeployManager
from dcmanagerclient.api.v1 import subcloud_peer_group_manager as pm from dcmanagerclient.api.v1.subcloud_group_manager import SubcloudGroupManager
from dcmanagerclient.api.v1 import sw_deploy_manager as swdm from dcmanagerclient.api.v1.subcloud_manager import SubcloudManager
from dcmanagerclient.api.v1 import sw_patch_manager as spm from dcmanagerclient.api.v1.subcloud_peer_group_manager import \
from dcmanagerclient.api.v1 import sw_prestage_manager as spr SubcloudPeerGroupManager
from dcmanagerclient.api.v1 import sw_strategy_manager as sstm from dcmanagerclient.api.v1.sw_deploy_manager import SwDeployManager
from dcmanagerclient.api.v1 import sw_update_options_manager as suom from dcmanagerclient.api.v1.sw_patch_manager import SwPatchManager
from dcmanagerclient.api.v1 import sw_upgrade_manager as supm from dcmanagerclient.api.v1.sw_prestage_manager import SwPrestageManager
from dcmanagerclient.api.v1 import system_peer_manager as sp 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" _DEFAULT_DCMANAGER_URL = "http://localhost:8119/v1.0"
@ -113,37 +116,33 @@ class Client:
) )
# Create all managers # Create all managers
self.subcloud_manager = sm.subcloud_manager(self.http_client) self.subcloud_manager = SubcloudManager(self.http_client)
self.subcloud_group_manager = gm.subcloud_group_manager( self.subcloud_group_manager = SubcloudGroupManager(
self.http_client, self.subcloud_manager 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.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.http_client
) )
self.subcloud_backup_manager = sbm.subcloud_backup_manager(self.http_client) self.subcloud_backup_manager = SubcloudBackupManager(self.http_client)
self.subcloud_deploy_manager = sdm.subcloud_deploy_manager(self.http_client) self.subcloud_deploy_manager = SubcloudDeployManager(self.http_client)
self.system_peer_manager = sp.system_peer_manager( self.system_peer_manager = SystemPeerManager(
self.http_client, self.subcloud_peer_group_manager self.http_client, self.subcloud_peer_group_manager
) )
self.alarm_manager = am.alarm_manager(self.http_client) self.alarm_manager = AlarmManager(self.http_client)
self.fw_update_manager = fum.fw_update_manager(self.http_client) self.fw_update_manager = FwUpdateManager(self.http_client)
self.kube_rootca_update_manager = krum.kube_rootca_update_manager( self.kube_rootca_update_manager = KubeRootcaUpdateManager(self.http_client)
self.http_client self.kube_upgrade_manager = KubeUpgradeManager(self.http_client)
) self.sw_deploy_manager = SwDeployManager(self.http_client)
self.kube_upgrade_manager = kupm.kube_upgrade_manager(self.http_client) self.sw_patch_manager = SwPatchManager(self.http_client)
self.sw_deploy_manager = swdm.SwDeployManager(self.http_client) self.sw_prestage_manager = SwPrestageManager(self.http_client)
self.sw_patch_manager = spm.sw_patch_manager(self.http_client) self.sw_update_options_manager = SwUpdateOptionsManager(self.http_client)
self.sw_prestage_manager = spr.sw_prestage_manager(self.http_client) self.sw_upgrade_manager = SwUpgradeManager(self.http_client)
self.sw_update_options_manager = suom.sw_update_options_manager( self.strategy_step_manager = StrategyStepManager(self.http_client)
self.http_client self.sw_strategy_manager = SwStrategyManager(self.http_client)
) self.phased_subcloud_deploy_manager = PhasedSubcloudDeployManager(
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.http_client self.http_client
) )

View File

@ -14,12 +14,12 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # 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" SW_UPDATE_TYPE_FIRMWARE = "firmware"
class fw_update_manager(sw_update_manager): class FwUpdateManager(SwUpdateManager):
def __init__(self, http_client): def __init__(self, http_client):
super().__init__(http_client, update_type=SW_UPDATE_TYPE_FIRMWARE) super().__init__(http_client, update_type=SW_UPDATE_TYPE_FIRMWARE)

View File

@ -3,12 +3,12 @@
# #
# SPDX-License-Identifier: Apache-2.0 # 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" 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): def __init__(self, http_client):
super().__init__(http_client, update_type=SW_UPDATE_TYPE_KUBE_ROOTCA_UPDATE) super().__init__(http_client, update_type=SW_UPDATE_TYPE_KUBE_ROOTCA_UPDATE)

View File

@ -14,12 +14,12 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # 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" SW_UPDATE_TYPE_KUBERNETES = "kubernetes"
class kube_upgrade_manager(sw_update_manager): class KubeUpgradeManager(SwUpdateManager):
def __init__(self, http_client): def __init__(self, http_client):
super().__init__(http_client, update_type=SW_UPDATE_TYPE_KUBERNETES) super().__init__(http_client, update_type=SW_UPDATE_TYPE_KUBERNETES)

View File

@ -42,7 +42,7 @@ class PeerGroupAssociation(base.Resource):
self.updated_at = updated_at self.updated_at = updated_at
class peer_group_association_manager(base.ResourceManager): class PeerGroupAssociationManager(base.ResourceManager):
resource_class = PeerGroupAssociation resource_class = PeerGroupAssociation
def _json_to_resource(self, json_object): def _json_to_resource(self, json_object):

View File

@ -12,7 +12,7 @@ from dcmanagerclient.api.base import get_json
BASE_URL = "/phased-subcloud-deploy/" BASE_URL = "/phased-subcloud-deploy/"
class phased_subcloud_deploy_manager(base.ResourceManager): class PhasedSubcloudDeployManager(base.ResourceManager):
resource_class = base.Subcloud resource_class = base.Subcloud
def json_to_resource(self, json_object): def json_to_resource(self, json_object):

View File

@ -44,7 +44,7 @@ class StrategyStep(base.Resource):
self.updated_at = updated_at self.updated_at = updated_at
class strategy_step_manager(base.ResourceManager): class StrategyStepManager(base.ResourceManager):
def __init__(self, http_client): def __init__(self, http_client):
super().__init__(http_client) super().__init__(http_client)

View File

@ -12,7 +12,7 @@ from dcmanagerclient.api import base
from dcmanagerclient.api.base import get_json from dcmanagerclient.api.base import get_json
class subcloud_backup_manager(base.ResourceManager): class SubcloudBackupManager(base.ResourceManager):
resource_class = base.Subcloud resource_class = base.Subcloud

View File

@ -38,7 +38,7 @@ class SubcloudDeploy(base.Resource):
self.software_version = software_version self.software_version = software_version
class subcloud_deploy_manager(base.ResourceManager): class SubcloudDeployManager(base.ResourceManager):
resource_class = SubcloudDeploy resource_class = SubcloudDeploy
def _process_json_response(self, json_object): def _process_json_response(self, json_object):

View File

@ -45,7 +45,7 @@ class SubcloudGroup(base.Resource):
self.updated_at = updated_at self.updated_at = updated_at
class subcloud_group_manager(base.ResourceManager): class SubcloudGroupManager(base.ResourceManager):
resource_class = SubcloudGroup resource_class = SubcloudGroup
def __init__(self, http_client, subcloud_manager): def __init__(self, http_client, subcloud_manager):

View File

@ -23,7 +23,7 @@ from dcmanagerclient.api import base
from dcmanagerclient.api.base import get_json from dcmanagerclient.api.base import get_json
class subcloud_manager(base.ResourceManager): class SubcloudManager(base.ResourceManager):
resource_class = base.Subcloud resource_class = base.Subcloud
def json_to_resource(self, json_object): def json_to_resource(self, json_object):

View File

@ -40,7 +40,7 @@ class SubcloudPeerGroup(base.Resource):
self.updated_at = updated_at self.updated_at = updated_at
class subcloud_peer_group_manager(base.ResourceManager): class SubcloudPeerGroupManager(base.ResourceManager):
resource_class = SubcloudPeerGroup resource_class = SubcloudPeerGroup
def __init__(self, http_client, subcloud_manager): def __init__(self, http_client, subcloud_manager):

View File

@ -4,12 +4,12 @@
# SPDX-License-Identifier: Apache-2.0 # 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" SW_UPDATE_TYPE_USM = "software"
class SwDeployManager(sw_update_manager): class SwDeployManager(SwUpdateManager):
def __init__(self, http_client): def __init__(self, http_client):
super().__init__( super().__init__(
http_client, update_type=SW_UPDATE_TYPE_USM, extra_args=["release"] http_client, update_type=SW_UPDATE_TYPE_USM, extra_args=["release"]

View File

@ -14,12 +14,12 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # 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" SW_UPDATE_TYPE_PATCH = "patch"
class sw_patch_manager(sw_update_manager): class SwPatchManager(SwUpdateManager):
def __init__(self, http_client): def __init__(self, http_client):
super().__init__( super().__init__(
http_client, update_type=SW_UPDATE_TYPE_PATCH, extra_args=["upload-only"] http_client, update_type=SW_UPDATE_TYPE_PATCH, extra_args=["upload-only"]

View File

@ -13,12 +13,12 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # 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" SW_UPDATE_TYPE_PRESTAGE = "prestage"
class sw_prestage_manager(sw_update_manager): class SwPrestageManager(SwUpdateManager):
def __init__(self, http_client): def __init__(self, http_client):
super().__init__( super().__init__(

View File

@ -14,10 +14,10 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # 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"): def __init__(self, http_client, url="sw-update-strategy"):
super().__init__(http_client, update_type=None) super().__init__(http_client, update_type=None)

View File

@ -47,8 +47,8 @@ class SwUpdateStrategy(base.Resource):
self.extra_args = extra_args self.extra_args = extra_args
class sw_update_manager(base.ResourceManager): class SwUpdateManager(base.ResourceManager):
"""sw_update_manager """SwUpdateManager
sw_update_manager is an abstract class that is used by subclasses to sw_update_manager is an abstract class that is used by subclasses to
manage API actions for specific update strategy types such as software manage API actions for specific update strategy types such as software

View File

@ -49,7 +49,7 @@ class SwUpdateOptions(base.Resource):
self.updated_at = updated_at self.updated_at = updated_at
class sw_update_options_manager(base.ResourceManager): class SwUpdateOptionsManager(base.ResourceManager):
resource_class = SwUpdateOptions resource_class = SwUpdateOptions
def sw_update_options_update(self, subcloud_ref, **kwargs): def sw_update_options_update(self, subcloud_ref, **kwargs):

View File

@ -14,12 +14,12 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # 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" SW_UPDATE_TYPE_UPGRADE = "upgrade"
class sw_upgrade_manager(sw_update_manager): class SwUpgradeManager(SwUpdateManager):
def __init__(self, http_client): def __init__(self, http_client):
super().__init__(http_client, update_type=SW_UPDATE_TYPE_UPGRADE) super().__init__(http_client, update_type=SW_UPDATE_TYPE_UPGRADE)

View File

@ -50,7 +50,7 @@ class SystemPeer(base.Resource):
self.updated_at = updated_at self.updated_at = updated_at
class system_peer_manager(base.ResourceManager): class SystemPeerManager(base.ResourceManager):
resource_class = SystemPeer resource_class = SystemPeer
def __init__(self, http_client, subcloud_peer_group_manager): def __init__(self, http_client, subcloud_peer_group_manager):

View File

@ -54,5 +54,5 @@ class ListAlarmSummary(base.DCManagerLister):
return parser return parser
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
dcmanager_client = self.app.client_manager.alarm_manager alarm_manager = self.app.client_manager.alarm_manager
return dcmanager_client.alarm_manager.list_alarms() return alarm_manager.list_alarms()

View File

@ -20,8 +20,8 @@ class FwUpdateManagerMixin:
"""This Mixin provides the update manager used for firmware updates.""" """This Mixin provides the update manager used for firmware updates."""
def get_sw_update_manager(self): def get_sw_update_manager(self):
dcmanager_client = self.app.client_manager.fw_update_manager fw_update_manager = self.app.client_manager.fw_update_manager
return dcmanager_client.fw_update_manager return fw_update_manager
class CreateFwUpdateStrategy( class CreateFwUpdateStrategy(

View File

@ -12,8 +12,7 @@ class KubeRootcaUpdateManagerMixin:
"""This Mixin provides the update manager used for kube rootca updates.""" """This Mixin provides the update manager used for kube rootca updates."""
def get_sw_update_manager(self): def get_sw_update_manager(self):
dcmanager_client = self.app.client_manager.kube_rootca_update_manager return self.app.client_manager.kube_rootca_update_manager
return dcmanager_client.kube_rootca_update_manager
class CreateKubeRootcaUpdateStrategy( class CreateKubeRootcaUpdateStrategy(

View File

@ -20,8 +20,8 @@ class KubeUpgradeManagerMixin:
"""This Mixin provides the update manager used for kubernetes upgrades.""" """This Mixin provides the update manager used for kubernetes upgrades."""
def get_sw_update_manager(self): def get_sw_update_manager(self):
dcmanager_client = self.app.client_manager.kube_upgrade_manager kube_upgrade_manager = self.app.client_manager.kube_upgrade_manager
return dcmanager_client.kube_upgrade_manager return kube_upgrade_manager
class CreateKubeUpgradeStrategy( class CreateKubeUpgradeStrategy(

View File

@ -95,14 +95,16 @@ class AddPeerGroupAssociation(base.DCManagerShowOne):
return parser return parser
def _get_resources(self, parsed_args): 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 = { kwargs = {
"peer_group_id": parsed_args.peer_group_id, "peer_group_id": parsed_args.peer_group_id,
"system_peer_id": parsed_args.system_peer_id, "system_peer_id": parsed_args.system_peer_id,
"peer_group_priority": parsed_args.peer_group_priority, "peer_group_priority": parsed_args.peer_group_priority,
} }
return dcmanager_client.peer_group_association_manager.\ return peer_group_association_manager.add_peer_group_association(**kwargs)
add_peer_group_association(**kwargs)
class ListPeerGroupAssociation(base.DCManagerLister): class ListPeerGroupAssociation(base.DCManagerLister):
@ -116,9 +118,10 @@ class ListPeerGroupAssociation(base.DCManagerLister):
return parser return parser
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
dcmanager_client = self.app.client_manager.peer_group_association_manager peer_group_association_manager = (
return dcmanager_client.peer_group_association_manager.\ self.app.client_manager.peer_group_association_manager
list_peer_group_associations() )
return peer_group_association_manager.list_peer_group_associations()
class ShowPeerGroupAssociation(base.DCManagerShowOne): class ShowPeerGroupAssociation(base.DCManagerShowOne):
@ -138,9 +141,12 @@ class ShowPeerGroupAssociation(base.DCManagerShowOne):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
association_ref = parsed_args.id association_ref = parsed_args.id
dcmanager_client = self.app.client_manager.peer_group_association_manager peer_group_association_manager = (
return dcmanager_client.peer_group_association_manager.\ self.app.client_manager.peer_group_association_manager
peer_group_association_detail(association_ref) )
return peer_group_association_manager.peer_group_association_detail(
association_ref
)
class SyncPeerGroupAssociation(base.DCManagerShowOne): class SyncPeerGroupAssociation(base.DCManagerShowOne):
@ -158,9 +164,12 @@ class SyncPeerGroupAssociation(base.DCManagerShowOne):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
association_ref = parsed_args.id association_ref = parsed_args.id
dcmanager_client = self.app.client_manager.peer_group_association_manager peer_group_association_manager = (
return dcmanager_client.peer_group_association_manager.\ self.app.client_manager.peer_group_association_manager
sync_peer_group_association(association_ref) )
return peer_group_association_manager.sync_peer_group_association(
association_ref
)
class DeletePeerGroupAssociation(command.Command): class DeletePeerGroupAssociation(command.Command):
@ -173,12 +182,15 @@ class DeletePeerGroupAssociation(command.Command):
return parser return parser
def take_action(self, parsed_args): 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: try:
dcmanager_client.peer_group_association_manager.\ peer_group_association_manager.delete_peer_group_association(
delete_peer_group_association(parsed_args.id) parsed_args.id
except Exception as e: )
print(e) except Exception as exc:
print(exc)
msg = f"Unable to delete peer group association {parsed_args.id}" msg = f"Unable to delete peer group association {parsed_args.id}"
raise exceptions.DCManagerClientException(msg) raise exceptions.DCManagerClientException(msg)
@ -203,13 +215,16 @@ class UpdatePeerGroupAssociation(base.DCManagerShowOne):
return parser return parser
def _get_resources(self, parsed_args): 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} kwargs = {"peer_group_priority": parsed_args.peer_group_priority}
try: try:
return dcmanager_client.peer_group_association_manager.\ return peer_group_association_manager.update_peer_group_association(
update_peer_group_association(parsed_args.id, **kwargs) parsed_args.id, **kwargs
except Exception as e: )
print(e) except Exception as exc:
print(exc)
msg = f"Unable to update peer group association {parsed_args.id}" msg = f"Unable to update peer group association {parsed_args.id}"
raise exceptions.DCManagerClientException(msg) raise exceptions.DCManagerClientException(msg)

View File

@ -29,13 +29,16 @@ class AbortPhasedSubcloudDeploy(base.DCManagerShowOne):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
subcloud_ref = parsed_args.subcloud 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: try:
return dcmanager_client.subcloud_deploy_abort(subcloud_ref=subcloud_ref) return phased_subcloud_deploy_manager.subcloud_deploy_abort(
except Exception as e: subcloud_ref=subcloud_ref
print(e) )
except Exception as exc:
print(exc)
error_msg = f"Unable to abort subcloud deploy {subcloud_ref}" error_msg = f"Unable to abort subcloud deploy {subcloud_ref}"
raise exceptions.DCManagerClientException(error_msg) raise exceptions.DCManagerClientException(error_msg)
@ -106,8 +109,9 @@ class PhasedSubcloudDeployResume(base.DCManagerShowOne):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
subcloud_ref = parsed_args.subcloud 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 = {} files = {}
data = {} data = {}
@ -163,7 +167,7 @@ class PhasedSubcloudDeployResume(base.DCManagerShowOne):
if parsed_args.release: if parsed_args.release:
data["release"] = 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 subcloud_ref=subcloud_ref, files=files, data=data
) )
@ -226,8 +230,9 @@ class CreatePhasedSubcloudDeploy(base.DCManagerShowOne):
return parser return parser
def _get_resources(self, parsed_args): 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 = {} files = {}
data = {} data = {}
@ -273,7 +278,9 @@ class CreatePhasedSubcloudDeploy(base.DCManagerShowOne):
if parsed_args.release: if parsed_args.release:
data["release"] = 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): class InstallPhasedSubcloudDeploy(base.DCManagerShowOne):
@ -322,8 +329,9 @@ class InstallPhasedSubcloudDeploy(base.DCManagerShowOne):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
subcloud_ref = parsed_args.subcloud 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 = {} files = {}
data = {} data = {}
@ -355,11 +363,11 @@ class InstallPhasedSubcloudDeploy(base.DCManagerShowOne):
data["release"] = parsed_args.release data["release"] = parsed_args.release
try: try:
return dcmanager_client.subcloud_deploy_install( return phased_subcloud_deploy_manager.subcloud_deploy_install(
subcloud_ref=subcloud_ref, files=files, data=data subcloud_ref=subcloud_ref, files=files, data=data
) )
except Exception as e: except Exception as exc:
print(e) print(exc)
error_msg = f"Unable to install subcloud {subcloud_ref}" error_msg = f"Unable to install subcloud {subcloud_ref}"
raise exceptions.DCManagerClientException(error_msg) raise exceptions.DCManagerClientException(error_msg)
@ -400,8 +408,9 @@ class BootstrapPhasedSubcloudDeploy(base.DCManagerShowOne):
return parser return parser
def _get_resources(self, parsed_args): 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 = {} files = {}
data = {} data = {}
@ -429,7 +438,7 @@ class BootstrapPhasedSubcloudDeploy(base.DCManagerShowOne):
subcloud_ref = parsed_args.subcloud 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 subcloud_ref, files=files, data=data
) )
@ -463,8 +472,9 @@ class ConfigPhasedSubcloudDeploy(base.DCManagerShowOne):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
subcloud_ref = parsed_args.subcloud 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 = {} files = {}
data = {} data = {}
@ -487,11 +497,11 @@ class ConfigPhasedSubcloudDeploy(base.DCManagerShowOne):
data["sysadmin_password"] = base64.b64encode(password.encode("utf-8")) data["sysadmin_password"] = base64.b64encode(password.encode("utf-8"))
try: try:
return dcmanager_client.subcloud_deploy_config( return phased_subcloud_deploy_manager.subcloud_deploy_config(
subcloud_ref=subcloud_ref, files=files, data=data subcloud_ref=subcloud_ref, files=files, data=data
) )
except Exception as e: except Exception as exc:
print(e) print(exc)
error_msg = f"Unable to configure subcloud {subcloud_ref}" error_msg = f"Unable to configure subcloud {subcloud_ref}"
raise exceptions.DCManagerClientException(error_msg) raise exceptions.DCManagerClientException(error_msg)
@ -513,13 +523,16 @@ class CompletePhasedSubcloudDeploy(base.DCManagerShowOne):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
subcloud_ref = parsed_args.subcloud 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: try:
return dcmanager_client.subcloud_deploy_complete(subcloud_ref) return phased_subcloud_deploy_manager.subcloud_deploy_complete(
except Exception as e: subcloud_ref
print(e) )
except Exception as exc:
print(exc)
error_msg = ( error_msg = (
f"Unable to complete the deployment of subcloud {subcloud_ref}" f"Unable to complete the deployment of subcloud {subcloud_ref}"
) )

View File

@ -9,7 +9,8 @@ import os
from osc_lib.command import command 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 from dcmanagerclient.commands.v1 import base
@ -131,7 +132,7 @@ class CreateSubcloudBackup(base.DCManagerShow):
return parser return parser
def _get_resources(self, parsed_args): 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 = {} data = {}
files = {} files = {}
@ -191,12 +192,12 @@ class CreateSubcloudBackup(base.DCManagerShow):
files["backup_values"] = parsed_args.backup_values files["backup_values"] = parsed_args.backup_values
try: try:
return dcmanager_client.subcloud_backup_manager.backup_subcloud_create( return subcloud_backup_manager.backup_subcloud_create(
data=data, files=files data=data, files=files
) )
except Exception as e: except Exception as exc:
print(e) print(exc)
error_msg = "Unable to create subcloud backup" error_msg = "Unable to create subcloud backup"
raise exceptions.DCManagerClientException(error_msg) raise exceptions.DCManagerClientException(error_msg)
@ -245,7 +246,7 @@ class DeleteSubcloudBackup(command.Command):
return parser return parser
def take_action(self, parsed_args): 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 release_version = parsed_args.release
subcloud_ref = parsed_args.subcloud subcloud_ref = parsed_args.subcloud
data = {} data = {}
@ -285,12 +286,12 @@ class DeleteSubcloudBackup(command.Command):
).decode("utf-8") ).decode("utf-8")
try: 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 subcloud_ref=subcloud_ref, release_version=release_version, data=data
) )
except Exception as e: except Exception as exc:
print(e) print(exc)
error_msg = "Unable to delete backup" error_msg = "Unable to delete backup"
raise exceptions.DCManagerClientException(error_msg) raise exceptions.DCManagerClientException(error_msg)
@ -372,7 +373,7 @@ class RestoreSubcloudBackup(base.DCManagerShow):
def _get_resources(self, parsed_args): 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 = {} data = {}
files = {} files = {}
@ -444,11 +445,11 @@ class RestoreSubcloudBackup(base.DCManagerShow):
files["restore_values"] = parsed_args.restore_values files["restore_values"] = parsed_args.restore_values
try: try:
return dcmanager_client.subcloud_backup_manager.backup_subcloud_restore( return subcloud_backup_manager.backup_subcloud_restore(
data=data, files=files data=data, files=files
) )
except Exception as e: except Exception as exc:
print(e) print(exc)
error_msg = "Unable to restore subcloud backup" error_msg = "Unable to restore subcloud backup"
raise exceptions.DCManagerClientException(error_msg) raise exceptions.DCManagerClientException(error_msg)

View File

@ -109,7 +109,7 @@ class SubcloudDeployUpload(base.DCManagerShowOne):
return parser return parser
def _get_resources(self, parsed_args): 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 = {} data = {}
files = {} files = {}
@ -131,11 +131,11 @@ class SubcloudDeployUpload(base.DCManagerShowOne):
data["release"] = parsed_args.release data["release"] = parsed_args.release
try: try:
return dcmanager_client.subcloud_deploy_manager.subcloud_deploy_upload( return subcloud_deploy_manager.subcloud_deploy_upload(
files=files, data=data files=files, data=data
) )
except Exception as e: except Exception as exc:
print(e) print(exc)
error_msg = "Unable to upload subcloud deploy files" error_msg = "Unable to upload subcloud deploy files"
raise exceptions.DCManagerClientException(error_msg) raise exceptions.DCManagerClientException(error_msg)
@ -159,10 +159,8 @@ class SubcloudDeployShow(base.DCManagerShowOne):
return parser return parser
def _get_resources(self, parsed_args): 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
return dcmanager_client.subcloud_deploy_manager.subcloud_deploy_show( return subcloud_deploy_manager.subcloud_deploy_show(parsed_args.release)
parsed_args.release
)
class DeprecatedSubcloudDeployShow(SubcloudDeployShow): class DeprecatedSubcloudDeployShow(SubcloudDeployShow):
@ -214,7 +212,7 @@ class SubcloudDeployDelete(command.Command):
return parser return parser
def take_action(self, parsed_args): 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 release = parsed_args.release
data = {} data = {}
if parsed_args.prestage_images is not None: if parsed_args.prestage_images is not None:
@ -223,10 +221,8 @@ class SubcloudDeployDelete(command.Command):
data["deployment_files"] = str(parsed_args.deployment_files) data["deployment_files"] = str(parsed_args.deployment_files)
try: try:
dcmanager_client.subcloud_deploy_manager.subcloud_deploy_delete( subcloud_deploy_manager.subcloud_deploy_delete(release, data=data)
release, data=data except Exception as exc:
) print(exc)
except Exception as e:
print(e)
error_msg = "Unable to delete subcloud deploy files" error_msg = "Unable to delete subcloud deploy files"
raise exceptions.DCManagerClientException(error_msg) raise exceptions.DCManagerClientException(error_msg)

View File

@ -109,7 +109,7 @@ class AddSubcloudGroup(base.DCManagerShowOne):
return parser return parser
def _get_resources(self, parsed_args): 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 = {} kwargs = {}
if parsed_args.name is not None: if parsed_args.name is not None:
@ -123,7 +123,7 @@ class AddSubcloudGroup(base.DCManagerShowOne):
if parsed_args.max_parallel_subclouds is not None: if parsed_args.max_parallel_subclouds is not None:
kwargs["max_parallel_subclouds"] = parsed_args.max_parallel_subclouds 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): class ListSubcloudGroup(base.DCManagerLister):
@ -137,8 +137,8 @@ class ListSubcloudGroup(base.DCManagerLister):
return parser return parser
def _get_resources(self, parsed_args): 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
return dcmanager_client.subcloud_group_manager.list_subcloud_groups() return subcloud_group_manager.list_subcloud_groups()
class ListSubcloudGroupSubclouds(base.DCManagerLister): class ListSubcloudGroupSubclouds(base.DCManagerLister):
@ -157,11 +157,9 @@ class ListSubcloudGroupSubclouds(base.DCManagerLister):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
subcloud_group_ref = parsed_args.group 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
result = ( result = subcloud_group_manager.subcloud_group_list_subclouds(
dcmanager_client.subcloud_group_manager.subcloud_group_list_subclouds( subcloud_group_ref
subcloud_group_ref
)
) )
update_fields_values(result) update_fields_values(result)
return result return result
@ -184,10 +182,8 @@ class ShowSubcloudGroup(base.DCManagerShowOne):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
subcloud_group_ref = parsed_args.group 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
return dcmanager_client.subcloud_group_manager.subcloud_group_detail( return subcloud_group_manager.subcloud_group_detail(subcloud_group_ref)
subcloud_group_ref
)
class DeleteSubcloudGroup(command.Command): class DeleteSubcloudGroup(command.Command):
@ -203,13 +199,11 @@ class DeleteSubcloudGroup(command.Command):
def take_action(self, parsed_args): def take_action(self, parsed_args):
subcloud_group_ref = parsed_args.group 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: try:
dcmanager_client.subcloud_group_manager.delete_subcloud_group( subcloud_group_manager.delete_subcloud_group(subcloud_group_ref)
subcloud_group_ref except Exception as exc:
) print(exc)
except Exception as e:
print(e)
msg = f"Unable to delete subcloud group {subcloud_group_ref}" msg = f"Unable to delete subcloud group {subcloud_group_ref}"
raise exceptions.DCManagerClientException(msg) raise exceptions.DCManagerClientException(msg)
@ -250,7 +244,7 @@ class UpdateSubcloudGroup(base.DCManagerShowOne):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
subcloud_group_ref = parsed_args.group 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 = {} kwargs = {}
if parsed_args.name: if parsed_args.name:
kwargs["name"] = parsed_args.name kwargs["name"] = parsed_args.name
@ -265,10 +259,10 @@ class UpdateSubcloudGroup(base.DCManagerShowOne):
raise exceptions.DCManagerClientException(error_msg) raise exceptions.DCManagerClientException(error_msg)
try: try:
return dcmanager_client.subcloud_group_manager.update_subcloud_group( return subcloud_group_manager.update_subcloud_group(
subcloud_group_ref, **kwargs subcloud_group_ref, **kwargs
) )
except Exception as e: except Exception as exc:
print(e) print(exc)
msg = f"Unable to update subcloud group {subcloud_group_ref}" msg = f"Unable to update subcloud group {subcloud_group_ref}"
raise exceptions.DCManagerClientException(msg) raise exceptions.DCManagerClientException(msg)

View File

@ -17,10 +17,11 @@
import base64 import base64
import os import os
import six
from osc_lib.command import command 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 from dcmanagerclient.commands.v1 import base
SET_FIELD_VALUE_DICT = {"region_name": None} SET_FIELD_VALUE_DICT = {"region_name": None}
@ -263,7 +264,7 @@ class AddSubcloud(base.DCManagerShowOne):
return parser return parser
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
dcmanager_client = self.app.client_manager.subcloud_manager subcloud_manager = self.app.client_manager.subcloud_manager
files = {} files = {}
data = {} data = {}
data["bootstrap-address"] = parsed_args.bootstrap_address data["bootstrap-address"] = parsed_args.bootstrap_address
@ -334,9 +335,7 @@ class AddSubcloud(base.DCManagerShowOne):
--migrate option." --migrate option."
raise exceptions.DCManagerClientException(error_msg) raise exceptions.DCManagerClientException(error_msg)
result = dcmanager_client.subcloud_manager.add_subcloud( result = subcloud_manager.add_subcloud(files=files, data=data)
files=files, data=data
)
update_fields_values(result) update_fields_values(result)
return result return result
@ -374,8 +373,8 @@ class ListSubcloud(base.DCManagerLister):
return parser return parser
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
dcmanager_client = self.app.client_manager.subcloud_manager subcloud_manager = self.app.client_manager.subcloud_manager
subclouds = dcmanager_client.subcloud_manager.list_subclouds() subclouds = subcloud_manager.list_subclouds()
# for '--all' parameter, show all subclouds. # for '--all' parameter, show all subclouds.
# for no parameter, hidden all 'secondary/secondary-failed' # for no parameter, hidden all 'secondary/secondary-failed'
@ -414,12 +413,10 @@ class ShowSubcloud(base.DCManagerShowOne):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
subcloud_ref = parsed_args.subcloud 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: if parsed_args.detail:
return dcmanager_client.subcloud_manager.subcloud_additional_details( return subcloud_manager.subcloud_additional_details(subcloud_ref)
subcloud_ref return subcloud_manager.subcloud_detail(subcloud_ref)
)
return dcmanager_client.subcloud_manager.subcloud_detail(subcloud_ref)
class ShowSubcloudError(command.Command): class ShowSubcloudError(command.Command):
@ -435,8 +432,8 @@ class ShowSubcloudError(command.Command):
def take_action(self, parsed_args): def take_action(self, parsed_args):
subcloud_ref = parsed_args.subcloud subcloud_ref = parsed_args.subcloud
dcmanager_client = self.app.client_manager.subcloud_manager subcloud_manager = self.app.client_manager.subcloud_manager
ret = dcmanager_client.subcloud_manager.subcloud_detail(subcloud_ref) ret = subcloud_manager.subcloud_detail(subcloud_ref)
data = ret[0].error_description data = ret[0].error_description
print("".join(data)) print("".join(data))
@ -452,11 +449,11 @@ class DeleteSubcloud(command.Command):
def take_action(self, parsed_args): def take_action(self, parsed_args):
subcloud_ref = parsed_args.subcloud subcloud_ref = parsed_args.subcloud
dcmanager_client = self.app.client_manager.subcloud_manager subcloud_manager = self.app.client_manager.subcloud_manager
try: try:
dcmanager_client.subcloud_manager.delete_subcloud(subcloud_ref) subcloud_manager.delete_subcloud(subcloud_ref)
except Exception as e: except Exception as exc:
print(e) print(exc)
error_msg = f"Unable to delete subcloud {subcloud_ref}" error_msg = f"Unable to delete subcloud {subcloud_ref}"
raise exceptions.DCManagerClientException(error_msg) raise exceptions.DCManagerClientException(error_msg)
@ -485,7 +482,7 @@ class UnmanageSubcloud(base.DCManagerShowOne):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
subcloud_ref = parsed_args.subcloud subcloud_ref = parsed_args.subcloud
dcmanager_client = self.app.client_manager.subcloud_manager subcloud_manager = self.app.client_manager.subcloud_manager
kwargs = {} kwargs = {}
kwargs["management-state"] = "unmanaged" kwargs["management-state"] = "unmanaged"
@ -493,13 +490,13 @@ class UnmanageSubcloud(base.DCManagerShowOne):
kwargs["migrate"] = "true" kwargs["migrate"] = "true"
try: try:
result = dcmanager_client.subcloud_manager.update_subcloud( result = subcloud_manager.update_subcloud(
subcloud_ref, files=None, data=kwargs subcloud_ref, files=None, data=kwargs
) )
update_fields_values(result) update_fields_values(result)
return result return result
except Exception as e: except Exception as exc:
print(e) print(exc)
error_msg = f"Unable to unmanage subcloud {subcloud_ref}" error_msg = f"Unable to unmanage subcloud {subcloud_ref}"
raise exceptions.DCManagerClientException(error_msg) raise exceptions.DCManagerClientException(error_msg)
@ -526,20 +523,20 @@ class ManageSubcloud(base.DCManagerShowOne):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
subcloud_ref = parsed_args.subcloud subcloud_ref = parsed_args.subcloud
dcmanager_client = self.app.client_manager.subcloud_manager subcloud_manager = self.app.client_manager.subcloud_manager
kwargs = {} kwargs = {}
kwargs["management-state"] = "managed" kwargs["management-state"] = "managed"
if parsed_args.force: if parsed_args.force:
kwargs["force"] = "true" kwargs["force"] = "true"
try: try:
result = dcmanager_client.subcloud_manager.update_subcloud( result = subcloud_manager.update_subcloud(
subcloud_ref, files=None, data=kwargs subcloud_ref, files=None, data=kwargs
) )
update_fields_values(result) update_fields_values(result)
return result return result
except Exception as e: except Exception as exc:
print(e) print(exc)
error_msg = f"Unable to manage subcloud {subcloud_ref}" error_msg = f"Unable to manage subcloud {subcloud_ref}"
raise exceptions.DCManagerClientException(error_msg) raise exceptions.DCManagerClientException(error_msg)
@ -631,7 +628,7 @@ class UpdateSubcloud(base.DCManagerShowOne):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
subcloud_ref = parsed_args.subcloud subcloud_ref = parsed_args.subcloud
dcmanager_client = self.app.client_manager.subcloud_manager subcloud_manager = self.app.client_manager.subcloud_manager
files = {} files = {}
data = {} data = {}
@ -724,13 +721,13 @@ class UpdateSubcloud(base.DCManagerShowOne):
raise exceptions.DCManagerClientException(error_msg) raise exceptions.DCManagerClientException(error_msg)
try: try:
result = dcmanager_client.subcloud_manager.update_subcloud( result = subcloud_manager.update_subcloud(
subcloud_ref, files=files, data=data subcloud_ref, files=files, data=data
) )
update_fields_values(result) update_fields_values(result)
return result return result
except Exception as e: except Exception as exc:
print(e) print(exc)
error_msg = f"Unable to update subcloud {subcloud_ref}" error_msg = f"Unable to update subcloud {subcloud_ref}"
raise exceptions.DCManagerClientException(error_msg) raise exceptions.DCManagerClientException(error_msg)
@ -823,7 +820,7 @@ class RedeploySubcloud(base.DCManagerShowOne):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
subcloud_ref = parsed_args.subcloud subcloud_ref = parsed_args.subcloud
dcmanager_client = self.app.client_manager.subcloud_manager subcloud_manager = self.app.client_manager.subcloud_manager
files = {} files = {}
data = {} data = {}
@ -886,11 +883,11 @@ class RedeploySubcloud(base.DCManagerShowOne):
) )
if confirm == "redeploy": if confirm == "redeploy":
try: try:
return dcmanager_client.subcloud_manager.redeploy_subcloud( return subcloud_manager.redeploy_subcloud(
subcloud_ref=subcloud_ref, files=files, data=data subcloud_ref=subcloud_ref, files=files, data=data
) )
except Exception as e: except Exception as exc:
print(e) print(exc)
error_msg = f"Unable to redeploy subcloud {subcloud_ref}" error_msg = f"Unable to redeploy subcloud {subcloud_ref}"
raise exceptions.DCManagerClientException(error_msg) raise exceptions.DCManagerClientException(error_msg)
else: else:
@ -980,7 +977,7 @@ class PrestageSubcloud(base.DCManagerShowOne):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
subcloud_ref = parsed_args.subcloud subcloud_ref = parsed_args.subcloud
dcmanager_client = self.app.client_manager.subcloud_manager subcloud_manager = self.app.client_manager.subcloud_manager
data = {} data = {}
if parsed_args.force: if parsed_args.force:
@ -1000,13 +997,13 @@ class PrestageSubcloud(base.DCManagerShowOne):
data["release"] = parsed_args.release data["release"] = parsed_args.release
try: try:
result = dcmanager_client.subcloud_manager.prestage_subcloud( result = subcloud_manager.prestage_subcloud(
subcloud_ref=subcloud_ref, data=data subcloud_ref=subcloud_ref, data=data
) )
update_fields_values(result) update_fields_values(result)
return result return result
except Exception as e: except Exception as exc:
print(e) print(exc)
error_msg = f"Unable to prestage subcloud {subcloud_ref}" error_msg = f"Unable to prestage subcloud {subcloud_ref}"
raise exceptions.DCManagerClientException(error_msg) raise exceptions.DCManagerClientException(error_msg)

View File

@ -6,7 +6,8 @@ import base64
from osc_lib.command import command 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 from dcmanagerclient.commands.v1 import base
@ -65,7 +66,9 @@ class MigrateSubcloudPeerGroup(base.DCManagerLister):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
subcloud_peer_group_ref = parsed_args.group 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 = {} kwargs = {}
if parsed_args.sysadmin_password is not None: if parsed_args.sysadmin_password is not None:
@ -79,10 +82,11 @@ class MigrateSubcloudPeerGroup(base.DCManagerLister):
).decode("utf-8") ).decode("utf-8")
try: try:
return dcmanager_client.subcloud_peer_group_manager.\ return subcloud_peer_group_manager.migrate_subcloud_peer_group(
migrate_subcloud_peer_group(subcloud_peer_group_ref, **kwargs) subcloud_peer_group_ref, **kwargs
except Exception as e: )
print(e) except Exception as exc:
print(exc)
msg = f"Unable to migrate subcloud peer group {subcloud_peer_group_ref}" msg = f"Unable to migrate subcloud peer group {subcloud_peer_group_ref}"
raise exceptions.DCManagerClientException(msg) raise exceptions.DCManagerClientException(msg)
@ -120,7 +124,9 @@ class AddSubcloudPeerGroup(base.DCManagerShowOne):
return parser return parser
def _get_resources(self, parsed_args): 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 = {}
kwargs["peer-group-name"] = parsed_args.peer_group_name 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: if parsed_args.max_subcloud_rehoming is not None:
kwargs["max-subcloud-rehoming"] = parsed_args.max_subcloud_rehoming kwargs["max-subcloud-rehoming"] = parsed_args.max_subcloud_rehoming
return dcmanager_client.subcloud_peer_group_manager.add_subcloud_peer_group( return subcloud_peer_group_manager.add_subcloud_peer_group(**kwargs)
**kwargs
)
class DeleteSubcloudPeerGroup(command.Command): class DeleteSubcloudPeerGroup(command.Command):
@ -149,13 +153,15 @@ class DeleteSubcloudPeerGroup(command.Command):
def take_action(self, parsed_args): def take_action(self, parsed_args):
subcloud_peer_group_ref = parsed_args.group 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: try:
dcmanager_client.subcloud_peer_group_manager.delete_subcloud_peer_group( subcloud_peer_group_manager.delete_subcloud_peer_group(
subcloud_peer_group_ref subcloud_peer_group_ref
) )
except Exception as e: except Exception as exc:
print(e) print(exc)
msg = f"Unable to delete subcloud peer group {subcloud_peer_group_ref}" msg = f"Unable to delete subcloud peer group {subcloud_peer_group_ref}"
raise exceptions.DCManagerClientException(msg) raise exceptions.DCManagerClientException(msg)
@ -177,11 +183,11 @@ class ShowSubcloudPeerGroup(base.DCManagerShowOne):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
subcloud_peer_group_ref = parsed_args.group subcloud_peer_group_ref = parsed_args.group
dcmanager_client = self.app.client_manager.subcloud_peer_group_manager subcloud_peer_group_manager = (
return ( self.app.client_manager.subcloud_peer_group_manager
dcmanager_client.subcloud_peer_group_manager.subcloud_peer_group_detail( )
subcloud_peer_group_ref return subcloud_peer_group_manager.subcloud_peer_group_detail(
) subcloud_peer_group_ref
) )
@ -196,10 +202,10 @@ class ListSubcloudPeerGroup(base.DCManagerLister):
return parser return parser
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
dcmanager_client = self.app.client_manager.subcloud_peer_group_manager subcloud_peer_group_manager = (
return ( self.app.client_manager.subcloud_peer_group_manager
dcmanager_client.subcloud_peer_group_manager.list_subcloud_peer_groups()
) )
return subcloud_peer_group_manager.list_subcloud_peer_groups()
class ListSubcloudPeerGroupSubclouds(base.DCManagerLister): class ListSubcloudPeerGroupSubclouds(base.DCManagerLister):
@ -219,10 +225,12 @@ class ListSubcloudPeerGroupSubclouds(base.DCManagerLister):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
subcloud_peer_group_ref = parsed_args.group subcloud_peer_group_ref = parsed_args.group
client_manager = self.app.client_manager subcloud_peer_group_manager = (
dcmanager_client = client_manager.subcloud_peer_group_manager self.app.client_manager.subcloud_peer_group_manager
return dcmanager_client.subcloud_peer_group_manager.\ )
subcloud_peer_group_list_subclouds(subcloud_peer_group_ref) return subcloud_peer_group_manager.subcloud_peer_group_list_subclouds(
subcloud_peer_group_ref
)
class UpdateSubcloudPeerGroup(base.DCManagerShowOne): class UpdateSubcloudPeerGroup(base.DCManagerShowOne):
@ -261,7 +269,9 @@ class UpdateSubcloudPeerGroup(base.DCManagerShowOne):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
subcloud_peer_group_ref = parsed_args.group 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 = {} kwargs = {}
if parsed_args.peer_group_name is not None: if parsed_args.peer_group_name is not None:
@ -278,10 +288,11 @@ class UpdateSubcloudPeerGroup(base.DCManagerShowOne):
raise exceptions.DCManagerClientException(error_msg) raise exceptions.DCManagerClientException(error_msg)
try: try:
return dcmanager_client.subcloud_peer_group_manager.\ return subcloud_peer_group_manager.update_subcloud_peer_group(
update_subcloud_peer_group(subcloud_peer_group_ref, **kwargs) subcloud_peer_group_ref, **kwargs
except Exception as e: )
print(e) except Exception as exc:
print(exc)
msg = f"Unable to update subcloud peer group {subcloud_peer_group_ref}" msg = f"Unable to update subcloud peer group {subcloud_peer_group_ref}"
raise exceptions.DCManagerClientException(msg) raise exceptions.DCManagerClientException(msg)
@ -334,9 +345,9 @@ class StatusSubcloudPeerGroup(base.DCManagerShowOne):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
subcloud_peer_group_ref = parsed_args.group subcloud_peer_group_ref = parsed_args.group
dcmanager_client = self.app.client_manager.subcloud_peer_group_manager subcloud_peer_group_manager = (
return ( self.app.client_manager.subcloud_peer_group_manager
dcmanager_client.subcloud_peer_group_manager.subcloud_peer_group_status( )
subcloud_peer_group_ref return subcloud_peer_group_manager.subcloud_peer_group_status(
) subcloud_peer_group_ref
) )

View File

@ -11,8 +11,8 @@ class SwDeployManagerMixin:
"""This Mixin provides the manager used for software deploy releases.""" """This Mixin provides the manager used for software deploy releases."""
def get_sw_update_manager(self): def get_sw_update_manager(self):
dcmanager_client = self.app.client_manager.sw_deploy_manager sw_deploy_manager = self.app.client_manager.sw_deploy_manager
return dcmanager_client.sw_deploy_manager return sw_deploy_manager
def custom_format_function(self, sw_update_strategy=None): def custom_format_function(self, sw_update_strategy=None):
original_fmt_func = super()._get_format_function() original_fmt_func = super()._get_format_function()
@ -26,14 +26,14 @@ class SwDeployManagerMixin:
# Insert the 'release_id' field after the 'stop on failure', # Insert the 'release_id' field after the 'stop on failure',
columns = ( columns = (
columns[:failure_status_index + 1] columns[: failure_status_index + 1]
+ ("release_id",) + ("release_id",)
+ columns[failure_status_index + 1:] + columns[failure_status_index + 1 :]
) )
data = ( data = (
data[:failure_status_index + 1] data[: failure_status_index + 1]
+ (release_id,) + (release_id,)
+ data[failure_status_index + 1:] + data[failure_status_index + 1 :]
) )
return columns, data return columns, data

View File

@ -20,8 +20,8 @@ class SwPatchManagerMixin:
"""This Mixin provides the update manager used for sw patch.""" """This Mixin provides the update manager used for sw patch."""
def get_sw_update_manager(self): def get_sw_update_manager(self):
dcmanager_client = self.app.client_manager.sw_patch_manager sw_patch_manager = self.app.client_manager.sw_patch_manager
return dcmanager_client.sw_patch_manager return sw_patch_manager
def custom_format_function(self, sw_update_strategy=None): def custom_format_function(self, sw_update_strategy=None):
original_fmt_func = super()._get_format_function() original_fmt_func = super()._get_format_function()

View File

@ -23,8 +23,8 @@ class SwPrestageManagerMixin:
"""This Mixin provides the update manager used for sw prestage.""" """This Mixin provides the update manager used for sw prestage."""
def get_sw_update_manager(self): def get_sw_update_manager(self):
dcmanager_client = self.app.client_manager.sw_prestage_manager sw_prestage_manager = self.app.client_manager.sw_prestage_manager
return dcmanager_client.sw_prestage_manager return sw_prestage_manager
def custom_format_function(self, sw_update_strategy=None): def custom_format_function(self, sw_update_strategy=None):
original_fmt_func = super()._get_format_function() original_fmt_func = super()._get_format_function()

View File

@ -284,8 +284,8 @@ class ListSwUpdateStrategyStep(base.DCManagerLister):
"""List strategy steps.""" """List strategy steps."""
def get_strategy_step_manager(self): def get_strategy_step_manager(self):
dcmanager_client = self.app.client_manager.strategy_step_manager strategy_step_manager = self.app.client_manager.strategy_step_manager
return dcmanager_client.strategy_step_manager return strategy_step_manager
def _get_format_function(self): def _get_format_function(self):
return strategy_step_format return strategy_step_format
@ -298,8 +298,8 @@ class ShowSwUpdateStrategyStep(base.DCManagerShowOne):
"""Show the details of a strategy step.""" """Show the details of a strategy step."""
def get_strategy_step_manager(self): def get_strategy_step_manager(self):
dcmanager_client = self.app.client_manager.strategy_step_manager strategy_step_manager = self.app.client_manager.strategy_step_manager
return dcmanager_client.strategy_step_manager return strategy_step_manager
def _get_format_function(self): def _get_format_function(self):
return detail_strategy_step_format return detail_strategy_step_format

View File

@ -134,7 +134,7 @@ class UpdateSwUpdateOptions(base.DCManagerShowOne):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
subcloud_ref = parsed_args.subcloud 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 = {}
kwargs["storage-apply-type"] = parsed_args.storage_apply_type kwargs["storage-apply-type"] = parsed_args.storage_apply_type
kwargs["worker-apply-type"] = parsed_args.worker_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 kwargs["default-instance-action"] = parsed_args.default_instance_action
try: try:
return ( return sw_update_options_manager.sw_update_options_update(
dcmanager_client.sw_update_options_manager.sw_update_options_update( subcloud_ref, **kwargs
subcloud_ref, **kwargs
)
) )
except Exception as e: except Exception as exc:
print(e) print(exc)
error_msg = f"Unable to update patch options for subcloud {subcloud_ref}" error_msg = f"Unable to update patch options for subcloud {subcloud_ref}"
raise exceptions.DCManagerClientException(error_msg) raise exceptions.DCManagerClientException(error_msg)
@ -165,8 +163,8 @@ class ListSwUpdateOptions(base.DCManagerLister):
return parser return parser
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
dcmanager_client = self.app.client_manager.sw_update_options_manager sw_update_options_manager = self.app.client_manager.sw_update_options_manager
return dcmanager_client.sw_update_options_manager.sw_update_options_list() return sw_update_options_manager.sw_update_options_list()
class ShowSwUpdateOptions(base.DCManagerShowOne): class ShowSwUpdateOptions(base.DCManagerShowOne):
@ -189,10 +187,8 @@ class ShowSwUpdateOptions(base.DCManagerShowOne):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
subcloud_ref = parsed_args.subcloud 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
return dcmanager_client.sw_update_options_manager.sw_update_options_detail( return sw_update_options_manager.sw_update_options_detail(subcloud_ref)
subcloud_ref
)
class DeleteSwUpdateOptions(command.Command): class DeleteSwUpdateOptions(command.Command):
@ -207,14 +203,10 @@ class DeleteSwUpdateOptions(command.Command):
def take_action(self, parsed_args): def take_action(self, parsed_args):
subcloud_ref = parsed_args.subcloud 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: try:
return ( return sw_update_options_manager.sw_update_options_delete(subcloud_ref)
dcmanager_client.sw_update_options_manager.sw_update_options_delete( except Exception as exc:
subcloud_ref print(exc)
)
)
except Exception as e:
print(e)
error_msg = "Unable to delete patch options" error_msg = "Unable to delete patch options"
raise exceptions.DCManagerClientException(error_msg) raise exceptions.DCManagerClientException(error_msg)

View File

@ -20,8 +20,8 @@ class SwUpgradeManagerMixin:
"""This Mixin provides the update manager used for software upgrades.""" """This Mixin provides the update manager used for software upgrades."""
def get_sw_update_manager(self): def get_sw_update_manager(self):
dcmanager_client = self.app.client_manager.sw_upgrade_manager sw_upgrade_manager = self.app.client_manager.sw_upgrade_manager
return dcmanager_client.sw_upgrade_manager return sw_upgrade_manager
class CreateSwUpgradeStrategy( class CreateSwUpgradeStrategy(

View File

@ -8,7 +8,8 @@ import base64
from osc_lib.command import command 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 from dcmanagerclient.commands.v1 import base
@ -191,7 +192,7 @@ class AddSystemPeer(base.DCManagerShowOne):
return parser return parser
def _get_resources(self, parsed_args): 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 = {} kwargs = {}
if parsed_args.peer_uuid is not None: if parsed_args.peer_uuid is not None:
@ -242,7 +243,7 @@ class AddSystemPeer(base.DCManagerShowOne):
kwargs["heartbeat_maintenance_timeout"] = ( kwargs["heartbeat_maintenance_timeout"] = (
parsed_args.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): class ListSystemPeer(base.DCManagerLister):
@ -256,8 +257,8 @@ class ListSystemPeer(base.DCManagerLister):
return parser return parser
def _get_resources(self, parsed_args): 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
return dcmanager_client.system_peer_manager.list_system_peers() return system_peer_manager.list_system_peers()
class ListSystemPeerSubcloudPeerGroups(base.DCManagerLister): class ListSystemPeerSubcloudPeerGroups(base.DCManagerLister):
@ -279,10 +280,8 @@ class ListSystemPeerSubcloudPeerGroups(base.DCManagerLister):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
system_peer_ref = parsed_args.peer 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
return dcmanager_client.system_peer_manager.system_peer_list_peer_groups( return system_peer_manager.system_peer_list_peer_groups(system_peer_ref)
system_peer_ref
)
class ShowSystemPeer(base.DCManagerShowOne): class ShowSystemPeer(base.DCManagerShowOne):
@ -302,10 +301,8 @@ class ShowSystemPeer(base.DCManagerShowOne):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
system_peer_ref = parsed_args.peer 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
return dcmanager_client.system_peer_manager.system_peer_detail( return system_peer_manager.system_peer_detail(system_peer_ref)
system_peer_ref
)
class DeleteSystemPeer(command.Command): class DeleteSystemPeer(command.Command):
@ -319,11 +316,11 @@ class DeleteSystemPeer(command.Command):
def take_action(self, parsed_args): def take_action(self, parsed_args):
system_peer_ref = parsed_args.peer 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: try:
dcmanager_client.system_peer_manager.delete_system_peer(system_peer_ref) system_peer_manager.delete_system_peer(system_peer_ref)
except Exception as e: except Exception as exc:
print(e) print(exc)
msg = f"Unable to delete system peer {system_peer_ref}" msg = f"Unable to delete system peer {system_peer_ref}"
raise exceptions.DCManagerClientException(msg) raise exceptions.DCManagerClientException(msg)
@ -415,7 +412,7 @@ class UpdateSystemPeer(base.DCManagerShowOne):
def _get_resources(self, parsed_args): def _get_resources(self, parsed_args):
system_peer_ref = parsed_args.peer 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 = {} kwargs = {}
if parsed_args.peer_uuid: if parsed_args.peer_uuid:
kwargs["peer_uuid"] = parsed_args.peer_uuid kwargs["peer_uuid"] = parsed_args.peer_uuid
@ -460,10 +457,8 @@ class UpdateSystemPeer(base.DCManagerShowOne):
raise exceptions.DCManagerClientException(error_msg) raise exceptions.DCManagerClientException(error_msg)
try: try:
return dcmanager_client.system_peer_manager.update_system_peer( return system_peer_manager.update_system_peer(system_peer_ref, **kwargs)
system_peer_ref, **kwargs except Exception as exc:
) print(exc)
except Exception as e:
print(e)
msg = f"Unable to update system peer {system_peer_ref}" msg = f"Unable to update system peer {system_peer_ref}"
raise exceptions.DCManagerClientException(msg) raise exceptions.DCManagerClientException(msg)

View File

@ -113,8 +113,8 @@ class HelpAction(argparse.Action):
parser.print_help(main_app.stdout) parser.print_help(main_app.stdout)
main_app.stdout.write("\nCommands for API v1 :\n") main_app.stdout.write("\nCommands for API v1 :\n")
for name, ep in sorted(main_app.command_manager): for name, app_cmd in sorted(main_app.command_manager):
factory = ep.load() factory = app_cmd.load()
cmd = factory(self, None) cmd = factory(self, None)
one_liner = cmd.get_description().split("\n")[0] one_liner = cmd.get_description().split("\n")[0]
outputs.append((name, one_liner)) outputs.append((name, one_liner))
@ -135,17 +135,18 @@ class BashCompletionCommand(command.Command):
for ( for (
option, option,
_action, _,
) in self.app.parser._option_string_actions.items(): ) in self.app.parser._option_string_actions.items():
options.add(option) options.add(option)
for command_name, _cmd in self.app.command_manager: for command_name, _ in self.app.command_manager:
commands.add(command_name) commands.add(command_name)
print(" ".join(commands | options)) print(" ".join(commands | options))
class DCManagerShell(app.App): class DCManagerShell(app.App):
def __init__(self): def __init__(self):
super().__init__( super().__init__(
description=__doc__.strip(), 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 # Adding client_manager variable to make dcmanager client work with
# unified OpenStack client. # unified OpenStack client.
ClientManager = type( ClientManager = type(
"ClientManager", "ClientManager",
(object,), (object,),
{ client_keys,
"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,
},
) )
self.client_manager = ClientManager() self.client_manager = ClientManager()
def _set_shell_commands(self, cmds_dict): def _set_shell_commands(self, cmds_dict):
for k, v in cmds_dict.items(): for cmd, cmd_class in cmds_dict.items():
self.command_manager.add_command(k, v) self.command_manager.add_command(cmd, cmd_class)
def _clear_shell_commands(self): def _clear_shell_commands(self):
exclude_cmds = ["help", "complete"] exclude_cmds = ["help", "complete"]
cmds = self.command_manager.commands.copy() cmds = self.command_manager.commands.copy()
for k, _v in cmds.items(): for k, _ in cmds.items():
if k not in exclude_cmds: if k not in exclude_cmds:
self.command_manager.commands.pop(k) self.command_manager.commands.pop(k)
def _get_commands(self, version): def _get_commands(self, version):
if version == 1: if version == 1:
return self._get_commands_v1() return self._get_commands_v1()
return {} return {}
@staticmethod @staticmethod
def _get_commands_v1(): def _get_commands_v1():
list_system_peer_groups = sp.ListSystemPeerSubcloudPeerGroups
create_kube_root_update = krum.CreateKubeRootcaUpdateStrategy
delete_kube_root_update = krum.DeleteKubeRootcaUpdateStrategy
return { return {
"alarm summary": am.ListAlarmSummary, "alarm summary": am.ListAlarmSummary,
"bash-completion": BashCompletionCommand, "bash-completion": BashCompletionCommand,
@ -544,10 +552,8 @@ class DCManagerShell(app.App):
"fw-update-strategy show": fum.ShowFwUpdateStrategy, "fw-update-strategy show": fum.ShowFwUpdateStrategy,
"kube-rootca-update-strategy abort": krum.AbortKubeRootcaUpdateStrategy, "kube-rootca-update-strategy abort": krum.AbortKubeRootcaUpdateStrategy,
"kube-rootca-update-strategy apply": krum.ApplyKubeRootcaUpdateStrategy, "kube-rootca-update-strategy apply": krum.ApplyKubeRootcaUpdateStrategy,
"kube-rootca-update-strategy create": "kube-rootca-update-strategy create": create_kube_root_update,
krum.CreateKubeRootcaUpdateStrategy, "kube-rootca-update-strategy delete": delete_kube_root_update,
"kube-rootca-update-strategy delete":
krum.DeleteKubeRootcaUpdateStrategy,
"kube-rootca-update-strategy show": krum.ShowKubeRootcaUpdateStrategy, "kube-rootca-update-strategy show": krum.ShowKubeRootcaUpdateStrategy,
"kube-upgrade-strategy abort": kupm.AbortKubeUpgradeStrategy, "kube-upgrade-strategy abort": kupm.AbortKubeUpgradeStrategy,
"kube-upgrade-strategy apply": kupm.ApplyKubeUpgradeStrategy, "kube-upgrade-strategy apply": kupm.ApplyKubeUpgradeStrategy,
@ -630,8 +636,7 @@ class DCManagerShell(app.App):
"system-peer add": sp.AddSystemPeer, "system-peer add": sp.AddSystemPeer,
"system-peer delete": sp.DeleteSystemPeer, "system-peer delete": sp.DeleteSystemPeer,
"system-peer list": sp.ListSystemPeer, "system-peer list": sp.ListSystemPeer,
"system-peer list-subcloud-peer-groups": "system-peer list-subcloud-peer-groups": list_system_peer_groups,
sp.ListSystemPeerSubcloudPeerGroups,
"system-peer show": sp.ShowSystemPeer, "system-peer show": sp.ShowSystemPeer,
"system-peer update": sp.UpdateSystemPeer, "system-peer update": sp.UpdateSystemPeer,
"upgrade-strategy abort": supm.AbortSwUpgradeStrategy, "upgrade-strategy abort": supm.AbortSwUpgradeStrategy,

View File

@ -318,7 +318,7 @@ class BaseCommandTest(testtools.TestCase):
def setUp(self): def setUp(self):
super().setUp() super().setUp()
self.app = mock.Mock() self.app = mock.Mock()
self.client = self.app.client_manager.subcloud_manager self.client = self.app.client_manager
self.parsed_args = None self.parsed_args = None
def call(self, command, app_args=None, prog_name=""): def call(self, command, app_args=None, prog_name=""):

View File

@ -35,7 +35,7 @@ class TestCLIAlarmSummaryV1(base.BaseCommandTest):
self.client = self.app.client_manager.alarm_manager self.client = self.app.client_manager.alarm_manager
def test_list_alarm_summary(self): 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) actual_call = self.call(alarm_cmd.ListAlarmSummary)
self.assertEqual( self.assertEqual(
[ [

View File

@ -13,9 +13,7 @@ class TestFwUpdateStrategy(UpdateStrategyMixin, base.BaseCommandTest):
def setUp(self): def setUp(self):
super().setUp() super().setUp()
self.sw_update_manager = ( self.sw_update_manager = self.app.client_manager.fw_update_manager
self.app.client_manager.fw_update_manager.fw_update_manager
)
self.create_command = cli_cmd.CreateFwUpdateStrategy self.create_command = cli_cmd.CreateFwUpdateStrategy
self.show_command = cli_cmd.ShowFwUpdateStrategy self.show_command = cli_cmd.ShowFwUpdateStrategy
self.delete_command = cli_cmd.DeleteFwUpdateStrategy self.delete_command = cli_cmd.DeleteFwUpdateStrategy

View File

@ -13,8 +13,7 @@ class TestKubeRootcaUpdateStrategy(UpdateStrategyMixin, base.BaseCommandTest):
def setUp(self): def setUp(self):
super().setUp() super().setUp()
self.sw_update_manager = self.app.client_manager.kube_rootca_update_manager.\ self.sw_update_manager = self.app.client_manager.kube_rootca_update_manager
kube_rootca_update_manager
self.create_command = cli_cmd.CreateKubeRootcaUpdateStrategy self.create_command = cli_cmd.CreateKubeRootcaUpdateStrategy
self.show_command = cli_cmd.ShowKubeRootcaUpdateStrategy self.show_command = cli_cmd.ShowKubeRootcaUpdateStrategy
self.delete_command = cli_cmd.DeleteKubeRootcaUpdateStrategy self.delete_command = cli_cmd.DeleteKubeRootcaUpdateStrategy

View File

@ -13,9 +13,7 @@ class TestKubeUpgradeStrategy(UpdateStrategyMixin, base.BaseCommandTest):
def setUp(self): def setUp(self):
super().setUp() super().setUp()
self.sw_update_manager = ( self.sw_update_manager = self.app.client_manager.kube_upgrade_manager
self.app.client_manager.kube_upgrade_manager.kube_upgrade_manager
)
self.create_command = cli_cmd.CreateKubeUpgradeStrategy self.create_command = cli_cmd.CreateKubeUpgradeStrategy
self.show_command = cli_cmd.ShowKubeUpgradeStrategy self.show_command = cli_cmd.ShowKubeUpgradeStrategy
self.delete_command = cli_cmd.DeleteKubeUpgradeStrategy self.delete_command = cli_cmd.DeleteKubeUpgradeStrategy

View File

@ -18,9 +18,7 @@ class TestPatchUpdateStrategy(UpdateStrategyMixin, base.BaseCommandTest):
# Increase results_length due to the 'upload only' field # Increase results_length due to the 'upload only' field
self.results_length += 1 self.results_length += 1
self.sw_update_manager = ( self.sw_update_manager = self.app.client_manager.sw_patch_manager
self.app.client_manager.sw_patch_manager.sw_patch_manager
)
self.create_command = cli_cmd.CreatePatchUpdateStrategy self.create_command = cli_cmd.CreatePatchUpdateStrategy
self.show_command = cli_cmd.ShowPatchUpdateStrategy self.show_command = cli_cmd.ShowPatchUpdateStrategy
self.delete_command = cli_cmd.DeletePatchUpdateStrategy self.delete_command = cli_cmd.DeletePatchUpdateStrategy

View File

@ -77,14 +77,14 @@ class TestCLIPeerGroupAssociationV1(base.BaseCommandTest):
self.client = self.app.client_manager.peer_group_association_manager self.client = self.app.client_manager.peer_group_association_manager
def test_list_peer_group_association(self): def test_list_peer_group_association(self):
self.client.peer_group_association_manager.list_peer_group_associations.\ self.client.list_peer_group_associations.return_value = [
return_value = [PEER_GROUP_ASSOCIATION] PEER_GROUP_ASSOCIATION
]
actual_call = self.call(peer_group_association_cmd.ListPeerGroupAssociation) actual_call = self.call(peer_group_association_cmd.ListPeerGroupAssociation)
self.assertEqual([PEER_GROUP_ASSOCIATION_TUPLE], actual_call[1]) self.assertEqual([PEER_GROUP_ASSOCIATION_TUPLE], actual_call[1])
def test_list_peer_group_association_empty(self): def test_list_peer_group_association_empty(self):
self.client.peer_group_association_manager.list_peer_group_associations.\ self.client.list_peer_group_associations.return_value = []
return_value = ([])
actual_call = self.call(peer_group_association_cmd.ListPeerGroupAssociation) actual_call = self.call(peer_group_association_cmd.ListPeerGroupAssociation)
self.assertEqual( self.assertEqual(
(tuple("<none>" for _ in range(len(PEER_GROUP_ASSOCIATION_TUPLE))),), (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): def test_add_peer_group_association(self):
self.client.peer_group_association_manager.add_peer_group_association.\ self.client.add_peer_group_association.return_value = [
return_value = [PEER_GROUP_ASSOCIATION] PEER_GROUP_ASSOCIATION
]
actual_call = self.call( actual_call = self.call(
peer_group_association_cmd.AddPeerGroupAssociation, peer_group_association_cmd.AddPeerGroupAssociation,
app_args=[ app_args=[
@ -108,8 +109,9 @@ class TestCLIPeerGroupAssociationV1(base.BaseCommandTest):
self.assertEqual(PEER_GROUP_ASSOCIATION_DETAIL_TUPLE, actual_call[1]) self.assertEqual(PEER_GROUP_ASSOCIATION_DETAIL_TUPLE, actual_call[1])
def test_show_peer_group_association(self): def test_show_peer_group_association(self):
self.client.peer_group_association_manager.peer_group_association_detail.\ self.client.peer_group_association_detail.return_value = [
return_value = [PEER_GROUP_ASSOCIATION] PEER_GROUP_ASSOCIATION
]
actual_call = self.call( actual_call = self.call(
peer_group_association_cmd.ShowPeerGroupAssociation, peer_group_association_cmd.ShowPeerGroupAssociation,
app_args=[PEER_GROUP_ASSOCIATION_ID], app_args=[PEER_GROUP_ASSOCIATION_ID],
@ -130,8 +132,7 @@ class TestCLIPeerGroupAssociationV1(base.BaseCommandTest):
) )
def test_show_peer_group_association_without_id(self): def test_show_peer_group_association_without_id(self):
self.client.peer_group_association_manager.peer_group_association_detail.\ self.client.peer_group_association_detail.return_value = []
return_value = ([])
self.assertRaises( self.assertRaises(
SystemExit, SystemExit,
self.call, self.call,
@ -144,8 +145,9 @@ class TestCLIPeerGroupAssociationV1(base.BaseCommandTest):
peer_group_association_cmd.DeletePeerGroupAssociation, peer_group_association_cmd.DeletePeerGroupAssociation,
app_args=[PEER_GROUP_ASSOCIATION_ID], app_args=[PEER_GROUP_ASSOCIATION_ID],
) )
self.client.peer_group_association_manager.delete_peer_group_association.\ self.client.delete_peer_group_association.assert_called_once_with(
assert_called_once_with(PEER_GROUP_ASSOCIATION_ID) PEER_GROUP_ASSOCIATION_ID
)
def test_delete_peer_group_association_without_id(self): def test_delete_peer_group_association_without_id(self):
self.assertRaises( self.assertRaises(
@ -160,8 +162,9 @@ class TestCLIPeerGroupAssociationV1(base.BaseCommandTest):
updated_peed_group_association.peer_group_priority = ( updated_peed_group_association.peer_group_priority = (
PG_GROUP_PRIORITY_UPDATED PG_GROUP_PRIORITY_UPDATED
) )
self.client.peer_group_association_manager.update_peer_group_association.\ self.client.update_peer_group_association.return_value = [
return_value = [updated_peed_group_association] updated_peed_group_association
]
actual_call = self.call( actual_call = self.call(
peer_group_association_cmd.UpdatePeerGroupAssociation, peer_group_association_cmd.UpdatePeerGroupAssociation,
app_args=[ app_args=[
@ -173,8 +176,9 @@ class TestCLIPeerGroupAssociationV1(base.BaseCommandTest):
self.assertEqual((PEER_GROUP_ASSOCIATION_TUPLE_UPDATED), actual_call[1]) self.assertEqual((PEER_GROUP_ASSOCIATION_TUPLE_UPDATED), actual_call[1])
def test_update_peer_group_association_without_priority(self): def test_update_peer_group_association_without_priority(self):
self.client.peer_group_association_manager.update_peer_group_association.\ self.client.update_peer_group_association.return_value = [
return_value = [PEER_GROUP_ASSOCIATION] PEER_GROUP_ASSOCIATION
]
self.assertRaises( self.assertRaises(
SystemExit, SystemExit,
self.call, self.call,
@ -183,8 +187,9 @@ class TestCLIPeerGroupAssociationV1(base.BaseCommandTest):
) )
def test_sync_peer_group_association(self): def test_sync_peer_group_association(self):
self.client.peer_group_association_manager.sync_peer_group_association.\ self.client.sync_peer_group_association.return_value = [
return_value = [PEER_GROUP_ASSOCIATION] PEER_GROUP_ASSOCIATION
]
actual_call = self.call( actual_call = self.call(
peer_group_association_cmd.SyncPeerGroupAssociation, peer_group_association_cmd.SyncPeerGroupAssociation,
app_args=[PEER_GROUP_ASSOCIATION_ID], app_args=[PEER_GROUP_ASSOCIATION_ID],

View File

@ -15,247 +15,259 @@ from dcmanagerclient.exceptions import DCManagerClientException
from dcmanagerclient.tests import base 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): class TestCLIPhasedSubcloudDeployManagerV1(base.BaseCommandTest):
def setUp(self): def setUp(self):
super().setUp() super().setUp()
# The client is the subcloud_deploy_manager # The client is the subcloud_deploy_manager
self.client = self.app.client_manager.phased_subcloud_deploy_manager.\ self.client = self.app.client_manager.phased_subcloud_deploy_manager
phased_subcloud_deploy_manager
def test_subcloud_deploy_create(self): def test_subcloud_deploy_create(self):
self.client.subcloud_deploy_create.return_value = [ self.client.subcloud_deploy_create.return_value = [base.SUBCLOUD_RESOURCE]
base.SUBCLOUD_RESOURCE]
with tempfile.NamedTemporaryFile(mode='w') as bootstrap_file, \ with tempfile.NamedTemporaryFile(
tempfile.NamedTemporaryFile(mode='w') as config_file, \ mode="w"
tempfile.NamedTemporaryFile(mode='w') as install_file: ) 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) bootstrap_file_path = os.path.abspath(bootstrap_file.name)
config_file_path = os.path.abspath(config_file.name) config_file_path = os.path.abspath(config_file.name)
install_file_path = os.path.abspath(install_file.name) install_file_path = os.path.abspath(install_file.name)
actual_call = self.call( actual_call = self.call(
cmd.CreatePhasedSubcloudDeploy, app_args=[ cmd.CreatePhasedSubcloudDeploy,
'--bootstrap-address', base.BOOTSTRAP_ADDRESS, app_args=[
'--install-values', install_file_path, "--bootstrap-address",
'--bootstrap-values', bootstrap_file_path, base.BOOTSTRAP_ADDRESS,
'--deploy-config', config_file_path, "--install-values",
'--release', base.SOFTWARE_VERSION, install_file_path,
]) "--bootstrap-values",
self.assertEqual( bootstrap_file_path,
base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, "--deploy-config",
actual_call[1]) 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): def test_subcloud_deploy_bootstrap(self):
self.client.subcloud_deploy_bootstrap.return_value = [ self.client.subcloud_deploy_bootstrap.return_value = [base.SUBCLOUD_RESOURCE]
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) bootstrap_file_path = os.path.abspath(bootstrap_file.name)
actual_call = self.call( actual_call = self.call(
cmd.BootstrapPhasedSubcloudDeploy, app_args=[ cmd.BootstrapPhasedSubcloudDeploy,
app_args=[
base.ID, base.ID,
'--bootstrap-address', base.BOOTSTRAP_ADDRESS, "--bootstrap-address",
'--bootstrap-values', bootstrap_file_path, base.BOOTSTRAP_ADDRESS,
]) "--bootstrap-values",
self.assertEqual( bootstrap_file_path,
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_subcloud(self): def test_install_subcloud(self):
self.client.subcloud_deploy_install.return_value = [ self.client.subcloud_deploy_install.return_value = [base.SUBCLOUD_RESOURCE]
base.SUBCLOUD_RESOURCE]
with tempfile.NamedTemporaryFile(mode='w') as f: with tempfile.NamedTemporaryFile(mode="w") as f:
yaml.dump(base.FAKE_INSTALL_VALUES, f) yaml.dump(base.FAKE_INSTALL_VALUES, f)
file_path = os.path.abspath(f.name) file_path = os.path.abspath(f.name)
actual_call = self.call( actual_call = self.call(
cmd.InstallPhasedSubcloudDeploy, app_args=[ cmd.InstallPhasedSubcloudDeploy,
base.NAME, '--install-values', file_path, app_args=[
]) base.NAME,
self.assertEqual( "--install-values",
base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, file_path,
actual_call[1]) ],
)
self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, actual_call[1])
def test_install_subcloud_with_release(self): def test_install_subcloud_with_release(self):
self.client.subcloud_deploy_install.return_value = [ self.client.subcloud_deploy_install.return_value = [base.SUBCLOUD_RESOURCE]
base.SUBCLOUD_RESOURCE]
with tempfile.NamedTemporaryFile(mode='w') as f: with tempfile.NamedTemporaryFile(mode="w") as f:
yaml.dump(base.FAKE_INSTALL_VALUES, f) yaml.dump(base.FAKE_INSTALL_VALUES, f)
file_path = os.path.abspath(f.name) file_path = os.path.abspath(f.name)
actual_call = self.call( actual_call = self.call(
cmd.InstallPhasedSubcloudDeploy, app_args=[ cmd.InstallPhasedSubcloudDeploy,
app_args=[
base.NAME, base.NAME,
'--install-values', file_path, "--install-values",
'--release', base.SOFTWARE_VERSION, file_path,
]) "--release",
self.assertEqual( base.SOFTWARE_VERSION,
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_subcloud_without_install_values(self): def test_install_subcloud_without_install_values(self):
self.client.subcloud_deploy_install.return_value = [ self.client.subcloud_deploy_install.return_value = [base.SUBCLOUD_RESOURCE]
base.SUBCLOUD_RESOURCE]
actual_call = self.call( actual_call = self.call(
cmd.InstallPhasedSubcloudDeploy, app_args=[base.NAME]) cmd.InstallPhasedSubcloudDeploy, app_args=[base.NAME]
)
self.assertEqual( self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, actual_call[1])
base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID,
actual_call[1])
def test_install_file_does_not_exist(self): def test_install_file_does_not_exist(self):
self.client.subcloud_deploy_install.return_value = [ self.client.subcloud_deploy_install.return_value = [base.SUBCLOUD_RESOURCE]
base.SUBCLOUD_RESOURCE]
with tempfile.NamedTemporaryFile() as f: with tempfile.NamedTemporaryFile() as f:
file_path = os.path.abspath(f.name) file_path = os.path.abspath(f.name)
e = self.assertRaises(DCManagerClientException, e = self.assertRaises(
self.call, DCManagerClientException,
cmd.InstallPhasedSubcloudDeploy, self.call,
app_args=[base.NAME, cmd.InstallPhasedSubcloudDeploy,
'--install-values', file_path] app_args=[base.NAME, "--install-values", file_path],
) )
self.assertTrue('install-values does not exist' self.assertTrue("install-values does not exist" in str(e))
in str(e))
def test_configure_subcloud(self): def test_configure_subcloud(self):
self.client.subcloud_deploy_config.return_value = [ self.client.subcloud_deploy_config.return_value = [base.SUBCLOUD_RESOURCE]
base.SUBCLOUD_RESOURCE]
with tempfile.NamedTemporaryFile() as f: with tempfile.NamedTemporaryFile() as f:
file_path = os.path.abspath(f.name) file_path = os.path.abspath(f.name)
actual_call = self.call( actual_call = self.call(
cmd.ConfigPhasedSubcloudDeploy, cmd.ConfigPhasedSubcloudDeploy,
app_args=[base.NAME, '--deploy-config', file_path]) app_args=[base.NAME, "--deploy-config", file_path],
self.assertEqual( )
base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, actual_call[1])
actual_call[1])
def test_configure_file_does_not_exist(self): def test_configure_file_does_not_exist(self):
self.client.subcloud_deploy_config.return_value = [ self.client.subcloud_deploy_config.return_value = [base.SUBCLOUD_RESOURCE]
base.SUBCLOUD_RESOURCE]
with tempfile.NamedTemporaryFile() as f: with tempfile.NamedTemporaryFile() as f:
file_path = os.path.abspath(f.name) file_path = os.path.abspath(f.name)
e = self.assertRaises(DCManagerClientException, e = self.assertRaises(
self.call, DCManagerClientException,
cmd.ConfigPhasedSubcloudDeploy, self.call,
app_args=[base.NAME, cmd.ConfigPhasedSubcloudDeploy,
'--deploy-config', file_path]) app_args=[base.NAME, "--deploy-config", file_path],
self.assertTrue('deploy-config file does not exist' in str(e)) )
self.assertTrue("deploy-config file does not exist" in str(e))
def test_complete_subcloud_deployment(self): def test_complete_subcloud_deployment(self):
self.client.subcloud_deploy_complete.return_value = [ self.client.subcloud_deploy_complete.return_value = [base.SUBCLOUD_RESOURCE]
base.SUBCLOUD_RESOURCE]
actual_call = self.call( actual_call = self.call(
cmd.CompletePhasedSubcloudDeploy, cmd.CompletePhasedSubcloudDeploy, app_args=[base.NAME]
app_args=[base.NAME]) )
self.assertEqual( self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, actual_call[1])
base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID,
actual_call[1])
def test_abort_subcloud(self): def test_abort_subcloud(self):
self.client.subcloud_deploy_abort.return_value = [ self.client.subcloud_deploy_abort.return_value = [base.SUBCLOUD_RESOURCE]
base.SUBCLOUD_RESOURCE] actual_call = self.call(cmd.AbortPhasedSubcloudDeploy, app_args=[base.NAME])
actual_call = self.call( self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, actual_call[1])
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): def test_subcloud_deploy_resume_all_parameters(self):
self.client.subcloud_deploy_resume.return_value = [ self.client.subcloud_deploy_resume.return_value = [base.SUBCLOUD_RESOURCE]
base.SUBCLOUD_RESOURCE]
with tempfile.NamedTemporaryFile(mode='w') as bootstrap_file, \ with tempfile.NamedTemporaryFile(
tempfile.NamedTemporaryFile(mode='w') as config_file, \ mode="w"
tempfile.NamedTemporaryFile(mode='w') as install_file: ) 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) bootstrap_file_path = os.path.abspath(bootstrap_file.name)
config_file_path = os.path.abspath(config_file.name) config_file_path = os.path.abspath(config_file.name)
install_file_path = os.path.abspath(install_file.name) install_file_path = os.path.abspath(install_file.name)
actual_call = self.call( actual_call = self.call(
cmd.PhasedSubcloudDeployResume, app_args=[ cmd.PhasedSubcloudDeployResume,
app_args=[
base.NAME, base.NAME,
'--bootstrap-address', base.BOOTSTRAP_ADDRESS, "--bootstrap-address",
'--bootstrap-values', bootstrap_file_path, base.BOOTSTRAP_ADDRESS,
'--install-values', install_file_path, "--bootstrap-values",
'--deploy-config', config_file_path, bootstrap_file_path,
'--release', base.SOFTWARE_VERSION, "--install-values",
]) install_file_path,
self.assertEqual( "--deploy-config",
base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, config_file_path,
actual_call[1]) "--release",
base.SOFTWARE_VERSION,
],
)
self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, actual_call[1])
def test_subcloud_deploy_resume_missing_files(self): def test_subcloud_deploy_resume_missing_files(self):
self.client.subcloud_deploy_resume.return_value = [ self.client.subcloud_deploy_resume.return_value = [base.SUBCLOUD_RESOURCE]
base.SUBCLOUD_RESOURCE]
with tempfile.NamedTemporaryFile(mode='w') as bootstrap_file, \ with tempfile.NamedTemporaryFile(
tempfile.NamedTemporaryFile(mode='w') as config_file, \ mode="w"
tempfile.NamedTemporaryFile(mode='w') as install_file: ) 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) bootstrap_file_path = os.path.abspath(bootstrap_file.name)
config_file_path = os.path.abspath(config_file.name) config_file_path = os.path.abspath(config_file.name)
install_file_path = os.path.abspath(install_file.name) install_file_path = os.path.abspath(install_file.name)
# Missing bootstrap values # Missing bootstrap values
app_args_bootstrap = [base.NAME, app_args_bootstrap = [
'--bootstrap-address', base.BOOTSTRAP_ADDRESS, base.NAME,
'--bootstrap-values', bootstrap_file_path] "--bootstrap-address",
error_msg_bootstrap = 'bootstrap-values does not exist' base.BOOTSTRAP_ADDRESS,
call_bootstrap = self.assertRaises(DCManagerClientException, "--bootstrap-values",
self.call, bootstrap_file_path,
cmd.PhasedSubcloudDeployResume, ]
app_args=app_args_bootstrap) 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)) self.assertTrue(error_msg_bootstrap in str(call_bootstrap))
# Missing install values # Missing install values
app_args_install = [base.NAME, '--install-values', install_file_path] app_args_install = [base.NAME, "--install-values", install_file_path]
error_msg_install = 'install-values does not exist' error_msg_install = "install-values does not exist"
call_install = self.assertRaises(DCManagerClientException, call_install = self.assertRaises(
self.call, DCManagerClientException,
cmd.PhasedSubcloudDeployResume, self.call,
app_args=app_args_install) cmd.PhasedSubcloudDeployResume,
app_args=app_args_install,
)
self.assertTrue(error_msg_install in str(call_install)) self.assertTrue(error_msg_install in str(call_install))
# Missing deploy config values # Missing deploy config values
app_args_config = [base.NAME, '--deploy-config', config_file_path] app_args_config = [base.NAME, "--deploy-config", config_file_path]
error_msg_config = 'deploy-config does not exist' error_msg_config = "deploy-config does not exist"
call_config = self.assertRaises(DCManagerClientException, call_config = self.assertRaises(
self.call, DCManagerClientException,
cmd.PhasedSubcloudDeployResume, self.call,
app_args=app_args_config) cmd.PhasedSubcloudDeployResume,
app_args=app_args_config,
)
self.assertTrue(error_msg_config in str(call_config)) self.assertTrue(error_msg_config in str(call_config))
def test_subcloud_deploy_resume_no_parameters(self): def test_subcloud_deploy_resume_no_parameters(self):
self.client.subcloud_deploy_resume.return_value = [ self.client.subcloud_deploy_resume.return_value = [base.SUBCLOUD_RESOURCE]
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( actual_call = self.call(
cmd.PhasedSubcloudDeployResume, cmd.PhasedSubcloudDeployResume,
app_args=[base.NAME]) app_args=[
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, base.NAME,
'--release', base.SOFTWARE_VERSION, "--release",
]) base.SOFTWARE_VERSION,
self.assertEqual( ],
base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, )
actual_call[1]) self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, actual_call[1])

View File

@ -48,9 +48,7 @@ class TestCLI(base.BaseCommandTest):
) )
results = [] results = []
results.append(sample_step) results.append(sample_step)
step_manager = ( step_manager = self.app.client_manager.strategy_step_manager
self.app.client_manager.strategy_step_manager.strategy_step_manager
)
step_manager.list_strategy_steps.return_value = results step_manager.list_strategy_steps.return_value = results
actual_call = self.call(cli_cmd.ListSwUpdateStrategyStep) actual_call = self.call(cli_cmd.ListSwUpdateStrategyStep)

View File

@ -30,9 +30,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
def test_backup_create_subcloud(self): def test_backup_create_subcloud(self):
self.client.subcloud_backup_manager.backup_subcloud_create.return_value = [ self.client.backup_subcloud_create.return_value = [base.SUBCLOUD_RESOURCE]
base.SUBCLOUD_RESOURCE
]
backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml")) backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml"))
with open(backup_path, mode="w", encoding="UTF-8") as f: 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): def test_backup_create_group(self):
self.client.subcloud_backup_manager.backup_subcloud_create.return_value = [ self.client.backup_subcloud_create.return_value = [base.SUBCLOUD_RESOURCE]
base.SUBCLOUD_RESOURCE
]
backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml")) backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml"))
with open(backup_path, mode="w", encoding="UTF-8") as f: 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]) self.assertEqual([base.SUBCLOUD_FIELD_RESULT_LIST], actual_call[1])
def test_backup_create_group_subcloud(self): 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")) backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml"))
with open(backup_path, mode="w", encoding="UTF-8") as f: 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): 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")) backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml"))
with open(backup_path, mode="w", encoding="UTF-8") as f: 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): 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( e = self.assertRaises(
DCManagerClientException, DCManagerClientException,
@ -155,9 +151,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
@mock.patch("getpass.getpass", return_value="testpassword") @mock.patch("getpass.getpass", return_value="testpassword")
def test_backup_create_prompt_ask_for_password(self, _mock_getpass): def test_backup_create_prompt_ask_for_password(self, _mock_getpass):
self.client.subcloud_backup_manager.backup_subcloud_create.return_value = [ self.client.backup_subcloud_create.return_value = [base.SUBCLOUD_RESOURCE]
base.SUBCLOUD_RESOURCE
]
backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml")) backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml"))
with open(backup_path, mode="w", encoding="UTF-8") as f: 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): 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( e = self.assertRaises(
DCManagerClientException, DCManagerClientException,
@ -223,7 +217,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
) )
def test_backup_delete_group_subcloud(self): 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( e = self.assertRaises(
DCManagerClientException, DCManagerClientException,
@ -274,8 +268,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
self.call(subcloud_backup_cmd.DeleteSubcloudBackup, app_args=app_args) self.call(subcloud_backup_cmd.DeleteSubcloudBackup, app_args=app_args)
subcloud_delete = self.client.subcloud_backup_manager.backup_subcloud_delete self.client.backup_subcloud_delete.assert_called_once_with(
subcloud_delete.assert_called_once_with(
data=payload, release_version=release_version, subcloud_ref=None 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) self.call(subcloud_backup_cmd.DeleteSubcloudBackup, app_args=app_args)
subcloud_delete = self.client.subcloud_backup_manager.backup_subcloud_delete self.client.backup_subcloud_delete.assert_called_once_with(
subcloud_delete.assert_called_once_with(
data=payload, release_version=release_version, subcloud_ref=subcloud_name 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) self.call(subcloud_backup_cmd.DeleteSubcloudBackup, app_args=app_args)
subcloud_delete = self.client.subcloud_backup_manager.backup_subcloud_delete self.client.backup_subcloud_delete.assert_called_once_with(
subcloud_delete.assert_called_once_with(
data=payload, release_version=release_version, subcloud_ref=None 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) self.call(subcloud_backup_cmd.DeleteSubcloudBackup, app_args=app_args)
subcloud_delete = self.client.subcloud_backup_manager.backup_subcloud_delete self.client.backup_subcloud_delete.assert_called_once_with(
subcloud_delete.assert_called_once_with(
data=payload, release_version=release_version, subcloud_ref=None data=payload, release_version=release_version, subcloud_ref=None
) )
@ -384,9 +374,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
def test_backup_restore(self): def test_backup_restore(self):
self.client.subcloud_backup_manager.backup_subcloud_restore.return_value = [ self.client.backup_subcloud_restore.return_value = [base.SUBCLOUD_RESOURCE]
base.SUBCLOUD_RESOURCE
]
backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml")) backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml"))
with open(backup_path, mode="w", encoding="UTF-8") as f: 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): def test_backup_restore_no_restore_values(self):
self.client.subcloud_backup_manager.backup_subcloud_restore.return_value = [ self.client.backup_subcloud_restore.return_value = [base.SUBCLOUD_RESOURCE]
base.SUBCLOUD_RESOURCE
]
actual_call = self.call( actual_call = self.call(
subcloud_backup_cmd.RestoreSubcloudBackup, subcloud_backup_cmd.RestoreSubcloudBackup,
@ -429,9 +415,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
def test_backup_restore_with_group(self): def test_backup_restore_with_group(self):
self.client.subcloud_backup_manager.backup_subcloud_restore.return_value = [ self.client.backup_subcloud_restore.return_value = [base.SUBCLOUD_RESOURCE]
base.SUBCLOUD_RESOURCE
]
backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml")) backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml"))
with open(backup_path, mode="w", encoding="UTF-8") as f: 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]) self.assertEqual([base.SUBCLOUD_FIELD_RESULT_LIST], actual_call[1])
def test_backup_restore_group_and_subcloud(self): 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")) 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): 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")) 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): 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( e = self.assertRaises(
DCManagerClientException, DCManagerClientException,
@ -532,9 +516,7 @@ class TestCLISubcloudBackUpManagerV1(base.BaseCommandTest):
@mock.patch("getpass.getpass", return_value="testpassword") @mock.patch("getpass.getpass", return_value="testpassword")
def test_backup_restore_prompt_ask_for_password(self, _mock_getpass): def test_backup_restore_prompt_ask_for_password(self, _mock_getpass):
self.client.subcloud_backup_manager.backup_subcloud_restore.return_value = [ self.client.backup_subcloud_restore.return_value = [base.SUBCLOUD_RESOURCE]
base.SUBCLOUD_RESOURCE
]
backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml")) 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): def test_backup_restore_with_install_no_release(self):
self.client.subcloud_backup_manager.backup_subcloud_restore.return_value = [ self.client.backup_subcloud_restore.return_value = [base.SUBCLOUD_RESOURCE]
base.SUBCLOUD_RESOURCE
]
backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml")) backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml"))
with open(backup_path, mode="w", encoding="UTF-8") as f: 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]) self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST, actual_call[1])
def test_backup_restore_with_install_with_release(self): def test_backup_restore_with_install_with_release(self):
self.client.subcloud_backup_manager.backup_subcloud_restore.return_value = [ self.client.backup_subcloud_restore.return_value = [base.SUBCLOUD_RESOURCE]
base.SUBCLOUD_RESOURCE
]
backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml")) backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml"))
with open(backup_path, mode="w", encoding="UTF-8") as f: 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]) self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST, actual_call[1])
def test_backup_restore_no_install_with_release(self): def test_backup_restore_no_install_with_release(self):
self.client.subcloud_backup_manager.backup_subcloud_restore.return_value = [ self.client.backup_subcloud_restore.return_value = [base.SUBCLOUD_RESOURCE]
base.SUBCLOUD_RESOURCE
]
backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml")) backup_path = os.path.normpath(os.path.join(os.getcwd(), "test.yaml"))
with open(backup_path, mode="w", encoding="UTF-8") as f: with open(backup_path, mode="w", encoding="UTF-8") as f:

View File

@ -83,9 +83,7 @@ class TestCLISubcloudDeployManagerV1(base.BaseCommandTest):
self.client = self.app.client_manager.subcloud_deploy_manager self.client = self.app.client_manager.subcloud_deploy_manager
def test_subcloud_deploy_show(self): def test_subcloud_deploy_show(self):
self.client.subcloud_deploy_manager.subcloud_deploy_show.return_value = [ self.client.subcloud_deploy_show.return_value = [SUBCLOUD_DEPLOY_ALL]
SUBCLOUD_DEPLOY_ALL
]
# Without "--release" parameter # Without "--release" parameter
actual_call1 = self.call(subcloud_deploy_manager.SubcloudDeployShow) actual_call1 = self.call(subcloud_deploy_manager.SubcloudDeployShow)
@ -119,14 +117,14 @@ class TestCLISubcloudDeployManagerV1(base.BaseCommandTest):
) )
def test_subcloud_deploy_upload_all(self): def test_subcloud_deploy_upload_all(self):
self.client.subcloud_deploy_manager.subcloud_deploy_upload.return_value = [ self.client.subcloud_deploy_upload.return_value = [SUBCLOUD_DEPLOY_ALL]
SUBCLOUD_DEPLOY_ALL
]
with tempfile.NamedTemporaryFile() as f1, \ f1 = tempfile.NamedTemporaryFile()
tempfile.NamedTemporaryFile() as f2, \ f2 = tempfile.NamedTemporaryFile()
tempfile.NamedTemporaryFile() as f3, \ f3 = tempfile.NamedTemporaryFile()
tempfile.NamedTemporaryFile() as f4: f4 = tempfile.NamedTemporaryFile()
with f1, f2, f3, f4:
file_path_1 = os.path.abspath(f1.name) file_path_1 = os.path.abspath(f1.name)
file_path_2 = os.path.abspath(f2.name) file_path_2 = os.path.abspath(f2.name)
file_path_3 = os.path.abspath(f3.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): 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 SUBCLOUD_DEPLOY_NO_PRESTAGE
] ]
with tempfile.NamedTemporaryFile() as f1, \ f1 = tempfile.NamedTemporaryFile()
tempfile.NamedTemporaryFile() as f2, \ f2 = tempfile.NamedTemporaryFile()
tempfile.NamedTemporaryFile() as f3: f3 = tempfile.NamedTemporaryFile()
with f1, f2, f3:
file_path_1 = os.path.abspath(f1.name) file_path_1 = os.path.abspath(f1.name)
file_path_2 = os.path.abspath(f2.name) file_path_2 = os.path.abspath(f2.name)
file_path_3 = os.path.abspath(f3.name) file_path_3 = os.path.abspath(f3.name)
@ -191,9 +191,7 @@ class TestCLISubcloudDeployManagerV1(base.BaseCommandTest):
) )
def test_subcloud_deploy_upload_prestage(self): def test_subcloud_deploy_upload_prestage(self):
self.client.subcloud_deploy_manager.subcloud_deploy_upload.return_value = [ self.client.subcloud_deploy_upload.return_value = [SUBCLOUD_DEPLOY_PRESTAGE]
SUBCLOUD_DEPLOY_PRESTAGE
]
with tempfile.NamedTemporaryFile() as f1: with tempfile.NamedTemporaryFile() as f1:
file_path_1 = os.path.abspath(f1.name) file_path_1 = os.path.abspath(f1.name)
@ -207,13 +205,15 @@ class TestCLISubcloudDeployManagerV1(base.BaseCommandTest):
) )
def test_subcloud_deploy_upload_no_playbook(self): 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 SUBCLOUD_DEPLOY_NO_PLAYBOOK
] ]
with tempfile.NamedTemporaryFile() as f1, \ f1 = tempfile.NamedTemporaryFile()
tempfile.NamedTemporaryFile() as f2, \ f2 = tempfile.NamedTemporaryFile()
tempfile.NamedTemporaryFile() as f3: f3 = tempfile.NamedTemporaryFile()
with f1, f2, f3:
file_path_1 = os.path.abspath(f1.name) file_path_1 = os.path.abspath(f1.name)
file_path_2 = os.path.abspath(f2.name) file_path_2 = os.path.abspath(f2.name)
file_path_3 = os.path.abspath(f3.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): 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 SUBCLOUD_DEPLOY_NO_PLAYBOOK_OVERRIDES
] ]
with tempfile.NamedTemporaryFile() as f1, \ f1 = tempfile.NamedTemporaryFile()
tempfile.NamedTemporaryFile() as f2: f2 = tempfile.NamedTemporaryFile()
with f1, f2:
file_path_1 = os.path.abspath(f1.name) file_path_1 = os.path.abspath(f1.name)
file_path_2 = os.path.abspath(f2.name) file_path_2 = os.path.abspath(f2.name)
actual_call = self.call( actual_call = self.call(
@ -257,20 +259,26 @@ class TestCLISubcloudDeployManagerV1(base.BaseCommandTest):
file_path_2, file_path_2,
], ],
) )
self.assertEqual(( self.assertEqual(
None, None, (
DEPLOY_CHART, None,
DEPLOY_PRESTAGE_IMAGES, None,
base.SOFTWARE_VERSION DEPLOY_CHART,
), actual_call[1],) DEPLOY_PRESTAGE_IMAGES,
base.SOFTWARE_VERSION,
),
actual_call[1],
)
def test_subcloud_deploy_upload_no_overrides_chart(self): 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 SUBCLOUD_DEPLOY_NO_OVERRIDES_CHART
] ]
with tempfile.NamedTemporaryFile() as f1, \ f1 = tempfile.NamedTemporaryFile()
tempfile.NamedTemporaryFile() as f2: f2 = tempfile.NamedTemporaryFile()
with f1, f2:
file_path_1 = os.path.abspath(f1.name) file_path_1 = os.path.abspath(f1.name)
file_path_2 = os.path.abspath(f2.name) file_path_2 = os.path.abspath(f2.name)
actual_call = self.call( actual_call = self.call(
@ -297,13 +305,16 @@ class TestCLISubcloudDeployManagerV1(base.BaseCommandTest):
@mock.patch("builtins.print") @mock.patch("builtins.print")
def test_subcloud_deploy_upload_invalid_path(self, mock_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 SUBCLOUD_DEPLOY_NO_PRESTAGE
] ]
mock_print.return_value = mock.ANY mock_print.return_value = mock.ANY
file_path_1 = "not_a_valid_path" 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_2 = os.path.abspath(f2.name)
file_path_3 = os.path.abspath(f3.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.call(subcloud_deploy_manager.SubcloudDeployDelete, app_args=app_args)
self.client.subcloud_deploy_manager.subcloud_deploy_delete.\ self.client.subcloud_deploy_delete.assert_called_once_with(
assert_called_once_with(release_version, data=data) release_version, data=data
)
def test_subcloud_deploy_delete_without_release(self): def test_subcloud_deploy_delete_without_release(self):
self.call(subcloud_deploy_manager.SubcloudDeployDelete) self.call(subcloud_deploy_manager.SubcloudDeployDelete)
data = {"prestage_images": "False", "deployment_files": "False"} data = {"prestage_images": "False", "deployment_files": "False"}
self.client.subcloud_deploy_manager.subcloud_deploy_delete.\ self.client.subcloud_deploy_delete.assert_called_once_with(None, data=data)
assert_called_once_with(None, data=data)

View File

@ -61,33 +61,30 @@ class TestCLISubcloudGroupManagerV1(base.BaseCommandTest):
self.client = self.app.client_manager.subcloud_group_manager self.client = self.app.client_manager.subcloud_group_manager
def test_list_subcloud_groups(self): def test_list_subcloud_groups(self):
self.client.subcloud_group_manager.list_subcloud_groups.return_value = [ self.client.list_subcloud_groups.return_value = [SUBCLOUD_GROUP]
SUBCLOUD_GROUP
]
actual_call = self.call(subcloud_group_cmd.ListSubcloudGroup) actual_call = self.call(subcloud_group_cmd.ListSubcloudGroup)
self.assertEqual([(ID, NAME, DESCRIPTION)], actual_call[1]) self.assertEqual([(ID, NAME, DESCRIPTION)], actual_call[1])
def test_list_subcloud_groups_empty(self): 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) actual_call = self.call(subcloud_group_cmd.ListSubcloudGroup)
self.assertEqual((("<none>", "<none>", "<none>"),), actual_call[1]) self.assertEqual((("<none>", "<none>", "<none>"),), actual_call[1])
def test_list_subcloud_group_subclouds(self): def test_list_subcloud_group_subclouds(self):
self.client.subcloud_group_manager.\ self.client.subcloud_group_list_subclouds.return_value = [
subcloud_group_list_subclouds.return_value = [base.SUBCLOUD_RESOURCE] base.SUBCLOUD_RESOURCE
]
actual_call = self.call( actual_call = self.call(
subcloud_group_cmd.ListSubcloudGroupSubclouds, app_args=[ID] subcloud_group_cmd.ListSubcloudGroupSubclouds, app_args=[ID]
) )
self.client.subcloud_group_manager.subcloud_group_list_subclouds.\ self.client.subcloud_group_list_subclouds.assert_called_once_with(ID)
assert_called_once_with(ID)
self.assertEqual( self.assertEqual(
[base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID], actual_call[1] [base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID], actual_call[1]
) )
def test_delete_subcloud_group_by_id(self): def test_delete_subcloud_group_by_id(self):
self.call(subcloud_group_cmd.DeleteSubcloudGroup, app_args=[ID]) self.call(subcloud_group_cmd.DeleteSubcloudGroup, app_args=[ID])
self.client.subcloud_group_manager.delete_subcloud_group.\ self.client.delete_subcloud_group.assert_called_once_with(ID)
assert_called_once_with(ID)
def test_delete_subcloud_group_without_id(self): def test_delete_subcloud_group_without_id(self):
self.assertRaises( self.assertRaises(
@ -98,9 +95,7 @@ class TestCLISubcloudGroupManagerV1(base.BaseCommandTest):
) )
def test_show_subcloud_group_with_id(self): def test_show_subcloud_group_with_id(self):
self.client.subcloud_group_manager.subcloud_group_detail.return_value = [ self.client.subcloud_group_detail.return_value = [SUBCLOUD_GROUP]
SUBCLOUD_GROUP
]
actual_call = self.call(subcloud_group_cmd.ShowSubcloudGroup, app_args=[ID]) actual_call = self.call(subcloud_group_cmd.ShowSubcloudGroup, app_args=[ID])
self.assertEqual( self.assertEqual(
( (
@ -116,7 +111,7 @@ class TestCLISubcloudGroupManagerV1(base.BaseCommandTest):
) )
def test_show_subcloud_group_without_id(self): 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]) actual_call = self.call(subcloud_group_cmd.ShowSubcloudGroup, app_args=[ID])
self.assertEqual( self.assertEqual(
( (
@ -134,9 +129,7 @@ class TestCLISubcloudGroupManagerV1(base.BaseCommandTest):
) )
def test_add_subcloud_group(self): def test_add_subcloud_group(self):
self.client.subcloud_group_manager.add_subcloud_group.return_value = [ self.client.add_subcloud_group.return_value = [SUBCLOUD_GROUP]
SUBCLOUD_GROUP
]
actual_call = self.call( actual_call = self.call(
subcloud_group_cmd.AddSubcloudGroup, subcloud_group_cmd.AddSubcloudGroup,
@ -158,9 +151,7 @@ class TestCLISubcloudGroupManagerV1(base.BaseCommandTest):
def test_update_subcloud_group(self): def test_update_subcloud_group(self):
updated_subloud = copy.copy(SUBCLOUD_GROUP) updated_subloud = copy.copy(SUBCLOUD_GROUP)
updated_subloud.description = NEW_DESCRIPTION updated_subloud.description = NEW_DESCRIPTION
self.client.subcloud_group_manager.update_subcloud_group.return_value = [ self.client.update_subcloud_group.return_value = [updated_subloud]
updated_subloud
]
actual_call = self.call( actual_call = self.call(
subcloud_group_cmd.UpdateSubcloudGroup, subcloud_group_cmd.UpdateSubcloudGroup,
app_args=[SUBCLOUD_GROUP.group_id, "--description", NEW_DESCRIPTION], app_args=[SUBCLOUD_GROUP.group_id, "--description", NEW_DESCRIPTION],

View File

@ -28,9 +28,13 @@ from dcmanagerclient.tests import base
class TestCLISubcloudManagerV1(base.BaseCommandTest): class TestCLISubcloudManagerV1(base.BaseCommandTest):
def setUp(self):
super().setUp()
self.subcloud_resource = copy.copy(base.SUBCLOUD_RESOURCE)
def test_list_subclouds(self): def test_list_subclouds(self):
self.client.subcloud_manager.list_subclouds.return_value = [ self.client.subcloud_manager.list_subclouds.return_value = [
base.SUBCLOUD_RESOURCE self.subcloud_resource
] ]
actual_call = self.call(subcloud_cmd.ListSubcloud) actual_call = self.call(subcloud_cmd.ListSubcloud)
self.assertEqual([base.SUBCLOUD_LIST_RESULT], actual_call[1]) self.assertEqual([base.SUBCLOUD_LIST_RESULT], actual_call[1])
@ -83,7 +87,7 @@ class TestCLISubcloudManagerV1(base.BaseCommandTest):
def test_show_subcloud_with_subcloud_id(self): def test_show_subcloud_with_subcloud_id(self):
self.client.subcloud_manager.subcloud_detail.return_value = [ self.client.subcloud_manager.subcloud_detail.return_value = [
base.SUBCLOUD_RESOURCE self.subcloud_resource
] ]
actual_call = self.call(subcloud_cmd.ShowSubcloud, app_args=[base.ID]) actual_call = self.call(subcloud_cmd.ShowSubcloud, app_args=[base.ID])
@ -93,7 +97,7 @@ class TestCLISubcloudManagerV1(base.BaseCommandTest):
) )
def test_show_subcloud_with_additional_detail(self): def test_show_subcloud_with_additional_detail(self):
subcloud_with_additional_detail = copy.copy(base.SUBCLOUD_RESOURCE) subcloud_with_additional_detail = self.subcloud_resource
subcloud_with_additional_detail.oam_floating_ip = ( subcloud_with_additional_detail.oam_floating_ip = (
base.EXTERNAL_OAM_FLOATING_ADDRESS base.EXTERNAL_OAM_FLOATING_ADDRESS
) )
@ -127,7 +131,7 @@ class TestCLISubcloudManagerV1(base.BaseCommandTest):
@mock.patch("getpass.getpass", return_value="testpassword") @mock.patch("getpass.getpass", return_value="testpassword")
def test_add_subcloud(self, _mock_getpass): def test_add_subcloud(self, _mock_getpass):
self.client.subcloud_manager.add_subcloud.return_value = [ self.client.subcloud_manager.add_subcloud.return_value = [
base.SUBCLOUD_RESOURCE self.subcloud_resource
] ]
with tempfile.NamedTemporaryFile(mode="w") as f: with tempfile.NamedTemporaryFile(mode="w") as f:
@ -165,7 +169,7 @@ class TestCLISubcloudManagerV1(base.BaseCommandTest):
@mock.patch("getpass.getpass", return_value="testpassword") @mock.patch("getpass.getpass", return_value="testpassword")
def test_add_migrate_subcloud(self, _mock_getpass): def test_add_migrate_subcloud(self, _mock_getpass):
self.client.subcloud_manager.add_subcloud.return_value = [ self.client.subcloud_manager.add_subcloud.return_value = [
base.SUBCLOUD_RESOURCE self.subcloud_resource
] ]
with tempfile.NamedTemporaryFile(mode="w") as f: with tempfile.NamedTemporaryFile(mode="w") as f:
@ -186,7 +190,7 @@ class TestCLISubcloudManagerV1(base.BaseCommandTest):
@mock.patch("getpass.getpass", return_value="testpassword") @mock.patch("getpass.getpass", return_value="testpassword")
def test_add_migrate_subcloud_with_deploy_config(self, _mock_getpass): def test_add_migrate_subcloud_with_deploy_config(self, _mock_getpass):
self.client.subcloud_manager.add_subcloud.return_value = [ self.client.subcloud_manager.add_subcloud.return_value = [
base.SUBCLOUD_RESOURCE self.subcloud_resource
] ]
with tempfile.NamedTemporaryFile(mode="w") as f_bootstrap: with tempfile.NamedTemporaryFile(mode="w") as f_bootstrap:
@ -264,10 +268,10 @@ class TestCLISubcloudManagerV1(base.BaseCommandTest):
self.assertEqual(tuple(results_by_name), actual_call2[1]) self.assertEqual(tuple(results_by_name), actual_call2[1])
def test_update_fields_values(self): def test_update_fields_values(self):
subcloud_with_region_detail = copy.copy(base.SUBCLOUD_RESOURCE) subcloud_with_region_detail = copy.copy(self.subcloud_resource)
subcloud_with_region_detail.region_name = base.REGION_NAME subcloud_with_region_detail.region_name = base.REGION_NAME
subcloud_with_region_none = copy.copy(base.SUBCLOUD_RESOURCE) subcloud_with_region_none = copy.copy(self.subcloud_resource)
subcloud_with_region_none.region_name = None subcloud_with_region_none.region_name = None
subcloud_cmd.update_fields_values([subcloud_with_region_detail]) subcloud_cmd.update_fields_values([subcloud_with_region_detail])
@ -279,14 +283,14 @@ class TestCLISubcloudManagerV1(base.BaseCommandTest):
def test_unmanage_subcloud(self): def test_unmanage_subcloud(self):
self.client.subcloud_manager.update_subcloud.return_value = [ self.client.subcloud_manager.update_subcloud.return_value = [
base.SUBCLOUD_RESOURCE self.subcloud_resource
] ]
actual_call = self.call(subcloud_cmd.UnmanageSubcloud, app_args=[base.ID]) actual_call = self.call(subcloud_cmd.UnmanageSubcloud, app_args=[base.ID])
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_unmanage_subcloud_with_migrate(self): def test_unmanage_subcloud_with_migrate(self):
self.client.subcloud_manager.update_subcloud.return_value = [ self.client.subcloud_manager.update_subcloud.return_value = [
base.SUBCLOUD_RESOURCE self.subcloud_resource
] ]
actual_call = self.call( actual_call = self.call(
subcloud_cmd.UnmanageSubcloud, app_args=[base.ID, "--migrate"] subcloud_cmd.UnmanageSubcloud, app_args=[base.ID, "--migrate"]
@ -300,7 +304,7 @@ class TestCLISubcloudManagerV1(base.BaseCommandTest):
def test_manage_subcloud(self): def test_manage_subcloud(self):
self.client.subcloud_manager.update_subcloud.return_value = [ self.client.subcloud_manager.update_subcloud.return_value = [
base.SUBCLOUD_RESOURCE self.subcloud_resource
] ]
actual_call = self.call(subcloud_cmd.ManageSubcloud, app_args=[base.ID]) actual_call = self.call(subcloud_cmd.ManageSubcloud, app_args=[base.ID])
self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, actual_call[1]) self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, actual_call[1])
@ -312,7 +316,7 @@ class TestCLISubcloudManagerV1(base.BaseCommandTest):
def test_update_subcloud(self): def test_update_subcloud(self):
self.client.subcloud_manager.update_subcloud.return_value = [ self.client.subcloud_manager.update_subcloud.return_value = [
base.SUBCLOUD_RESOURCE self.subcloud_resource
] ]
with tempfile.NamedTemporaryFile(mode="w") as f_bootstrap: with tempfile.NamedTemporaryFile(mode="w") as f_bootstrap:
bootstrap_file_path = os.path.abspath(f_bootstrap.name) bootstrap_file_path = os.path.abspath(f_bootstrap.name)
@ -348,7 +352,7 @@ class TestCLISubcloudManagerV1(base.BaseCommandTest):
@mock.patch("six.moves.input", return_value="redeploy") @mock.patch("six.moves.input", return_value="redeploy")
def test_redeploy_subcloud(self, _mock_input, _mock_getpass): def test_redeploy_subcloud(self, _mock_input, _mock_getpass):
self.client.subcloud_manager.redeploy_subcloud.return_value = [ self.client.subcloud_manager.redeploy_subcloud.return_value = [
base.SUBCLOUD_RESOURCE self.subcloud_resource
] ]
with tempfile.NamedTemporaryFile( with tempfile.NamedTemporaryFile(
@ -383,7 +387,7 @@ class TestCLISubcloudManagerV1(base.BaseCommandTest):
@mock.patch("six.moves.input", return_value="redeploy") @mock.patch("six.moves.input", return_value="redeploy")
def test_redeploy_subcloud_no_parameters(self, _mock_input, _mock_getpass): def test_redeploy_subcloud_no_parameters(self, _mock_input, _mock_getpass):
self.client.subcloud_manager.redeploy_subcloud.return_value = [ self.client.subcloud_manager.redeploy_subcloud.return_value = [
base.SUBCLOUD_RESOURCE self.subcloud_resource
] ]
actual_call = self.call(subcloud_cmd.RedeploySubcloud, app_args=[base.ID]) actual_call = self.call(subcloud_cmd.RedeploySubcloud, app_args=[base.ID])
self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, actual_call[1]) self.assertEqual(base.SUBCLOUD_FIELD_RESULT_LIST_WITH_PEERID, actual_call[1])
@ -394,7 +398,7 @@ class TestCLISubcloudManagerV1(base.BaseCommandTest):
self, _mock_input, _mock_getpass self, _mock_input, _mock_getpass
): ):
self.client.subcloud_manager.redeploy_subcloud.return_value = [ self.client.subcloud_manager.redeploy_subcloud.return_value = [
base.SUBCLOUD_RESOURCE self.subcloud_resource
] ]
with tempfile.NamedTemporaryFile( with tempfile.NamedTemporaryFile(
mode="w" mode="w"
@ -445,7 +449,7 @@ class TestCLISubcloudManagerV1(base.BaseCommandTest):
def test_prestage_with_subcloud_id(self): def test_prestage_with_subcloud_id(self):
self.client.subcloud_manager.prestage_subcloud.return_value = [ self.client.subcloud_manager.prestage_subcloud.return_value = [
base.SUBCLOUD_RESOURCE self.subcloud_resource
] ]
actual_call_without_release = self.call( actual_call_without_release = self.call(
subcloud_cmd.PrestageSubcloud, subcloud_cmd.PrestageSubcloud,
@ -462,7 +466,7 @@ class TestCLISubcloudManagerV1(base.BaseCommandTest):
) )
def test_prestage_with_release(self): def test_prestage_with_release(self):
subcloud_with_additional_detail = copy.copy(base.SUBCLOUD_RESOURCE) subcloud_with_additional_detail = self.subcloud_resource
subcloud_with_additional_detail.prestage_software_version = ( subcloud_with_additional_detail.prestage_software_version = (
base.SOFTWARE_VERSION base.SOFTWARE_VERSION
) )

View File

@ -58,22 +58,21 @@ class TestCLISubcloudPeerGroupManager(base.BaseCommandTest):
self.client = self.app.client_manager.subcloud_peer_group_manager self.client = self.app.client_manager.subcloud_peer_group_manager
def test_list_subcloud_peer_groups(self): def test_list_subcloud_peer_groups(self):
self.client.subcloud_peer_group_manager.\ self.client.list_subcloud_peer_groups.return_value = [SubcloudPeerGroup]
list_subcloud_peer_groups.return_value = [SubcloudPeerGroup]
actual_call = self.call(subcloud_peer_group_cmd.ListSubcloudPeerGroup) actual_call = self.call(subcloud_peer_group_cmd.ListSubcloudPeerGroup)
self.assertEqual([PG_TUPLE_WITH_DATE], actual_call[1]) self.assertEqual([PG_TUPLE_WITH_DATE], actual_call[1])
def test_show_subcloud_peer_group(self): def test_show_subcloud_peer_group(self):
self.client.subcloud_peer_group_manager.\ self.client.subcloud_peer_group_detail.return_value = [SubcloudPeerGroup]
subcloud_peer_group_detail.return_value = [SubcloudPeerGroup]
actual_call = self.call( actual_call = self.call(
subcloud_peer_group_cmd.ShowSubcloudPeerGroup, app_args=[PG_ID] subcloud_peer_group_cmd.ShowSubcloudPeerGroup, app_args=[PG_ID]
) )
self.assertEqual(PG_TUPLE_WITH_DATE, actual_call[1]) self.assertEqual(PG_TUPLE_WITH_DATE, actual_call[1])
def test_list_subcloud_peer_group_subclouds(self): def test_list_subcloud_peer_group_subclouds(self):
self.client.subcloud_peer_group_manager.subcloud_peer_group_list_subclouds.\ self.client.subcloud_peer_group_list_subclouds.return_value = [
return_value = [base.SUBCLOUD_RESOURCE_WITH_PEERID] base.SUBCLOUD_RESOURCE_WITH_PEERID
]
actual_call = self.call( actual_call = self.call(
subcloud_peer_group_cmd.ListSubcloudPeerGroupSubclouds, subcloud_peer_group_cmd.ListSubcloudPeerGroupSubclouds,
app_args=[base.ID], app_args=[base.ID],
@ -83,8 +82,7 @@ class TestCLISubcloudPeerGroupManager(base.BaseCommandTest):
) )
def test_add_subcloud_peer_group(self): def test_add_subcloud_peer_group(self):
self.client.subcloud_peer_group_manager.add_subcloud_peer_group.\ self.client.add_subcloud_peer_group.return_value = [SubcloudPeerGroup]
return_value = [SubcloudPeerGroup]
actual_call1 = self.call( actual_call1 = self.call(
subcloud_peer_group_cmd.AddSubcloudPeerGroup, subcloud_peer_group_cmd.AddSubcloudPeerGroup,
app_args=["--peer-group-name", PG_NAME], app_args=["--peer-group-name", PG_NAME],
@ -106,12 +104,10 @@ class TestCLISubcloudPeerGroupManager(base.BaseCommandTest):
def test_delete_subcloud_peer_group(self): def test_delete_subcloud_peer_group(self):
self.call(subcloud_peer_group_cmd.DeleteSubcloudPeerGroup, app_args=[PG_ID]) self.call(subcloud_peer_group_cmd.DeleteSubcloudPeerGroup, app_args=[PG_ID])
self.client.subcloud_peer_group_manager.delete_subcloud_peer_group.\ self.client.delete_subcloud_peer_group.assert_called_once_with(PG_ID)
assert_called_once_with(PG_ID)
def test_update_subcloud_peer_group(self): def test_update_subcloud_peer_group(self):
self.client.subcloud_peer_group_manager.update_subcloud_peer_group.\ self.client.update_subcloud_peer_group.return_value = [SubcloudPeerGroup]
return_value = [SubcloudPeerGroup]
actual_call = self.call( actual_call = self.call(
subcloud_peer_group_cmd.UpdateSubcloudPeerGroup, subcloud_peer_group_cmd.UpdateSubcloudPeerGroup,
app_args=[ app_args=[

View File

@ -18,9 +18,7 @@ class TestSwDeployStrategy(UpdateStrategyMixin, base.BaseCommandTest):
# Increase results_length due to the 'upload only' field # Increase results_length due to the 'upload only' field
self.results_length += 1 self.results_length += 1
self.sw_update_manager = ( self.sw_update_manager = self.app.client_manager.sw_deploy_manager
self.app.client_manager.sw_deploy_manager.sw_deploy_manager
)
self.create_command = cli_cmd.CreateSwDeployStrategy self.create_command = cli_cmd.CreateSwDeployStrategy
self.show_command = cli_cmd.ShowSwDeployStrategy self.show_command = cli_cmd.ShowSwDeployStrategy
self.delete_command = cli_cmd.DeleteSwDeployStrategy self.delete_command = cli_cmd.DeleteSwDeployStrategy

View File

@ -20,9 +20,7 @@ class TestSwPrestageStrategy(UpdateStrategyMixin, base.BaseCommandTest):
def setUp(self): def setUp(self):
super().setUp() super().setUp()
self.sw_update_manager = ( self.sw_update_manager = self.app.client_manager.sw_prestage_manager
self.app.client_manager.sw_prestage_manager.sw_prestage_manager
)
p = mock.patch.object(getpass, "getpass") p = mock.patch.object(getpass, "getpass")
self.mock_prompt = p.start() self.mock_prompt = p.start()

View File

@ -39,7 +39,7 @@ class TestCLISWUpdateManagerV1(base.BaseCommandTest):
def test_show_sw_update_strategy_step(self): def test_show_sw_update_strategy_step(self):
results = [] results = []
results.append(STRATEGY_STEP) 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( actual_call = self.call(
sw_update_cmd.ShowSwUpdateStrategyStep, app_args=[FAKE_CLOUD] sw_update_cmd.ShowSwUpdateStrategyStep, app_args=[FAKE_CLOUD]
) )

View File

@ -54,9 +54,7 @@ class TestCLISWUpdateOptionsManagerV1(base.BaseCommandTest):
self.client = self.app.client_manager.sw_update_options_manager self.client = self.app.client_manager.sw_update_options_manager
def test_list_sw_update_options(self): def test_list_sw_update_options(self):
self.client.sw_update_options_manager.sw_update_options_list.return_value = [ self.client.sw_update_options_list.return_value = [SW_UPDATE_OPTION]
SW_UPDATE_OPTION
]
actual_call = self.call(sw_update_options_cmd.ListSwUpdateOptions) actual_call = self.call(sw_update_options_cmd.ListSwUpdateOptions)
self.assertEqual( self.assertEqual(
[ [
@ -73,9 +71,7 @@ class TestCLISWUpdateOptionsManagerV1(base.BaseCommandTest):
) )
def test_list_sw_update_options_empty(self): 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) actual_call = self.call(sw_update_options_cmd.ListSwUpdateOptions)
self.assertEqual( self.assertEqual(
(("<none>", "<none>", "<none>", "<none>", "<none>", "<none>"),), (("<none>", "<none>", "<none>", "<none>", "<none>", "<none>"),),
@ -83,8 +79,7 @@ class TestCLISWUpdateOptionsManagerV1(base.BaseCommandTest):
) )
def test_show_sw_update_options_default(self): def test_show_sw_update_options_default(self):
self.client.sw_update_options_manager.sw_update_options_detail.\ self.client.sw_update_options_detail.return_value = [SW_UPDATE_OPTION]
return_value = [SW_UPDATE_OPTION]
actual_call = self.call(sw_update_options_cmd.ShowSwUpdateOptions) actual_call = self.call(sw_update_options_cmd.ShowSwUpdateOptions)
self.assertEqual( self.assertEqual(
( (
@ -101,8 +96,7 @@ class TestCLISWUpdateOptionsManagerV1(base.BaseCommandTest):
) )
def test_show_sw_update_options_by_ref(self): def test_show_sw_update_options_by_ref(self):
self.client.sw_update_options_manager.sw_update_options_detail.\ self.client.sw_update_options_detail.return_value = [SW_UPDATE_OPTION]
return_value = [SW_UPDATE_OPTION]
actual_call = self.call( actual_call = self.call(
sw_update_options_cmd.ShowSwUpdateOptions, app_args=[FAKE_CLOUD] sw_update_options_cmd.ShowSwUpdateOptions, app_args=[FAKE_CLOUD]
) )
@ -121,8 +115,9 @@ class TestCLISWUpdateOptionsManagerV1(base.BaseCommandTest):
) )
def test_update_sw_update_options(self): def test_update_sw_update_options(self):
self.client.sw_update_options_manager.sw_update_options_update.\ self.client.sw_update_options_update.return_value = [
return_value = [UPDATED_SW_UPDATE_OPTION] UPDATED_SW_UPDATE_OPTION
]
actual_call = self.call( actual_call = self.call(
sw_update_options_cmd.UpdateSwUpdateOptions, sw_update_options_cmd.UpdateSwUpdateOptions,
app_args=[ app_args=[
@ -149,8 +144,7 @@ class TestCLISWUpdateOptionsManagerV1(base.BaseCommandTest):
def test_delete_sw_update_options_by_ref(self): def test_delete_sw_update_options_by_ref(self):
self.call(sw_update_options_cmd.DeleteSwUpdateOptions, app_args=[FAKE_CLOUD]) self.call(sw_update_options_cmd.DeleteSwUpdateOptions, app_args=[FAKE_CLOUD])
self.client.sw_update_options_manager.sw_update_options_delete.\ self.client.sw_update_options_delete.assert_called_once_with(FAKE_CLOUD)
assert_called_once_with(FAKE_CLOUD)
def test_delete_sw_update_options_without_ref(self): def test_delete_sw_update_options_without_ref(self):
self.assertRaises( self.assertRaises(

View File

@ -13,9 +13,7 @@ class TestSwUpgradeStrategy(UpdateStrategyMixin, base.BaseCommandTest):
def setUp(self): def setUp(self):
super().setUp() super().setUp()
self.sw_update_manager = ( self.sw_update_manager = self.app.client_manager.sw_upgrade_manager
self.app.client_manager.sw_upgrade_manager.sw_upgrade_manager
)
self.create_command = cli_cmd.CreateSwUpgradeStrategy self.create_command = cli_cmd.CreateSwUpgradeStrategy
self.show_command = cli_cmd.ShowSwUpgradeStrategy self.show_command = cli_cmd.ShowSwUpgradeStrategy
self.delete_command = cli_cmd.DeleteSwUpgradeStrategy self.delete_command = cli_cmd.DeleteSwUpgradeStrategy

View File

@ -112,9 +112,7 @@ class TestCLISystemPeerManagerV1(base.BaseCommandTest):
self.client = self.app.client_manager.system_peer_manager self.client = self.app.client_manager.system_peer_manager
def test_list_system_peers(self): def test_list_system_peers(self):
self.client.system_peer_manager.list_system_peers.return_value = [ self.client.list_system_peers.return_value = [SYSTEM_PEER]
SYSTEM_PEER
]
actual_call = self.call(system_peer_cmd.ListSystemPeer) actual_call = self.call(system_peer_cmd.ListSystemPeer)
self.assertEqual( self.assertEqual(
[ [
@ -130,15 +128,13 @@ class TestCLISystemPeerManagerV1(base.BaseCommandTest):
) )
def test_list_system_peers_empty(self): 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) actual_call = self.call(system_peer_cmd.ListSystemPeer)
self.assertEqual((tuple("<none>" for _ in range(5)),), actual_call[1]) self.assertEqual((tuple("<none>" for _ in range(5)),), actual_call[1])
def test_delete_system_peer_by_id(self): def test_delete_system_peer_by_id(self):
self.call(system_peer_cmd.DeleteSystemPeer, app_args=[ID]) self.call(system_peer_cmd.DeleteSystemPeer, app_args=[ID])
self.client.system_peer_manager.delete_system_peer.assert_called_once_with( self.client.delete_system_peer.assert_called_once_with(ID)
ID
)
def test_delete_system_peer_without_id(self): def test_delete_system_peer_without_id(self):
self.assertRaises( self.assertRaises(
@ -146,9 +142,7 @@ class TestCLISystemPeerManagerV1(base.BaseCommandTest):
) )
def test_show_system_peer_with_id(self): def test_show_system_peer_with_id(self):
self.client.system_peer_manager.system_peer_detail.return_value = [ self.client.system_peer_detail.return_value = [SYSTEM_PEER]
SYSTEM_PEER
]
actual_call = self.call(system_peer_cmd.ShowSystemPeer, app_args=[ID]) actual_call = self.call(system_peer_cmd.ShowSystemPeer, app_args=[ID])
self.assertEqual( self.assertEqual(
( (
@ -171,21 +165,19 @@ class TestCLISystemPeerManagerV1(base.BaseCommandTest):
) )
def test_show_system_peer_without_id(self): 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]) actual_call = self.call(system_peer_cmd.ShowSystemPeer, app_args=[ID])
self.assertEqual((tuple("<none>" for _ in range(14)),), actual_call[1]) self.assertEqual((tuple("<none>" for _ in range(14)),), actual_call[1])
def test_list_system_peer_subcloud_peer_groups(self): def test_list_system_peer_subcloud_peer_groups(self):
self.client.system_peer_manager.system_peer_list_peer_groups.return_value = [ self.client.system_peer_list_peer_groups.return_value = [PEER_GROUP]
PEER_GROUP
]
actual_call = self.call( actual_call = self.call(
system_peer_cmd.ListSystemPeerSubcloudPeerGroups, app_args=[ID] system_peer_cmd.ListSystemPeerSubcloudPeerGroups, app_args=[ID]
) )
self.assertEqual([PG_TUPLE], actual_call[1]) self.assertEqual([PG_TUPLE], actual_call[1])
def test_add_system_peer(self): 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( actual_call = self.call(
system_peer_cmd.AddSystemPeer, system_peer_cmd.AddSystemPeer,
@ -235,13 +227,11 @@ class TestCLISystemPeerManagerV1(base.BaseCommandTest):
) )
def test_update_system_peer(self): def test_update_system_peer(self):
UPDATED_SYSTEM_PEER = copy.copy(SYSTEM_PEER) updated_system_peer = copy.copy(SYSTEM_PEER)
UPDATED_SYSTEM_PEER.peer_controller_gateway_ip = ( updated_system_peer.peer_controller_gateway_ip = (
NEW_PEER_CONTROLLER_GATEWAY_IP NEW_PEER_CONTROLLER_GATEWAY_IP
) )
self.client.system_peer_manager.update_system_peer.return_value = [ self.client.update_system_peer.return_value = [updated_system_peer]
UPDATED_SYSTEM_PEER
]
actual_call = self.call( actual_call = self.call(
system_peer_cmd.UpdateSystemPeer, system_peer_cmd.UpdateSystemPeer,
app_args=[ app_args=[

View File

@ -34,9 +34,9 @@ def do_action_on_many(action, resources, success_msg, error_msg):
try: try:
action(resource) action(resource)
print(success_msg % resource) print(success_msg % resource)
except Exception as e: except Exception as exc:
failure_flag = True failure_flag = True
print(e) print(exc)
if failure_flag: if failure_flag:
raise exceptions.DCManagerClientException(error_msg) 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) path = os.path.abspath(contents_or_file_name)
definition_url = parse.urljoin("file:", request.pathname2url(path)) definition_url = parse.urljoin("file:", request.pathname2url(path))
return request.urlopen(definition_url).read().decode("utf8") return request.urlopen(definition_url).read().decode("utf8")
except Exception as e: except Exception as exc:
raise exceptions.DCManagerClientException( 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") print("Passwords did not match")
continue continue
break break
except KeyboardInterrupt as e: except KeyboardInterrupt as exc:
raise exceptions.DCManagerClientException( raise exceptions.DCManagerClientException(
"\nPassword prompt interrupted." "\nPassword prompt interrupted."
) from e ) from exc
return password return password