def compare_vbucket_stats(prev_vbucket_stats, cur_vbucket_stats, compare_uuid=False, seqno_compare="=="): """ Compares vbucket stats :param prev_vbucket_stats: old :param cur_vbucket_stats: new :param compare_uuid: bool to decide whether to compare uuid or not :param seqno_compare: comparator function :return: status and message """ compare = "==" comp_map = {"abs_high_seqno": {'type': "long", 'operation': seqno_compare}, "purge_seqno": {'type': "string", 'operation': compare}} if compare_uuid: comp_map["uuid"] = {'type': "string", 'operation': "=="} else: comp_map["uuid"] = {'type': "string", 'operation': "filter"} data_analyzer = DataAnalyzer() result_analyzer = DataAnalysisResultAnalyzer() compare_vbucket_seqnos_result = data_analyzer.compare_stats_dataset(prev_vbucket_stats, cur_vbucket_stats, "vbucket_id", comparisonMap=comp_map) is_same, summary, result = result_analyzer.analyze_all_result(compare_vbucket_seqnos_result, addedItems=False, deletedItems=False, updatedItems=False) if not is_same: msg = "{0} is not true".format(summary) raise AssertionError(msg) return True, "End Verification for vbucket sequence numbers comparison "
def setUp(self): self.input = TestInputSingleton.input self.parse_params() self.nodes_init = self.input.param("nodes_init", 3) self.log = logger.Logger.get_logger() if self.log_level: self.log.setLevel(level=self.log_level) self.use_https = True CbServer.use_https = True if not hasattr(self, 'cluster'): self.cluster = Cluster() self.buckets = [] self.collection_name = {} CbServer.rest_username = self.input.membase_settings.rest_username CbServer.rest_password = self.input.membase_settings.rest_password self.data_collector = DataCollector() self.data_analyzer = DataAnalyzer() self.result_analyzer = DataAnalysisResultAnalyzer() self.set_testrunner_client() self.pod = pod(self.input.capella["pod"]) self.tenant = tenant( self.input.capella["tenant_id"], self.input.capella["capella_user"], self.input.capella["capella_pwd"], ) self.project_id = self.input.capella["project_id"] self.tenant.project_id = self.project_id cluster_details = self.create_capella_config() cluster_id, _, _ = CapellaAPI.create_cluster(self.pod, self.tenant, cluster_details) self.cluster_id = cluster_id CbServer.cluster_id = cluster_id CapellaAPI.add_allowed_ip(self.pod, self.tenant, self.cluster_id) CapellaAPI.create_db_user(self.pod, self.tenant, self.cluster_id, self.input.membase_settings.rest_username, self.input.membase_settings.rest_password) CbServer.pod = self.pod CbServer.tenant = self.tenant CbServer.cluster_id = self.cluster_id servers = CapellaAPI.get_nodes_formatted( self.pod, self.tenant, self.cluster_id, self.input.membase_settings.rest_username, self.input.membase_settings.rest_password) self.cluster_config = ClusterConfig(self.input.membase_settings.rest_username, self.input.membase_settings.rest_password, self.create_input_servers()) self.cluster_config.update_servers(servers) if not self.skip_buckets_handle: BucketOperationHelper.delete_all_buckets_or_assert(self.servers, self) self.bucket_base_params = {'membase': {}} shared_params = self._create_bucket_params(server=self.master, size=self.bucket_size, replicas=self.num_replicas, enable_replica_index=self.enable_replica_index, eviction_policy=self.eviction_policy, bucket_priority=None, lww=self.lww, maxttl=self.maxttl, compression_mode=self.compression_mode) membase_params = copy.deepcopy(shared_params) membase_params['bucket_type'] = 'membase' self.bucket_base_params['membase']['non_ephemeral'] = membase_params membase_ephemeral_params = copy.deepcopy(shared_params) membase_ephemeral_params['bucket_type'] = 'ephemeral' self.bucket_base_params['membase']['ephemeral'] = membase_ephemeral_params self.bucket_base_params['membase']['non_ephemeral']['size'] = self.bucket_size self.bucket_base_params['membase']['ephemeral']['size'] = self.bucket_size self._bucket_creation()