improve error logs due to IllegalArgumentException to include full input 71/76771/4
authorMichael Vorburger <vorburger@redhat.com>
Mon, 8 Oct 2018 21:59:37 +0000 (23:59 +0200)
committerMichael Vorburger <vorburger@redhat.com>
Tue, 30 Oct 2018 18:06:48 +0000 (19:06 +0100)
This requires, and adds, a working toString() for all *Request classes,
which is always useful for future logging of requests elsewhere.

This introduction of a NeutronRequest (an ABC instead of an interface)
could in the future also allow a follow-up change to get rid of the
reflection in INeutronRequest, by having a (generic) "singleton" and a
"bulkRequest" field in NeutronRequest instead of in each *Request class.
(The problem with that idea, and why it is how it currently is, are the
@XmlElement annotations for singleton and bulkRequest in each *Request;
those would have to be moved to new getters.)

Change-Id: I9769a3825632dd2bd2f9e2875b91d06a4f781616
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
35 files changed:
integration/test-standalone/src/main/java/org/opendaylight/neutron/e2etest/HttpUtils.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/AbstractNeutronNorthbound.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronBgpvpnRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronFirewallPolicyRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronFirewallRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronFirewallRuleRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronFloatingIpRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronL2gatewayConnectionRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronL2gatewayRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronLoadBalancerHealthMonitorRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronLoadBalancerListenerRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronLoadBalancerPoolMemberRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronLoadBalancerPoolRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronLoadBalancerRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronMeteringLabelRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronMeteringLabelRuleRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronNetworkRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronPortRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronQosPolicyRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronRequest.java [new file with mode: 0644]
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronRouterRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronSFCFlowClassifierRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronSFCPortChainRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronSFCPortPairGroupRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronSFCPortPairRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronSecurityGroupRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronSecurityRuleRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronSubnetRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronTapFlowRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronTapServiceRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronTrunkRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronVpnIkePolicyRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronVpnIpSecPolicyRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronVpnIpSecSiteConnectionRequest.java
northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronVpnServiceRequest.java

index bee5779e1635820a196e89c87ea9d71d4c3ea461..206e5b89ec10f9d120877558c7d5083dbfef8b68 100644 (file)
@@ -150,7 +150,7 @@ public final class HttpUtils {
         Assert.assertTrue("E2E Tests Failed - Json Error", entrySet.size() > 0);
         JsonElement jsonElementValue = entrySet.iterator().next().getValue();
         String key = entrySet.iterator().next().getKey();
-        Assert.assertEquals(context, collectionName, key);
+        Assert.assertEquals(context + "; jsonObjectOutput=" + jsonObjectOutput.toString(), collectionName, key);
         Assert.assertTrue("E2E Tests Failed - Collection not Array: " + jsonElementValue + "; URL: " + urlStr
                 + "; full response: " + response, jsonElementValue.isJsonArray());
         JsonArray jsonArray = jsonElementValue.getAsJsonArray();
index b03a2fa481017ba1cccecca83ef17daa3e252b0b..de64b76de4286d232256842d6b1e13d93d83dbb8 100644 (file)
@@ -144,6 +144,8 @@ public abstract class AbstractNeutronNorthbound<T extends INeutronObject<T>, R e
         } catch (OperationFailedException e) {
             LOG.warn("create failed due to datastore problem (possibly missing required fields); input: {}", input);
             throw new DatastoreOperationFailedWebApplicationException(e);
+        } catch (IllegalArgumentException e) {
+            throw new IllegalArgumentException("IAE for input: " + input.toString(), e);
         }
     }
 
