def sendNreadData(self,data,host,port):
        msg_len = struct.pack('>L', len(data))
        self.sd.sendall(msg_len + data)
        len_buf = self.receiveMsg(self.sd, 4)
        msg_len = struct.unpack('>L', len_buf)[0]
        msg_in = self.receiveMsg(self.sd, msg_len)
        r = pipe_pb2.CommandMessage();
        msg_read = r.ParseFromString(msg_in)
        count = msg_read.request.file.chunkCount
        print count
        filestack = range(count)
        filestack[msg_read.request.file.chunkId] = msg_read
        start=1
        filename = r.request.file.filename
        path = "C:\\Users\\mukul\\git\\fluffyglobal\\png\\"

        msg_len = struct.pack('>L', len(data))

        while start<count :
            len_buf = self.receiveMsg(self.sd, 4)
            msg_len = struct.unpack('>L', len_buf)[0]
            msg_in = self.receiveMsg(self.sd, msg_len)
            cl = pipe_pb2.CommandMessage();
            parsedmsg = cl.ParseFromString(msg_in)
            countid = parsedmsg.request.file.chunkId
            filestack[countid] = parsedmsg.request.file.data
            start= start+1
        result = self.mergefile(filestack)
        with open((path).append(filename), "w") as outfile:
          outfile.write(result)

        self.sd.close
        return r
Exemple #2
0
    def genChunkInfoPutMsg(self, filename, noofchunks, chunkid):

        print("SC 172 noofchunks")
        print noofchunks
        current_time = datetime.now().time()
        cm = pipe_pb2.CommandMessage()
        cm.header.node_id = 2
        cm.header.origin.id = 1
        cm.header.origin.host = self.host
        cm.header.origin.port = self.port
        cm.header.time = 10000
        cm.header.destination = 6
        clmsg2 = clientMessage_pb2.Operation.Value("PUT")
        #b = self.chunkFile()
        #cm.reqMsg.data = filecontent
        cm.reqMsg.key = filename
        cm.reqMsg.seq_no = chunkid
        cm.reqMsg.operation = clmsg2
        cm.reqMsg.chunkInfo.no_of_chunks = noofchunks
        cm.reqMsg.chunkInfo.seq_size = 1
        cm.reqMsg.chunkInfo.time = 123
        #cm.reqMsg.chunkInfo.time = current_time
        # cm.reqMsg = clmsg
        # cm.reqMsg.Value(clmsg)
        var = cm.SerializeToString()

        return var
Exemple #3
0
 def _recvCommandMessage(self):
     len_buf = self.receiveMessageFromServer(self.socket, 4)
     msg_in_len = struct.unpack('>L', len_buf)[0]
     msg_in = self.receiveMessageFromServer(self.socket, msg_in_len)
     r = pipe_pb2.CommandMessage()
     r.ParseFromString(msg_in)
     return r
Exemple #4
0
 def genPing(self):
     cm = pipe_pb2.CommandMessage()
     cm.header.node_id = 999
     cm.header.time = 11234
     cm.ping = True
     msg = cm.SerializeToString()
     return msg
 def buildPingCommandMessage(self, nodeId, time):
     newCommandMsg = pipe_pb2.CommandMessage()
     newCommandMsg.header.node_id = nodeId
     newCommandMsg.header.time = time
     newCommandMsg.ping = True
     newCommandMsgString = newCommandMsg.SerializeToString()
     self.logger.logInfoMessage("Client: Created a new ping message: " +
                                newCommandMsgString)
     return newCommandMsgString
 def buildGeneralMessage(self, nodeId, time, message):
     newCommandMsg = pipe_pb2.CommandMessage()
     newCommandMsg.header.node_id = nodeId
     newCommandMsg.header.time = time
     newCommandMsg.message = message
     newCommandMsgString = newCommandMsg.SerializeToString()
     self.logger.logInfoMessage(
         "Client: Created a new general build message: " +
         newCommandMsgString)
     return newCommandMsgString
 def getFile(self, filename):
     cm = pipe_pb2.CommandMessage()
     cm.globalHeader.cluster_id =3
     cm.globalHeader.time = 10000
     cm.globalHeader.destination_id = 6
     cm.request.requestId ="2"
     cm.request.requestType = pipe_pb2.RequestType.Value("READ")
     cm.request.fileName = filename
     var = cm.SerializeToString()
     result = self.sendNreadData(var, self.host, self.port)
