示例#1
0
    def prepare(self):
        try:
            os.mkdir("/root/build")
        except OSError:
            pass

        os.chdir("/root/build")
        os.system("rm -Rf spl")

        gitinfo = self.job.attributes['zfs-git-repo']

        repodir = "%s/repositories/%s" % (Utility.get_persistent_dir(),
                                          gitinfo['spl-repository'])
        if os.system("git clone -b %s %s spl" %
                     (gitinfo['spl-branch'], repodir)) != 0:
            return TaskResult.FAILED

        os.chdir("spl")

        if os.system(
                "git reset --hard `git rev-list --max-count=1 --before=%s HEAD`"
                % (gitinfo['timestamp'])) != 0:
            return TaskResult.FAILED

        return TaskResult.PASSED
示例#2
0
	def mount_partitions():
		if os.system("mountpoint -q /mnt") != 0 or os.system("mount -o remount,rw /mnt") != 0:
			try:
				os.makedirs("/mnt")
			except OSError:
				pass

			if os.system("mount %s /mnt" % (PartitionBuilder.get_rootpart())) != 0:
				raise Error("Could not mount node filesystem.")

		if os.system("mountpoint -q /mnt/dev") != 0:
			try:
				os.makedirs("/mnt/dev")
			except OSError:
				pass

			if os.system("mount --bind /dev /mnt/dev") != 0:
				raise Error("Could not mount /mnt/dev")

		if os.system("mountpoint -q /mnt/sys") != 0:
			try:
				os.makedirs("/mnt/sys")
			except OSError:
				pass

			if os.system("mount --bind /sys /mnt/sys") != 0:
				raise Error("Could not mount /mnt/sys")

		if os.system("mountpoint -q /mnt/proc") != 0:
			try:
				os.makedirs("/mnt/proc")
			except OSError:
				pass

			if os.system("mount -t proc none /mnt/proc") != 0:
				raise Error("Could not mount /mnt/proc")

		persistent_dir = Utility.get_persistent_dir()
		if os.system("mountpoint -q /mnt/%s" % (persistent_dir)) != 0:
			try:
				os.makedirs("/mnt/%s" % (persistent_dir))
			except OSError:
				pass

			if os.system("mount --bind %s /mnt/%s" % (persistent_dir, persistent_dir)) != 0:
				raise Error("Could not mount /mnt/%s" % (persistent_dir))
示例#3
0
    def mount_partitions():
        if os.system("mountpoint -q /mnt") != 0 or os.system("mount -o remount,rw /mnt") != 0:
            try:
                os.makedirs("/mnt")
            except OSError:
                pass

            if os.system("mount %s /mnt" % (PartitionBuilder.get_rootpart())) != 0:
                raise Error("Could not mount node filesystem.")

        if os.system("mountpoint -q /mnt/dev") != 0:
            try:
                os.makedirs("/mnt/dev")
            except OSError:
                pass

            if os.system("mount --bind /dev /mnt/dev") != 0:
                raise Error("Could not mount /mnt/dev")

        if os.system("mountpoint -q /mnt/sys") != 0:
            try:
                os.makedirs("/mnt/sys")
            except OSError:
                pass

            if os.system("mount --bind /sys /mnt/sys") != 0:
                raise Error("Could not mount /mnt/sys")

        if os.system("mountpoint -q /mnt/proc") != 0:
            try:
                os.makedirs("/mnt/proc")
            except OSError:
                pass

            if os.system("mount -t proc none /mnt/proc") != 0:
                raise Error("Could not mount /mnt/proc")

        persistent_dir = Utility.get_persistent_dir()
        if os.system("mountpoint -q /mnt/%s" % (persistent_dir)) != 0:
            try:
                os.makedirs("/mnt/%s" % (persistent_dir))
            except OSError:
                pass

            if os.system("mount --bind %s /mnt/%s" % (persistent_dir, persistent_dir)) != 0:
                raise Error("Could not mount /mnt/%s" % (persistent_dir))
示例#4
0
	def prepare(self):
		try:
			os.mkdir("/root/build")
		except OSError:
			pass

		os.chdir("/root/build")
		os.system("rm -Rf spl")

		gitinfo = self.job.attributes['zfs-git-repo']

		repodir = "%s/repositories/%s" % (Utility.get_persistent_dir(), gitinfo['spl-repository'])
		if os.system("git clone -b %s %s spl" % (gitinfo['spl-branch'], repodir)) != 0:
			return TaskResult.FAILED

		os.chdir("spl")

		if os.system("git reset --hard `git rev-list --max-count=1 --before=%s HEAD`" % (gitinfo['timestamp'])) != 0:
			return TaskResult.FAILED

		return TaskResult.PASSED
示例#5
0
def process_results(session):
	for resultdir in glob.glob(Utility.get_persistent_dir() + '/results/*'):
		try:
			resultfile = resultdir + '/job.json'

			fp = open(resultfile, 'r')
			resultinfo = json.load(fp)
			fp.close()

			statinfo = os.lstat(resultfile)
			timestamp = datetime.fromtimestamp(statinfo.st_mtime)
		except Exception, exc:
			print exc
			continue

		job = Job.get_by_hash(session, resultinfo['job_id'])

		if job == None:
			job = Job(resultinfo['job_id'])
			job.attributes = resultinfo['input']
			session.add(job)

		if not 'output' in resultinfo:
			continue

		if not 'result_id' in resultinfo:
			resultinfo['result_id'] = hashlib.md5(os.path.basename(resultdir)).hexdigest()

		result = JobResult.get_by_hash(session, resultinfo['result_id'])

		if result == None:
			jobresult = JobResult(job, resultinfo['result_id'])

			for (task, taskinfo) in resultinfo['output'].iteritems():
				taskresult = TaskResult(jobresult, task)
				taskresult.attributes =  taskinfo
				session.add(taskresult)

			session.add(jobresult)
示例#6
0
	def unmount_partitions():
		persistent_dir = Utility.get_persistent_dir()
		os.system("umount /mnt/%s /mnt/dev /mnt/sys /mnt/proc /mnt" % (persistent_dir))
示例#7
0
 def unmount_partitions():
     persistent_dir = Utility.get_persistent_dir()
     os.system("umount /mnt/%s /mnt/dev /mnt/sys /mnt/proc /mnt" % (persistent_dir))