index 46601b10692066f526c66b33c02675ef1c0bbbd1..504061a5b0dbefe871bd1a7a39369025aa763228 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.neutron.spi.NeutronBgpvpn;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronBgpvpnRequest implements INeutronRequest<NeutronBgpvpn> {
+public final class NeutronBgpvpnRequest extends NeutronRequest<NeutronBgpvpn> {
     // See OpenStack Network API v2.0 Reference for description of
     // annotated attributes
 
index b971c7a4b5c5d52ff234ed5d120e5bb8d163ce6d..677a2708de0affc72b0d4687eec0124101b43b04 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.neutron.spi.NeutronFirewallPolicy;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronFirewallPolicyRequest implements INeutronRequest<NeutronFirewallPolicy> {
+public final class NeutronFirewallPolicyRequest extends NeutronRequest<NeutronFirewallPolicy> {
     /**
      * See OpenStack Network API v2.0 Reference for description of the following link.
      * http://docs.openstack.org/api/openstack-network/2.0/content/
index 35bb0b528b590e4d7865249a4ccb25ad71d945ab..088bc307e83f2f29006e80185b5037c433c938f7 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.neutron.spi.NeutronFirewall;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronFirewallRequest implements INeutronRequest<NeutronFirewall> {
+public final class NeutronFirewallRequest extends NeutronRequest<NeutronFirewall> {
     /**
      * See OpenStack Network API v2.0 Reference for description of the following link.
      * http://docs.openstack.org/api/openstack-network/2.0/content/
index c5bab0b374b7dae6018f657cab773e8bb83aa213..59cbbc45a9d5272c549af049dcce78e4bbf788de 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.neutron.spi.NeutronFirewallRule;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronFirewallRuleRequest implements INeutronRequest<NeutronFirewallRule> {
+public final class NeutronFirewallRuleRequest extends NeutronRequest<NeutronFirewallRule> {
     /**
      * See OpenStack Network API v2.0 Reference for description of the following link.
      * http://docs.openstack.org/api/openstack-network/2.0/content/
index 9487703d977bc78044785f3cf993ed970b13b77c..b64f2f6f4e80e7d8735e30e5d2c6a51dd9a1b951 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.neutron.spi.NeutronFloatingIp;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronFloatingIpRequest implements INeutronRequest<NeutronFloatingIp> {
+public final class NeutronFloatingIpRequest extends NeutronRequest<NeutronFloatingIp> {
     // See OpenStack Network API v2.0 Reference for description of
     // annotated attributes
 
index 74552472ca8956b50c4367c9433b6577bfbc5dfe..0c015b3757b17e7f63db22f59e5572fa65d20125 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.neutron.spi.NeutronL2gatewayConnection;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronL2gatewayConnectionRequest implements INeutronRequest<NeutronL2gatewayConnection> {
+public final class NeutronL2gatewayConnectionRequest extends NeutronRequest<NeutronL2gatewayConnection> {
     @XmlElement(name = "l2gateway_connection")
     NeutronL2gatewayConnection singleton;
 
index d568ad4ba1001f9994a943adde61106d8a90a073..60be6c91cba51d508c387fd02fae3065e73761bc 100644 (file)
@@ -14,7 +14,7 @@ import javax.xml.bind.annotation.XmlElement;
 import org.opendaylight.neutron.spi.NeutronL2gateway;
 
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronL2gatewayRequest implements INeutronRequest<NeutronL2gateway> {
+public final class NeutronL2gatewayRequest extends NeutronRequest<NeutronL2gateway> {
     @XmlElement(name = "l2_gateway")
     NeutronL2gateway singleton;
 
index a23c74e408ee69a7ade97de14a8955149c5453a7..1983a91690c23d22056eed51919f529a2baef5ac 100644 (file)
@@ -20,7 +20,7 @@ import org.opendaylight.neutron.spi.NeutronLoadBalancerHealthMonitor;
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
 public final class NeutronLoadBalancerHealthMonitorRequest
-    implements INeutronRequest<NeutronLoadBalancerHealthMonitor> {
+    extends NeutronRequest<NeutronLoadBalancerHealthMonitor> {
     /**
      * See OpenStack Network API v2.0 Reference for description of the following link.
      * http://docs.openstack.org/api/openstack-network/2.0/content/
index 47756c27ae1a15fb5d69c6e8a5e554bf3eb29034..5590d2d40221aa99e6ba09b6000b35ba71554ff9 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.neutron.spi.NeutronLoadBalancerListener;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronLoadBalancerListenerRequest implements INeutronRequest<NeutronLoadBalancerListener> {
+public final class NeutronLoadBalancerListenerRequest extends NeutronRequest<NeutronLoadBalancerListener> {
     /**
      * See OpenStack Network API v2.0 Reference for description of the following link.
      * http://docs.openstack.org/api/openstack-network/2.0/content/
index f9724cd43b4ef6cd07ccc23c34450a543e9508b5..88dcc6942b721e542d28328360255dfe83d4f11a 100644 (file)
@@ -14,7 +14,7 @@ import javax.xml.bind.annotation.XmlElement;
 import org.opendaylight.neutron.spi.NeutronLoadBalancerPoolMember;
 
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronLoadBalancerPoolMemberRequest implements INeutronRequest<NeutronLoadBalancerPoolMember> {
+public final class NeutronLoadBalancerPoolMemberRequest extends NeutronRequest<NeutronLoadBalancerPoolMember> {
     /**
      * See OpenStack Network API v2.0 Reference for description of the following link.
      * http://docs.openstack.org/api/openstack-network/2.0/content/
index 2bfd997b66fea5d45261567d9ff0d560e9bc7fcf..655966ec00adaccd6adb4e391fbacbbecfe280fa 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.neutron.spi.NeutronLoadBalancerPool;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronLoadBalancerPoolRequest implements INeutronRequest<NeutronLoadBalancerPool> {
+public final class NeutronLoadBalancerPoolRequest extends NeutronRequest<NeutronLoadBalancerPool> {
     /**
      * See OpenStack Network API v2.0 Reference for description of the following link.
      * http://docs.openstack.org/api/openstack-network/2.0/content/
index 1df94a6540a35e52b31e794971a0dfb6c6a6c5b8..fbe26049f97f2bf148fa63759b75011bed21beb5 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.neutron.spi.NeutronLoadBalancer;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronLoadBalancerRequest implements INeutronRequest<NeutronLoadBalancer> {
+public final class NeutronLoadBalancerRequest extends NeutronRequest<NeutronLoadBalancer> {
     /**
      * See OpenStack Network API v2.0 Reference for description of the following link.
      * http://docs.openstack.org/api/openstack-network/2.0/content/
index 750bf5d63609736d03dc8d0d219c4654bf94a7d6..1f082ff17623854f230d7953ae43e30772f0195b 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.neutron.spi.NeutronMeteringLabel;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronMeteringLabelRequest implements INeutronRequest<NeutronMeteringLabel> {
+public final class NeutronMeteringLabelRequest extends NeutronRequest<NeutronMeteringLabel> {
     // See OpenStack Network API v2.0 Reference for description of
     // annotated attributes
 
index 42a1046014fbd80f72b0e0fa9a11076eebfc5120..e355af61acff2dcf02e22a679419035e18afbdf8 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.neutron.spi.NeutronMeteringLabelRule;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronMeteringLabelRuleRequest implements INeutronRequest<NeutronMeteringLabelRule> {
+public final class NeutronMeteringLabelRuleRequest extends NeutronRequest<NeutronMeteringLabelRule> {
     // See OpenStack Network API v2.0 Reference for description of
     // annotated attributes
 
index 83578c39d2abfbe5675323e1167b3967bdd3eabc..54c51e506ea2e03581e19911d6b66eba587d8713 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.neutron.spi.NeutronNetwork;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronNetworkRequest implements INeutronRequest<NeutronNetwork> {
+public final class NeutronNetworkRequest extends NeutronRequest<NeutronNetwork> {
     // See OpenStack Network API v2.0 Reference for description of
     // annotated attributes
 
index c891c34aedb026d47f19c00dd572ac2cad341dba..e9b2c8ea72045ed9ddf0fd47a55b35e1f6eda84e 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.neutron.spi.NeutronPort;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronPortRequest implements INeutronRequest<NeutronPort> {
+public final class NeutronPortRequest extends NeutronRequest<NeutronPort> {
     // See OpenStack Network API v2.0 Reference for description of
     // annotated attributes
 
index 1d270e454b9c6011dc5d531cb2218976210ac582..5d5866c516ce8daa1f5a8978139aed79ffa30cfa 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.neutron.spi.NeutronQosPolicy;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronQosPolicyRequest implements INeutronRequest<NeutronQosPolicy> {
+public final class NeutronQosPolicyRequest extends NeutronRequest<NeutronQosPolicy> {
     @XmlElement(name = "policy")
     NeutronQosPolicy singleton;
 
diff --git a/northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronRequest.java b/northbound-api/src/main/java/org/opendaylight/neutron/northbound/api/NeutronRequest.java
new file mode 100644 (file)
index 0000000..7db0f24
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2018 Red Hat, Inc. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.neutron.northbound.api;
+
+import javax.xml.bind.annotation.XmlTransient;
+import org.opendaylight.neutron.spi.INeutronObject;
+
+/**
+ * Abstract base class a correct {@link #toString()} for all {@link INeutronRequest} implementations.
+ *
+ * @author Michael Vorburger.ch
+ */
+@XmlTransient
+public abstract class NeutronRequest<T extends INeutronObject<T>> implements INeutronRequest<T> {
+
+    // TODO move the singleton & bulkRequest fields from the subclasses up into this class
+
+    @Override
+    public String toString() {
+        T singleton = getSingleton();
+        return getClass().getSimpleName() + "{"
+            + singleton != null ? "singleton=" + singleton
+            : "bulkRequest=" + getBulk()
+            + "}";
+    }
+}
index 4a07cad16105f5e08e765ae780060867d10e8ddd..492981b7b3f58528d47290f7b14a397db841606a 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.neutron.spi.NeutronRouter;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronRouterRequest implements INeutronRequest<NeutronRouter> {
+public final class NeutronRouterRequest extends NeutronRequest<NeutronRouter> {
     // See OpenStack Network API v2.0 Reference for description of
     // annotated attributes
 
index 865b5c6ae68451dae8d1ed435520cde7563e89a6..32c2e9fa61be0c104004c9a8b43858456524b7e0 100644 (file)
@@ -18,7 +18,7 @@ import org.opendaylight.neutron.spi.NeutronSFCFlowClassifier;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronSFCFlowClassifierRequest implements INeutronRequest<NeutronSFCFlowClassifier> {
+public final class NeutronSFCFlowClassifierRequest extends NeutronRequest<NeutronSFCFlowClassifier> {
     // See OpenStack Networking SFC (networking-sfc) API v1.0 Reference for description of
     // annotated attributes
 
index 5a6eba03e3b2764c11cd665eb2bbbb0fee24b5e0..fe6951ec72f6cc11d57df477f4e30b06e6bbcea7 100644 (file)
@@ -18,7 +18,7 @@ import org.opendaylight.neutron.spi.NeutronSFCPortChain;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronSFCPortChainRequest implements INeutronRequest<NeutronSFCPortChain> {
+public final class NeutronSFCPortChainRequest extends NeutronRequest<NeutronSFCPortChain> {
     // See OpenStack Networking SFC (networking-sfc) Port Chain API v1.0 Reference
     // for description of annotated attributes
 
index d54cecb99cfed7e3c57ea3a6a19f48b98cdf03e2..130232bb018139baae3ecb1082548c9c25f4bfde 100644 (file)
@@ -18,7 +18,7 @@ import org.opendaylight.neutron.spi.NeutronSFCPortPairGroup;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronSFCPortPairGroupRequest implements INeutronRequest<NeutronSFCPortPairGroup> {
+public final class NeutronSFCPortPairGroupRequest extends NeutronRequest<NeutronSFCPortPairGroup> {
     // See OpenStack Networking SFC (networking-sfc) Port Pair Group API v1.0 Reference
     // for description of annotated attributes
 
index 30382fd85ed723f1a71d3592995b2557182e3c7e..3e8d8c3dd1fe402a61d412ededfedbd22b4d68db 100644 (file)
@@ -18,7 +18,7 @@ import org.opendaylight.neutron.spi.NeutronSFCPortPair;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronSFCPortPairRequest implements INeutronRequest<NeutronSFCPortPair> {
+public final class NeutronSFCPortPairRequest extends NeutronRequest<NeutronSFCPortPair> {
     // See OpenStack Networking SFC (networking-sfc) Port Pair API v1.0 Reference
     // for description of annotated attributes
 
index cb5c9b3f65b78bec3ad0d8a4d6bc20685a3a0f6f..1cde5e302ee33acde86e8fbb82d884058c57cf0b 100644 (file)
@@ -18,7 +18,7 @@ import org.opendaylight.neutron.spi.NeutronSecurityGroup;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronSecurityGroupRequest implements INeutronRequest<NeutronSecurityGroup> {
+public final class NeutronSecurityGroupRequest extends NeutronRequest<NeutronSecurityGroup> {
 
     /**
     * See OpenStack Network API v2.0 Reference for a
index dff94cd4ff449d242f329ac1c2e7799faabdab40..25964b56f4182f6d1166bcaa4d54128ddca7d78d 100644 (file)
@@ -18,7 +18,7 @@ import org.opendaylight.neutron.spi.NeutronSecurityRule;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronSecurityRuleRequest implements INeutronRequest<NeutronSecurityRule> {
+public final class NeutronSecurityRuleRequest extends NeutronRequest<NeutronSecurityRule> {
 
     /**
      * See OpenStack Network API v2.0 Reference for a
index aebf5454b8654845193f4fa2fc145f3a79918498..0c4b11c7d28ac4e7db36bb01e00d08f87c52b5b9 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.neutron.spi.NeutronSubnet;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronSubnetRequest implements INeutronRequest<NeutronSubnet> {
+public final class NeutronSubnetRequest extends NeutronRequest<NeutronSubnet> {
     // See OpenStack Network API v2.0 Reference for description of
     // annotated attributes
 
index b09e1e97e36f4841a52f105e8daa7e58e0b30f5a..fd418e61b4f56358d6426cbb8807d4a5033aa3a4 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.neutron.spi.NeutronTapFlow;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronTapFlowRequest implements INeutronRequest<NeutronTapFlow> {
+public final class NeutronTapFlowRequest extends NeutronRequest<NeutronTapFlow> {
     @XmlElement(name = "tap_flow")
     NeutronTapFlow singleton;
 
index 98335293205dbaebe24b13a8103a8384353e713d..bf5305dced0261ddd7ede56300748cbf4389ebbc 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.neutron.spi.NeutronTapService;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronTapServiceRequest implements INeutronRequest<NeutronTapService> {
+public final class NeutronTapServiceRequest extends NeutronRequest<NeutronTapService> {
     @XmlElement(name = "tap_service")
     NeutronTapService singleton;
 
index 4e925eb3169ebf0fd50e893f606c2503726c8eb1..fd117bffddf9f86d0c12c5d878df1aca7923bc4e 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.neutron.spi.NeutronTrunk;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronTrunkRequest implements INeutronRequest<NeutronTrunk> {
+public final class NeutronTrunkRequest extends NeutronRequest<NeutronTrunk> {
 
     @XmlElement(name = "trunk")
     NeutronTrunk singleton;
index e46a368e0073d85b62689f7c31e6cb27c4c40a1f..2224d23907017455d321c5410034b0b86c63f5df 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.neutron.spi.NeutronVpnIkePolicy;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronVpnIkePolicyRequest implements INeutronRequest<NeutronVpnIkePolicy> {
+public final class NeutronVpnIkePolicyRequest extends NeutronRequest<NeutronVpnIkePolicy> {
     @XmlElement(name = "ikepolicy")
     NeutronVpnIkePolicy singleton;
 
index 07fafda9f43a8f6c7ba96776e0449db2039410a4..1295f9b486d48a1c43b3fa9f10d549a80f3fd370 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.neutron.spi.NeutronVpnIpSecPolicy;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronVpnIpSecPolicyRequest implements INeutronRequest<NeutronVpnIpSecPolicy> {
+public final class NeutronVpnIpSecPolicyRequest extends NeutronRequest<NeutronVpnIpSecPolicy> {
     @XmlElement(name = "ipsecpolicy")
     NeutronVpnIpSecPolicy singleton;
 
index a2337bc605c526b15bd54b19d191a5f5f4d66759..d62519f0e78e5927401198ab4e1e3cafc70fdad2 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.neutron.spi.NeutronVpnIpSecSiteConnection;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronVpnIpSecSiteConnectionRequest implements INeutronRequest<NeutronVpnIpSecSiteConnection> {
+public final class NeutronVpnIpSecSiteConnectionRequest extends NeutronRequest<NeutronVpnIpSecSiteConnection> {
     @XmlElement(name = "ipsec_site_connection")
     NeutronVpnIpSecSiteConnection singleton;
 
index 374a6d44ee70a6bfbdf4042ddb457e98b59bddc7..63ec9bc62ef73076f00fa9a4cec4e61eb292d10c 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.neutron.spi.NeutronVpnService;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
 @SuppressFBWarnings("URF_UNREAD_FIELD")
-public final class NeutronVpnServiceRequest implements INeutronRequest<NeutronVpnService> {
+public final class NeutronVpnServiceRequest extends NeutronRequest<NeutronVpnService> {
     @XmlElement(name = "vpnservice")
     NeutronVpnService singleton;