public @Nonnull Path getNetworkDir(NetworkId network) { return _baseDir.resolve(network.getId()); }
@Override public void assignNetwork(String network, NetworkId networkId) { Path idFile = getNetworkIdPath(network); idFile.getParent().toFile().mkdirs(); CommonUtil.writeFile(idFile, networkId.getId()); }
/** * Get all completed work for the specified network and snapshot. * * @param network {@link NetworkId} to get completed work for. * @param snapshot {@link SnapshotId} to get completed work for. * @return {@link List} of completed {@link QueuedWork}. */ public synchronized List<QueuedWork> getCompletedWork(NetworkId network, SnapshotId snapshot) { ImmutableList.Builder<QueuedWork> b = ImmutableList.builder(); for (QueuedWork work : _queueCompletedWork) { if (work.getWorkItem().getContainerName().equals(network.getId()) && work.getWorkItem().getTestrigName().equals(snapshot.getId())) { b.add(work); } } return b.build(); }
/** Gets the {@link ReferenceLibrary} for the network */ @Override public ReferenceLibrary getReferenceLibraryData() { Path libraryPath = _settings .getStorageBase() .resolve(_settings.getContainer().getId()) .resolve(BfConsts.RELPATH_REFERENCE_LIBRARY_PATH); try { return ReferenceLibrary.read(libraryPath); } catch (IOException e) { _logger.errorf("Could not read reference library data from %s: %s", libraryPath, e); return null; } }
private void writeJsonAnswerWithLog(@Nullable String logString, String structuredAnswerString) { // Write log of WorkItem task to the configured path for logs if (logString != null && _settings.getTaskId() != null) { Path jsonPath = _settings .getStorageBase() .resolve(_settings.getContainer().getId()) .resolve(BfConsts.RELPATH_SNAPSHOTS_DIR) .resolve(_settings.getTestrig().getId()) .resolve(BfConsts.RELPATH_OUTPUT) .resolve(_settings.getTaskId() + BfConsts.SUFFIX_ANSWER_JSON_FILE); CommonUtil.writeFile(jsonPath, logString); } // Write answer.json and answer-pretty.json if WorkItem was answering a question if (_settings.getQuestionName() != null) { writeJsonAnswer(structuredAnswerString); } }
Main.getWorkMgr().getNetworkNames().stream() .filter( n -> Main.getWorkMgr().getIdManager().getNetworkId(n).getId().equals(networkId)) .findFirst(); checkArgument(networkOpt.isPresent(), "Invalid network ID: %s", networkId);
public static void initTestrigSettings(Settings settings) { SnapshotId testrig = settings.getTestrig(); Path containerDir = settings.getStorageBase().resolve(settings.getContainer().getId()); if (testrig != null) { applyBaseDir(settings.getBaseTestrigSettings(), containerDir, testrig); SnapshotId deltaTestrig = settings.getDeltaTestrig(); TestrigSettings deltaTestrigSettings = settings.getDeltaTestrigSettings(); if (deltaTestrig != null) { applyBaseDir(deltaTestrigSettings, containerDir, deltaTestrig); } if (settings.getDiffActive()) { settings.setActiveTestrigSettings(settings.getDeltaTestrigSettings()); } else { settings.setActiveTestrigSettings(settings.getBaseTestrigSettings()); } } else { throw new CleanBatfishException("Must supply argument to -" + BfConsts.ARG_TESTRIG); } }
@Test public void listIncompleteWorkForSpecificStatus() throws Exception { initSnapshotMetadata("testrig", ProcessingStatus.UNINITIALIZED); QueuedWork work1 = resolvedQueuedWork( new WorkItem(NETWORK, "testrig"), new WorkDetails("testrig", WorkType.PARSING)); QueuedWork work2 = resolvedQueuedWork( new WorkItem(NETWORK, "testrig"), new WorkDetails("testrig", WorkType.UNKNOWN)); _workQueueMgr.queueUnassignedWork(work1); _workQueueMgr.queueUnassignedWork(work2); List<QueuedWork> parsingWorks = _workQueueMgr.listIncompleteWork(_networkId.getId(), null, WorkType.PARSING); assertThat(parsingWorks, equalTo(Collections.singletonList(work1))); }
@Test public void listIncompleteWork() throws Exception { initSnapshotMetadata("testrig", ProcessingStatus.UNINITIALIZED); Main.getWorkMgr().initNetwork("other", null); WorkMgrTestUtils.initSnapshotWithTopology("other", "testrig", ImmutableSet.of()); initSnapshotMetadata("other", "testrig", ProcessingStatus.UNINITIALIZED); QueuedWork work1 = resolvedQueuedWork( new WorkItem(NETWORK, "testrig"), new WorkDetails("testrig", WorkType.UNKNOWN)); QueuedWork work2 = resolvedQueuedWork( new WorkItem("other", "testrig"), new WorkDetails("testrig", WorkType.UNKNOWN)); _workQueueMgr.queueUnassignedWork(work1); _workQueueMgr.queueUnassignedWork(work2); List<QueuedWork> works = _workQueueMgr.listIncompleteWork(_networkId.getId(), null, null); assertThat(works, equalTo(Collections.singletonList(work1))); }
@Test public void listIncompleteWorkForSpecificTestrig() throws Exception { initSnapshotMetadata("testrig", ProcessingStatus.UNINITIALIZED); initSnapshotMetadata("testrig2", ProcessingStatus.UNINITIALIZED); QueuedWork work1 = resolvedQueuedWork( new WorkItem(NETWORK, "testrig"), new WorkDetails("testrig", WorkType.UNKNOWN)); QueuedWork work2 = resolvedQueuedWork( new WorkItem(NETWORK, "testrig2"), new WorkDetails("testrig2", WorkType.UNKNOWN)); _workQueueMgr.queueUnassignedWork(work1); _workQueueMgr.queueUnassignedWork(work2); SnapshotId snapshotId = Main.getWorkMgr().getIdManager().getSnapshotId("testrig", _networkId); List<QueuedWork> parsingWorks = _workQueueMgr.listIncompleteWork(_networkId.getId(), snapshotId.getId(), null); assertThat(parsingWorks, equalTo(Collections.singletonList(work1))); }
@Test public void dataplaningAfterParsingFailure() throws Exception { initSnapshotMetadata("other", ProcessingStatus.UNINITIALIZED); QueuedWork work1 = resolvedQueuedWork( new WorkItem(NETWORK, "other"), new WorkDetails("other", WorkType.PARSING)); _workQueueMgr.queueUnassignedWork(work1); QueuedWork work2 = resolvedQueuedWork( new WorkItem(NETWORK, "other"), new WorkDetails("other", WorkType.DATAPLANING)); _workQueueMgr.queueUnassignedWork(work2); QueuedWork aWork1 = doAction(new Action(ActionType.ASSIGN_SUCCESS, null)); // should be parsing work (work1) doAction(new Action(ActionType.STATUS_TERMINATED_ABNORMALLY, aWork1)); // work2 should be left with terminatedqueuefail status and the testrig in parsing_fail state assertThat(work2.getStatus(), equalTo(WorkStatusCode.REQUEUEFAILURE)); SnapshotId other = Main.getWorkMgr().getIdManager().getSnapshotId("other", _networkId); assertThat( WorkQueueMgr.getInitializationMetadata(_networkId.getId(), other.getId()) .getProcessingStatus(), equalTo(ProcessingStatus.PARSING_FAIL)); }
ActiveSpan activeSpan = GlobalTracer.get().activeSpan(); activeSpan .setTag("container-name", getContainerName().getId()) .setTag("testrig_name", getTestrigName().getId()); if (question.getInstance() != null) {