use of org.opennms.netmgt.bsm.service.model.functions.reduce.HighestSeverity in project opennms by OpenNMS.
the class BusinessServiceResponseDTOMarshalTest method data.
@Parameterized.Parameters
public static Collection<Object[]> data() throws IOException {
final MapFunctionDTO ignoreDto = createMapFunctionDTO(new Ignore());
final BusinessServiceResponseDTO bs = new BusinessServiceResponseDTO();
bs.setId(1L);
bs.setName("Web Servers");
bs.addAttribute("dc", "RDU");
bs.setLocation(new ResourceLocation(ApiVersion.Version2, "business-services", "1"));
bs.setOperationalStatus(Status.CRITICAL);
bs.setReduceFunction(createReduceFunctionDTO(new HighestSeverity()));
bs.getReductionKeys().add(createReductionKeyEdgeResponse(1L, "myReductionKeyA", ignoreDto, Status.CRITICAL, new ResourceLocation(ApiVersion.Version2, "test/1"), "reduction-key-a-friendly-name"));
bs.getReductionKeys().add(createReductionKeyEdgeResponse(2L, "myReductionKeyB", ignoreDto, Status.NORMAL, new ResourceLocation(ApiVersion.Version2, "test/2"), "reduction-key-b-friendly-name"));
bs.getChildren().add(createChildEdgeResponse(3L, 2L, ignoreDto, Status.MAJOR, new ResourceLocation(ApiVersion.Version2, "test/3")));
bs.getChildren().add(createChildEdgeResponse(4L, 3L, ignoreDto, Status.MAJOR, new ResourceLocation(ApiVersion.Version2, "test/4")));
bs.getIpServices().add(createIpServiceEdgeResponse(5L, createIpServiceResponse(), ignoreDto, Status.MINOR, new ResourceLocation(ApiVersion.Version2, "test/5"), "ip-service-friendly-name"));
bs.getParentServices().add(11L);
bs.getParentServices().add(12L);
return Arrays.asList(new Object[][] { { BusinessServiceResponseDTO.class, bs, "{" + " \"location\" : \"/api/v2/business-services/1\"," + " \"name\" : \"Web Servers\"," + " \"id\" : 1," + " \"attributes\" : {" + " \"attribute\" : [ {" + " \"key\" : \"dc\"," + " \"value\" : \"RDU\"" + " } ]" + " }," + " \"operational-status\" : \"CRITICAL\"," + " \"reduce-function\" : {" + " \"type\" : \"HighestSeverity\"," + " \"properties\" : { }" + " }," + " \"reduction-key-edges\" : [ {" + " \"id\" : 1," + " \"operational-status\" : \"CRITICAL\"," + " \"map-function\" : {" + " \"type\" : \"Ignore\"," + " \"properties\" : { }" + " }," + " \"weight\" : 9," + " \"location\" : \"/api/v2/test/1\"," + " \"reduction-keys\" : [ \"myReductionKeyA\" ]," + " \"friendly-name\" : \"reduction-key-a-friendly-name\"" + " }, {" + " \"id\" : 2," + " \"operational-status\" : \"NORMAL\"," + " \"map-function\" : {" + " \"type\" : \"Ignore\"," + " \"properties\" : { }" + " }," + " \"weight\" : 9," + " \"location\" : \"/api/v2/test/2\"," + " \"reduction-keys\" : [ \"myReductionKeyB\" ]," + " \"friendly-name\" : \"reduction-key-b-friendly-name\"" + " } ]," + " \"child-edges\" : [ {" + " \"id\" : 3," + " \"operational-status\" : \"MAJOR\"," + " \"map-function\" : {" + " \"type\" : \"Ignore\"," + " \"properties\" : { }" + " }," + " \"weight\" : 7," + " \"location\" : \"/api/v2/test/3\"," + " \"reduction-keys\" : [ ]," + " \"child-id\" : 2" + " }, {" + " \"id\" : 4," + " \"operational-status\" : \"MAJOR\"," + " \"map-function\" : {" + " \"type\" : \"Ignore\"," + " \"properties\" : { }" + " }," + " \"weight\" : 7," + " \"location\" : \"/api/v2/test/4\"," + " \"reduction-keys\" : [ ]," + " \"child-id\" : 3" + " } ]," + " \"ip-service-edges\" : [ {" + " \"id\" : 5," + " \"operational-status\" : \"MINOR\"," + " \"map-function\" : {" + " \"type\" : \"Ignore\"," + " \"properties\" : { }" + " }," + " \"weight\" : 5," + " \"location\" : \"/api/v2/test/5\"," + " \"reduction-keys\" : [ \"key1\", \"key2\" ]," + " \"ip-service\" : {" + " \"location\" : \"/api/v2/business-services/ip-services/17\"," + " \"id\" : 17," + " \"node-label\" : \"dummy\"," + " \"service-name\" : \"ICMP\"," + " \"ip-address\" : \"1.1.1.1\"" + " }," + " \"friendly-name\" : \"ip-service-friendly-name\"" + " } ]," + " \"parent-services\" : [ 11, 12 ]" + "}", "<business-service>\n" + " <id>1</id>\n" + " <name>Web Servers</name>\n" + " <attributes>\n" + " <attribute>\n" + " <key>dc</key>\n" + " <value>RDU</value>\n" + " </attribute>\n" + " </attributes>\n" + " <ip-service-edges>\n" + " <ip-service-edge>\n" + " <id>5</id>\n" + " <operational-status>MINOR</operational-status>\n" + " <map-function>\n" + " <type>Ignore</type>\n" + " </map-function>\n" + " <location>/api/v2/test/5</location>\n" + " <reduction-keys>\n" + " <reduction-key>key1</reduction-key>\n" + " <reduction-key>key2</reduction-key>\n" + " </reduction-keys>\n" + " <weight>5</weight>\n" + " <ip-service>\n" + " <id>17</id>\n" + " <service-name>ICMP</service-name>\n" + " <node-label>dummy</node-label>\n" + " <ip-address>1.1.1.1</ip-address>\n" + " <location>/api/v2/business-services/ip-services/17</location>\n" + " </ip-service>\n" + " <friendly-name>ip-service-friendly-name</friendly-name>\n" + " </ip-service-edge>\n" + " </ip-service-edges>\n" + " <reduction-key-edges>\n" + " <reduction-key-edge>\n" + " <id>1</id>\n" + " <operational-status>CRITICAL</operational-status>\n" + " <map-function>\n" + " <type>Ignore</type>\n" + " </map-function>\n" + " <location>/api/v2/test/1</location>\n" + " <reduction-keys>\n" + " <reduction-key>myReductionKeyA</reduction-key>\n" + " </reduction-keys>\n" + " <weight>9</weight>\n" + " <friendly-name>reduction-key-a-friendly-name</friendly-name>\n" + " </reduction-key-edge>\n" + " <reduction-key-edge>\n" + " <id>2</id>\n" + " <operational-status>NORMAL</operational-status>\n" + " <map-function>\n" + " <type>Ignore</type>\n" + " </map-function>\n" + " <location>/api/v2/test/2</location>\n" + " <reduction-keys>\n" + " <reduction-key>myReductionKeyB</reduction-key>\n" + " </reduction-keys>\n" + " <weight>9</weight>\n" + " <friendly-name>reduction-key-b-friendly-name</friendly-name>\n" + " </reduction-key-edge>\n" + " </reduction-key-edges>\n" + " <child-edges>\n" + " <child-edge>\n" + " <id>3</id>\n" + " <operational-status>MAJOR</operational-status>\n" + " <map-function>\n" + " <type>Ignore</type>\n" + " </map-function>\n" + " <location>/api/v2/test/3</location>\n" + " <reduction-keys/>\n" + " <weight>7</weight>\n" + " <child-id>2</child-id>\n" + " </child-edge>\n" + " <child-edge>\n" + " <id>4</id>\n" + " <operational-status>MAJOR</operational-status>\n" + " <map-function>\n" + " <type>Ignore</type>\n" + " </map-function>\n" + " <location>/api/v2/test/4</location>\n" + " <reduction-keys/>\n" + " <weight>7</weight>\n" + " <child-id>3</child-id>\n" + " </child-edge>\n" + " </child-edges>\n" + " <parent-services>\n" + " <parent-service>11</parent-service>\n" + " <parent-service>12</parent-service>\n" + " </parent-services>\n" + " <reduce-function>\n" + " <type>HighestSeverity</type>\n" + " </reduce-function>\n" + " <operational-status>CRITICAL</operational-status>\n" + " <location>/api/v2/business-services/1</location>\n" + "</business-service>" } });
}
use of org.opennms.netmgt.bsm.service.model.functions.reduce.HighestSeverity in project opennms by OpenNMS.
the class BusinessServiceManagerImplIT method ensureNoDanglingReductionFunctions.
@Test
@Transactional
public void ensureNoDanglingReductionFunctions() {
// Create a business service
final BusinessService bs = this.createBusinessService("bs1");
bs.save();
// Ensure there is an associated reduction function
assertEquals(1, reductionFunctionDao.countAll());
bs.setReduceFunction(new HighestSeverity());
bs.save();
// Ensure there is still only one associated reduction function
assertEquals(1, reductionFunctionDao.countAll());
// Delete
bs.delete();
// There should be no reduction function left
assertEquals(0, reductionFunctionDao.countAll());
}
use of org.opennms.netmgt.bsm.service.model.functions.reduce.HighestSeverity in project opennms by OpenNMS.
the class GenerateHierarchiesShellCommand method doExecute.
@Override
protected Object doExecute() throws Exception {
final Map<String, BusinessService> businessServicesByName = businessServiceManager.getAllBusinessServices().stream().collect(Collectors.toMap(b -> b.getName(), b -> b));
int showStatusEvery = 100;
int numServicesToGenerate = numServices != null ? numServices : DEFAULT_NUM_SERVICES;
int depthPerHierarchy = depth != null ? depth : DEFAULT_DEPTH;
int currentDepth = 0;
BusinessService lastBusinessService = null;
for (int i = 0; i < numServicesToGenerate; i++) {
if (i % showStatusEvery == 0) {
System.out.printf("Generating business services %d -> %d\n", i, Math.min(i + showStatusEvery, numServicesToGenerate));
}
final String name = "B" + i;
if (businessServicesByName.containsKey(name)) {
lastBusinessService = businessServicesByName.get(name);
continue;
}
BusinessService businessService = businessServiceManager.createBusinessService();
businessService.setName(name);
businessService.setReduceFunction(new HighestSeverity());
businessService.getAttributes().put("generated", "true");
businessServiceManager.saveBusinessService(businessService);
if (lastBusinessService != null && currentDepth < depthPerHierarchy) {
businessServiceManager.addChildEdge(lastBusinessService, businessService, new Identity(), 1);
currentDepth++;
} else if (currentDepth >= depthPerHierarchy) {
currentDepth = 0;
}
lastBusinessService = businessService;
}
return null;
}
Aggregations