System.out.println("START " + testName + " at " + new Date(System.currentTimeMillis()));
// Set up the event
ClusterAccessor clusterAccessor = new ClusterAccessor(_clusterId, _dataAccessor);
Cluster cluster = clusterAccessor.readCluster();
ClusterEvent event = new ClusterEvent(testName);
event.addAttribute(AttributeName.CURRENT_STATE.toString(), new ResourceCurrentState());
Map<ResourceId, ResourceConfig> resourceConfigMap =
Maps.transformValues(cluster.getResourceMap(), new Function<Resource, ResourceConfig>() {
@Override
public ResourceConfig apply(Resource resource) {
return resource.getConfig();
}
});
event.addAttribute(AttributeName.RESOURCES.toString(), resourceConfigMap);
event.addAttribute("ClusterDataCache", cluster);
// Run the stage
try {
new BestPossibleStateCalcStage().process(event);
} catch (Exception e) {
Assert.fail(e.toString());
}
// Verify the result
BestPossibleStateOutput bestPossibleStateOutput =
event.getAttribute(AttributeName.BEST_POSSIBLE_STATE.toString());
Assert.assertNotNull(bestPossibleStateOutput);
ResourceId resourceId = ResourceId.from("TestDB0");
ResourceAssignment assignment = bestPossibleStateOutput.getResourceAssignment(resourceId);
Assert.assertNotNull(assignment);
Resource resource = cluster.getResource(resourceId);