CDS: Add stress test RPC to the cars model
[controller.git] / opendaylight / netconf / config-netconf-connector / src / main / java / org / opendaylight / controller / netconf / confignetconfconnector / operations / editconfig / NoneEditConfigStrategy.java
index 8347c6b88e23325fa579527a5f30785a99216b7d..83afd708163e2068ddd287aac7058b4330c79480 100644 (file)
@@ -8,22 +8,36 @@
 
 package org.opendaylight.controller.netconf.confignetconfconnector.operations.editconfig;
 
+import java.util.Collections;
 import java.util.Map;
-
 import org.opendaylight.controller.config.util.ConfigTransactionClient;
+import org.opendaylight.controller.netconf.confignetconfconnector.exception.NetconfConfigHandlingException;
 import org.opendaylight.controller.netconf.confignetconfconnector.mapping.attributes.fromxml.AttributeConfigElement;
-import org.opendaylight.controller.netconf.confignetconfconnector.mapping.config.Services;
+import org.opendaylight.controller.netconf.confignetconfconnector.mapping.config.ServiceRegistryWrapper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class NoneEditConfigStrategy implements EditConfigStrategy {
 
-    private static final Logger logger = LoggerFactory.getLogger(NoneEditConfigStrategy.class);
+    private static final Logger LOG = LoggerFactory.getLogger(NoneEditConfigStrategy.class);
 
     @Override
     public void executeConfiguration(String module, String instance, Map<String, AttributeConfigElement> configuration,
-                                     ConfigTransactionClient ta, Services services) {
-        logger.debug("Skipping configuration element for {}:{}", module, instance);
+                                     ConfigTransactionClient ta, ServiceRegistryWrapper services) throws NetconfConfigHandlingException {
+        if(configuration != null && !configuration.isEmpty()) {
+            for (Map.Entry<String, AttributeConfigElement> attrEntry : configuration.entrySet()) {
+                if(attrEntry.getValue().getEditStrategy().isPresent()) {
+                    final Map<String, AttributeConfigElement> partialConfig =
+                            Collections.singletonMap(attrEntry.getKey(), attrEntry.getValue());
+                    attrEntry.getValue().getEditStrategy().get().getFittingStrategy()
+                            .executeConfiguration(module, instance, partialConfig, ta, services);
+                } else {
+                    LOG.debug("Skipping configuration element for {}:{}:{}", module, instance, attrEntry.getKey());
+                }
+            }
+        } else {
+            LOG.debug("Skipping configuration element for {}:{}", module, instance);
+        }
     }
 
 }