def test_rgw_pod_existence(self): if (config.ENV_DATA["platform"].lower() in constants.CLOUD_PLATFORMS or storagecluster_independent_check()): if (not config.ENV_DATA["platform"] == constants.AZURE_PLATFORM and not config.ENV_DATA["platform"] == constants.IBMCLOUD_PLATFORM and (version.get_semantic_ocs_version_from_config() > version.VERSION_4_5)): logger.info("Checking whether RGW pod is not present") assert ( not pod.get_rgw_pods() ), "RGW pods should not exist in the current platform/cluster" elif (config.ENV_DATA.get("platform") in constants.ON_PREM_PLATFORMS and not config.ENV_DATA["mcg_only_deployment"]): rgw_count = get_rgw_count(config.ENV_DATA["ocs_version"], check_if_cluster_was_upgraded(), None) logger.info( f'Checking for RGW pod/s on {config.ENV_DATA.get("platform")} platform' ) rgw_pod = OCP(kind=constants.POD, namespace=config.ENV_DATA["cluster_namespace"]) assert rgw_pod.wait_for_resource( condition=constants.STATUS_RUNNING, selector=constants.RGW_APP_LABEL, resource_count=rgw_count, timeout=60, )
def __init__(self, *args, **kwargs): """ Constructor for the MCG class """ self.namespace = config.ENV_DATA["cluster_namespace"] self.operator_pod = Pod(**get_pods_having_label( constants.NOOBAA_OPERATOR_POD_LABEL, self.namespace)[0]) self.core_pod = Pod(**get_pods_having_label( constants.NOOBAA_CORE_POD_LABEL, self.namespace)[0]) self.retrieve_noobaa_cli_binary() """ The certificate will be copied on each mcg_obj instantiation since the process is so light and quick, that the time required for the redundant copy is neglible in comparison to the time a hash comparison will take. """ retrieve_default_ingress_crt() get_noobaa = OCP(kind="noobaa", namespace=self.namespace).get() self.s3_endpoint = (get_noobaa.get("items")[0].get("status").get( "services").get("serviceS3").get("externalDNS")[0]) self.s3_internal_endpoint = (get_noobaa.get("items")[0].get( "status").get("services").get("serviceS3").get("internalDNS")[0]) self.mgmt_endpoint = (get_noobaa.get("items")[0].get("status").get( "services").get("serviceMgmt").get("externalDNS")[0]) + "/rpc" self.region = config.ENV_DATA["region"] creds_secret_name = (get_noobaa.get("items")[0].get("status").get( "accounts").get("admin").get("secretRef").get("name")) secret_ocp_obj = OCP(kind="secret", namespace=self.namespace) creds_secret_obj = secret_ocp_obj.get(creds_secret_name) self.access_key_id = base64.b64decode( creds_secret_obj.get("data").get("AWS_ACCESS_KEY_ID")).decode( "utf-8") self.access_key = base64.b64decode( creds_secret_obj.get("data").get("AWS_SECRET_ACCESS_KEY")).decode( "utf-8") self.noobaa_user = base64.b64decode( creds_secret_obj.get("data").get("email")).decode("utf-8") self.noobaa_password = base64.b64decode( creds_secret_obj.get("data").get("password")).decode("utf-8") self.noobaa_token = self.retrieve_nb_token() self.s3_resource = boto3.resource( "s3", verify=retrieve_verification_mode(), endpoint_url=self.s3_endpoint, aws_access_key_id=self.access_key_id, aws_secret_access_key=self.access_key, ) self.s3_client = self.s3_resource.meta.client if config.ENV_DATA["platform"].lower() == "aws" and kwargs.get( "create_aws_creds"): ( self.cred_req_obj, self.aws_access_key_id, self.aws_access_key, ) = self.request_aws_credentials() self.aws_s3_resource = boto3.resource( "s3", endpoint_url="https://s3.amazonaws.com", aws_access_key_id=self.aws_access_key_id, aws_secret_access_key=self.aws_access_key, ) if (config.ENV_DATA["platform"].lower() in constants.CLOUD_PLATFORMS or storagecluster_independent_check()): if not config.ENV_DATA["platform"] == constants.AZURE_PLATFORM and ( float(config.ENV_DATA["ocs_version"]) > 4.5): logger.info("Checking whether RGW pod is not present") pods = pod.get_pods_having_label(label=constants.RGW_APP_LABEL, namespace=self.namespace) assert ( not pods ), "RGW pods should not exist in the current platform/cluster" elif config.ENV_DATA.get("platform") in constants.ON_PREM_PLATFORMS: rgw_count = get_rgw_count(config.ENV_DATA["ocs_version"], check_if_cluster_was_upgraded(), None) logger.info( f'Checking for RGW pod/s on {config.ENV_DATA.get("platform")} platform' ) rgw_pod = OCP(kind=constants.POD, namespace=self.namespace) assert rgw_pod.wait_for_resource( condition=constants.STATUS_RUNNING, selector=constants.RGW_APP_LABEL, resource_count=rgw_count, timeout=60, )
def __init__(self, *args, **kwargs): """ Constructor for the MCG class """ self.namespace = config.ENV_DATA['cluster_namespace'] self.operator_pod = Pod(**get_pods_having_label( constants.NOOBAA_OPERATOR_POD_LABEL, self.namespace)[0]) self.core_pod = Pod(**get_pods_having_label( constants.NOOBAA_CORE_POD_LABEL, self.namespace)[0]) self.retrieve_noobaa_cli_binary() """ The certificate will be copied on each mcg_obj instantiation since the process is so light and quick, that the time required for the redundant copy is neglible in comparison to the time a hash comparison will take. """ retrieve_default_ingress_crt() get_noobaa = OCP(kind='noobaa', namespace=self.namespace).get() self.s3_endpoint = (get_noobaa.get('items')[0].get('status').get( 'services').get('serviceS3').get('externalDNS')[0]) self.s3_internal_endpoint = (get_noobaa.get('items')[0].get( 'status').get('services').get('serviceS3').get('internalDNS')[0]) self.mgmt_endpoint = (get_noobaa.get('items')[0].get('status').get( 'services').get('serviceMgmt').get('externalDNS')[0]) + '/rpc' self.region = config.ENV_DATA['region'] creds_secret_name = (get_noobaa.get('items')[0].get('status').get( 'accounts').get('admin').get('secretRef').get('name')) secret_ocp_obj = OCP(kind='secret', namespace=self.namespace) creds_secret_obj = secret_ocp_obj.get(creds_secret_name) self.access_key_id = base64.b64decode( creds_secret_obj.get('data').get('AWS_ACCESS_KEY_ID')).decode( 'utf-8') self.access_key = base64.b64decode( creds_secret_obj.get('data').get('AWS_SECRET_ACCESS_KEY')).decode( 'utf-8') self.noobaa_user = base64.b64decode( creds_secret_obj.get('data').get('email')).decode('utf-8') self.noobaa_password = base64.b64decode( creds_secret_obj.get('data').get('password')).decode('utf-8') self.noobaa_token = self.send_rpc_query( 'auth_api', 'create_auth', params={ 'role': 'admin', 'system': 'noobaa', 'email': self.noobaa_user, 'password': self.noobaa_password }).json().get('reply').get('token') self.s3_resource = boto3.resource( 's3', verify=retrieve_verification_mode(), endpoint_url=self.s3_endpoint, aws_access_key_id=self.access_key_id, aws_secret_access_key=self.access_key) self.s3_client = self.s3_resource.meta.client if (config.ENV_DATA['platform'].lower() == 'aws' and kwargs.get('create_aws_creds')): (self.cred_req_obj, self.aws_access_key_id, self.aws_access_key) = self.request_aws_credentials() self.aws_s3_resource = boto3.resource( 's3', endpoint_url="https://s3.amazonaws.com", aws_access_key_id=self.aws_access_key_id, aws_secret_access_key=self.aws_access_key) if (config.ENV_DATA['platform'].lower() in constants.CLOUD_PLATFORMS or storagecluster_independent_check()): if not config.ENV_DATA['platform'] == constants.AZURE_PLATFORM and ( float(config.ENV_DATA['ocs_version']) > 4.5): logger.info('Checking whether RGW pod is not present') pods = pod.get_pods_having_label(label=constants.RGW_APP_LABEL, namespace=self.namespace) assert not pods, 'RGW pods should not exist in the current platform/cluster' elif config.ENV_DATA.get( 'platform') in constants.ON_PREM_PLATFORMS or ( config.ENV_DATA.get('platform') == constants.AZURE_PLATFORM): rgw_count = 2 if float( config.ENV_DATA['ocs_version']) >= 4.5 and not ( check_if_cluster_was_upgraded()) else 1 # With 4.4 OCS cluster deployed over Azure, RGW is the default backingstore if float(config.ENV_DATA['ocs_version'] ) == 4.4 and config.ENV_DATA.get( 'platform') == constants.AZURE_PLATFORM: rgw_count = 1 if float(config.ENV_DATA['ocs_version'] ) == 4.5 and config.ENV_DATA.get( 'platform') == constants.AZURE_PLATFORM and ( check_if_cluster_was_upgraded()): rgw_count = 1 logger.info( f'Checking for RGW pod/s on {config.ENV_DATA.get("platform")} platform' ) rgw_pod = OCP(kind=constants.POD, namespace=self.namespace) assert rgw_pod.wait_for_resource( condition=constants.STATUS_RUNNING, selector=constants.RGW_APP_LABEL, resource_count=rgw_count, timeout=60)