Exemple #8
0
 def getFile(self, name):
     cm = pipe_pb2.CommandMessage()
     cm.header.node_id = 999
     cm.header.time = 11234
     cm.task.task_type = common_pb2.Task.TaskType.Value("READ")
     cm.task.sender = "127.0.0.1"
     cm.task.filename = name
     cm.message = name
     request = cm.SerializeToString()
     return request
 def deleteFile(self, filename):
     cm = pipe_pb2.CommandMessage()
     cm.globalHeader.cluster_id =3
     cm.globalHeader.time = 10000
     cm.globalHeader.destination_id = 6
     cm.request.requestId ="2"
     print (filename)
     print ("116")
     cm.request.requestType = pipe_pb2.RequestType.Value("DELETE")
     cm.request.file.filename = filename
     var = cm.SerializeToString()
     result = self.sendData(var, self.host, self.port)
Exemple #10
0
    def genChunkedMsg(self, filename, filecontent, noofchunks, chunkid):

        cm = pipe_pb2.CommandMessage()
        cm.header.node_id = 999
        cm.header.time = 11234

        cm.task.task_type = common_pb2.Task.TaskType.Value("WRITE")
        cm.task.sender = "127.0.0.1"
        cm.task.filename = filename
        cm.task.chunk_no = chunkid
        cm.task.no_of_chunks = noofchunks
        cm.fileContent = filecontent
        msg = cm.SerializeToString()
        return msg
Exemple #11
0
    def sendDataGet(self, data, host, port, path):

        print("SC 249")
        msg_len = struct.pack('>L', len(data))
        print("SC 251")
        self.sd.sendall(msg_len + data)
        print("SC 253 Send the get request")

        r = pipe_pb2.CommandMessage()
        #my_array = array('i', r)
        my_array = [] * 6
        iter = 0
        noChunk = 2
        while iter < noChunk:
            iter += 1
            len_buf = self.receiveMsg(self.sd, 4)
            #print
            print("SC 255 len_buf")
            print len_buf
            msg_len = struct.unpack('>L', len_buf)[0]
            msg_in = self.receiveMsg(self.sd, msg_len)
            print("SC 259 msg_in")
            print len(msg_in)
            print("SC 257")

            print("SC 259")
            r.ParseFromString(msg_in)
            #self.sd.close
            print("SC 262 Getting the chunk id")
            print r.resMsg.chunk_no
            index = int(r.resMsg.chunk_no)
            my_array.insert(index, r.resMsg.data)
            print("SC 277 Getting the total number of chunks")
            noChunk = r.resMsg.no_of_chunks
            print noChunk
            #totalCount = 2
            #self.sd.close
            #if totalCount <2:
            #    break
            print("SC 264 printing the value of r")
            #totalCount -= 1
            #print r
        fileDir = os.path.dirname(os.path.realpath('__file__'))
        path = os.path.join(fileDir, '../output/nasa2.jpg')
        for r in my_array:
            with open(path, "a") as outfile:
                outfile.write(r)

        return my_array
    def buildDeleteFileCommandMessage(self, nodeId, time, myIp, filename):
        newCommandMsg = pipe_pb2.CommandMessage()
        newCommandMsg.header.node_id = nodeId
        newCommandMsg.header.time = time

        newCommandMsg.message = filename
        newCommandMsg.filetask.file_task_type = pipe_pb2.FileTask.FileTaskType.Value(
            "DELETE")
        newCommandMsg.filetask.sender = myIp
        newCommandMsg.filetask.filename = filename

        newCommandMsgString = newCommandMsg.SerializeToString()
        self.logger.logInfoMessage("Client: Created a new delete message: " +
                                   newCommandMsgString)
        return newCommandMsgString
