public static WorkItem getWorkItemGenerateDataPlane(String containerName, String testrigName) { WorkItem wItem = new WorkItem(containerName, testrigName); wItem.addRequestParam(BfConsts.COMMAND_DUMP_DP, ""); return wItem; }
public static WorkItem getWorkItemGenerateDeltaDataPlane( String containerName, String testrigName, String deltaTestrigName) { WorkItem wItem = new WorkItem(containerName, testrigName); wItem.addRequestParam(BfConsts.COMMAND_DUMP_DP, ""); wItem.addRequestParam(BfConsts.ARG_DELTA_TESTRIG, deltaTestrigName); wItem.addRequestParam(BfConsts.ARG_DIFF_ACTIVE, ""); return wItem; }
@Before public void initWorkItem() { _workItem = new WorkItem("testContainer", "testTestrig"); }
public static WorkItem getWorkItemParse(String containerName, String testrigName) { WorkItem wItem = new WorkItem(containerName, testrigName); wItem.addRequestParam(BfConsts.COMMAND_PARSE_VENDOR_INDEPENDENT, ""); wItem.addRequestParam(BfConsts.COMMAND_PARSE_VENDOR_SPECIFIC, ""); wItem.addRequestParam(BfConsts.COMMAND_INIT_INFO, ""); wItem.addRequestParam(BfConsts.ARG_IGNORE_MANAGEMENT_INTERFACES, ""); return wItem; }
private static QueuedWork createWork(String network, String snapshot) { return new QueuedWork( new WorkItem(network, snapshot), new WorkDetails(snapshot, WorkType.UNKNOWN)); }
private void queueWork(String testrig, WorkType wType) throws Exception { QueuedWork work = resolvedQueuedWork(new WorkItem(NETWORK, testrig), new WorkDetails(testrig, wType)); _workQueueMgr.queueUnassignedWork(work); }
private void queueWork(String snapshot, String referenceSnapshot, WorkType wType) throws Exception { QueuedWork work = resolvedQueuedWork( new WorkItem(NETWORK, snapshot), new WorkDetails(snapshot, referenceSnapshot, true, wType)); _workQueueMgr.queueUnassignedWork(work); }
@Test public void testGetWorkStatusPresent() throws IOException { String network = "network1"; String snapshot = "snapshot1"; UUID workId = UUID.randomUUID(); Main.getWorkMgr().initNetwork(network, null); WorkMgrTestUtils.initSnapshotWithTopology(network, snapshot, ImmutableSet.of()); WorkItem workItem = new WorkItem(workId, network, snapshot, new HashMap<>()); Main.getWorkMgr().queueWork(workItem); Response response = getWorkItemTarget(network, workId.toString()).get(); // work item should exist assertThat(response.getStatus(), equalTo(OK.getStatusCode())); WorkStatus workStatus = response.readEntity(WorkStatus.class); // work ID should match assertThat(workStatus.getWorkItem().getId(), equalTo(workId)); } }
@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 getMatchingWorkPresent() throws Exception { initSnapshotMetadata("testrig", ProcessingStatus.UNINITIALIZED); WorkItem wItem1 = new WorkItem(NETWORK, "testrig"); wItem1.addRequestParam("key1", "value1"); QueuedWork work1 = resolvedQueuedWork(wItem1, new WorkDetails("testrig", WorkType.UNKNOWN)); QueuedWork work2 = resolvedQueuedWork( new WorkItem(NETWORK, "testrig"), new WorkDetails("testrig", WorkType.UNKNOWN)); _workQueueMgr.queueUnassignedWork(work1); _workQueueMgr.queueUnassignedWork(work2); // build a work item that should match wItem1 WorkItem wItem3 = WorkMgr.resolveIds(new WorkItem(NETWORK, "testrig")); wItem3.addRequestParam("key1", "value1"); QueuedWork matchingWork = _workQueueMgr.getMatchingWork(wItem3, QueueType.INCOMPLETE); assertThat(matchingWork, equalTo(work1)); }
@Test public void queueUnassignedWork() throws Exception { initSnapshotMetadata("testrig", ProcessingStatus.UNINITIALIZED); QueuedWork work1 = resolvedQueuedWork( new WorkItem(NETWORK, "testrig"), new WorkDetails("testrig", WorkType.PARSING)); _workQueueMgr.queueUnassignedWork(work1); assertThat(_workQueueMgr.getLength(QueueType.INCOMPLETE), equalTo(1L)); QueuedWork work2 = resolvedQueuedWork( new WorkItem(NETWORK, "testrig"), new WorkDetails("testrig", WorkType.PARSING_DEPENDENT_ANSWERING)); _workQueueMgr.queueUnassignedWork(work2); assertThat(_workQueueMgr.getLength(QueueType.INCOMPLETE), equalTo(2L)); }
@Test public void queueUnassignedWorkUnknown() throws Exception { initSnapshotMetadata("testrig", ProcessingStatus.UNINITIALIZED); QueuedWork work1 = resolvedQueuedWork( new WorkItem(NETWORK, "testrig"), new WorkDetails("testrig", WorkType.UNKNOWN)); _workQueueMgr.queueUnassignedWork(work1); assertThat(_workQueueMgr.getLength(QueueType.INCOMPLETE), equalTo(1L)); }
private void workIsQueued( ProcessingStatus trStatus, WorkType wType, WorkStatusCode qwStatus, long queueLength) throws Exception { initSnapshotMetadata(SNAPSHOT, trStatus); QueuedWork work = resolvedQueuedWork(new WorkItem(NETWORK, SNAPSHOT), new WorkDetails(SNAPSHOT, wType)); doAction(new Action(ActionType.QUEUE, work)); assertThat(work.getStatus(), equalTo(qwStatus)); assertThat(_workQueueMgr.getLength(QueueType.INCOMPLETE), equalTo(queueLength)); }
@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))); }
private void workIsQueued( ProcessingStatus baseTrStatus, ProcessingStatus deltaTrStatus, WorkType wType, WorkStatusCode qwStatus, long queueLength) throws Exception { initSnapshotMetadata(SNAPSHOT, baseTrStatus); initSnapshotMetadata(REFERENCE_SNAPSHOT, deltaTrStatus); QueuedWork work = resolvedQueuedWork( new WorkItem(NETWORK, SNAPSHOT), new WorkDetails(SNAPSHOT, REFERENCE_SNAPSHOT, true, wType)); doAction(new Action(ActionType.QUEUE, work)); assertThat(work.getStatus(), equalTo(qwStatus)); assertThat(_workQueueMgr.getLength(QueueType.INCOMPLETE), equalTo(queueLength)); }
@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))); }
private void workIsRejected(ProcessingStatus trStatus, WorkType wType) throws Exception { initSnapshotMetadata(SNAPSHOT, trStatus); QueuedWork work = resolvedQueuedWork(new WorkItem(NETWORK, SNAPSHOT), new WorkDetails(SNAPSHOT, wType)); _thrown.expect(BatfishException.class); _thrown.expectMessage("Cannot queue "); doAction(new Action(ActionType.QUEUE, work)); }
@Test public void processTaskCheckTerminatedByUser() throws Exception { initSnapshotMetadata("testrig", ProcessingStatus.UNINITIALIZED); QueuedWork work1 = resolvedQueuedWork( new WorkItem(NETWORK, "testrig"), new WorkDetails("testrig", WorkType.PARSING)); doAction(new Action(ActionType.QUEUE, work1)); _workQueueMgr.processTaskCheckResult(work1, new Task(TaskStatus.TerminatedByUser, "Fake")); /* * after processing the termination task, * 1) the status of work should be terminatedbyuser * 2) incomplete queue should be empty */ assertThat(work1.getStatus(), equalTo(WorkStatusCode.TERMINATEDBYUSER)); assertThat(_workQueueMgr.getLength(QueueType.INCOMPLETE), equalTo(0L)); }
@Test public void queueUnassignedWorkDuplicate() throws Exception { initSnapshotMetadata("testrig", ProcessingStatus.UNINITIALIZED); QueuedWork work1 = resolvedQueuedWork( new WorkItem(NETWORK, "testrig"), new WorkDetails("testrig", WorkType.UNKNOWN)); _workQueueMgr.queueUnassignedWork(work1); _thrown.expect(BatfishException.class); _thrown.expectMessage("Duplicate work item"); _workQueueMgr.queueUnassignedWork(work1); }
private void workIsRejected( ProcessingStatus baseTrStatus, ProcessingStatus deltaTrStatus, WorkType wType) throws Exception { initSnapshotMetadata(SNAPSHOT, baseTrStatus); initSnapshotMetadata(REFERENCE_SNAPSHOT, deltaTrStatus); QueuedWork work = resolvedQueuedWork( new WorkItem(NETWORK, SNAPSHOT), new WorkDetails(SNAPSHOT, REFERENCE_SNAPSHOT, true, wType)); _thrown.expect(BatfishException.class); _thrown.expectMessage("Cannot queue "); doAction(new Action(ActionType.QUEUE, work)); }