Ejemplo n.º 1
0
    def getProperties(self,bucket, idObj,field,uid,gid,context):
        self._LOGGER.info("Getting object properties ")
        if self._LOGGER.getEffectiveLevel() == 10:
            self._ourDebug(bucket, idObj,field,uid, gid , context)   
        item, meta = self.cacheMng.getMetaItem(idObj, field)
       
        if item and meta['vers']==-1:
            self._LOGGER.info("If item is subscribed ") 
            return item
        
        if item and self._isValid(item, meta):
            self._LOGGER.info("The version is cache-coerent") 
            self._LOGGER.debug("meta  %s" % meta)
            return item
        
        if not self._isValid(item, meta):
            self.srv_num_get_failed += 1
            msg = JsonRPCPayload('getObjectVersion',[idObj,field,uid,gid,context])
            self._send(msg)

            if meta:
                if meta['vers'] == msg.get('result'):
                    self._LOGGER.info("The version is coerent with cache version") 
                    return item 
                
        self.srv_num_get += 1           
        msg = JsonRPCPayload('getAttributes',[idObj,field,uid,gid,context])
        self._send(msg)
        item = msg.get('result')
        self.cacheMng.setMetaItem(idObj,field,item,item['vers'])
        self.srv_num_set += 1
        return item
Ejemplo n.º 2
0
    def getProperties(self, bucket, idObj, field, context):
        #context should have context.gid, context,uid, context,token
        gid, uid, token = '','',''
        self._LOGGER.info("Getting object properties ")
        if self._LOGGER.getEffectiveLevel() == 10:
            self._ourDebug(bucket, idObj, field, uid, gid , token)   
            
        #Check presence in cache     
        item, meta = self.cacheMng.getMetaItem(idObj, field)
       
        #Check Subscribe 
        if item != None and meta != None and meta['vers'] == -1:
            self._LOGGER.debug("meta  %s" % meta)
            return item
        
        #Check if the object is unchanged
        elif item != None:
            self.COUNTER['srv_num_get'] += 1
            msg = JsonRPCPayload('getObjectVersion',[idObj,field, uid, gid, token])
            self._send(bucket,msg)

            if meta['vers'] == msg.get('result'):
                self._LOGGER.info("The version is coerent with cache version") 
                return item 
        
        # Not Present in cache
        self.COUNTER['srv_num_get_failed'] += 1        
        msg = JsonRPCPayload('getAttributes',[idObj,field, uid, gid, token])
        self._send(bucket,msg)
        item = msg.get('result')
        self.cacheMng.setMetaItem(idObj, field, item, item['vers'])
        self.COUNTER['srv_num_set'] += 1
        return item
Ejemplo n.º 3
0
 def setAttributes(self,bucket, idObj, obj, context):
     self._LOGGER.info("Setting object attributes ")
     if self._LOGGER.getEffectiveLevel() == 10:
         self._ourDebug(bucket, idObj, context.uid, context.gid , context)   
     
     #RPC         
     msg = JsonRPCPayload('setAttributes',[bucket,idObj, obj, context.uid, context.gid, context])
     self._send(bucket,msg)
     vers = msg.get('result')
     self.cacheMng.setMetaItem(idObj, field, obj, vers)
     return msg.get('result')
Ejemplo n.º 4
0
    def getObjectSegment(self, bucket,  idObj, idSeg, uid, gid, context):
        self._LOGGER.info("Getting object Segment ")
        if self._LOGGER.getEffectiveLevel() == 10:
            self._ourDebug(bucket, idObj,uid, gid , context)     
        '''field = 'segment-'+idSeg
        '########### filed del mio getObjectSegment', field
        item, meta = self.cacheMng.getMetaItem(idObj, field)
        '########### guardo se ho in cache meta e item',meta,item
       
        if item and meta['vers']==-1:
            return item
        
        if item and self._isValid(item, meta):
            return item
        
        if not self._isValid(item, meta):
            msg = JsonRPCPayload('getObjectVersion',[idObj,field,uid,gid,context])
            self._send(msg)

            if meta:
                if meta['vers'] == msg.get('result'):
                    print 'item',item
                    return item            

        '########### getto object segment'''
        msg = JsonRPCPayload('getObjectSegment',[idObj,idSeg, uid, gid,context])
        self._send(bucket,msg)
        item = msg.get('result')
        '''self.cacheMng.setMetaItem(idObj,field,item,item['vers'])'''
        return item 
