def _prepare_queue_entries(self): self._queue_and_gt_records_groups() for queue_entry in self.same_queue_entries: queue_entry.status = utils.get_new_queue_entry_status( queue_entry.status, was_found_in_gt=True) for queue_entry in self.missed_queue_entries: queue_entry.status = utils.get_new_queue_entry_status( queue_entry.status, was_found_in_gt=False) for gt_entry in self.new_gt_entries: queue_entry = GTQueueEntry( queue=self.queue_for_update_obj, tag=gt_entry.tag, record=gt_entry.record, label=gt_entry.label, comment='Found in GT', status='O', administrator=None, submitter=User.objects.get(username='******'), #todo - set in config default gt_entry_subbmiter and create it during instaltion #fix raises exception when not founded administration_time=None) self.new_queue_entries.append(queue_entry) return (self.same_queue_entries + self.missed_queue_entries + self.new_queue_entries, (self.same_queue_entries, self.missed_queue_entries, self.new_queue_entries))
def admin_dashboard(request): global_tag_count = GlobalTag.objects.filter(entry_ignored=False).count() not_imported_global_tags = GlobalTag.objects.filter(entry_ignored=False, has_errors=True) inconsistent_global_tags_count = GlobalTag.objects.filter( entry_ignored=False, has_warnings=True).count() global_tag_queue_count = GTQueue.objects.all().count() global_tag_queue_pending_elements_count = GTQueueEntry.objects.filter( status="P").count() tb_name = GTQueueEntry()._meta.db_table open_queues = GTQueue.objects.filter(is_open=True).extra( select={ 'num_pending': 'SELECT COUNT(*) FROM {tb_name} WHERE ({tb_name}.status =\'P\') and ({tb_name}.queue_id = globaltagcollector_gtqueue.id)' .format(tb_name=tb_name) }) return render_to_response("admin2/dashboard.html", { 'global_tag_count': global_tag_count, 'global_tag_queue_count': global_tag_queue_count, 'not_imported_global_tags': not_imported_global_tags, 'inconsistent_global_tags_count': inconsistent_global_tags_count, 'global_tag_queue_pending_elements_count': global_tag_queue_pending_elements_count, 'open_queues': open_queues, }, context_instance=RequestContext(request))
def add_queue_entry(self, tag_obj, record_obj, label, comment, submitter, administrator=None, status="P"): #status pending if not self._tag_object_is_related(tag_obj, record_obj): raise Exception( "Tag and object is not related") #TODO custom exception if not self._record_belongs_to_queue_software_release(record_obj): raise Exception("Record does not match queue software release") now = datetime.datetime.now() qte = GTQueueEntry() qte.queue = self.queue_obj qte.tag = tag_obj qte.record = record_obj qte.label = label qte.comment = comment qte.submitter = submitter qte.administrator = administrator qte.administration_time = now if (status == "P") or (status == "R") or (status == "I"): qte.status = status qte.save() elif (status == "O") or (status == "A"): print "STATUS O-A" with transaction.commit_on_success(): self.set_other_records_to_ignored(record_obj, label, status) qte.status = status qte.save() #TODO signal else: raise Exception("Unknown gt queue record status")
def create_children(self, administrator): if self.has_children(): raise Exception( "Queue allready fully created. Can not additionally insert children" ) #TODO custom exception now = datetime.datetime.now() with transaction.commit_on_success(): for gt_record in self.queue_obj.last_gt.globaltagrecord_set.all(): qte = GTQueueEntry() qte.queue = self.queue_obj qte.tag = gt_record.tag qte.record = gt_record.record qte.label = gt_record.label qte.comment = "Automaticaly created comment for original entries" qte.status = 'O' qte.submitter = administrator qte.administrator = administrator qte.administration_time = now qte.save()
def update_queue_from_gt(self, gt_obj): same_queue_entries = [] #queue entries that exist in gt and in queue new_gt_entries = [] #new *gt entries* that was not founded in queue missed_queue_entries = [] #queue entries that wasnt founded in gt gt_entry_objects = gt_obj.globaltagrecord_set.all() gt_entry_objects_dict = {} gt_queue_entry_objects = self.queue_obj.gtqueueentry_set.all() gt_queue_entry_objects_dict = {} for gt_entry_object in gt_entry_objects: gt_entry_objects_dict[( gt_entry_object.record_id, gt_entry_object.label, )] = gt_entry_object for gt_queue_entry_object in gt_queue_entry_objects: gt_queue_entry_objects_dict[( gt_queue_entry_object.record_id, gt_queue_entry_object.label, )] = gt_queue_entry_object for gt_queue_entry_object in gt_queue_entry_objects: if gt_entry_objects_dict.has_key(( gt_queue_entry_object.record_id, gt_queue_entry_object.label, )): #Queue and GT has the same entry same_queue_entries.append(gt_queue_entry_object) else: #Entry is in queue but not in GT missed_queue_entries.append(gt_queue_entry_object) for gt_entry_object in gt_entry_objects: if not gt_queue_entry_objects_dict.has_key(( gt_entry_object.record_id, gt_entry_object.label, )): #entry is in gt, but not in queue new_gt_entries.append(gt_entry_object) #Now setting status to queue entries depending to witch list they belong all_queue_entries_with_status_changes = [] with transaction.commit_on_success(): self.queue_obj.last_gt = gt_obj self.queue_obj.save() for queue_entry in same_queue_entries: old_status = queue_entry.status new_status = utils.get_new_queue_entry_status( queue_entry.status, was_found_in_gt=True) queue_entry.status = new_status queue_entry.save() if old_status != new_status: print queue_entry all_queue_entries_with_status_changes.append( (old_status, new_status, queue_entry)) for queue_entry in missed_queue_entries: old_status = queue_entry.status new_status = utils.get_new_queue_entry_status( queue_entry.status, was_found_in_gt=False) queue_entry.status = new_status queue_entry.save() all_queue_entries_with_status_changes.append( (old_status, new_status, queue_entry)) #new_queue_entries = [] service_user, created = User.objects.get_or_create( username='******') for gt_entry in new_gt_entries: queue_entry = GTQueueEntry( queue=self.queue_obj, tag=gt_entry.tag, record=gt_entry.record, label=gt_entry.label, comment='Found in GT', status='O', administrator=None, submitter=service_user, #todo - set in config default gt_entry_subbmiter and create it during instaltion administration_time=None) queue_entry.save() all_queue_entries_with_status_changes.append( (None, 'O', queue_entry)) #self.new_queue_entries.append(queue_entry) # return ( # self.same_queue_entries + self.missed_queue_entries + self.new_queue_entries, # (self.same_queue_entries, self.missed_queue_entries, self.new_queue_entries) # ) return all_queue_entries_with_status_changes
def add_queue_entry(self, tag_obj, record_obj, label, comment, submitter, administrator=None, status="P"): #status pending if not self._tag_object_is_related(tag_obj, record_obj): raise Exception("Tag and object is not related") #TODO custom exception if not self._record_belongs_to_queue_software_release(record_obj): raise Exception("Record does not match queue software release") now = datetime.datetime.now() qte = GTQueueEntry() qte.queue = self.queue_obj qte.tag = tag_obj qte.record = record_obj qte.label = label qte.comment = comment qte.submitter = submitter qte.administrator = administrator qte.administration_time = now if (status=="P") or (status=="R") or (status=="I"): qte.status = status qte.save() elif (status=="O") or (status=="A"): print "STATUS O-A" with transaction.commit_on_success(): self.set_other_records_to_ignored(record_obj, label, status) qte.status = status qte.save() #TODO signal else: raise Exception("Unknown gt queue record status")
def create_children(self, administrator): if self.has_children(): raise Exception("Queue allready fully created. Can not additionally insert children") #TODO custom exception now = datetime.datetime.now() with transaction.commit_on_success(): for gt_record in self.queue_obj.last_gt.globaltagrecord_set.all(): qte = GTQueueEntry() qte.queue = self.queue_obj qte.tag = gt_record.tag qte.record = gt_record.record qte.label = gt_record.label qte.comment = "Automaticaly created comment for original entries" qte.status = 'O' qte.submitter = administrator qte.administrator = administrator qte.administration_time = now qte.save()
def update_queue_from_gt(self, gt_obj): same_queue_entries = [] #queue entries that exist in gt and in queue new_gt_entries = [] #new *gt entries* that was not founded in queue missed_queue_entries = [] #queue entries that wasnt founded in gt gt_entry_objects = gt_obj.globaltagrecord_set.all() gt_entry_objects_dict = {} gt_queue_entry_objects = self.queue_obj.gtqueueentry_set.all() gt_queue_entry_objects_dict = {} for gt_entry_object in gt_entry_objects: gt_entry_objects_dict[(gt_entry_object.record_id, gt_entry_object.label,)] = gt_entry_object for gt_queue_entry_object in gt_queue_entry_objects: gt_queue_entry_objects_dict[(gt_queue_entry_object.record_id, gt_queue_entry_object.label,)] = gt_queue_entry_object for gt_queue_entry_object in gt_queue_entry_objects: if gt_entry_objects_dict.has_key((gt_queue_entry_object.record_id, gt_queue_entry_object.label,)): #Queue and GT has the same entry same_queue_entries.append(gt_queue_entry_object) else: #Entry is in queue but not in GT missed_queue_entries.append(gt_queue_entry_object) for gt_entry_object in gt_entry_objects: if not gt_queue_entry_objects_dict.has_key((gt_entry_object.record_id, gt_entry_object.label,)): #entry is in gt, but not in queue new_gt_entries.append(gt_entry_object) #Now setting status to queue entries depending to witch list they belong all_queue_entries_with_status_changes = [] with transaction.commit_on_success(): self.queue_obj.last_gt = gt_obj self.queue_obj.save() for queue_entry in same_queue_entries: old_status = queue_entry.status new_status = utils.get_new_queue_entry_status(queue_entry.status,was_found_in_gt=True) queue_entry.status = new_status queue_entry.save() if old_status != new_status: print queue_entry all_queue_entries_with_status_changes.append((old_status, new_status, queue_entry)) for queue_entry in missed_queue_entries: old_status = queue_entry.status new_status = utils.get_new_queue_entry_status(queue_entry.status,was_found_in_gt=False) queue_entry.status = new_status queue_entry.save() all_queue_entries_with_status_changes.append((old_status, new_status, queue_entry)) #new_queue_entries = [] service_user, created = User.objects.get_or_create(username='******') for gt_entry in new_gt_entries: queue_entry = GTQueueEntry( queue=self.queue_obj, tag=gt_entry.tag, record=gt_entry.record, label=gt_entry.label, comment='Found in GT', status='O', administrator=None, submitter=service_user, #todo - set in config default gt_entry_subbmiter and create it during instaltion administration_time=None ) queue_entry.save() all_queue_entries_with_status_changes.append((None, 'O', queue_entry)) #self.new_queue_entries.append(queue_entry) # return ( # self.same_queue_entries + self.missed_queue_entries + self.new_queue_entries, # (self.same_queue_entries, self.missed_queue_entries, self.new_queue_entries) # ) return all_queue_entries_with_status_changes
def create_queue_entries_from_gt(self, queue, administrator): now = datetime.datetime.now() with transaction.commit_on_success(): for gt_record in queue.last_gt.globaltagrecord_set.all(): qte = GTQueueEntry() qte.queue = queue qte.tag = gt_record.tag qte.record = gt_record.record qte.label = gt_record.label #ASK PFN qte.comment = "Automaticaly created comment for original entries" #ASK maybe global tag entires should have qte.status = 'O' qte.submitter = administrator qte.administrator = administrator qte.administration_time = now qte.save()
def create_queue_entries_from_gt(self, queue, administrator): now = datetime.datetime.now() with transaction.commit_on_success(): for gt_record in queue.last_gt.globaltagrecord_set.all(): qte = GTQueueEntry() qte.queue = queue qte.tag = gt_record.tag qte.record = gt_record.record qte.label =gt_record.label #ASK PFN qte.comment = "Automaticaly created comment for original entries" #ASK maybe global tag entires should have qte.status = 'O' qte.submitter = administrator qte.administrator = administrator qte.administration_time = now qte.save() #todo detect if success