Example #1
0
	def __init__(self, path, flags, *mode):
		self.file = None
		self.direct_io = True 
		self.keep_cache = "no" 
		self.node = None
		node = self.myFS.FSData.findNode(path)
		nodetok = path.split('/')
		dir=""
		filename = nodetok[len(nodetok)-1]
		nodetok.remove(filename)
		for i in nodetok:
			if i != '':
				dir = dir + "/" + i
		if dir == "":
			dir = "/"

		dirnode = self.myFS.FSData.findNode(dir)
		if dirnode == None:
			return None 

		if node == None:
			#Check to see if we are supposed to be creating a file
			if (flags & os.O_CREAT) == os.O_CREAT:
				node = KeyLayoutElement(filename)
				node.runtimeSetup()
				node.stat.st_mode = stat.S_IFREG | 0755
				node.sha_sum = ''
				dirnode.addChild(node)
			else:
				return None 
		else:
			if (flags & os.O_EXCL) == os.O_EXCL:
				return None

		self.file = node.open(self.myFS, flags)
		self.fd = self.file.fileno()
		self.node = node
		return None 
Example #2
0
    def __init__(self, path, flags, *mode):
        self.file = None
        self.direct_io = True
        self.keep_cache = "no"
        self.node = None
        node = self.myFS.FSData.findNode(path)
        nodetok = path.split('/')
        dir = ""
        filename = nodetok[len(nodetok) - 1]
        nodetok.remove(filename)
        for i in nodetok:
            if i != '':
                dir = dir + "/" + i
        if dir == "":
            dir = "/"

        dirnode = self.myFS.FSData.findNode(dir)
        if dirnode == None:
            return None

        if node == None:
            #Check to see if we are supposed to be creating a file
            if (flags & os.O_CREAT) == os.O_CREAT:
                node = KeyLayoutElement(filename)
                node.runtimeSetup()
                node.stat.st_mode = stat.S_IFREG | 0755
                node.sha_sum = ''
                dirnode.addChild(node)
            else:
                return None
        else:
            if (flags & os.O_EXCL) == os.O_EXCL:
                return None

        self.file = node.open(self.myFS, flags)
        self.fd = self.file.fileno()
        self.node = node
        return None