Ejemplo n.º 5
0
 def setAttributesFromNew(self,bucket, idObj,obj,uid,gid,context):
     self._LOGGER.info("Setting object attributes ")
     if self._LOGGER.getEffectiveLevel() == 10:
         self._ourDebug(bucket, idObj,uid, gid , context)            
     msg = JsonRPCPayload('setAttributesFromNew',[bucket,idObj,obj,uid,gid,context])
     self._send(bucket,msg)
     return msg.get('result')      
Ejemplo n.º 6
0
 def setObjectSegment(self, bucket,  idObj, idSeg, seg, uid, gid, context):
     self._LOGGER.info("Setting object Segment ")
     if self._LOGGER.getEffectiveLevel() == 10:
         self._ourDebug(bucket, idObj,idSeg,seg,uid, gid , context)  
     msg = JsonRPCPayload('setObjectSegment',[idObj,str(idSeg), seg, uid, gid,context])
     self._send(bucket,msg)
     return msg.get('result')  
Ejemplo n.º 7
0
 def removeSegment(self,bucket, idObj, key, uid=None, gid=None, context=None):
     self._LOGGER.info("Removing Segment ")
     if self._LOGGER.getEffectiveLevel() == 10:
         self._ourDebug(bucket, idObj,key,uid, gid , context) 
     msg = JsonRPCPayload('remove',[bucket,idObj, key, uid, gid,context])
     self._sendData(bucket,msg)
     return msg.get('result')  
Ejemplo n.º 8
0
 def listObjectXattr(self, bucket, idObj, uid, gid, context):
     self._LOGGER.info("Listing object Xattr ")
     if self._LOGGER.getEffectiveLevel() == 10:
         self._ourDebug(bucket, idObj,uid, gid , context)   
     msg = JsonRPCPayload('listObjectXattr',[idObj, uid, gid,context])
     self._send(msg)
     return msg.get('result')   
Ejemplo n.º 9
0
 def setObjectUtime(self, bucket, idObj, utime, uid, gid, context):
     self._LOGGER.info("Setting object mode ")
     if self._LOGGER.getEffectiveLevel() == 10:
         self._ourDebug(bucket, idObj,utime,uid, gid , context)          
     msg = JsonRPCPayload('setObjectUtime',[idObj,utime,uid,gid,context])
     self._send(msg)
     return msg.get('result')
Ejemplo n.º 10
0
 def delObjectXattr(self, bucket, idObj, name, context):
     self._LOGGER.info("Deleting object Xattr ") 
     if self._LOGGER.getEffectiveLevel() == 10:
         self._ourDebug(bucket, idObj,name, context.uid, context.gid , context.token)  
     msg = JsonRPCPayload('delObjectXattr',[bucket,idObj, name, context.uid, context.gid, context.token])
     self._send(bucket,msg)
     #FIXME CACHE INVALIDATION
     return msg.get('result')
Ejemplo n.º 11
0
 def getObjectList(self,bucket,idObj,uid,gid,context):
     self._LOGGER.info("Getting object list %s")
     if self._LOGGER.getEffectiveLevel() == 10:
         self._ourDebug(bucket, idObj,uid, gid , context)    
     msg = JsonRPCPayload('getObjectList',[idObj,uid,gid,context])
     self._send(msg)
     
     return msg.get('result')
Ejemplo n.º 12
0
 def removeObject(self, bucket, idObj, uid, gid, context):
     self._LOGGER.info("Removing object %s")
     if self._LOGGER.getEffectiveLevel() == 10:
         self._ourDebug(bucket, idObj,uid, gid , context)    
     msg = JsonRPCPayload('removeObject',[idObj, uid, gid,context])
     self._send(msg)
     self.cacheMng.delMetaObj(idObj)
     self.srv_num_set += 1
     return msg.get('result')
Ejemplo n.º 13
0
 def createObject(self, bucket, path, obj_type, mode, uid, gid , context):
     self._LOGGER.info("Creating object %s")
     if self._LOGGER.getEffectiveLevel() == 10:
         self._ourDebug(bucket, path, obj_type, mode, context.uid, context.gid , context.token)
     
     # Send messagge
     msg = JsonRPCPayload('createObject',[ bucket, path, obj_type, mode, context.uid, context.gid, context.token])
     self._send(bucket,msg)
     return msg.get('result')     
