use of org.apache.cloudstack.network.opendaylight.api.model.NeutronNetworkWrapper in project cloudstack by apache.
the class OpenDaylightControllerResource method executeRequest.
private Answer executeRequest(ConfigureNetworkCommand cmd) {
NeutronNetworksNorthboundAction configureNetwork = new NeutronNetworksNorthboundAction(controllerUrl, controllerUsername, controllerPassword);
// Find free gre key
int gre_key = -1;
Random keyGenerator = new Random(System.currentTimeMillis());
try {
NeutronNetworksList<NeutronNetwork> networks = configureNetwork.listAllNetworks();
while (true) {
int i = keyGenerator.nextInt();
for (NeutronNetwork network : networks.getNetworks()) {
if (network.getSegmentationId() == i) {
continue;
}
}
gre_key = i;
break;
}
} catch (NeutronRestApiException e) {
s_logger.error("Failed to list existing networks on the ODL Controller", e);
return new ConfigureNetworkAnswer(cmd, e);
}
NeutronNetwork newNetwork = new NeutronNetwork();
// Configuration from the command
newNetwork.setName(cmd.getName());
newNetwork.setTenantId(cmd.getTenantId());
// Static configuation
newNetwork.setNetworkType("gre");
newNetwork.setShared(false);
newNetwork.setSegmentationId(gre_key);
newNetwork.setId(UUID.randomUUID());
NeutronNetworkWrapper wrapper = new NeutronNetworkWrapper();
wrapper.setNetwork(newNetwork);
try {
wrapper = configureNetwork.createNeutronNetwork(wrapper);
} catch (NeutronRestApiException e) {
s_logger.error("createNeutronNetwork failed", e);
return new ConfigureNetworkAnswer(cmd, e);
}
return new ConfigureNetworkAnswer(cmd, true, null, wrapper.getNetwork().getId().toString());
}
use of org.apache.cloudstack.network.opendaylight.api.model.NeutronNetworkWrapper in project cloudstack by apache.
the class NeutronNetworkAdapterTest method gsonNeutronNetworkMarshalingTest.
@Test
public void gsonNeutronNetworkMarshalingTest() throws NeutronRestApiException {
NeutronNetwork network = new NeutronNetwork();
network.setId(UUID.fromString("ca31aa7f-84c7-416d-bc00-1f84927367e0"));
network.setName("test_gre");
network.setNetworkType("test");
network.setSegmentationId(1001);
network.setShared(true);
network.setTenantId("wilder");
NeutronNetworkWrapper networkWrapper = new NeutronNetworkWrapper();
networkWrapper.setNetwork(network);
StringRequestEntity entity;
try {
entity = new StringRequestEntity(gsonNeutronNetwork.toJson(networkWrapper), "application/json", null);
String actual = entity.getContent();
Assert.assertEquals(jsonString, actual);
} catch (UnsupportedEncodingException e) {
Assert.fail(e.getMessage());
}
}
use of org.apache.cloudstack.network.opendaylight.api.model.NeutronNetworkWrapper in project cloudstack by apache.
the class NeutronRestApiIT method neutronListAllNetworks.
@Test
public void neutronListAllNetworks() throws NeutronRestApiException {
URL url;
try {
url = new URL("http://178.237.34.233:8080");
NeutronNetworksNorthboundAction neutron = new NeutronNetworksNorthboundAction(url, "admin", "admin");
NeutronNetworksList<NeutronNetworkWrapper> results = neutron.listAllNetworks();
Assert.assertNotNull(results);
List<NeutronNetworkWrapper> networks = results.getNetworks();
Assert.assertNotNull(networks);
} catch (MalformedURLException e) {
Assert.fail("Should not fail here.");
}
}
use of org.apache.cloudstack.network.opendaylight.api.model.NeutronNetworkWrapper in project cloudstack by apache.
the class NeutronNetworksNorthboundAction method findNetworkById.
@SuppressWarnings("unchecked")
public <T> T findNetworkById(final String networkId) throws NeutronRestApiException {
String uri = NeutronNorthboundEnum.NETWORK_PARAM_URI.getUri();
uri = MessageFormat.format(uri, networkId);
String bodystring = executeGet(uri, Collections.<String, String>emptyMap());
Type returnType = new TypeToken<NeutronNetworkWrapper>() {
}.getType();
T returnValue = (T) gsonNeutronNetwork.fromJson(bodystring, returnType);
return returnValue;
}
use of org.apache.cloudstack.network.opendaylight.api.model.NeutronNetworkWrapper in project cloudstack by apache.
the class NeutronRestApiMock method neutronHTTPPostMethod.
/*
* Test fails because there is no controller. It's used only to test that
* the HTTP methods are correct.
*/
@Test(expected = NeutronRestApiException.class)
public void neutronHTTPPostMethod() throws NeutronRestApiException {
URL url;
try {
url = new URL("http://localhost:8080");
NeutronNetwork network = new NeutronNetwork();
network.setId(UUID.fromString("ca31aa7f-84c7-416d-bc00-1f84927367e0"));
network.setName("test_gre");
network.setNetworkType("test");
network.setSegmentationId(1001);
network.setShared(true);
network.setTenantId("wilder");
NeutronNetworkWrapper networkWrapper = new NeutronNetworkWrapper();
networkWrapper.setNetwork(network);
NeutronNetworksNorthboundAction neutron = new NeutronNetworksNorthboundAction(url, "admin", "admin");
neutron.createNeutronNetwork(networkWrapper);
} catch (MalformedURLException e) {
Assert.fail("Should not fail here.");
}
}
Aggregations