2  * ============LICENSE_START=======================================================
 
   4  * ================================================================================
 
   5  * Copyright (C) 2017 AT&T Intellectual Property. All rights
 
   7  * ================================================================================
 
   8  * Licensed under the Apache License, Version 2.0 (the "License");
 
   9  * you may not use this file except in compliance with the License.
 
  10  * You may obtain a copy of the License at
 
  12  *      http://www.apache.org/licenses/LICENSE-2.0
 
  14  * Unless required by applicable law or agreed to in writing, software
 
  15  * distributed under the License is distributed on an "AS IS" BASIS,
 
  16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
  17  * See the License for the specific language governing permissions and
 
  18  * limitations under the License.
 
  19  * ============LICENSE_END=========================================================
 
  22 package org.onap.ccsdk.sli.adaptors.ra.check;
 
  26 import org.onap.ccsdk.sli.adaptors.ra.comp.EquipmentCheck;
 
  27 import org.onap.ccsdk.sli.adaptors.ra.comp.ServiceData;
 
  28 import org.onap.ccsdk.sli.adaptors.ra.equip.data.EquipmentData;
 
  29 import org.onap.ccsdk.sli.adaptors.rm.comp.ResourceManager;
 
  30 import org.onap.ccsdk.sli.adaptors.rm.data.AllocationItem;
 
  31 import org.onap.ccsdk.sli.adaptors.rm.data.Resource;
 
  32 import org.slf4j.Logger;
 
  33 import org.slf4j.LoggerFactory;
 
  35 public class AnyVrfPresentCheck implements EquipmentCheck {
 
  37     private static final Logger log = LoggerFactory.getLogger(AnyVrfPresentCheck.class);
 
  39     private ResourceManager resourceManager;
 
  42     public boolean checkEquipment(
 
  43             String endPointPosition,
 
  44             ServiceData serviceData,
 
  45             EquipmentData equipData,
 
  46             Map<String, Object> equipmentConstraints) {
 
  47         String vrfNameListStr = (String) serviceData.data.get("vrf-name-list");
 
  48         if (vrfNameListStr == null)
 
  49             vrfNameListStr = (String) serviceData.data.get("vrf-name");
 
  50         if (vrfNameListStr == null)
 
  53         String vrfRequiredStr = (String) equipmentConstraints.get("vrf-required");
 
  54         if (vrfRequiredStr == null || !vrfRequiredStr.equalsIgnoreCase("true"))
 
  57         String[] vrfNameList = vrfNameListStr.split(",");
 
  59         Resource r = resourceManager.getResource("VRF", equipData.equipmentId);
 
  60         if (r != null && r.allocationItems != null)
 
  61             for (AllocationItem ai : r.allocationItems)
 
  62                 for (String vrfName : vrfNameList)
 
  63                     if (ai.resourceShareGroupList.contains(vrfName))
 
  66         log.info("Skipping VPE " + equipData.equipmentId +
 
  67                 ": Existing VRF is required, but there is no existing VRF on the VPE for any of the requested VPNs.");
 
  71     public void setResourceManager(ResourceManager resourceManager) {
 
  72         this.resourceManager = resourceManager;