Exemple #1
0
class GenericLoadingTask(Thread, Task):
    def __init__(self, rest, bucket, kv_store=None, store_enabled=True, info=None):
        Thread.__init__(self)
        Task.__init__(self, "gen_task")
        self.rest = rest
        self.bucket = bucket
        self.client = KVStoreAwareSmartClient(rest, bucket, kv_store, info, store_enabled)
        self.state = "initializing"
        self.doc_op_count = 0

    def cancel(self):
        self._Thread__stop()
        self.join()
        self.log.info("cancelling task: {0}".format(self.name))
        self.cancelled = True


    def step(self, task_manager):
        if self.cancelled:
            self.result = self.set_result({"status": "cancelled",
                                           "value": self.doc_op_count})
        if self.state == "initializing":
            self.state = "running"
            self.start()
            task_manager.schedule(self, 2)
        elif self.state == "running":
            self.log.info("{0}: {1} ops completed".format(self.name, self.doc_op_count))
            if self.is_alive():
                task_manager.schedule(self, 5)
            else:
                self.join()
                self.state = "finished"
                self.set_result({"status": "success", "value": self.doc_op_count})
        elif self.state != "finished":
            raise Exception("Bad State in DocumentGeneratorTask")

    def do_task_op(self, op, key, value=None, expiration=None):
        retry_count = 0
        ok = False
        if value is not None:
            value = value.replace(" ", "")

        while retry_count < 5 and not ok:
            try:
                if op == "set":
                    if expiration is None:
                        self.client.set(key, value)
                    else:
                        self.client.set(key, value, expiration)
                if op == "get":
                    value = self.client.mc_get(key)
                if op == "delete":
                    self.client.delete(key)
                ok = True
            except Exception:
                retry_count += 1
                self.client.reset_vbuckets(self.rest,
                                           set([self.client._get_vBucket_id(key)]))
        return value
Exemple #2
0
 def __init__(self,
              rest,
              bucket,
              kv_store=None,
              store_enabled=True,
              info=None):
     Thread.__init__(self)
     Task.__init__(self, "gen_task")
     self.rest = rest
     self.bucket = bucket
     self.client = KVStoreAwareSmartClient(rest, bucket, kv_store, info,
                                           store_enabled)
     self.state = "initializing"
     self.doc_op_count = 0
Exemple #3
0
    def __init__(self, rest, kv_store, bucket="default"):
        self.state = "initializing"
        self.res = None
        Thread.__init__(self)

        self.client = KVStoreAwareSmartClient(rest, bucket, kv_store)
        self.kv_helper = KVStoreSmartClientHelper()
Exemple #4
0
 def __init__(self, rest, bucket, kv_store=None, store_enabled=True, info=None):
     Thread.__init__(self)
     Task.__init__(self, "gen_task")
     self.rest = rest
     self.bucket = bucket
     self.client = KVStoreAwareSmartClient(rest, bucket, kv_store, info, store_enabled)
     self.state = "initializing"
     self.doc_op_count = 0
Exemple #5
0
class GenericLoadingTask(Thread, Task):
    def __init__(self,
                 rest,
                 bucket,
                 kv_store=None,
                 store_enabled=True,
                 info=None):
        Thread.__init__(self)
        Task.__init__(self, "gen_task")
        self.rest = rest
        self.bucket = bucket
        self.client = KVStoreAwareSmartClient(rest, bucket, kv_store, info,
                                              store_enabled)
        self.state = "initializing"
        self.doc_op_count = 0

    def cancel(self):
        self._Thread__stop()
        self.join()
        self.log.info("cancelling task: {0}".format(self.name))
        self.cancelled = True

    def step(self, task_manager):
        if self.cancelled:
            self.result = self.set_result({
                "status": "cancelled",
                "value": self.doc_op_count
            })
        if self.state == "initializing":
            self.state = "running"
            self.start()
            task_manager.schedule(self, 2)
        elif self.state == "running":
            self.log.info("{0}: {1} ops completed".format(
                self.name, self.doc_op_count))
            if self.is_alive():
                task_manager.schedule(self, 5)
            else:
                self.join()
                self.state = "finished"
                self.set_result({
                    "status": "success",
                    "value": self.doc_op_count
                })
        elif self.state != "finished":
            raise Exception("Bad State in DocumentGeneratorTask")

    def do_task_op(self, op, key, value=None, expiration=None):
        retry_count = 0
        ok = False
        if value is not None:
            value = value.replace(" ", "")

        while retry_count < 5 and not ok:
            try:
                if op == "set":
                    if expiration is None:
                        self.client.set(key, value)
                    else:
                        self.client.set(key, value, expiration)
                if op == "get":
                    value = self.client.mc_get(key)
                if op == "delete":
                    self.client.delete(key)
                ok = True
            except Exception:
                retry_count += 1
                self.client.reset_vbuckets(
                    self.rest, set([self.client._get_vBucket_id(key)]))
        return value