def close( self ): if( self.top_handle != 0 ): FPNative.tag_close( self.top_handle ) self.check_error() if( self.handle != 0 ): FPNative.clip_close( self.handle ) self.check_error()
def _close(self): """Close a clip. If it's not open, just don't check for errors. """ if self.top_handle != 0: log.debug("Closing top_tag handle.") FPNative.tag_close(self.top_handle) self.check_error() self.top_handle = 0 if self.handle != 0: log.debug("Closing handle.") FPNative.clip_close(self.handle) self.check_error() self.handle = 0
def close(self, force=False): """ Deallocate pool resources. :param force: issue pool_close without checking if the pool is closed. :return: """ if self._opened or force: log.debug("Closing pool with handle: %r", self.handle) FPNative.pool_close(self.handle) self.check_error() self._opened = False log.debug("Pool correctly closed: %r", self.handle) else: log.warning("Trying to close an already closed pool at handle %r.", self.handle)
def __init__(self, pool, name=None, close_retries=0): # Validate inserted data. if pool is None: raise FPException("No Pool Reference") if name is not None: self.handle = FPNative.clip_create(pool.handle, name) self.check_error() self.pool_handle = pool.handle self.close_retries = close_retries def __getattr__(self, item): # Fallback on proxied methods. if item in _proxied_methods: def f(self, *args, **kwargs): m = getattr(FPNative, 'clip_' + item) ret = m(*args, **kwargs) self.check_error() f.__doc__ = m.__doc__ f.__name__ = m.__name__ return ret return f
def getNamedRetentionClass(self, name): retention_class = FPNative.retention_class_context_get_named_class( self.context, name) self.check_error() return retention_class
def getNextRetentionClass(self): retention_class = FPNative.retention_class_context_get_next_class( self.context) self.check_error() return retention_class
def getPreviousRetentionClass(self): retention_class = FPNative.retention_class_context_get_previous_class( self.context) self.check_error() return retention_class
def isRetentionClassValid( self, retention_class ): value = FPNative.clip_validate_retention_class( self.handle, \ retention_class ) self.check_error() return value
def getDescriptionAttribute( self, attribute ): value = FPNative.clip_get_description_attribute( self.handle, \ attribute ) self.check_error() return value
def getDescriptionAttributeIndex( self, index ): value = FPNative.clip_get_description_attribute_index( self.handle, \ index) self.check_error() return value
def getTopTag( self ): if( self.top_handle == 0 ): self.top_handle = FPNative.get_top_tag( self.handle ) self.check_error() return self.top_handle
def check_error(self): err = FPNative.get_last_error() if err != 0: errInfo = FPNative.get_last_error_info() if errInfo[5] == self.FP_NETWORK_ERROR: raise FPNetException(errInfo) elif errInfo[5] == self.FP_SERVER_ERROR: raise FPServerException(errInfo) elif errInfo[5] == self.FP_CLIENT_ERROR: raise FPClientException(errInfo) else: raise FPException(errInfo)
def openRetentionClassContext(self): value = FPNative.get_retention_class_context(self.handle) self.check_error() self.context = value return value
def open(self, clipid, mode=FPLibrary.FP_OPEN_ASTREE): """ :param clipid: :param mode: FPLibrary.FP_OPEN_ASTREE (default) or FPLibrary.FP_OPEN_FLAT :return: """ self.clipid = clipid self.handle = FPNative.clip_open(self.pool_handle, clipid, mode) self.check_error()
def __init__(self, tag, name=None): if(name is None): self.handle = tag if(name is not None): self.top_handle = tag self.handle = FPNative.tag_create(self.top_handle, name) self.check_error()
def __init__( self, pool, name=None ): if( pool == None ): raise FPException( "No Pool Reference" ) self.pool_handle = pool.handle if( name is not None ): self.handle = FPNative.clip_create( pool.handle, name ) self.check_error()
def getPoolInfo(self): poolInfo = FPNative.get_pool_info(self.handle) self.check_error() self.infoVersion = poolInfo[0] self.capacity = poolInfo[1] self.freeSpace = poolInfo[2] self.clusterid = poolInfo[3] self.clusterName = poolInfo[4] self.version = poolInfo[5] self.replicaAddress = poolInfo[6]
def getStringFormat(self, canonical): clipid = FPNative.clip_get_string_format(canonical) self.check_error() return clipid
def enableEbrWithClass(self, retention_class): FPNative.clip_enable_ebr_with_class(self.handle, retention_class) self.check_error()
def auditedDelete( self, clipid, reason, options ): FPNative.clip_audited_delete( self.pool_handle, clipid, \ reason, options ) self.check_error()
def fetchNext( self ): tag = FPNative.clip_fetch_next( self.handle ) self.check_error() return tag
def open( self, clipid, mode ): self.clipid = clipid self.handle = FPNative.clip_open( self.pool_handle, clipid, mode ) self.check_error()
def rawRead(self, stream): FPNative.clip_raw_read(self.handle, stream) self.check_error()
def getClipId(self): clipid = FPNative.clip_get_clip_id(self.handle) self.check_error() return clipid
def getName(self): self.name = FPNative.retention_class_get_name(self.handle) self.check_error() return self.name
def auditedDelete(self, clipid, reason, options): FPNative.clip_audited_delete(self.pool_handle, clipid, reason, options) self.check_error()
def triggerEbrEventWithClass(self, retention_class): FPNative.clip_trigger_ebr_event_with_class(self.handle, retention_class) self.check_error()
def triggerEbrEvent(self): FPNative.clip_trigger_ebr_event(self.handle) self.check_error()
def triggerEbrEventWithPeriod(self, seconds): FPNative.clip_trigger_ebr_event_with_period(self.handle, seconds) self.check_error()
def getEbrClassName(self): classname = FPNative.clip_get_ebr_class_name(self.handle) self.check_error() return classname
def getCreationDate(self): date = FPNative.clip_get_creation_date(self.handle) self.check_error() return date
def isEbrEnabled( self ): value = FPNative.clip_is_ebr_enabled( self.handle ) self.check_error() return value
def enableEbrWithPeriod(self, seconds): FPNative.clip_enable_ebr_with_period(self.handle, seconds) self.check_error()
def isModified( self ): value = FPNative.clip_is_modified( self.handle ) self.check_error() return value
def removeDescriptionAttribute( self, name ): FPNative.clip_remove_description_attribute( self.handle, name ) self.check_error()
def rawOpen(self, clipid, stream, options): self.clip = FPNative.clip_raw_open(self.pool_handle, clipid, stream, options) self.check_error()
def exists(self, clipid): b = FPNative.clip_exists(self.pool_handle, clipid) self.check_error() return b
def getNumDescriptionAttributes( self ): value = FPNative.clip_get_num_description_attributes( self.handle ) self.check_error() return value
def setRetentionPeriod(self, seconds): FPNative.clip_set_retention_period(self.handle, seconds) self.check_error()
def setDescriptionAttribute( self, name, value ): FPNative.clip_set_description_attribute( self.handle, name, value ) self.check_error()
def setRetentionHold(self, flag, id): FPNative.clip_set_retention_hold(self.handle, flag, id) self.check_error()
def setRetentionClass(self, retention_class): FPNative.clip_set_retention_class(self.handle, retention_class) self.check_error()
def setName(self, name): FPNative.clip_set_name(self.handle, name) self.check_error()
def write( self ): self.clipid = FPNative.clip_write( self.handle ) self.check_error() return self.clipid
def removeRetentionClass(self): FPNative.clip_remove_retention_class(self.handle) self.check_error()
def delete(self, clipid): FPNative.clip_delete(self.pool_handle, clipid) self.check_error()
def getTotalSize( self ): size = FPNative.clip_get_total_size( self.handle ) self.check_error() return size
def close(self): FPNative.retention_class_close(self.handle) self.check_error()
def getCanonicalFormat(self, clipid): self.canonical = FPNative.clip_get_canonical_format(clipid) self.check_error() return self.canonical
def getPeriod(self): self.period = FPNative.retention_class_get_period(self.handle) self.check_error() return self.period
def write(self): self.clipid = FPNative.clip_write(self.handle) self.check_error() return self.clipid