def __create_or_lookup_cpl_object(self, prefix, name, type=None, create=None): ''' Create or lookup a CPL object ** Parameters ** prefix name: name type: type, type can be none for lookup create: None: lookup or create True: create only False: lookup only ''' if create == None: ret, idp = CPLDirect.cpl_lookup_or_create_object(prefix, name, type) if ret == S_OBJECT_CREATED: ret = S_OK elif create: ret, idp = CPLDirect.cpl_create_object(prefix, name, type) else: ret, idp = CPLDirect.cpl_lookup_object(prefix, name, type) if ret == E_NOT_FOUND: raise LookupError('Not found') if not CPLDirect.cpl_is_ok(ret): raise CPLException('Could not find or create' + ' provenance object: ' + CPLDirect.cpl_error_string(ret), ret) r = cpl_object(idp) return r
def create_bundle(self, name, prefix): ret, idp = CPLDirect.cpl_create_object(prefix, name, BUNDLE) if not CPLDirect.cpl_is_ok(ret): raise CPLException('Could not create' + ' provenance bundle: ' + CPLDirect.cpl_error_string(ret), ret) r = cpl_object(idp) return r
def __create_or_lookup_cpl_object(self, originator, name, type, create=None, container=None): ''' Create or lookup a CPL object ** Parameters ** originator name: originator-local name type: originator-local type create: None: lookup or create True: create only False: lookup only container: Id of container into which to place this object. Only applies to create ''' if container is None: container_id = NONE else: container_id = container.id idp = CPLDirect.new_cpl_id_tp() if create == None: ret = CPLDirect.cpl_lookup_or_create_object( originator, name, type, container_id, idp) if ret == S_OBJECT_CREATED: ret = S_OK elif create: ret = CPLDirect.cpl_create_object(originator, name, type, container_id, idp) else: ret = CPLDirect.cpl_lookup_object(originator, name, type, idp) if ret == E_NOT_FOUND: CPLDirect.delete_cpl_id_tp(idp) raise LookupError('Not found') if not CPLDirect.cpl_is_ok(ret): CPLDirect.delete_cpl_id_tp(idp) raise Exception('Could not find or create' + ' provenance object: ' + CPLDirect.cpl_error_string(ret)) r = cpl_object(idp) CPLDirect.delete_cpl_id_tp(idp) return r
def __create_or_lookup_cpl_object(self, originator, name, type, create=None, container=None): ''' Create or lookup a CPL object ** Parameters ** originator name: originator-local name type: originator-local type create: None: lookup or create True: create only False: lookup only container: Id of container into which to place this object. Only applies to create ''' if container is None: container_id = NONE else: container_id = container.id idp = CPLDirect.new_cpl_id_tp() if create == None: ret = CPLDirect.cpl_lookup_or_create_object(originator, name, type, container_id, idp) if ret == S_OBJECT_CREATED: ret = S_OK elif create: ret = CPLDirect.cpl_create_object(originator, name, type, container_id, idp) else: ret = CPLDirect.cpl_lookup_object(originator, name, type, idp) if ret == E_NOT_FOUND: CPLDirect.delete_cpl_id_tp(idp) raise LookupError('Not found') if not CPLDirect.cpl_is_ok(ret): CPLDirect.delete_cpl_id_tp(idp) raise Exception('Could not find or create' + ' provenance object: ' + CPLDirect.cpl_error_string(ret)) r = cpl_object(idp) CPLDirect.delete_cpl_id_tp(idp) return r
def __create_or_lookup_cpl_object(self, prefix, name, type=None, create=None, bundle=None): ''' Create or lookup a CPL object ** Parameters ** prefix name: name type: type, type can be none for lookup create: None: lookup or create True: create only False: lookup only bundle: Id of bundle into which to place this object, can be none ''' if bundle == None: bundle_id = NONE else: bundle_id = bundle.id if create == None: ret, idp = CPLDirect.cpl_lookup_or_create_object(prefix, name, type, bundle_id) if ret == S_OBJECT_CREATED: ret = S_OK elif create: ret, idp = CPLDirect.cpl_create_object(prefix, name, type, bundle_id) else: ret, idp = CPLDirect.cpl_lookup_object(prefix, name, type, bundle_id) if ret == E_NOT_FOUND: raise LookupError('Not found') if not CPLDirect.cpl_is_ok(ret): raise CPLException('Could not find or create' + ' provenance object: ' + CPLDirect.cpl_error_string(ret), ret) r = cpl_object(idp) return r