import com.hp.ucmdb.generated.UcmdbFault;
import com.hp.ucmdb.generated.UcmdbServiceStub;
import java.rmi.RemoteException;
public class ImpactDemo extends Demo {
public static void main(String[] args) {
UcmdbServiceStub serviceStub = getStub();
calculateImpactAndGetImpactPathDemo(serviceStub);
getImpactRulesByGroupName(serviceStub);
getImpactRulesByNamePrefix(serviceStub);
}
public static void calculateImpactAndGetImpactPathDemo(UcmdbServiceStub serviceStub) {
UcmdbServiceStub.CalculateImpactE requestE = new UcmdbServiceStub.CalculateImpactE();
UcmdbServiceStub.CalculateImpact request = new UcmdbServiceStub.CalculateImpact();
request.setCmdbContext(context);
//set root cause ids
UcmdbServiceStub.IDs ids = new UcmdbServiceStub.IDs();
UcmdbServiceStub.ID id = new UcmdbServiceStub.ID();
id.setString("4083c2037b6d7bd58e048f1117833309");
id.setTemp(true);
UcmdbServiceStub.ID[] idArray = new UcmdbServiceStub.ID[1];
idArray[0] = id;
ids.setID(idArray);
request.setIDs(ids);
//set impact category
request.setImpactCategory("change");
//set rule Names
UcmdbServiceStub.ImpactRuleNames_type0 impactRuleNames = new UcmdbServiceStub.ImpactRuleNames_type0();
UcmdbServiceStub.ImpactRuleName impactRuleName = new UcmdbServiceStub.ImpactRuleName();
impactRuleName.setString("test");
UcmdbServiceStub.ImpactRuleName[] impactRules = new UcmdbServiceStub.ImpactRuleName[1];
impactRules[0] = impactRuleName;
impactRuleNames.setImpactRuleName(impactRules);
request.setImpactRuleNames(impactRuleNames);
//set severity
request.setSeverity(0);
requestE.setCalculateImpact(request);
try {
UcmdbServiceStub.CalculateImpactResponseE responseE = serviceStub.calculateImpact(requestE);
UcmdbServiceStub.CalculateImpactResponse response = responseE.getCalculateImpactResponse();
UcmdbServiceStub.Topology topology = response.getImpactTopology();
UcmdbServiceStub.CIs ci = topology.getCIs();
UcmdbServiceStub.CI[] cis = ci.getCI();
for (UcmdbServiceStub.CI confItem : cis) {
System.out.println("CI type is " + confItem.getType() + " ,id is " + confItem.getID());
}
UcmdbServiceStub.Relations relations = topology.getRelations();
UcmdbServiceStub.Relation[] rels = relations.getRelation();
for (UcmdbServiceStub.Relation rel : rels) {
System.out.println("Relation type is " + rel.getType() + " ,id is " + rel.getID());
}
System.out.println("End impact analysis");
UcmdbServiceStub.Identifier identifier = response.getIdentifier();
UcmdbServiceStub.Topology topology2 = response.getImpactTopology();
UcmdbServiceStub.Relation relation = topology.getRelations().getRelation()[0];
UcmdbServiceStub.GetImpactPathE request2E = new UcmdbServiceStub.GetImpactPathE();
UcmdbServiceStub.GetImpactPath request2 = new UcmdbServiceStub.GetImpactPath();
//set cmdb context
request2.setCmdbContext(context);
//set impact identifier
request2.setIdentifier(identifier);
//set shallowRelation
UcmdbServiceStub.ShallowRelation shallowRelation = new UcmdbServiceStub.ShallowRelation();
shallowRelation.setID(relation.getID());
shallowRelation.setEnd1ID(relation.getEnd1ID());
shallowRelation.setEnd2ID(relation.getEnd2ID());
shallowRelation.setType(relation.getType());
request2.setRelation(shallowRelation);
request2E.setGetImpactPath(request2);
UcmdbServiceStub.GetImpactPathResponseE response2E =
getStub().getImpactPath(request2E);
UcmdbServiceStub.GetImpactPathResponse response2 = response2E.getGetImpactPathResponse();
UcmdbServiceStub.ImpactTopology impactTopology = response2.getImpactPathTopology();
} catch (RemoteException e) {
//To change body of catch statement
// use File | Settings | File Templates.
e.printStackTrace();
} catch (UcmdbFault e) {
//To change body of catch statement
// use File | Settings | File Templates.
e.printStackTrace();
}
}
public static void getImpactRulesByGroupName(UcmdbServiceStub serviceStub) {
System.out.println("Start getImpactRulesByGroupName");
UcmdbServiceStub.GetImpactRulesByGroupNameE requestE = new UcmdbServiceStub.GetImpactRulesByGroupNameE();
UcmdbServiceStub.GetImpactRulesByGroupName request =
new UcmdbServiceStub.GetImpactRulesByGroupName();
//set cmdb context
request.setCmdbContext(context);
//set group names list
String[] arrayList = new String[2];
arrayList[0] = "other";
arrayList[1] = "mui";
request.setRuleGroupNameFilter(arrayList);
requestE.setGetImpactRulesByGroupName(request);
try {
UcmdbServiceStub.GetImpactRulesByGroupNameResponseE responseE =
serviceStub.getImpactRulesByGroupName(requestE);
UcmdbServiceStub.ImpactRules rules = responseE.getGetImpactRulesByGroupNameResponse().getImpactRules();
UcmdbServiceStub.ImpactRule[] impacts = rules.getImpactRule();
for (UcmdbServiceStub.ImpactRule impactRule : impacts) {
System.out.println(impactRule.getRuleName());
}
System.out.println("End getImpactRulesByGroupName");
} catch (RemoteException e) {
//handle exception
} catch (UcmdbFault e) {
//handle exception
}
}
public static void getImpactRulesByNamePrefix(UcmdbServiceStub serviceStub) {
System.out.println("Start getImpactRulesByNamePrefix");
UcmdbServiceStub.GetImpactRulesByNamePrefixE requestE = new UcmdbServiceStub.GetImpactRulesByNamePrefixE();
UcmdbServiceStub.GetImpactRulesByNamePrefix request =
new UcmdbServiceStub.GetImpactRulesByNamePrefix();
//set cmdb context
request.setCmdbContext(context);
String[] arrayList = new String[1];
arrayList[0] = "te";
request.setRuleNamePrefixFilter(arrayList);
requestE.setGetImpactRulesByNamePrefix(request);
try {
UcmdbServiceStub.GetImpactRulesByNamePrefixResponseE responseE =
getStub().getImpactRulesByNamePrefix(requestE);
UcmdbServiceStub.ImpactRules rules = responseE.getGetImpactRulesByNamePrefixResponse().getImpactRules();
UcmdbServiceStub.ImpactRule[] impacts = rules.getImpactRule();
for (UcmdbServiceStub.ImpactRule impactRule : impacts) {
System.out.println(impactRule.getRuleName());
}
System.out.println("End getImpactRulesByNamePrefix");
} catch (RemoteException e) {
//handle exception
} catch (UcmdbFault e) {
//handle exception
}
}
}