Ejemplo n.º 14
0
 def listObjectXattr(self, bucket, idObj,  context):
     self._LOGGER.info("Listing object Xattr ")
     if self._LOGGER.getEffectiveLevel() == 10:
         self._ourDebug(bucket, idObj, context.uid, context.gid , context)
     
     #RPC   
     msg = JsonRPCPayload('listObjectXattr',[idObj, context.uid, context.gid, context.token])
     self._send(bucket,msg)
     #FIXME CACHE        
     return msg.get('result')   
Ejemplo n.º 15
0
 def setObjectUtime(self, bucket, idObj, utime, context):
     self._LOGGER.info("Setting object mode ")
     if self._LOGGER.getEffectiveLevel() == 10:
         self._ourDebug(bucket, idObj,utime, context.uid, context.gid , context.token)     
     
     #RPC     
     msg = JsonRPCPayload('setObjectUtime',[bucket,idObj,utime, context.uid, context.gid, context.token])
     self._send(bucket,msg)
     #FIXME CACHE INVALIDATION
     return msg.get('result')
Ejemplo n.º 16
0
 def setObjectXattr(self, bucket, idObj, name, value,  context):
     self._LOGGER.info("Setting object Xattr ")
     if self._LOGGER.getEffectiveLevel() == 10:
         self._ourDebug(bucket, idObj,name, value, context.uid, context.gid , context)
     
     #RPC  
     msg = JsonRPCPayload('setObjectXattr',[bucket,idObj, name, value,  context.uid, context.gid,context])
     self._send(bucket,msg)
     #FIXME CACHE 
     return msg.get('result')
Ejemplo n.º 17
0
 def createObject(self, bucket, path, obj_type, mode, uid, gid , context):
     print '####################'
     print 'CACHE CREATE OBJ'
     print bucket, path, obj_type, mode, uid, gid , context
     print '####################'
     self._LOGGER.info("Creating object %s")
     if self._LOGGER.getEffectiveLevel() == 10:
         self._ourDebug(bucket, path, obj_type, mode, uid, gid , context)
     msg = JsonRPCPayload('createObject',[ bucket, path, obj_type, mode, uid, gid, context])
     self._send(msg)
     return msg.get('result')     
Ejemplo n.º 18
0
 def removeObject(self, bucket, idObj, context):
     self._LOGGER.info("Removing object %s")
     if self._LOGGER.getEffectiveLevel() == 10:
         self._ourDebug(bucket, idObj, context.uid, context.gid , context.token)  
     
     # RPC      
     msg = JsonRPCPayload('removeObject',[bucket,idObj, context.uid, context.gid, context.token])
     self._send(bucket,msg)
     self.cacheMng.delMetaObj(idObj)
     self.COUNTER['srv_num_set'] += 1
     return msg.get('result')
Ejemplo n.º 19
0
 def getObjectList(self, bucket,idObj, context):
     context = ConnectionManager.context
     self._LOGGER.info("Getting object list %s")
     if self._LOGGER.getEffectiveLevel() == 10:
         self._ourDebug(bucket, idObj, context.uid, context.gid , context.security) 
     
     # RPC
     # FIXME cache dir item !!!
     msg = JsonRPCPayload('getObjectList',[idObj, context.uid, context.gid, context.token])
     self._send(bucket,msg)
     
     return msg.get('result')
Ejemplo n.º 20
0
 def findCluster(self,bucket_name):
     self._LOGGER.info("FIND Cluster %s" % bucket_name)
     if self._LOGGER.getEffectiveLevel() == 10:
         self._ourDebug(bucket_name)
     msg = JsonRPCPayload('findCluster',[bucket_name])
     self._sendService(msg)
     ip_list = msg.get('result')
     ping_list = []
     for ip_address in ip_list:
         RTT = Ping.doOne(ip_address)
         ping_list.append((ip_address,RTT))
     ping_list = sorted(ping_list, key=lambda i:i[-1])
     return ping_list      
