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