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
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
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()