Ejemplo n.º 21
0
 def writeBlock(self,bucket, idObj, key , block, bhash, uid=None, gid=None, context=None):
     self._LOGGER.info("Writing Block ")
     if self._LOGGER.getEffectiveLevel() == 10:
         self._ourDebug(bucket, idObj,key,block,bhash,uid, gid , context)  
     if isinstance(block,unicode):
         block = str(block)
     
     msg = JsonRPCPayload('writeBlock',[bucket,idObj, key, Binary(block,1), bhash, uid, gid,context])
     self._sendData(bucket,msg)
     item = msg.get('result')
     if not item:
         self._LOGGER.info("Writing Block in cache") 
         self.cacheMng.writeBlock(bucket, idObj, key, bhash, block)
         self.COUNTER['srv_num_set'] += 1
     return item  
Ejemplo n.º 22
0
 def _findCluster(self,bucket_name):
     ping_list = []
     if options.service_mode == 'ip':
         ping_list.append(options.service_ip+':'+options.service_port)
         ip_list = []
         for i in ping_list:
             ip = i.split(':')
             ip_list.append(ip[0])
         for ip_address in ip_list:
             RTT = Ping.doOne(ip_address)
             ping_list.append((ip_address+':'+options.service_port,RTT))
         ping_list = sorted(ping_list, key=lambda i:i[-1])
     else:
         msg = JsonRPCPayload('findCluster',[bucket_name])
         data = self.conn_service.send(msg.getPacket())
         msg.load(data)
         ping_list = msg.get('result')
         
     return ping_list 
Ejemplo n.º 23
0
    def _findCluster(self, bucket_name):
        ping_list = []
        if options.service_mode == 'ip':
            ping_list.append(options.service_ip + ':' + options.service_port)
            ip_list = []
            for i in ping_list:
                ip = i.split(':')
                ip_list.append(ip[0])
            for ip_address in ip_list:
                RTT = Ping.doOne(ip_address)
                ping_list.append(
                    (ip_address + ':' + options.service_port, RTT))
            ping_list = sorted(ping_list, key=lambda i: i[-1])
        else:
            msg = JsonRPCPayload('findCluster', [bucket_name])
            data = self.conn_service.send(msg.getPacket())
            msg.load(data)
            ping_list = msg.get('result')

        return ping_list
Ejemplo n.º 24
0
 def remove(self,bucket, idObj, uid=None, gid=None, context=None):
     msg = JsonRPCPayload('removeObject',[bucket,idObj, uid, gid,context])
     self._sendData(bucket,msg)
     return msg.get('result')
Ejemplo n.º 25
0
 def lookup(self,bucket, path):
     self._LOGGER.info("Lookup operation %s" % path) 
     msg = JsonRPCPayload('lookup',[bucket, path])
     self._send(bucket,msg)
     return msg.get('result')      
Ejemplo n.º 26
0
        print payr.getPayload()
        
        #DELETE OBJECT
        print '######DELETE OBJECT######'
        
        payload = JsonRPCPayload()
        payload.setRequest('access', ['momo3','/ciao2.txt','manfred'])
        print type(payload)
        websock.send(payload.getPacket())
        result =  websock.recv()
        print result
        payr = JsonRPCPayload()
        payr.load(result)
        print payr.getPayload()
        
        payload.setRequest('removeObject',[payr.get('result'), 'manfred'])
        websock.send(payload.getPacket())
        result =  websock.recv()
        print result
        payr = JsonRPCPayload()
        payr.load(result)
        print payr.getPayload()
        
        #CREATE OBJECT DIR
        print '######CREATE OBJECT DIR######'

        
        payload = JsonRPCPayload()
        payload.setRequest('access', ['momo3','/','manfred'])
        print type(payload)
        websock.send(payload.getPacket())
Ejemplo n.º 27
0
        print payr.getPayload()

        #DELETE OBJECT
        print '######DELETE OBJECT######'

        payload = JsonRPCPayload()
        payload.setRequest('access', ['momo3', '/ciao2.txt', 'manfred'])
        print type(payload)
        websock.send(payload.getPacket())
        result = websock.recv()
        print result
        payr = JsonRPCPayload()
        payr.load(result)
        print payr.getPayload()

        payload.setRequest('removeObject', [payr.get('result'), 'manfred'])
        websock.send(payload.getPacket())
        result = websock.recv()
        print result
        payr = JsonRPCPayload()
        payr.load(result)
        print payr.getPayload()

        #CREATE OBJECT DIR
        print '######CREATE OBJECT DIR######'

        payload = JsonRPCPayload()
        payload.setRequest('access', ['momo3', '/', 'manfred'])
        print type(payload)
        websock.send(payload.getPacket())
        result = websock.recv()