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();
} 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);
}
}
@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
@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/
@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/
@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/
@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
@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;
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;
@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/
@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/
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/
@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/
@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/
@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
@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
@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
@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
@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;
--- /dev/null
+/*
+ * 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()
+ + "}";
+ }
+}
@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
@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
@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
@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
@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
@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
@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
@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
@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;
@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;
@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;
@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;
@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;
@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;
@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;