Search in sources :

Example 1 with Inet4NetworkPool

use of org.openkilda.testing.service.traffexam.networkpool.Inet4NetworkPool in project open-kilda by telstra.

the class TraffExamServiceImpl method initializePools.

@PostConstruct
void initializePools() {
    baseUrl = labEndpoint + "/api/" + topology.getLabId() + "/traffgen/";
    hostsPool = new ConcurrentHashMap<>();
    for (TraffGen traffGen : topology.getActiveTraffGens()) {
        URI controlEndpoint;
        try {
            controlEndpoint = new URI(traffGen.getControlEndpoint());
        } catch (URISyntaxException e) {
            throw new IllegalArgumentException(String.format("Invalid traffGen(%s) REST endpoint address \"%s\": %s", traffGen.getName(), traffGen.getControlEndpoint(), e.getMessage()), e);
        }
        UUID id = UUID.randomUUID();
        Host host = new Host(id, traffGen.getIfaceName(), controlEndpoint, traffGen.getName());
        try {
            restTemplate.headForHeaders(makeHostUri(host).path("endpoint").build());
        } catch (RestClientException ex) {
            throw new IllegalArgumentException(String.format("The traffGen(%s) REST endpoint address \"%s\" can't be reached: %s", traffGen.getName(), traffGen.getControlEndpoint(), ex.getMessage()), ex);
        }
        hostsPool.put(id, host);
    }
    TraffGenConfig config = topology.getTraffGenConfig();
    Inet4Network network;
    try {
        network = new Inet4Network((Inet4Address) Inet4Address.getByName(config.getAddressPoolBase()), config.getAddressPoolPrefixLen());
    } catch (Inet4ValueException | UnknownHostException e) {
        throw new InputMismatchException(String.format("Invalid traffGen address pool \"%s:%s\": %s", config.getAddressPoolBase(), config.getAddressPoolPrefixLen(), e));
    }
    addressPool = new Inet4NetworkPool(network, 30);
}
Also used : Inet4Address(java.net.Inet4Address) UnknownHostException(java.net.UnknownHostException) Host(org.openkilda.testing.service.traffexam.model.Host) URISyntaxException(java.net.URISyntaxException) InputMismatchException(java.util.InputMismatchException) URI(java.net.URI) TraffGen(org.openkilda.testing.model.topology.TopologyDefinition.TraffGen) Inet4Network(org.openkilda.testing.service.traffexam.networkpool.Inet4Network) Inet4ValueException(org.openkilda.testing.service.traffexam.networkpool.Inet4ValueException) RestClientException(org.springframework.web.client.RestClientException) TraffGenConfig(org.openkilda.testing.model.topology.TopologyDefinition.TraffGenConfig) Inet4NetworkPool(org.openkilda.testing.service.traffexam.networkpool.Inet4NetworkPool) UUID(java.util.UUID) PostConstruct(javax.annotation.PostConstruct)

Aggregations

Inet4Address (java.net.Inet4Address)1 URI (java.net.URI)1 URISyntaxException (java.net.URISyntaxException)1 UnknownHostException (java.net.UnknownHostException)1 InputMismatchException (java.util.InputMismatchException)1 UUID (java.util.UUID)1 PostConstruct (javax.annotation.PostConstruct)1 TraffGen (org.openkilda.testing.model.topology.TopologyDefinition.TraffGen)1 TraffGenConfig (org.openkilda.testing.model.topology.TopologyDefinition.TraffGenConfig)1 Host (org.openkilda.testing.service.traffexam.model.Host)1 Inet4Network (org.openkilda.testing.service.traffexam.networkpool.Inet4Network)1 Inet4NetworkPool (org.openkilda.testing.service.traffexam.networkpool.Inet4NetworkPool)1 Inet4ValueException (org.openkilda.testing.service.traffexam.networkpool.Inet4ValueException)1 RestClientException (org.springframework.web.client.RestClientException)1