class CCCP(BaseTestCase): def setUp(self): super(CCCP, self).setUp() self.map_fn = 'function (doc){emit([doc.join_yr, doc.join_mo],doc.name);}' self.ddoc_name = "cccp_ddoc" self.view_name = "cccp_view" self.default_view = View(self.view_name, self.map_fn, None, False) self.ops = self.input.param("ops", None) self.clients = {} try: for bucket in self.buckets: self.clients[bucket.name] =\ MemcachedClientHelper.direct_client(self.master, bucket.name) except: self.tearDown() def tearDown(self): super(CCCP, self).tearDown() def test_get_config_client(self): tasks = self.run_ops() for bucket in self.buckets: _, _, config = self.clients[bucket.name].get_config() self.verify_config(json.loads(config), bucket) for task in tasks: task.result() def test_get_config_rest(self): tasks = self.run_ops() for bucket in self.buckets: config = RestConnection(self.master).get_bucket_CCCP(bucket) self.verify_config(config, bucket) for task in tasks: task.result() def test_set_config(self): tasks = self.run_ops() config_expected = 'abcabc' for bucket in self.buckets: self.clients[bucket.name].set_config(config_expected) _, _, config = self.clients[bucket.name].get_config() self.assertEquals(config_expected, config, "Expected config: %s, actual %s" %( config_expected, config)) self.log.info("Config was set correctly. Bucket %s" % bucket.name) for task in tasks: task.result() def test_not_my_vbucket_config(self): self.gen_load = BlobGenerator('cccp', 'cccp-', self.value_size, end=self.num_items) self._load_all_buckets(self.master, self.gen_load, "create", 0) self.cluster.rebalance(self.servers[:self.nodes_init], self.servers[self.nodes_init:self.nodes_init + 1], []) self.nodes_init = self.nodes_init + 1 for bucket in self.buckets: while self.gen_load.has_next(): key, _ = self.gen_load.next() try: self.clients[bucket.name].get(key) except Exception, ex: self.log.info("Config in exception is correct. Bucket %s, key %s" % (bucket.name, key)) config = str(ex)[str(ex).find("Not my vbucket':") + 16 : str(ex).find("for vbucket")] config = json.loads(config) self.verify_config(config, bucket)