16 package org.openkilda.testing.service.aswitch;
20 import org.slf4j.Logger;
21 import org.slf4j.LoggerFactory;
22 import org.springframework.beans.factory.annotation.Autowired;
23 import org.springframework.beans.factory.annotation.Qualifier;
24 import org.springframework.http.HttpEntity;
25 import org.springframework.http.HttpHeaders;
26 import org.springframework.http.HttpMethod;
27 import org.springframework.http.MediaType;
28 import org.springframework.stereotype.Service;
29 import org.springframework.web.client.RestTemplate;
31 import java.util.Arrays;
32 import java.util.List;
33 import java.util.stream.Collectors;
42 private static final Logger LOGGER = LoggerFactory.getLogger(
ASwitchServiceImpl.class);
45 @Qualifier(
"aSwitchRestTemplate")
46 private RestTemplate restTemplate;
49 public void addFlows(List<ASwitchFlow> flows) {
50 restTemplate.exchange(
"/flows", HttpMethod.POST,
51 new HttpEntity<>(flows, buildJsonHeaders()), String.class);
52 LOGGER.info(
"Added flows: {}", flows.stream()
53 .map(flow -> String.format(
"%s->%s", flow.getInPort(), flow.getOutPort()))
54 .collect(Collectors.toList()));
59 restTemplate.exchange(
"/flows", HttpMethod.DELETE,
60 new HttpEntity<>(flows, buildJsonHeaders()), String.class);
61 LOGGER.info(
"Removed flows: {}", flows.stream()
62 .map(flow -> String.format(
"%s->%s", flow.getInPort(), flow.getOutPort()))
63 .collect(Collectors.toList()));
68 ASwitchFlow[] flows = restTemplate.exchange(
"/flows", HttpMethod.GET,
69 new HttpEntity(buildJsonHeaders()),
ASwitchFlow[].
class).getBody();
70 return Arrays.asList(flows);
74 public void portsUp(List<Integer> ports) {
75 restTemplate.exchange(
"/ports", HttpMethod.POST,
76 new HttpEntity<>(ports, buildJsonHeaders()), String.class);
77 LOGGER.info(
"Brought up ports: {}", ports);
82 restTemplate.exchange(
"/ports", HttpMethod.DELETE,
83 new HttpEntity<>(ports, buildJsonHeaders()), String.class);
84 LOGGER.info(
"Brought down ports: {}", ports);
87 private HttpHeaders buildJsonHeaders() {
88 HttpHeaders
headers =
new HttpHeaders();
89 headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
void portsDown(List< Integer > ports)
void removeFlows(List< ASwitchFlow > flows)
List< ASwitchFlow > getAllFlows()
void portsUp(List< Integer > ports)
void addFlows(List< ASwitchFlow > flows)