Added Api swagger desc for assing*ToEdge and unassing*FromEdge
This commit is contained in:
parent
f47de8cfa6
commit
d7c09b9f67
@ -518,8 +518,11 @@ public class AssetController extends BaseController {
|
||||
|
||||
@ApiOperation(value = "Assign asset to edge (assignAssetToEdge)",
|
||||
notes = "Creates assignment of an existing asset to an instance of The Edge. " +
|
||||
"The Edge is a software product for edge computing. " +
|
||||
"It allows bringing data analysis and management to the edge, while seamlessly synchronizing with the platform server (cloud). ", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
EDGE_ASSIGN_ASYNC_FIRST_STEP_DESCRIPTION +
|
||||
"Second, remote edge service will receive a copy of assignment asset " +
|
||||
EDGE_ASSIGN_RECEIVE_STEP_DESCRIPTION + ". " +
|
||||
"Third, once asset will be delivered to edge service, it's going to be available for usage on remote edge instance.",
|
||||
produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
@PreAuthorize("hasAuthority('TENANT_ADMIN')")
|
||||
@RequestMapping(value = "/edge/{edgeId}/asset/{assetId}", method = RequestMethod.POST)
|
||||
@ResponseBody
|
||||
@ -554,7 +557,12 @@ public class AssetController extends BaseController {
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Unassign asset from edge (unassignAssetFromEdge)",
|
||||
notes = "Clears assignment of the asset to the edge", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
notes = "Clears assignment of the asset to the edge. " +
|
||||
EDGE_UNASSIGN_ASYNC_FIRST_STEP_DESCRIPTION +
|
||||
"Second, remote edge service will receive an 'unassign' command to remove asset " +
|
||||
EDGE_UNASSIGN_RECEIVE_STEP_DESCRIPTION + ". " +
|
||||
"Third, once 'unassign' command will be delivered to edge service, it's going to remove asset locally.",
|
||||
produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
@PreAuthorize("hasAuthority('TENANT_ADMIN')")
|
||||
@RequestMapping(value = "/edge/{edgeId}/asset/{assetId}", method = RequestMethod.DELETE)
|
||||
@ResponseBody
|
||||
|
||||
@ -219,6 +219,11 @@ public abstract class BaseController {
|
||||
protected static final String EVENT_START_TIME_DESCRIPTION = "Timestamp. Events with creation time before it won't be queried.";
|
||||
protected static final String EVENT_END_TIME_DESCRIPTION = "Timestamp. Events with creation time after it won't be queried.";
|
||||
|
||||
protected static final String EDGE_UNASSIGN_ASYNC_FIRST_STEP_DESCRIPTION = "Unassignment works in async way - first, 'unassign' notification event pushed to edge queue on platform. ";
|
||||
protected static final String EDGE_UNASSIGN_RECEIVE_STEP_DESCRIPTION = "(Edge will receive this instantly, if it's currently connected, or once it's going to be connected to platform)" ;
|
||||
protected static final String EDGE_ASSIGN_ASYNC_FIRST_STEP_DESCRIPTION = "Assignment works in async way - first, notification event pushed to edge service queue on platform. ";
|
||||
protected static final String EDGE_ASSIGN_RECEIVE_STEP_DESCRIPTION = "(Edge will receive this instantly, if it's currently connected, or once it's going to be connected to platform)";
|
||||
|
||||
protected static final String MARKDOWN_CODE_BLOCK_START = "```json\n";
|
||||
protected static final String MARKDOWN_CODE_BLOCK_END = "\n```";
|
||||
protected static final String EVENT_ERROR_FILTER_OBJ = MARKDOWN_CODE_BLOCK_START + "{ \"eventType\": \"ERROR\", \"server\": \"ip-172-31-24-152\", " +
|
||||
|
||||
@ -805,6 +805,13 @@ public class DashboardController extends BaseController {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Assign dashboard to edge (assignDashboardToEdge)",
|
||||
notes = "Creates assignment of an existing dashboard to an instance of The Edge. " +
|
||||
EDGE_ASSIGN_ASYNC_FIRST_STEP_DESCRIPTION +
|
||||
"Second, remote edge service will receive a copy of assignment dashboard " +
|
||||
EDGE_ASSIGN_RECEIVE_STEP_DESCRIPTION + ". " +
|
||||
"Third, once dashboard will be delivered to edge service, it's going to be available for usage on remote edge instance.",
|
||||
produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
@PreAuthorize("hasAuthority('TENANT_ADMIN')")
|
||||
@RequestMapping(value = "/edge/{edgeId}/dashboard/{dashboardId}", method = RequestMethod.POST)
|
||||
@ResponseBody
|
||||
@ -838,6 +845,13 @@ public class DashboardController extends BaseController {
|
||||
}
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Unassign dashboard from edge (unassignDashboardFromEdge)",
|
||||
notes = "Clears assignment of the dashboard to the edge. " +
|
||||
EDGE_UNASSIGN_ASYNC_FIRST_STEP_DESCRIPTION +
|
||||
"Second, remote edge service will receive an 'unassign' command to remove dashboard " +
|
||||
EDGE_UNASSIGN_RECEIVE_STEP_DESCRIPTION + ". " +
|
||||
"Third, once 'unassign' command will be delivered to edge service, it's going to remove dashboard locally.",
|
||||
produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
@PreAuthorize("hasAuthority('TENANT_ADMIN')")
|
||||
@RequestMapping(value = "/edge/{edgeId}/dashboard/{dashboardId}", method = RequestMethod.DELETE)
|
||||
@ResponseBody
|
||||
|
||||
@ -24,6 +24,7 @@ import io.swagger.annotations.ApiParam;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
@ -782,8 +783,11 @@ public class DeviceController extends BaseController {
|
||||
|
||||
@ApiOperation(value = "Assign device to edge (assignDeviceToEdge)",
|
||||
notes = "Creates assignment of an existing device to an instance of The Edge. " +
|
||||
"The Edge is a software product for edge computing. " +
|
||||
"It allows bringing data analysis and management to the edge, while seamlessly synchronizing with the platform server (cloud). ")
|
||||
EDGE_ASSIGN_ASYNC_FIRST_STEP_DESCRIPTION +
|
||||
"Second, remote edge service will receive a copy of assignment device " +
|
||||
EDGE_ASSIGN_RECEIVE_STEP_DESCRIPTION + ". " +
|
||||
"Third, once device will be delivered to edge service, it's going to be available for usage on remote edge instance.",
|
||||
produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
@PreAuthorize("hasAuthority('TENANT_ADMIN')")
|
||||
@RequestMapping(value = "/edge/{edgeId}/device/{deviceId}", method = RequestMethod.POST)
|
||||
@ResponseBody
|
||||
@ -821,7 +825,12 @@ public class DeviceController extends BaseController {
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Unassign device from edge (unassignDeviceFromEdge)",
|
||||
notes = "Clears assignment of the device to the edge")
|
||||
notes = "Clears assignment of the device to the edge. " +
|
||||
EDGE_UNASSIGN_ASYNC_FIRST_STEP_DESCRIPTION +
|
||||
"Second, remote edge service will receive an 'unassign' command to remove device " +
|
||||
EDGE_UNASSIGN_RECEIVE_STEP_DESCRIPTION + ". " +
|
||||
"Third, once 'unassign' command will be delivered to edge service, it's going to remove device locally.",
|
||||
produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
@PreAuthorize("hasAuthority('TENANT_ADMIN')")
|
||||
@RequestMapping(value = "/edge/{edgeId}/device/{deviceId}", method = RequestMethod.DELETE)
|
||||
@ResponseBody
|
||||
|
||||
@ -142,7 +142,7 @@ public class EdgeController extends BaseController {
|
||||
@PreAuthorize("hasAuthority('TENANT_ADMIN')")
|
||||
@RequestMapping(value = "/edge", method = RequestMethod.POST)
|
||||
@ResponseBody
|
||||
public Edge saveEdge(@ApiParam(value = "A JSON value representing the ed.", required = true)
|
||||
public Edge saveEdge(@ApiParam(value = "A JSON value representing the edge.", required = true)
|
||||
@RequestBody Edge edge) throws ThingsboardException {
|
||||
try {
|
||||
TenantId tenantId = getCurrentUser().getTenantId();
|
||||
|
||||
@ -20,9 +20,11 @@ import com.google.common.util.concurrent.Futures;
|
||||
import com.google.common.util.concurrent.ListenableFuture;
|
||||
import com.google.common.util.concurrent.MoreExecutors;
|
||||
import com.google.common.util.concurrent.SettableFuture;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
@ -611,6 +613,13 @@ public class EntityViewController extends BaseController {
|
||||
}
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Assign entity view to edge (assignEntityViewToEdge)",
|
||||
notes = "Creates assignment of an existing entity view to an instance of The Edge. " +
|
||||
EDGE_ASSIGN_ASYNC_FIRST_STEP_DESCRIPTION +
|
||||
"Second, remote edge service will receive a copy of assignment entity view " +
|
||||
EDGE_ASSIGN_RECEIVE_STEP_DESCRIPTION + ". " +
|
||||
"Third, once entity view will be delivered to edge service, it's going to be available for usage on remote edge instance.",
|
||||
produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
@PreAuthorize("hasAuthority('TENANT_ADMIN')")
|
||||
@RequestMapping(value = "/edge/{edgeId}/entityView/{entityViewId}", method = RequestMethod.POST)
|
||||
@ResponseBody
|
||||
@ -641,6 +650,13 @@ public class EntityViewController extends BaseController {
|
||||
}
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Unassign entity view from edge (unassignEntityViewFromEdge)",
|
||||
notes = "Clears assignment of the entity view to the edge. " +
|
||||
EDGE_UNASSIGN_ASYNC_FIRST_STEP_DESCRIPTION +
|
||||
"Second, remote edge service will receive an 'unassign' command to remove entity view " +
|
||||
EDGE_UNASSIGN_RECEIVE_STEP_DESCRIPTION + ". " +
|
||||
"Third, once 'unassign' command will be delivered to edge service, it's going to remove entity view locally.",
|
||||
produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
@PreAuthorize("hasAuthority('TENANT_ADMIN')")
|
||||
@RequestMapping(value = "/edge/{edgeId}/entityView/{entityViewId}", method = RequestMethod.DELETE)
|
||||
@ResponseBody
|
||||
|
||||
@ -20,10 +20,12 @@ import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
@ -494,6 +496,14 @@ public class RuleChainController extends BaseController {
|
||||
return msgData;
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Assign rule chain to edge (assignRuleChainToEdge)",
|
||||
notes = "Creates assignment of an existing rule chain to an instance of The Edge. " +
|
||||
EDGE_ASSIGN_ASYNC_FIRST_STEP_DESCRIPTION +
|
||||
"Second, remote edge service will receive a copy of assignment rule chain " +
|
||||
EDGE_ASSIGN_RECEIVE_STEP_DESCRIPTION + ". " +
|
||||
"Third, once rule chain will be delivered to edge service, it's going to start processing messages locally. " +
|
||||
"\n\nOnly rule chain with type 'EDGE' can be assigned to edge.",
|
||||
produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
@PreAuthorize("hasAuthority('TENANT_ADMIN')")
|
||||
@RequestMapping(value = "/edge/{edgeId}/ruleChain/{ruleChainId}", method = RequestMethod.POST)
|
||||
@ResponseBody
|
||||
@ -527,6 +537,13 @@ public class RuleChainController extends BaseController {
|
||||
}
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Unassign rule chain from edge (unassignRuleChainFromEdge)",
|
||||
notes = "Clears assignment of the rule chain to the edge. " +
|
||||
EDGE_UNASSIGN_ASYNC_FIRST_STEP_DESCRIPTION +
|
||||
"Second, remote edge service will receive an 'unassign' command to remove rule chain " +
|
||||
EDGE_UNASSIGN_RECEIVE_STEP_DESCRIPTION + ". " +
|
||||
"Third, once 'unassign' command will be delivered to edge service, it's going to remove rule chain locally.",
|
||||
produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
@PreAuthorize("hasAuthority('TENANT_ADMIN')")
|
||||
@RequestMapping(value = "/edge/{edgeId}/ruleChain/{ruleChainId}", method = RequestMethod.DELETE)
|
||||
@ResponseBody
|
||||
|
||||
@ -544,6 +544,9 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC
|
||||
if (!edge.getTenantId().equals(ruleChain.getTenantId())) {
|
||||
throw new DataValidationException("Can't assign ruleChain to edge from different tenant!");
|
||||
}
|
||||
if (!RuleChainType.EDGE.equals(ruleChain.getType())) {
|
||||
throw new DataValidationException("Can't assign non EDGE ruleChain to edge!");
|
||||
}
|
||||
try {
|
||||
createRelation(tenantId, new EntityRelation(edgeId, ruleChainId, EntityRelation.CONTAINS_TYPE, RelationTypeGroup.EDGE));
|
||||
} catch (Exception e) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user