Add md-transcribing for HealthMonitors, and add *key "id"* to list healthmonitors... 70/19170/1
authorAlexis de Talhouët <adetalhouet@inocybe.com>
Mon, 27 Apr 2015 19:35:01 +0000 (15:35 -0400)
committerAlexis de Talhouët <adetalhouet@inocybe.com>
Mon, 27 Apr 2015 19:35:01 +0000 (15:35 -0400)
Change-Id: I8938709c708f6c3bde85d9606f70b69bcbacd375
Signed-off-by: Alexis de Talhouët <adetalhouet@inocybe.com>
model/src/main/yang/neutron-lbaasv2.yang
transcriber/src/main/java/org/opendaylight/neutron/transcriber/NeutronLoadBalancerHealthMonitorInterface.java

index 22a1571c5f0a3722908f68362b97b29c3793ce65..e12c914c38eab2ec93b1122d64cc041b5fef63f5 100644 (file)
@@ -297,6 +297,7 @@ module neutron-lbaasv2 {
         container healthmonitor {
             description "Container for LBaaSV2.0 healthmonitors.";
             list healthmonitors {
+                key "id";
                 uses healthmonitor-attrs;
                 description "List of healthmonitors.";
             }
index 3aea6c84f76d610935094248f2dab050e25340e5..7701efd40b8d73e510d23850c9fb9863ea12ceba 100644 (file)
@@ -20,12 +20,18 @@ import java.util.concurrent.ConcurrentMap;
 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
 import org.opendaylight.neutron.spi.INeutronLoadBalancerHealthMonitorCRUD;
 import org.opendaylight.neutron.spi.NeutronLoadBalancerHealthMonitor;
-import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.neutron.spi.Neutron_ID;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.lbaasv2.rev141002.HealthmonitorAttrs.Type;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.lbaasv2.rev141002.lbaas.attributes.Healthmonitor;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.lbaasv2.rev141002.lbaas.attributes.healthmonitor.Healthmonitors;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.lbaasv2.rev141002.lbaas.attributes.healthmonitor.HealthmonitorsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150325.Neutron;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class NeutronLoadBalancerHealthMonitorInterface extends AbstractNeutronInterface implements INeutronLoadBalancerHealthMonitorCRUD {
+public class NeutronLoadBalancerHealthMonitorInterface extends AbstractNeutronInterface<Healthmonitors, NeutronLoadBalancerHealthMonitor> implements INeutronLoadBalancerHealthMonitorCRUD {
     private static final Logger logger = LoggerFactory.getLogger(NeutronLoadBalancerHealthMonitorInterface.class);
     private ConcurrentMap<String, NeutronLoadBalancerHealthMonitor> loadBalancerHealthMonitorDB = new ConcurrentHashMap<String, NeutronLoadBalancerHealthMonitor>();
 
@@ -123,20 +129,60 @@ public class NeutronLoadBalancerHealthMonitorInterface extends AbstractNeutronIn
     }
 
     @Override
-    protected InstanceIdentifier createInstanceIdentifier(DataObject item) {
-        // TODO Auto-generated method stub
-        return null;
+    protected Healthmonitors toMd(String uuid) {
+        HealthmonitorsBuilder healthmonitorsBuilder = new HealthmonitorsBuilder();
+        healthmonitorsBuilder.setId(toUuid(uuid));
+        return healthmonitorsBuilder.build();
     }
 
     @Override
-    protected DataObject toMd(Object neutronObject) {
-        // TODO Auto-generated method stub
-        return null;
+    protected InstanceIdentifier<Healthmonitors> createInstanceIdentifier(
+            Healthmonitors healthMonitors) {
+        return InstanceIdentifier.create(Neutron.class)
+                .child(Healthmonitor.class )
+                .child(Healthmonitors.class, healthMonitors.getKey());
     }
 
     @Override
-    protected DataObject toMd(String uuid) {
-        // TODO Auto-generated method stub
-        return null;
+    protected Healthmonitors toMd(NeutronLoadBalancerHealthMonitor healthMonitor) {
+        HealthmonitorsBuilder healthmonitorsBuilder = new HealthmonitorsBuilder();
+        healthmonitorsBuilder.setAdminStateUp(healthMonitor.getLoadBalancerHealthMonitorAdminStateIsUp());
+        if (healthMonitor.getLoadBalancerHealthMonitorDelay() != null) {
+            healthmonitorsBuilder.setDelay(Long.valueOf(healthMonitor.getLoadBalancerHealthMonitorDelay()));
+        }
+        if (healthMonitor.getLoadBalancerHealthMonitorExpectedCodes() != null) {
+            healthmonitorsBuilder.setExpectedCodes(healthMonitor.getLoadBalancerHealthMonitorExpectedCodes());
+        }
+        if (healthMonitor.getLoadBalancerHealthMonitorHttpMethod() != null) {
+            healthmonitorsBuilder.setHttpMethod(healthMonitor.getLoadBalancerHealthMonitorHttpMethod());
+        }
+        if (healthMonitor.getLoadBalancerHealthMonitorMaxRetries() != null) {
+            healthmonitorsBuilder.setMaxRetries(Integer.valueOf(healthMonitor.getLoadBalancerHealthMonitorMaxRetries()));
+        }
+        if (healthMonitor.getLoadBalancerHealthMonitorPools() != null) {
+            List<Uuid> listUuid = new ArrayList<Uuid>();
+            for (Neutron_ID neutron_id : healthMonitor.getLoadBalancerHealthMonitorPools()) {
+                listUuid.add(toUuid(neutron_id.getID()));
+            }
+            healthmonitorsBuilder.setPools(listUuid);
+        }
+        if (healthMonitor.getLoadBalancerHealthMonitorTenantID() != null) {
+            healthmonitorsBuilder.setTenantId(toUuid(healthMonitor.getLoadBalancerHealthMonitorTenantID()));
+        }
+        if (healthMonitor.getLoadBalancerHealthMonitorTimeout() != null) {
+            healthmonitorsBuilder.setTimeout(Long.valueOf(healthMonitor.getLoadBalancerHealthMonitorTimeout()));
+        }
+        if (healthMonitor.getLoadBalancerHealthMonitorType() != null) {
+            healthmonitorsBuilder.setType(Type.valueOf(healthMonitor.getLoadBalancerHealthMonitorType()));
+        }
+        if (healthMonitor.getLoadBalancerHealthMonitorUrlPath() != null) {
+            healthmonitorsBuilder.setUrlPath(healthMonitor.getLoadBalancerHealthMonitorUrlPath());
+        }
+        if (healthMonitor.getLoadBalancerHealthMonitorID() != null) {
+            healthmonitorsBuilder.setId(toUuid(healthMonitor.getLoadBalancerHealthMonitorID()));
+        } else {
+            logger.warn("Attempting to write neutron laod balancer health monitor without UUID");
+        }
+        return healthmonitorsBuilder.build();
     }
 }