Example #1
0
 def cancel_superceded_jobs(self, new_job):
     # check for unfinished jobs that might be cancellable
     packageinstance = new_job.packageinstance
     unfinished_jobs_list = myDb.get_unfinished_jobs()
     # print "UNFINISHED JOB LIST", unfinished_jobs_list
     for unfinished_job in unfinished_jobs_list:
         unfinished_job_package_name = unfinished_job.packageinstance.package.name
         if unfinished_job_package_name == packageinstance.package.name:
             if new_job.id != unfinished_job.id:
                 unfinished_job_package_version = unfinished_job.packageinstance.package.version
                 command = "dpkg --compare-versions %s '<<' %s" % (
                     packageinstance.package.version,
                     unfinished_job_package_version,
                 )
                 if (unfinished_job_package_version == packageinstance.package.version) or (os.system(command)):
                     unfinished_job_dist_id = unfinished_job.packageinstance.distribution.id
                     unfinished_job_arch_id = unfinished_job.packageinstance.arch.id
                     unfinished_job_suite_id = unfinished_job.packageinstance.suite.id
                     if (
                         (unfinished_job_dist_id == packageinstance.distribution.id)
                         and (unfinished_job_arch_id == packageinstance.arch.id)
                         and (unfinished_job_suite_id == packageinstance.suite.id)
                     ):
                         self.process_cancel(unfinished_job)
     # 						else :
     # 							print "IGNORING UNFINISHED JOB", unfinished_job.id, unfinished_job_package_name, unfinished_job_package_version, "(dist/arch/suite differs)"
     # 					else :
     # 						print "IGNORING UNFINISHED JOB", unfinished_job.id, unfinished_job_package_name, unfinished_job_package_version, "(version differs)"
     # 				else :
     # 					print "IGNORING NEW JOB", unfinished_job.id
     # 			else :
     # 				print "IGNORING UNFINISHED JOB", unfinished_job.id, unfinished_job_package_name
     return
Example #2
0
def get_jobstatuses():
	try:
		response.content_type = "application/json"
		#return list of UNFINISHED jobs"
		res = myDb.get_unfinished_jobs()
		return jsonpickle.encode(res)
	except Exception as e:
		raise Exception('Exception encountered: ' + str(e))
		return None
Example #3
0
 def cancel_package(self, package_id):
     # cancels all instances of a package
     package = myDb.get_package_id(package_id)
     if not package.id:
         response.status = "404 - no package matching package_id"
     else:
         unfinished_jobs_list = myDb.get_unfinished_jobs()
         for unfinished_job in unfinished_jobs_list:
             if (unfinished_job.packageinstance.package.name == package.name) and (
                 unfinished_job.packageinstance.package.version == package.version
             ):
                 self.process_cancel(unfinished_job)
     return
Example #4
0
 def cancel_all_builds(self):
     # cancels all packages/jobs
     unfinished_jobs_list = myDb.get_unfinished_jobs()
     for unfinished_job in unfinished_jobs_list:
         self.process_cancel(unfinished_job)
     return