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)
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")
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)
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))
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")