X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fnorthbound%2Fintegrationtest%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnorthbound%2Fintegrationtest%2FNorthboundIT.java;h=6829fadff566b452e0ec92f96d79cd92d905b45f;hp=e7ca7f57822a438e4243a29115fd38f854dce5ed;hb=0408539088240d4899667c83c8c192d2299d66da;hpb=9411770e514bb0c5a65f96dc9deb7a87a9ea86ad diff --git a/opendaylight/northbound/integrationtest/src/test/java/org/opendaylight/controller/northbound/integrationtest/NorthboundIT.java b/opendaylight/northbound/integrationtest/src/test/java/org/opendaylight/controller/northbound/integrationtest/NorthboundIT.java index e7ca7f5782..6829fadff5 100644 --- a/opendaylight/northbound/integrationtest/src/test/java/org/opendaylight/controller/northbound/integrationtest/NorthboundIT.java +++ b/opendaylight/northbound/integrationtest/src/test/java/org/opendaylight/controller/northbound/integrationtest/NorthboundIT.java @@ -8,17 +8,12 @@ import static org.ops4j.pax.exam.CoreOptions.options; import static org.ops4j.pax.exam.CoreOptions.systemPackages; import static org.ops4j.pax.exam.CoreOptions.systemProperty; -import java.io.BufferedReader; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.net.HttpURLConnection; -import java.net.URL; -import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; import javax.inject.Inject; @@ -32,6 +27,9 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.opendaylight.controller.commons.httpclient.HTTPClient; +import org.opendaylight.controller.commons.httpclient.HTTPRequest; +import org.opendaylight.controller.commons.httpclient.HTTPResponse; import org.opendaylight.controller.hosttracker.IfIptoHost; import org.opendaylight.controller.sal.core.Bandwidth; import org.opendaylight.controller.sal.core.ConstructionException; @@ -47,7 +45,7 @@ import org.opendaylight.controller.sal.topology.TopoEdgeUpdate; import org.opendaylight.controller.switchmanager.IInventoryListener; import org.opendaylight.controller.usermanager.IUserManager; import org.ops4j.pax.exam.Option; -import org.ops4j.pax.exam.junit.Configuration; +import org.ops4j.pax.exam.Configuration; import org.ops4j.pax.exam.junit.PaxExam; import org.ops4j.pax.exam.util.PathUtils; import org.osgi.framework.Bundle; @@ -149,53 +147,52 @@ public class NorthboundIT { } try { - URL url = new URL(restUrl); this.userManager.getAuthorizationList(); this.userManager.authenticate("admin", "admin"); + HTTPRequest request = new HTTPRequest(); + + request.setUri(restUrl); + request.setMethod(method); + request.setTimeout(0); // HostTracker doesn't respond + // within default timeout during + // IT so setting an indefinite + // timeout till the issue is + // sorted out + + Map> headers = new HashMap>(); String authString = "admin:admin"; byte[] authEncBytes = Base64.encodeBase64(authString.getBytes()); String authStringEnc = new String(authEncBytes); - - HttpURLConnection connection = (HttpURLConnection) url.openConnection(); - connection.setRequestMethod(method); - connection.setRequestProperty("Authorization", "Basic " + authStringEnc); - connection.setRequestProperty("Content-Type", "application/json"); - connection.setRequestProperty("Accept", "application/json"); - + List header = new ArrayList(); + header.add("Basic "+authStringEnc); + headers.put("Authorization", header); + header = new ArrayList(); + header.add("application/json"); + headers.put("Accept", header); + request.setHeaders(headers); + request.setContentType("application/json"); if (body != null) { - connection.setDoOutput(true); - OutputStreamWriter wr = new OutputStreamWriter(connection.getOutputStream()); - wr.write(body); - wr.flush(); + request.setEntity(body); } - connection.connect(); - connection.getContentType(); + + HTTPResponse response = HTTPClient.sendRequest(request); // Response code for success should be 2xx - httpResponseCode = connection.getResponseCode(); + httpResponseCode = response.getStatus(); if (httpResponseCode > 299) { return httpResponseCode.toString(); } if (debugMsg) { - System.out.println("HTTP response code: " + connection.getResponseCode()); - System.out.println("HTTP response message: " + connection.getResponseMessage()); + System.out.println("HTTP response code: " + response.getStatus()); + System.out.println("HTTP response message: " + response.getEntity()); } - InputStream is = connection.getInputStream(); - BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8"))); - StringBuilder sb = new StringBuilder(); - int cp; - while ((cp = rd.read()) != -1) { - sb.append((char) cp); - } - is.close(); - connection.disconnect(); + return response.getEntity(); + } catch (Exception e) { if (debugMsg) { - System.out.println("Response : "+sb.toString()); + e.printStackTrace(); } - return sb.toString(); - } catch (Exception e) { return null; } } @@ -208,47 +205,34 @@ public class NorthboundIT { Assert.assertEquals(nodeId, (Integer) nodeInfo.getInt("id")); Assert.assertEquals(nodeType, nodeInfo.getString("type")); - JSONArray propsArray = node.getJSONArray("properties"); - - for (int j = 0; j < propsArray.length(); j++) { - JSONObject properties = propsArray.getJSONObject(j); - String propName = properties.getString("name"); - if (propName.equals("timeStamp")) { - if (timestamp == null || timestampName == null) { - Assert.assertFalse("Timestamp exist", true); - } else { - Assert.assertEquals(timestamp, (Integer) properties.getInt("value")); - Assert.assertEquals(timestampName, properties.getString("timestampName")); - } - } - if (propName.equals("actions")) { - if (actionsValue == null) { - Assert.assertFalse("Actions exist", true); - } else { - Assert.assertEquals(actionsValue, (Integer) properties.getInt("value")); - } - } - if (propName.equals("capabilities")) { - if (capabilitiesValue == null) { - Assert.assertFalse("Capabilities exist", true); - } else { - Assert.assertEquals(capabilitiesValue, (Integer) properties.getInt("value")); - } - } - if (propName.equals("tables")) { - if (tablesValue == null) { - Assert.assertFalse("Tables exist", true); - } else { - Assert.assertEquals(tablesValue, (Integer) properties.getInt("value")); - } - } - if (propName.equals("buffers")) { - if (buffersValue == null) { - Assert.assertFalse("Buffers exist", true); - } else { - Assert.assertEquals(buffersValue, (Integer) properties.getInt("value")); - } - } + JSONObject properties = node.getJSONObject("properties"); + + if (timestamp == null || timestampName == null) { + Assert.assertFalse(properties.has("timeStamp")); + } else { + Assert.assertEquals(timestamp, (Integer) properties.getJSONObject("timeStamp").getInt("value")); + Assert.assertEquals(timestampName, properties.getJSONObject("timeStamp").getString("name")); + } + if (actionsValue == null) { + Assert.assertFalse(properties.has("actions")); + } else { + Assert.assertEquals(actionsValue, (Integer) properties.getJSONObject("actions").getInt("value")); + } + if (capabilitiesValue == null) { + Assert.assertFalse(properties.has("capabilities")); + } else { + Assert.assertEquals(capabilitiesValue, + (Integer) properties.getJSONObject("capabilities").getInt("value")); + } + if (tablesValue == null) { + Assert.assertFalse(properties.has("tables")); + } else { + Assert.assertEquals(tablesValue, (Integer) properties.getJSONObject("tables").getInt("value")); + } + if (buffersValue == null) { + Assert.assertFalse(properties.has("buffers")); + } else { + Assert.assertEquals(buffersValue, (Integer) properties.getJSONObject("buffers").getInt("value")); } } @@ -258,37 +242,27 @@ public class NorthboundIT { JSONObject nodeConnector = nodeConnectorProperties.getJSONObject("nodeconnector"); JSONObject node = nodeConnector.getJSONObject("node"); + JSONObject properties = nodeConnectorProperties.getJSONObject("properties"); Assert.assertEquals(ncId, (Integer) nodeConnector.getInt("id")); Assert.assertEquals(ncType, nodeConnector.getString("type")); Assert.assertEquals(nodeId, (Integer) node.getInt("id")); Assert.assertEquals(nodeType, node.getString("type")); - - JSONArray propsArray = nodeConnectorProperties.getJSONArray("properties"); - for (int j = 0; j < propsArray.length(); j++) { - JSONObject properties = propsArray.getJSONObject(j); - String propName = properties.getString("name"); - if (propName.equals("state")) { - if (state == null) { - Assert.assertFalse("State exist", true); - } else { - Assert.assertEquals(state, (Integer) properties.getInt("value")); - } - } - if (propName.equals("capabilities")) { - if (capabilities == null) { - Assert.assertFalse("Capabilities exist", true); - } else { - Assert.assertEquals(capabilities, (Integer) properties.getInt("value")); - } - } - if (propName.equals("bandwidth")) { - if (bandwidth == null) { - Assert.assertFalse("bandwidth exist", true); - } else { - Assert.assertEquals(bandwidth, (Integer) properties.getInt("value")); - } - } + if (state == null) { + Assert.assertFalse(properties.has("state")); + } else { + Assert.assertEquals(state, (Integer) properties.getJSONObject("state").getInt("value")); + } + if (capabilities == null) { + Assert.assertFalse(properties.has("capabilities")); + } else { + Assert.assertEquals(capabilities, + (Integer) properties.getJSONObject("capabilities").getInt("value")); + } + if (bandwidth == null) { + Assert.assertFalse(properties.has("bandwidth")); + } else { + Assert.assertEquals(bandwidth, (Integer) properties.getJSONObject("bandwidth").getInt("value")); } } @@ -610,19 +584,8 @@ public class NorthboundIT { json = new JSONObject(jt); node = getJsonInstance(json, "nodeProperties", nodeId_1); Assert.assertNotNull(node); - - JSONArray propsArray = node.getJSONArray("properties"); - - for (int j = 0; j < propsArray.length(); j++) { - JSONObject properties = propsArray.getJSONObject(j); - String propName = properties.getString("name"); - if (propName.equals("tier")) { - Assert.assertEquals(1001, properties.getInt("value")); - } - if (propName.equals("description")) { - Assert.assertEquals("node1", properties.getString("value")); - } - } + Assert.assertEquals(1001, node.getJSONObject("properties").getJSONObject("tier").getInt("value")); + Assert.assertEquals("node1", node.getJSONObject("properties").getJSONObject("description").getString("value")); // Test delete nodeConnector property // Delete state property of nodeconnector1 @@ -1229,26 +1192,10 @@ public class NorthboundIT { JSONObject headNC = edge.getJSONObject("headNodeConnector"); JSONObject headNode = headNC.getJSONObject("node"); - - JSONArray propsArray = edgeProp.getJSONArray("properties"); - - JSONObject bandw = null; - JSONObject stt = null; - JSONObject ltc = null; - - for (int j = 0; j < propsArray.length(); j++) { - JSONObject props = propsArray.getJSONObject(j); - String propName = props.getString("name"); - if (propName.equals("bandwidth")) { - bandw = props; - } - if (propName.equals("state")) { - stt = props; - } - if (propName.equals("latency")) { - ltc = props; - } - } + JSONObject Props = edgeProp.getJSONObject("properties"); + JSONObject bandw = Props.getJSONObject("bandwidth"); + JSONObject stt = Props.getJSONObject("state"); + JSONObject ltc = Props.getJSONObject("latency"); if (headNC.getInt("id") == headNC1_nodeConnId) { Assert.assertEquals(headNode.getString("type"), nodeType); @@ -1280,7 +1227,6 @@ public class NorthboundIT { Integer nodeId_1 = 3366; String nodeConnectorType_1 = "STUB"; Integer nodeConnectorId_1 = 12; - String nodeType_2 = "STUB"; Integer nodeId_2 = 4477; String nodeConnectorType_2 = "STUB"; @@ -1369,7 +1315,6 @@ public class NorthboundIT { } } } - // Configure the OSGi container @Configuration public Option[] config() { @@ -1433,6 +1378,7 @@ public class NorthboundIT { mavenBundle("org.opendaylight.controller", "forwarding.staticrouting").versionAsInProject(), mavenBundle("org.opendaylight.controller", "bundlescanner").versionAsInProject(), mavenBundle("org.opendaylight.controller", "bundlescanner.implementation").versionAsInProject(), + mavenBundle("org.opendaylight.controller", "commons.httpclient").versionAsInProject(), // Northbound bundles mavenBundle("org.opendaylight.controller", "commons.northbound").versionAsInProject(),