import org.json.JSONObject;
import org.onap.aai.domain.yang.CloudRegion;
import org.onap.aai.domain.yang.GenericVnf;
+import org.onap.aai.domain.yang.ModelVer;
import org.onap.aai.domain.yang.Relationship;
import org.onap.aai.domain.yang.RelationshipData;
import org.onap.aai.domain.yang.ServiceInstance;
private static JAXBContext jaxbContext;
private static Unmarshaller unmarshaller;
-
// JABX initial stuff
static {
Map<String, Object> properties = new HashMap<>();
properties.put(JAXBContextProperties.JSON_INCLUDE_ROOT, false);
// Define JAXB context
try {
- jaxbContext = JAXBContextFactory.createContext(new Class[] {Vserver.class, GenericVnf.class, VfModule.class,
- CloudRegion.class, ServiceInstance.class, Tenant.class}, properties);
+ jaxbContext =
+ JAXBContextFactory
+ .createContext(
+ new Class[] {Vserver.class, GenericVnf.class, VfModule.class,
+ CloudRegion.class, ServiceInstance.class, Tenant.class, ModelVer.class},
+ properties);
unmarshaller = jaxbContext.createUnmarshaller();
} catch (JAXBException e) {
LOGGER.error("Could not initialize JAXBContext", e);
@SerializedName("results")
private List<Object> inventoryResponseItems = new LinkedList<>();
-
/**
* Constructor creates a custom query response from a valid json string.
*
- * @param jsonString A&AI Custom Query response JSON string
+ * @param jsonString
+ * A&AI Custom Query response JSON string
*/
public AaiCqResponse(String jsonString) {
// Create the StreamSource by creating StringReader using the
// JSON input
- StreamSource json = new StreamSource(
- new StringReader(resultsArray.getJSONObject(i).getJSONObject("vserver").toString()));
+ StreamSource json = new StreamSource(new StringReader(
+ resultsArray.getJSONObject(i).getJSONObject("vserver").toString()));
// Getting the vserver pojo again from the json
Vserver vserver = this.getAaiObject(json, Vserver.class);
if (resultsArray.getJSONObject(i).has(GENERIC_VNF)) {
// Create the StreamSource by creating StringReader using the
// JSON input
- StreamSource json = new StreamSource(
- new StringReader(resultsArray.getJSONObject(i).getJSONObject(GENERIC_VNF).toString()));
+ StreamSource json = new StreamSource(new StringReader(
+ resultsArray.getJSONObject(i).getJSONObject(GENERIC_VNF).toString()));
// Getting the generic vnf pojo again from the json
GenericVnf genericVnf = this.getAaiObject(json, GenericVnf.class);
// Create the StreamSource by creating StringReader using the
// JSON input
- StreamSource json = new StreamSource(
- new StringReader(resultsArray.getJSONObject(i).getJSONObject("service-instance").toString()));
+ StreamSource json = new StreamSource(new StringReader(
+ resultsArray.getJSONObject(i).getJSONObject("service-instance").toString()));
// Getting the employee pojo again from the json
ServiceInstance serviceInstance = this.getAaiObject(json, ServiceInstance.class);
if (resultsArray.getJSONObject(i).has(VF_MODULE)) {
// Create the StreamSource by creating StringReader using the
// JSON input
- StreamSource json = new StreamSource(
- new StringReader(resultsArray.getJSONObject(i).getJSONObject(VF_MODULE).toString()));
+ StreamSource json = new StreamSource(new StringReader(
+ resultsArray.getJSONObject(i).getJSONObject(VF_MODULE).toString()));
// Getting the vf module pojo again from the json
VfModule vfModule = this.getAaiObject(json, VfModule.class);
if (resultsArray.getJSONObject(i).has("cloud-region")) {
// Create the StreamSource by creating StringReader using the
// JSON input
- StreamSource json = new StreamSource(
- new StringReader(resultsArray.getJSONObject(i).getJSONObject("cloud-region").toString()));
+ StreamSource json = new StreamSource(new StringReader(
+ resultsArray.getJSONObject(i).getJSONObject("cloud-region").toString()));
// Getting the cloud region pojo again from the json
CloudRegion cloudRegion = this.getAaiObject(json, CloudRegion.class);
if (resultsArray.getJSONObject(i).has("tenant")) {
// Create the StreamSource by creating StringReader using the
// JSON input
- StreamSource json = new StreamSource(
- new StringReader(resultsArray.getJSONObject(i).getJSONObject("tenant").toString()));
+ StreamSource json = new StreamSource(new StringReader(
+ resultsArray.getJSONObject(i).getJSONObject("tenant").toString()));
// Getting the tenant pojo again from the json
Tenant tenant = this.getAaiObject(json, Tenant.class);
this.inventoryResponseItems.add(tenant);
}
- }
-
+ // Object is a ModelVer
+ if (resultsArray.getJSONObject(i).has("model-ver")) {
+ // Create the StreamSource by creating StringReader using the
+ // JSON input
+ StreamSource json = new StreamSource(new StringReader(
+ resultsArray.getJSONObject(i).getJSONObject("model-ver").toString()));
+ // Getting the ModelVer pojo again from the json
+ ModelVer modelVer = this.getAaiObject(json, ModelVer.class);
- }
+ this.inventoryResponseItems.add(modelVer);
+ }
+ }
+ }
private <T> T getAaiObject(StreamSource json, final Class<T> classOfResponse) {
try {
/**
* Get list of A&AI objects in the custom query.
*
- * @param classOfResponse Class of the type of A&AI objects to be returned
+ * @param classOfResponse
+ * Class of the type of A&AI objects to be returned
* @return List A&AI objects matching the class
*/
@SuppressWarnings("unchecked")
}
-
/**
* Returns a generic Vnf matching vnf name.
*
- * @param vnfName Name of the vnf to match
+ * @param vnfName
+ * Name of the vnf to match
* @return generic Vnf
*/
public GenericVnf getGenericVnfByVnfName(String vnfName) {
/**
* Returns a generic Vnf matching model invariant ID.
*
- * @param modelInvariantId Name of the vnf to match
+ * @param modelInvariantId
+ * Name of the vnf to match
* @return generic Vnf
*/
public GenericVnf getGenericVnfByModelInvariantId(String modelInvariantId) {
}
+ /**
+ * Returns a generic Vnf of a given VF Module ID.
+ *
+ * @param vfModuleModelInvariantId
+ * of the vf module for which vnf is to be returned
+ * @return generic Vnf
+ */
+ public GenericVnf getGenericVnfByVfModuleModelInvariantId(String vfModuleModelInvariantId) {
+ List<GenericVnf> genericVnfList = this.getGenericVnfs();
+ for (GenericVnf genVnf : genericVnfList) {
+ // Iterate through all the vfModules of that generic Vnf
+ for (VfModule vfMod : genVnf.getVfModules().getVfModule()) {
+ if (vfMod.getModelInvariantId() != null
+ && vfMod.getModelInvariantId().equals(vfModuleModelInvariantId)) {
+ return genVnf;
+ }
+ }
+ }
+ return null;
+ }
/**
* Get the generic vnf associated with the vserver in the custom query.
String genericVnfId = "";
List<RelationshipData> relationshipData = null;
- // Iterate through the list of relationships and get generic vnf relationship data
+ // Iterate through the list of relationships and get generic vnf
+ // relationship data
for (Relationship r : relations) {
// Get the name of generic-vnf related to this server
if (GENERIC_VNF.equals(r.getRelatedTo())) {
return genericVnf;
}
-
/**
* Get Vf Module associated with the vserver in the custom query.
*
String vfModuleId = "";
List<RelationshipData> relationshipData = null;
- // Iterate through the list of relationships and get vf module relationship data
+ // Iterate through the list of relationships and get vf module
+ // relationship data
for (Relationship r : relations) {
// Get relationship data of vfmodule related to this server
if (VF_MODULE.equals(r.getRelatedTo())) {
return vfModule;
}
-
/**
* Get vf modules in the custom query.
*
return vfModule;
}
+ /**
+ * Get Vf Module matching a specific VF model invariant ID.
+ *
+ * @return VfModule
+ */
+ public VfModule getVfModuleByVfModelInvariantId(String vfModelInvariantId) {
+ VfModule vfModule = null;
+
+ for (VfModule vfMod : this.getAllVfModules()) {
+ if (vfMod.getModelInvariantId() != null
+ && vfModelInvariantId.equals(vfMod.getModelInvariantId())) {
+ vfModule = vfMod;
+ }
+
+ }
+ return vfModule;
+ }
+
/**
* Get verver in the custom query.
*
}
-}
+ /**
+ * Get Model Versions in the custom query.
+ *
+ * @return List of model Versions
+ */
+ public List<ModelVer> getAllModelVer() {
+ List<ModelVer> modelVerList = new ArrayList<>();
+ for (Object i : this.inventoryResponseItems) {
+ if (i.getClass() == ModelVer.class) {
+ modelVerList.add((ModelVer) i);
+ }
+ }
+ return modelVerList;
+ }
+ /**
+ * Get ModelVer matching a specific version id.
+ *
+ * @return VfModule
+ */
+ public ModelVer getModelVerByVersionId(String versionId) {
+ ModelVer modelVer = null;
+
+ for (ModelVer modVersion : this.getAllModelVer()) {
+ if (versionId.equals(modVersion.getModelVersionId())) {
+ modelVer = modVersion;
+ }
+
+ }
+ return modelVer;
+ }
+
+ /**
+ * Get the count of vfModules matching customizationId, InvariantId and
+ * VersionId.
+ *
+ * @param custId
+ * ModelCustomizationId
+ * @param invId
+ * ModelInvariantId
+ * @param verId
+ * ModelVersionId
+ * @return Returns the count of vf modules
+ */
+ public int getVfModuleCount(String custId, String invId, String verId) {
+ List<VfModule> vfModuleList = this.getAllVfModules();
+ int count = 0;
+ for (VfModule vfModule : vfModuleList) {
+ if (vfModule.getModelCustomizationId() != null && vfModule.getModelInvariantId() != null
+ && vfModule.getModelVersionId() != null) {
+ if (vfModule.getModelCustomizationId().equals(custId)
+ && vfModule.getModelInvariantId().equals(invId)
+ && vfModule.getModelVersionId().equals(verId)) {
+ count = count + 1;
+ }
+ }
+ }
+ return count;
+ }
+
+}