public String getDataSourceName() { return dsd.getName(); }
public String getName() { return dsDescription.getName(); }
/** Return the name of a dataset, or "<null>" if not registered. */ public default String getDataSourceName(Id dsRef) { DataSourceDescription dsd = getDataSourceDescription(dsRef); if ( dsd == null ) return "<null>"; return dsd.getName(); }
protected Optional<Id> findByName(String name) { return find(dsd-> Objects.equals(dsd.getName(), name)) ; }
protected Optional<Id> findByURI(String uri) { return find(dsd-> Objects.equals(dsd.getName(), uri)) ; }
static Optional<Id> find(DeltaLink dLink, String name) { Objects.requireNonNull(dLink); Objects.requireNonNull(name); List <DataSourceDescription> all = dLink.listDescriptions(); return all.stream() .filter(dsd-> Objects.equals(dsd.getName(), name)) .findFirst() .map(dsd->dsd.getId()); } }
protected DataSourceDescription getDescription() { if ( description == null ) { description = getDescriptions().stream() .filter(dsd-> Objects.equals(dsd.getName(), dataSourceName) || Objects.equals(dsd.getUri(), dataSourceURI)) .findFirst().orElse(null); if ( description == null ) throw new CmdException("Source '"+dataSourceName+"' does not exist"); } return description; }
static void create(DeltaLink dLink, String name, String url) { Objects.requireNonNull(dLink); Objects.requireNonNull(name); Objects.requireNonNull(url); List <DataSourceDescription> all = dLink.listDescriptions(); boolean b = all.stream().anyMatch(dsd-> Objects.equals(dsd.getName(), name)); if ( b ) throw new CmdException("Source '"+name+"' already exists"); Id id = dLink.newDataSource(name, url); DataSourceDescription dsd = dLink.getDataSourceDescription(id); System.out.println("Created "+dsd); }
protected void create(String name, String url) { Objects.requireNonNull(name); Objects.requireNonNull(url); List <DataSourceDescription> all = dLink.listDescriptions(); boolean b = all.stream().anyMatch(dsd-> Objects.equals(dsd.getName(), name)); if ( b ) throw new CmdException("Source '"+name+"' already exists"); Id id = dLink.newDataSource(name, url); DataSourceDescription dsd = dLink.getDataSourceDescription(id); System.out.println("Created "+dsd); }
@Override public String toString() { return String.format("PatchLog [%s, ver=%d head=%s]", dsd.getName(), getLatestVersion(), getLatestId()); }
@Override protected PatchLog newPatchLog(DataSourceDescription dsd) { Path patchLogArea = serverRoot.resolve(dsd.getName()); if ( ! Files.exists(patchLogArea) ) CfgFile.setupDataSourceByFile(serverRoot, this, dsd); Location loc = Location.create(patchLogArea.toString()); PatchLog pLog = PatchLogFile.attach(dsd, this, loc); return pLog; }
@Override public PatchStorage newPatchStorage(DataSourceDescription dsd, PatchStore patchStore, LocalServerConfig configuration) { DetailsS3 s3 = ((PatchStoreZkS3)patchStore).access(); String logPrefix = s3.prefix+dsd.getName()+"/"; return new PatchStorageS3(s3.client, s3.bucketName, logPrefix); } }
@Override public String toString() { return String.format("[DataSource:%s %s (%s)]", dsDescription.getName(), dsDescription.getId(), patchLog.getPatchStore().getProvider().getShortName()); } }
@Override public PatchLogIndex newPatchLogIndex(DataSourceDescription dsd, PatchStore patchStore, LocalServerConfig configuration) { PatchStoreZk patchStoreZk = (PatchStoreZk)patchStore; String logPath = zkPath(ZkConst.pLogs, dsd.getName()); return new PatchLogIndexZk(patchStoreZk.getClient(), patchStoreZk.getInstance(), dsd, logPath); }
@Override public PatchStorage newPatchStorage(DataSourceDescription dsd, PatchStore patchStore, LocalServerConfig configuration) { PatchStoreZk patchStoreZk = (PatchStoreZk)patchStore; String logPath = zkPath(ZkConst.pLogs, dsd.getName()); return new PatchStorageZk(patchStoreZk.getClient(), patchStoreZk.getInstance(), logPath); }
private void setupState$(DataSourceDescription dsd, LocalStorageType storageType) { Id datasourceId = dsd.getId(); if ( zone.exists(datasourceId) ) { DataState dataState = zone.get(datasourceId); throw new DeltaConfigException("Local data source management already exists: "+dataState.getDatasourceName()); } DataState dataState = zone.create(datasourceId, dsd.getName(), dsd.getUri(), storageType); }
@Override protected void delete(PatchLog patchLog) { clusterLock(()->{ String dsName = patchLog.getDescription().getName(); PatchLog patchLog2 = patchLogs.remove(dsName); if ( patchLog2 == null ) // Already gone. return; FmtLog.info(LOGZK, "[%s] delete patch log '%s'", instance, dsName); // Remove from activeLogs, leave in the "logs" area. // This triggers watchers. String zkActiveLog = zkPath(ZkConst.pActiveLogs, dsName); if ( zkExists(client, zkActiveLog) ) { zkDelete(client, zkActiveLog); } String logPath = zkPath(ZkConst.pLogs, dsName); // Clear up. zkDelete(client, logPath); }, null); }
private void setupExternal(DataSourceDescription dsd, DatasetGraph dsg) { Id datasourceId = dsd.getId(); if ( zone.exists(datasourceId) ) { DataState dataState = zone.get(datasourceId); throw new DeltaConfigException("Can't attach: data source already exists locally: "+dataState.getDatasourceName()); } DataState dataState = zone.create(datasourceId, dsd.getName(), dsd.getUri(), LocalStorageType.EXTERNAL); externalStorage(datasourceId, dsg); }
@Test public void cmd_mk() { String LOG_NAME = "ABC_1"; cmdq("mk", "--server="+serverURL, LOG_NAME); DataSourceDescription dsd = dLink.getDataSourceDescriptionByName(LOG_NAME); assertNotNull(dsd); assertEquals(LOG_NAME, dsd.getName()); List<DataSourceDescription> list = dLink.listDescriptions(); assertEquals(1, list.size()); DeltaLog log = new DeltaLog(dLink, dsd.getId()); PatchLogInfo info = log.info(); assertEquals(0, log.getCurrentVersion().value()); }
public void recovery1() { PatchStore ps = provider(); // Match dsd2 below DataSourceDescription dsdSetup = new DataSourceDescription(Id.create(), "ABC", "http://example/ABC"); PatchLog patchLog = ps.createLog(dsdSetup); RDFPatch patch = RDFPatchOps.emptyPatch(); patchLog.append(patch); PatchLogInfo info = patchLog.getInfo(); Id id = patchLog.getLogId(); DataSourceDescription dsd = patchLog.getDescription(); DPS.resetSystem(); String name = dsd.getName(); PatchStore provider = provider(); // Same FileStore, different PatchLog? DataSourceDescription dsd2 = new DataSourceDescription(id, name, "http://example/ABC"); PatchLog patchLog1 = provider.connectLog(dsd2); PatchLogInfo info1 = patchLog1.getInfo(); assertEquals(info, info1); }