public void setDeltaTestrig(SnapshotId testrig) { _config.setProperty(BfConsts.ARG_DELTA_TESTRIG, testrig != null ? testrig.getId() : null); }
public @Nonnull Path getSnapshotDir(NetworkId network, SnapshotId snapshot) { return getNetworkDir(network).resolve(BfConsts.RELPATH_SNAPSHOTS_DIR).resolve(snapshot.getId()); }
@Override public void assignSnapshot(String snapshot, NetworkId networkId, SnapshotId snapshotId) { Path idFile = getSnapshotIdPath(snapshot, networkId); idFile.getParent().toFile().mkdirs(); CommonUtil.writeFile(idFile, snapshotId.getId()); }
/** The name of the [optional] topology file within a test-rig */ public static void applyBaseDir(TestrigSettings settings, Path containerDir, SnapshotId testrig) { Path testrigDir = containerDir.resolve(Paths.get(BfConsts.RELPATH_SNAPSHOTS_DIR, testrig.getId())); settings.setName(testrig); settings.setBasePath(testrigDir); }
/** * 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(); }
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); } }
params.put(BfConsts.ARG_TESTRIG, snapshotId.getId()); params.put(BfConsts.ARG_SNAPSHOT_NAME, snapshot); if (referenceSnapshot != null) { SnapshotId referenceSnapshotId = idManager.getSnapshotId(referenceSnapshot, networkId); params.put(BfConsts.ARG_DELTA_TESTRIG, referenceSnapshotId.getId()); return new WorkItem(workItem.getId(), networkId.getId(), snapshotId.getId(), params);
networkDir.resolve(Paths.get(BfConsts.RELPATH_SNAPSHOTS_DIR, baseSnapshotId.getId()));
private WorkDetails resolveIds(NetworkId networkId, WorkDetails workDetails) { IdManager idm = Main.getWorkMgr().getIdManager(); SnapshotId snapshot = idm.getSnapshotId(workDetails.baseTestrig, networkId); String referenceSnapshot = null; if (workDetails.deltaTestrig != null) { SnapshotId referenceSnapshotId = idm.getSnapshotId(workDetails.deltaTestrig, networkId); referenceSnapshot = referenceSnapshotId.getId(); } return new WorkDetails( snapshot.getId(), referenceSnapshot, workDetails.isDifferential, workDetails.workType); } }
networkDir.resolve(Paths.get(BfConsts.RELPATH_SNAPSHOTS_DIR, snapshotId.getId()));
@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 .setTag("container-name", getContainerName().getId()) .setTag("testrig_name", getTestrigName().getId()); if (question.getInstance() != null) { activeSpan.setTag("question-name", question.getInstance().getInstanceName());