Commit 93363f81bbd9bb41ec0ef382bf480a1d85e7f7f3

Authored by Bohdan Smetaniuk
1 parent 02585823

sync edge api

... ... @@ -104,6 +104,7 @@ import org.thingsboard.server.queue.provider.TbQueueProducerProvider;
104 104 import org.thingsboard.server.queue.util.TbCoreComponent;
105 105 import org.thingsboard.server.service.component.ComponentDiscoveryService;
106 106 import org.thingsboard.server.service.edge.EdgeNotificationService;
  107 +import org.thingsboard.server.service.edge.rpc.init.SyncEdgeService;
107 108 import org.thingsboard.server.service.queue.TbClusterService;
108 109 import org.thingsboard.server.service.security.model.SecurityUser;
109 110 import org.thingsboard.server.service.security.permission.AccessControlService;
... ... @@ -202,12 +203,15 @@ public abstract class BaseController {
202 203 @Autowired
203 204 protected TbQueueProducerProvider producerProvider;
204 205
205   - @Autowired
  206 + @Autowired(required = false)
206 207 protected EdgeService edgeService;
207 208
208   - @Autowired
  209 + @Autowired(required = false)
209 210 protected EdgeNotificationService edgeNotificationService;
210 211
  212 + @Autowired(required = false)
  213 + protected SyncEdgeService syncEdgeService;
  214 +
211 215 @Value("${server.log_controller_error_stack_trace}")
212 216 @Getter
213 217 private boolean logControllerErrorStackTrace;
... ...
... ... @@ -26,6 +26,7 @@ import org.springframework.web.bind.annotation.RequestParam;
26 26 import org.springframework.web.bind.annotation.ResponseBody;
27 27 import org.springframework.web.bind.annotation.ResponseStatus;
28 28 import org.springframework.web.bind.annotation.RestController;
  29 +import org.thingsboard.server.common.data.AdminSettings;
29 30 import org.thingsboard.server.common.data.Customer;
30 31 import org.thingsboard.server.common.data.EntitySubtype;
31 32 import org.thingsboard.server.common.data.EntityType;
... ... @@ -409,6 +410,18 @@ public class EdgeController extends BaseController {
409 410 }
410 411 }
411 412
  413 + @PreAuthorize("hasAuthority('TENANT_ADMIN')")
  414 + @RequestMapping(value = "/edge/sync", method = RequestMethod.POST)
  415 + public void syncEdge(@RequestBody EdgeId edgeId) throws ThingsboardException {
  416 + try {
  417 + edgeId = checkNotNull(edgeId);
  418 + Edge edge = checkEdgeId(edgeId, Operation.READ);
  419 + syncEdgeService.sync(edge);
  420 + } catch (Exception e) {
  421 + throw handleException(e);
  422 + }
  423 + }
  424 +
412 425 @RequestMapping(value = "/license/checkInstance", method = RequestMethod.POST)
413 426 @ResponseBody
414 427 public Object checkInstance(@RequestBody Object request) throws ThingsboardException {
... ...
... ... @@ -2372,6 +2372,10 @@ public class RestClient implements ClientHttpRequestInterceptor, Closeable {
2372 2372 params).getBody();
2373 2373 }
2374 2374
  2375 + public void syncEdge(EdgeId edgeId) {
  2376 + restTemplate.postForEntity(baseURL + "/api/edge/sync", edgeId, EdgeId.class);
  2377 + }
  2378 +
2375 2379 @Deprecated
2376 2380 public Optional<JsonNode> getAttributes(String accessToken, String clientKeys, String sharedKeys) {
2377 2381 Map<String, String> params = new HashMap<>();
... ...