Fix NPE and minor changes 93/45493/1
authorDavid Goldberg <gdavid@hpe.com>
Mon, 12 Sep 2016 14:00:00 +0000 (17:00 +0300)
committerDavid Goldberg <gdavid@hpe.com>
Mon, 12 Sep 2016 15:23:10 +0000 (18:23 +0300)
Change-Id: I2d90743d416d3b5e0cc3d641852638d5a0954beb
Signed-off-by: David Goldberg <gdavid@hpe.com>
netvirt/pom.xml
netvirt/src/main/java/org/opendaylight/unimgr/mef/netvirt/EvcListener.java
netvirt/src/main/java/org/opendaylight/unimgr/mef/netvirt/MefUtils.java

index e6bfb08581cc799d638333f4b277e03f690f2edb..e38613a57ffd103275919df8b786a95828194f8a 100644 (file)
@@ -43,6 +43,7 @@
               *
             </Import-Package>
             <Export-Package>
+                org.opendaylight.unimgr.mef.netvirt
             </Export-Package>
           </instructions>
         </configuration>
index bab6307c910a17b67de9aa8129f69f09d859c6e4..6ad6751444507584680accad7116c605015e0ff5 100644 (file)
@@ -96,6 +96,10 @@ public class EvcListener extends UnimgrDataTreeChangeListener<Evc> {
                 NetvirtUtils.createElanInstance(dataBroker, instanceName, isEtree);
             }
             // Create interfaces
+            if (data.getUnis() == null) {
+                log.info("No UNI's in service {}, exiting", instanceName);
+                return;
+            }
             for (Uni uni : data.getUnis().getUni()) {
                 if (!uni.isAdminStateEnabled()) {
                     log.info("uni {} AdminStateEnabled false", uni.getUniId().getValue());
index e14a2f55ab02242506c0756c590f930730790084..c08da4bc8fa32b5ed794b2ed94a0d3493cbf52b8 100644 (file)
@@ -37,6 +37,7 @@ import org.opendaylight.yang.gen.v1.http.metroethernetforum.org.ns.yang.mef.type
 import org.opendaylight.yang.gen.v1.http.metroethernetforum.org.ns.yang.mef.types.rev150526.EvcType;
 import org.opendaylight.yang.gen.v1.http.metroethernetforum.org.ns.yang.mef.types.rev150526.Identifier45;
 import org.opendaylight.yang.gen.v1.http.metroethernetforum.org.ns.yang.mef.types.rev150526.RetailSvcIdType;
+import org.opendaylight.yang.gen.v1.http.metroethernetforum.org.ns.yang.mef.types.rev150526.EvcStatusType;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -59,6 +60,10 @@ public final class MefUtils {
                 .child(Uni.class, new UniKey(new Identifier45(uniId))).build();
     }
 
+    public static InstanceIdentifier<Uni> getUniListInterfaceInstanceIdentifier() {
+        return InstanceIdentifier.builder(MefInterfaces.class).child(Unis.class).child(Uni.class).build();
+    }
+
     public static InstanceIdentifier<org.opendaylight.yang.gen.v1.http.metroethernetforum.org.ns.yang.mef.services.rev150526.mef.services.mef.service.evc.Unis> getUnisInstanceIdentifier(
             String evcId) {
         return InstanceIdentifier.builder(MefServices.class)
@@ -85,7 +90,20 @@ public final class MefUtils {
     }
 
     public static InstanceIdentifier<Evc> getEvcInstanceIdentifier() {
-        return InstanceIdentifier.create(MefServices.class).child(MefService.class).child(Evc.class);
+        return getMefServiceInstanceIdentifier().child(Evc.class);
+    }
+
+    public static InstanceIdentifier<MefService> getMefServiceInstanceIdentifier() {
+        return InstanceIdentifier.create(MefServices.class).child(MefService.class);
+    }
+
+    public static InstanceIdentifier<MefService> getMefServiceInstanceIdentifier(
+            RetailSvcIdType retailSvcIdType) {
+        return InstanceIdentifier.create(MefServices.class).child(MefService.class, new MefServiceKey(retailSvcIdType));
+    }
+
+    public static InstanceIdentifier<MefServices> getMefServicesInstanceIdentifier() {
+        return InstanceIdentifier.create(MefServices.class);
     }
 
     public static void createEvcInstance(DataBroker dataBroker, String instanceName) {