예제 #1
0
파일: task.py 프로젝트: jchris/testrunner
    def execute(self, task_manager):

        rest = RestConnection(self.server)

        try:
            # remove view from existing design doc
            content = rest.get_ddoc(self.bucket, self.design_doc_name)
            ddoc = DesignDocument._init_from_json(self.design_doc_name, content)
            status = ddoc.delete_view(self.view)
            if not status:
                self.state = FINISHED
                self.set_exception(Exception('View does not exist! %s' % (self.view.name)))

            # update design doc
            rest.create_design_document(self.bucket, ddoc)
            self.state = CHECKING
            task_manager.schedule(self, 2)

        except (ValueError, ReadDocumentException, DesignDocCreationException) as e:
            self.state = FINISHED
            self.set_exception(e)

        #catch and set all unexpected exceptions
        except Exception as e:
            self.state = FINISHED
            self.log.info("Unexpected Exception Caught")
            self.set_exception(e)
예제 #2
0
    def _verify_ddoc_ops_all_buckets(self):
        self.log.info("DDoc Validation Started")
        rest = RestConnection(self.master)
        # Iterate over all the DDocs/Views stored in the internal dictionary
        for bucket, self.ddoc_view_map in self.bucket_ddoc_map.items():
            for ddoc_name, view_list in self.ddoc_view_map.items():
                try:
                    # fetch the DDoc information from the database
                    ddoc_json, header = rest.get_ddoc(bucket, ddoc_name)
                    self.log.info("Database Document {0} details : {1}".format(ddoc_name, json.dumps(ddoc_json)))
                    ddoc = DesignDocument._init_from_json(ddoc_name, ddoc_json)
                    for view in view_list:
                        if view.name not in [v.name for v in ddoc.views]:
                            self.fail(
                                "Validation Error: View - {0} in Design Doc - {1} and Bucket - {2} is missing from database".format(
                                    view.name, ddoc_name, bucket
                                )
                            )

                except ReadDocumentException:
                    self.fail(
                        "Validation Error: Design Document - {0} is missing from Bucket - {1}".format(ddoc_name, bucket)
                    )

        self.log.info("DDoc Validation Successful")
예제 #3
0
파일: task.py 프로젝트: jchris/testrunner
    def execute(self, task_manager):

        rest = RestConnection(self.server)

        try:
            # appending view to existing design doc
            content = rest.get_ddoc(self.bucket, self.design_doc_name)
            ddoc = DesignDocument._init_from_json(self.design_doc_name, content)
            ddoc.add_view(self.view)
            self.ddoc_rev_no = self._parse_revision(content['_rev'])

        except ReadDocumentException:
            # creating first view in design doc
            ddoc = DesignDocument(self.design_doc_name, [self.view])

        try:
            rest.create_design_document(self.bucket, ddoc)
            self.state = CHECKING
            task_manager.schedule(self)

        except DesignDocCreationException as e:
            self.state = FINISHED
            self.set_exception(e)

        #catch and set all unexpected exceptions
        except Exception as e:
            self.state = FINISHED
            self.log.info("Unexpected Exception Caught")
            self.set_exception(e)
예제 #4
0
    def _verify_ddoc_ops_all_buckets(self):
        rest = RestConnection(self.servers[0])
        for bucket, self.ddoc_view_map in self.bucket_ddoc_map.items():
            for ddoc_name, self.view_name_list in self.ddoc_view_map.items():
                try:
                    ddoc_json = rest.get_ddoc(bucket, ddoc_name)
                    self.log.info('Document {0} details : {1}'.format(ddoc_name,json.dumps(ddoc_json)))
                    ddoc = DesignDocument._init_from_json(ddoc_name, ddoc_json)
                    for view_name in self.view_name_list:
                        if view_name not in [view.name for view in ddoc.views]:
                            self.fail("Validation Error: View - {0} in Design Doc - {1} and Bucket - {2} is missing".format(view_name,ddoc_name, bucket))

                except ReadDocumentException:
                    self.fail("Validation Error: Design Document - {0} is missing".format(ddoc_name))
예제 #5
0
    def _verify_ddoc_ops_all_buckets(self):
        self.log.info("DDoc Validation Started")
        rest = RestConnection(self.master)
        #Iterate over all the DDocs/Views stored in the internal dictionary
        for bucket, self.ddoc_view_map in self.bucket_ddoc_map.items():
            for ddoc_name, view_list in self.ddoc_view_map.items():
                try:
                    #fetch the DDoc information from the database
                    ddoc_json, header = rest.get_ddoc(bucket, ddoc_name)
                    self.log.info('Database Document {0} details : {1}'.format(ddoc_name, json.dumps(ddoc_json)))
                    ddoc = DesignDocument._init_from_json(ddoc_name, ddoc_json)
                    for view in view_list:
                        if view.name not in [v.name for v in ddoc.views]:
                            self.fail("Validation Error: View - {0} in Design Doc - {1} and Bucket - {2} is missing from database".format(view.name, ddoc_name, bucket))

                except ReadDocumentException:
                    self.fail("Validation Error: Design Document - {0} is missing from Bucket - {1}".format(ddoc_name, bucket))

        self.log.info("DDoc Validation Successful")