Пример #1
0
    def create_connections(self, channel_repository):
        """Create connections to data server which has file contents.

        In this function, send request for open to data server.
        (and calculate RTT)
        """
        channels = channel_repository.get_channel(self.dest)
        self.d_channel = Channel.MogamiChanneltoData(self.dest)
        # create a connection for prefetching
        #self.p_channel = Channel.MogamiChanneltoData(self.dest)
        #channel_repository.set_channel(self.dest, self.d_channel, self.p_channel)
        #else:
        # set channels
        #    self.d_channel = channels[0]
        #    self.p_channel = channels[1]

        # send a request to data server for open
        start_t = time.time()
        (ans, self.datafd,
         open_t) = self.d_channel.open_req(self.data_path, self.flag,
                                           *self.mode)
        end_t = time.time()
        if ans != 0:  # failed...with errno
            self.finalize()
            return ans

        # on success
        self.rtt = end_t - start_t - open_t
        # must be 0
        return ans
Пример #2
0
    def truncate(self, path, length):
        MogamiLog.debug('** truncate ** path = %s, length = %d' %
                        (path, length))

        (ans, dest, filename) = m_channel.truncate_req(path, length)
        if ans != 0:
            return -ans

        c_channel = Channel.MogamiChanneltoData(dest)
        ans = c_channel.truncate_req(filename, length)
        c_channel.finalize()

        # if truncate was succeeded, cache of file size should be changed
        if ans == 0:
            file_size_dict[path] = length
        return -ans
Пример #3
0
 def send_delete_request(self, ip, files):
     c_channel = Channel.MogamiChanneltoData(ip)
     ans = c_channel.delfile_req(files)
     c_channel.close_req()
     c_channel.finalize()