def _run(self):
     v = None
     try:
         options = self._options
         v = VBucketAwareCouchbaseClient(self._server, options.bucket, options.password, options.verbose)
         number_of_items = (int(options.items) / int(options.num_of_threads))
         value = StringUtil.create_value("*", int(options.value_size))
         for i in range(0, number_of_items):
             if self.shut_down:
                 break
             key = "{0}-{1}".format(options.key_prefix, str(uuid.uuid4())[:5])
             if options.load_json:
                 document = "\"name\":\"pymc-{0}\"".format(key, key)
                 document = document + ",\"age\":{0}".format(random.randint(0, 1000))
                 document = document + ",\"index\":{0}".format(i)
                 document = "{" + document + "}"
                 try:
                     self._profile_before()
                     v.set(key, 0, 0, document)
                     self._profile_after()
                 except MemcachedTimeoutException:
                     self._stats["timeouts"] += 1
             else:
                 try:
                     self._profile_before()
                     v.set(key, 0, 0, value)
                     self._profile_after()
                 except MemcachedTimeoutException:
                     self._stats["timeouts"] += 1
             self._bar.update()
         v.done()
         v = None
     except:
         if v:
             v.done()
示例#2
0
 def write(self, record):
     for i in range(5):
         try:
             # todo: check for timeout and flags
             self.client.set(str(record['id'].encode('utf-8')), 0, 0, json.dumps(record['value']))
             return
         except MemcachedTimeoutException as e:
             pass
         except:
             self.client.done()
             self.client = VBucketAwareCouchbaseClient(self.server, self.bucket, self.password, self.verbose)
     print 'unable to set key {0}'.format(str(record['id'].encode('utf-8')))
示例#3
0
def add(request):
   couchbase = VBucketAwareCouchbaseClient("http://localhost:8091/pools/default", "default", "")
   a,b,c = couchbase.get('allrssfeeds')
   rss_dict = json.loads(c)   
   new_feed = request.raw_post_data
   found = False
   for item in rss_dict:
      if item['url'] == new_feed:
         found = True
         break
   if not found:
      rss_dict.append({'url':new_feed, 'status':'valid'})
   couchbase.set('allrssfeeds', 0, 0,json.dumps(rss_dict))
   return render_to_response('template/home.html',
            {'title': 'allrssfeeds', 'feeds': _filter_invalid(rss_dict)})
示例#4
0
def remove(request):
   couchbase = VBucketAwareCouchbaseClient("http://localhost:8091/pools/default", "default", "")
   which_rss = request.raw_post_data
   a,b,c = couchbase.get('allrssfeeds')
   print c
   rss_dict = json.loads(c)
   for item in rss_dict:
      if item['url'] == which_rss:
         item['status'] = 'invalid'
         break
   print rss_dict
   print which_rss
   couchbase.set('allrssfeeds', 0, 0,json.dumps(rss_dict))
   a,b,c = couchbase.get('allrssfeeds')
   return render_to_response('template/home.html',
         {'title': 'allrssfeeds', 'feeds':_filter_invalid(rss_dict)}) 