Exemple #13
0
 def genPing(self):
     print "Start request_ping() executing"
     cm = pipe_pb2.CommandMessage()
     cm.header.node_id = 6
     cm.header.origin.id = 1
     cm.header.origin.host = self.host
     cm.header.origin.port = self.port
     cm.header.time = 10000
     cm.header.destination = 6
     cm.ping = True
     print "request_ping() executing"
     print cm
     pingr = cm.SerializeToString()
     print "SC 133"
     #packed_len = struct.pack('>L', len(pingr))
     return pingr
Exemple #14
0
    def sendData(self, data, host, port):

        msg_len = struct.pack('>L', len(data))

        self.sd.sendall(msg_len + data)

        len_buf = self.receiveMsg(self.sd, 4)

        msg_in = self.receiveMsg(self.sd, len_buf)

        r = pipe_pb2.CommandMessage()

        r.ParseFromString(msg_in)

        self.sd.close

        return r
 def convChunkedMsg(self, filename, filecontent, noofchunks, chunkId,req):
     cm = pipe_pb2.CommandMessage()
     cm.globalHeader.cluster_id =3
     cm.globalHeader.time = 10000
     cm.globalHeader.destination_id = 6
     cm.request.requestId ="2"
     if(req.upper()=="WRITE"):
      cm.request.requestType = pipe_pb2.RequestType.Value("WRITE")
     if (req.upper() == "UPDATE"):
         cm.request.requestType = pipe_pb2.RequestType.Value("UPDATE")
     cm.request.fileName = filename
     cm.request.file.chunkId = chunkId;
     cm.request.file.data = filecontent
     cm.request.file.filename = filename
     cm.request.file.chunkCount = noofchunks
     print cm
     var = cm.SerializeToString()
     return var
    def buildWriteCommandMessage(self, nodeId, time, myIp, filename,
                                 chunkCount, chunkId, fileChunk):
        newCommandMsg = pipe_pb2.CommandMessage()
        newCommandMsg.header.node_id = nodeId
        newCommandMsg.header.time = time

        newCommandMsg.message = filename
        newCommandMsg.filetask.file_task_type = pipe_pb2.FileTask.FileTaskType.Value(
            "WRITE")
        newCommandMsg.filetask.sender = myIp
        newCommandMsg.filetask.filename = filename
        newCommandMsg.filetask.chunk_no = chunkId
        newCommandMsg.filetask.chunk_counts = chunkCount
        newCommandMsg.filetask.chunk = fileChunk

        newCommandMsgString = newCommandMsg.SerializeToString()
        self.logger.logInfoMessage(
            "Client: Created a new read write message: " + newCommandMsgString)
        return newCommandMsgString
Exemple #17
0
    def deleteFile(self, name):
        cm = pipe_pb2.CommandMessage()
        cm.header.node_id = 6
        cm.header.origin.id = 6
        cm.header.origin.host = self.host
        cm.header.origin.port = self.port
        cm.header.time = 10000
        #cm.message = name
        clmsg2 = clientMessage_pb2.Operation.Value("DEL")
        # b = self.chunkFile()

        #cm.reqMsg.data = filecontent
        cm.reqMsg.key = name
        #cm.reqMsg.seq_no = msgInt
        cm.reqMsg.operation = clmsg2
        # cm.reqMsg = clmsg
        # cm.reqMsg.Value(clmsg)
        var = cm.SerializeToString()

        return var
Exemple #18
0
def request_ping():
    print "Start request_ping() executing"

    cm = pipe_pb2.CommandMessage()
    cm.header.node_id=1
    cm.header.time=10000
    cm.header.destination=2
    cm.ping = True
    print "request_ping() executing"

    pingr = cm.SerializeToString()

    packed_len = struct.pack('>L', len(pingr))
    # Sending Ping Request to the server's public port
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # host = socket.gethostname() # Testing on own computer
    # port = 5570 # Public Port
    s.connect(("127.0.0.1", 4668))
    # Prepending the length field and sending
    s.sendall(packed_len + pingr)
    s.close()