16 package org.openkilda.northbound.controller;
25 import io.swagger.annotations.Api;
26 import io.swagger.annotations.ApiOperation;
27 import io.swagger.annotations.ApiResponse;
28 import io.swagger.annotations.ApiResponses;
29 import org.springframework.beans.factory.annotation.Autowired;
30 import org.springframework.context.annotation.PropertySource;
31 import org.springframework.http.HttpStatus;
32 import org.springframework.http.MediaType;
33 import org.springframework.web.bind.annotation.GetMapping;
34 import org.springframework.web.bind.annotation.RequestBody;
35 import org.springframework.web.bind.annotation.RequestMapping;
36 import org.springframework.web.bind.annotation.RequestMethod;
37 import org.springframework.web.bind.annotation.RequestParam;
38 import org.springframework.web.bind.annotation.ResponseStatus;
39 import org.springframework.web.bind.annotation.RestController;
41 import java.util.List;
47 @PropertySource(
"classpath:northbound.properties")
49 @ApiResponses(
value = {
50 @ApiResponse(code = 200, message =
"Operation is successful"),
51 @ApiResponse(code = 400, response = MessageError.class, message =
"Invalid input data"),
52 @ApiResponse(code = 401, response = MessageError.class, message =
"Unauthorized"),
53 @ApiResponse(code = 403, response = MessageError.class, message =
"Forbidden"),
54 @ApiResponse(code = 404, response = MessageError.class, message =
"Not found"),
55 @ApiResponse(code = 500, response = MessageError.class, message =
"General error"),
56 @ApiResponse(code = 503, response = MessageError.class, message =
"Service unavailable")})
67 @ApiOperation(
value =
"Get all links", response =
LinkDto.class, responseContainer =
"List")
68 @GetMapping(
path =
"/links")
69 @ResponseStatus(HttpStatus.OK)
71 return linkService.getLinks();
79 @ApiOperation(
value =
"Get all link properties (static), based on arguments.", response =
LinkPropsDto.class,
80 responseContainer =
"List")
81 @RequestMapping(
path =
"/link/props",
82 method = RequestMethod.GET,
83 produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
84 @ResponseStatus(HttpStatus.OK)
86 @RequestParam(
value = "src_port", required = false) Integer srcPort,
87 @RequestParam(
value = "dst_switch", required = false)
SwitchId dstSwitch,
88 @RequestParam(
value = "dst_port", required = false) Integer dstPort) {
89 return linkService.getLinkProps(srcSwitch, srcPort, dstSwitch, dstPort);
98 @ApiOperation(
value =
"Create/Update link properties", response =
BatchResults.class)
99 @RequestMapping(
path =
"/link/props",
100 method = RequestMethod.PUT,
101 produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
102 @ResponseStatus(HttpStatus.OK)
105 return linkService.setLinkProps(keysAndProps);
114 @ApiOperation(
value =
"Delete link properties (static), based on arguments.", response =
BatchResults.class)
115 @RequestMapping(
path =
"/link/props",
116 method = RequestMethod.DELETE,
117 produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
118 @ResponseStatus(HttpStatus.OK)
121 return linkService.delLinkProps(keysAndProps);