示例#5
0
    def __init__(self, destination):
        # username:[email protected]:8091/bucket
        m = re.match('^([^:]+):([^@]*)@([^:]+):([^/]+)/(.+)$', destination)
        self.username = m.group(1)
        self.password = m.group(2)
        self.host = m.group(3)
        self.port = m.group(4)
        self.bucket = m.group(5)

        self.bucket_port = 11211
        self.bucket_password = ''

        self.verbose = False

        # todo: use server username/password to query the bucket password/port if needed
        self.server = "http://{0}:{1}/pools/default".format(self.host, self.port)
        self.client = VBucketAwareCouchbaseClient(self.server, self.bucket, self.password, self.verbose)
 def test_vbucketawarecouchbaseclient_object_construction(self):
     with warnings.catch_warnings(record=True) as w:
         warnings.simplefilter("always")
         # Trigger a warning.
         cb = VBucketAwareCouchbaseClient(
             "http://" + self.host + ':' + self.port + "/pools/default",
             self.bucket_name, "")
         self.assertIsInstance(cb.servers, types.ListType)
         # Verify some things
         self.assertTrue(len(w) == 1)
         self.assertTrue("deprecated" in str(w[-1].message))
 def _run(self):
     v = None
     try:
         options = self._options
         if not options.password:
             options.password = ""
         v = VBucketAwareCouchbaseClient(self._server, options.bucket,
                                         options.password, options.verbose)
         number_of_items = (int(options.items) /
                            int(options.num_of_threads))
         value = StringUtil.create_value("*", int(options.value_size))
         for i in range(0, number_of_items):
             if self.shut_down:
                 break
             key = "{0}-{1}".format(options.key_prefix,
                                    str(uuid.uuid4())[:5])
             if options.load_json:
                 document = "\"name\":\"pymc-{0}\"".format(key, key)
                 document = document + ",\"age\":{0}".format(
                     random.randint(0, 1000))
                 document = document + ",\"index\":{0}".format(i)
                 document = "{" + document + "}"
                 try:
                     self._profile_before()
                     v.set(key, 0, 0, document)
                     self._profile_after()
                 except MemcachedTimeoutException:
                     self._stats["timeouts"] += 1
             else:
                 try:
                     self._profile_before()
                     v.set(key, 0, 0, value)
                     self._profile_after()
                 except MemcachedTimeoutException:
                     self._stats["timeouts"] += 1
             self._bar.update()
         v.done()
         v = None
     except:
         if v:
             v.done()
示例#8
0
class CouchbaseWriter(migrator.Writer):
    def __init__(self, destination):
        # username:[email protected]:8091/bucket
        m = re.match('^([^:]+):([^@]*)@([^:]+):([^/]+)/(.+)$', destination)
        self.username = m.group(1)
        self.password = m.group(2)
        self.host = m.group(3)
        self.port = m.group(4)
        self.bucket = m.group(5)

        self.bucket_port = 11211
        self.bucket_password = ''

        self.verbose = False

        # todo: use server username/password to query the bucket password/port if needed
        self.server = "http://{0}:{1}/pools/default".format(self.host, self.port)
        self.client = VBucketAwareCouchbaseClient(self.server, self.bucket, self.password, self.verbose)

    def write(self, record):
        for i in range(5):
            try:
                # todo: check for timeout and flags
                self.client.set(str(record['id'].encode('utf-8')), 0, 0, json.dumps(record['value']))
                return
            except MemcachedTimeoutException as e:
                pass
            except:
                self.client.done()
                self.client = VBucketAwareCouchbaseClient(self.server, self.bucket, self.password, self.verbose)
        print 'unable to set key {0}'.format(str(record['id'].encode('utf-8')))

    def close(self):
        self.client.done()
class CouchbaseClientTest(unittest.TestCase):
    def setUp(self):
        self.url = config['node-1']['url']
        self.bucket = config['node-1']['bucket']
        self.client = VBucketAwareCouchbaseClient(self.url, self.bucket, "", True)

    def tearDown(self):
        self.client.done()

    def test_set_and_get(self):
        kvs = [(str(uuid.uuid4()), str(uuid.uuid4())) for i in range(0, 100)]
        for k, v in kvs:
            self.client.set(k, 0, 0, v)

        for k, v in kvs:
            self.client.get(k)

    def test_set_and_delete(self):
        kvs = [(str(uuid.uuid4()), str(uuid.uuid4())) for i in range(0, 100)]
        for k, v in kvs:
            self.client.set(k, 0, 0, v)
        for k, v in kvs:
            self.client.delete(k)
 def setUp(self):
     self.url = config['node-1']['url']
     self.bucket = config['node-1']['bucket']
     self.client = VBucketAwareCouchbaseClient(self.url, self.bucket, "", True)
示例#11
0
def load(request):
   couchbase = VBucketAwareCouchbaseClient("http://localhost:8091/pools/default", "default", "")
   a,b,c = couchbase.get('allrssfeeds')
   rss_dict = json.loads(c)
   return render_to_response('template/home.html',
            {'title': 'allrssfeeds', 'feeds': _filter_invalid(rss_dict)})