Browse Source

Remove edge from upgradeEdgeController. We modify edgeVersion only on edgeConnect

pull/9688/head
Andrii Landiak 3 years ago
parent
commit
855b9c054b
  1. 9
      application/src/main/java/org/thingsboard/server/controller/EdgeController.java
  2. 22
      application/src/main/java/org/thingsboard/server/service/edge/instructions/DefaultEdgeUpgradeService.java
  3. 3
      application/src/main/java/org/thingsboard/server/service/edge/instructions/EdgeUpgradeService.java

9
application/src/main/java/org/thingsboard/server/controller/EdgeController.java

@ -581,20 +581,15 @@ public class EdgeController extends BaseController {
notes = "Get a docker install instructions for provided edge id." + TENANT_AUTHORITY_PARAGRAPH, notes = "Get a docker install instructions for provided edge id." + TENANT_AUTHORITY_PARAGRAPH,
produces = MediaType.APPLICATION_JSON_VALUE) produces = MediaType.APPLICATION_JSON_VALUE)
@PreAuthorize("hasAnyAuthority('TENANT_ADMIN')") @PreAuthorize("hasAnyAuthority('TENANT_ADMIN')")
@RequestMapping(value = "/edge/instructions/upgrade/{edgeId}/{edgeVersion}/{method}", method = RequestMethod.GET) @RequestMapping(value = "/edge/instructions/upgrade/{edgeVersion}/{method}", method = RequestMethod.GET)
@ResponseBody @ResponseBody
public EdgeInstructions getEdgeUpgradeInstructions( public EdgeInstructions getEdgeUpgradeInstructions(
@ApiParam(value = EDGE_ID_PARAM_DESCRIPTION, required = true)
@PathVariable("edgeId") String strEdgeId,
@ApiParam(value = "Edge version", required = true) @ApiParam(value = "Edge version", required = true)
@PathVariable("edgeVersion") String edgeVersion, @PathVariable("edgeVersion") String edgeVersion,
@ApiParam(value = "Installation method ('docker', 'ubuntu' or 'centos')", allowableValues = "docker,ubuntu,centos") @ApiParam(value = "Installation method ('docker', 'ubuntu' or 'centos')", allowableValues = "docker,ubuntu,centos")
@PathVariable("method") String method) throws Exception { @PathVariable("method") String method) throws Exception {
if (isEdgesEnabled() && edgeUpgradeServiceOpt.isPresent()) { if (isEdgesEnabled() && edgeUpgradeServiceOpt.isPresent()) {
EdgeId edgeId = new EdgeId(toUUID(strEdgeId)); return checkNotNull(edgeUpgradeServiceOpt.get().getUpgradeInstructions(getTenantId(), edgeVersion, method));
edgeId = checkNotNull(edgeId);
Edge edge = checkEdgeId(edgeId, Operation.READ);
return checkNotNull(edgeUpgradeServiceOpt.get().getUpgradeInstructions(getTenantId(), edge, edgeVersion, method));
} else { } else {
throw new ThingsboardException("Edges support disabled", ThingsboardErrorCode.GENERAL); throw new ThingsboardException("Edges support disabled", ThingsboardErrorCode.GENERAL);
} }

22
application/src/main/java/org/thingsboard/server/service/edge/instructions/DefaultEdgeUpgradeService.java

@ -22,15 +22,8 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.thingsboard.server.common.data.DataConstants;
import org.thingsboard.server.common.data.edge.Edge;
import org.thingsboard.server.common.data.edge.EdgeInstructions; import org.thingsboard.server.common.data.edge.EdgeInstructions;
import org.thingsboard.server.common.data.id.EdgeId;
import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.kv.AttributeKvEntry;
import org.thingsboard.server.common.data.kv.BaseAttributeKvEntry;
import org.thingsboard.server.common.data.kv.StringDataEntry;
import org.thingsboard.server.dao.attributes.AttributesService;
import org.thingsboard.server.queue.util.TbCoreComponent; import org.thingsboard.server.queue.util.TbCoreComponent;
import org.thingsboard.server.service.install.InstallScripts; import org.thingsboard.server.service.install.InstallScripts;
@ -61,27 +54,26 @@ public class DefaultEdgeUpgradeService implements EdgeUpgradeService {
private static final String UPGRADE_DIR = "upgrade"; private static final String UPGRADE_DIR = "upgrade";
private final InstallScripts installScripts; private final InstallScripts installScripts;
private final AttributesService attributesService;
@Value("${app.version:unknown}") @Value("${app.version:unknown}")
private String appVersion; private String appVersion;
@Override @Override
public EdgeInstructions getUpgradeInstructions(TenantId tenantId, Edge edge, String edgeVersion, String upgradeMethod) { public EdgeInstructions getUpgradeInstructions(TenantId tenantId, String edgeVersion, String upgradeMethod) {
String tbVersion = appVersion.replace("-SNAPSHOT", ""); String tbVersion = appVersion.replace("-SNAPSHOT", "");
String currentEdgeVersion = convertEdgeVersionToDocsFormat(edgeVersion); String currentEdgeVersion = convertEdgeVersionToDocsFormat(edgeVersion);
switch (upgradeMethod.toLowerCase()) { switch (upgradeMethod.toLowerCase()) {
case "docker": case "docker":
return getDockerUpgradeInstructions(tenantId, edge.getId(), tbVersion, currentEdgeVersion); return getDockerUpgradeInstructions(tenantId, tbVersion, currentEdgeVersion);
case "ubuntu": case "ubuntu":
case "centos": case "centos":
return getLinuxUpgradeInstructions(tenantId, edge.getId(), tbVersion, currentEdgeVersion, upgradeMethod.toLowerCase()); return getLinuxUpgradeInstructions(tenantId, tbVersion, currentEdgeVersion, upgradeMethod.toLowerCase());
default: default:
throw new IllegalArgumentException("Unsupported upgrade method for Edge: " + upgradeMethod); throw new IllegalArgumentException("Unsupported upgrade method for Edge: " + upgradeMethod);
} }
} }
private EdgeInstructions getDockerUpgradeInstructions(TenantId tenantId, EdgeId edgeId, String tbVersion, String currentEdgeVersion) { private EdgeInstructions getDockerUpgradeInstructions(TenantId tenantId, String tbVersion, String currentEdgeVersion) {
UpgradeInfo upgradeInfo = upgradeVersionHashMap.get(currentEdgeVersion); UpgradeInfo upgradeInfo = upgradeVersionHashMap.get(currentEdgeVersion);
if (upgradeInfo.getNextVersion() == null || tbVersion.equals(currentEdgeVersion)) { if (upgradeInfo.getNextVersion() == null || tbVersion.equals(currentEdgeVersion)) {
return null; return null;
@ -110,12 +102,10 @@ public class DefaultEdgeUpgradeService implements EdgeUpgradeService {
} }
String startService = readFile(resolveFile("docker", "start_service.md")); String startService = readFile(resolveFile("docker", "start_service.md"));
result.append(startService); result.append(startService);
AttributeKvEntry attributeKvEntry = new BaseAttributeKvEntry(new StringDataEntry("edgeVersion", currentEdgeVersion), System.currentTimeMillis());
attributesService.save(tenantId, edgeId, DataConstants.SERVER_SCOPE, attributeKvEntry);
return new EdgeInstructions(result.toString()); return new EdgeInstructions(result.toString());
} }
private EdgeInstructions getLinuxUpgradeInstructions(TenantId tenantId, EdgeId edgeId, String tbVersion, String currentEdgeVersion, String os) { private EdgeInstructions getLinuxUpgradeInstructions(TenantId tenantId, String tbVersion, String currentEdgeVersion, String os) {
UpgradeInfo upgradeInfo = upgradeVersionHashMap.get(currentEdgeVersion); UpgradeInfo upgradeInfo = upgradeVersionHashMap.get(currentEdgeVersion);
if (upgradeInfo.getNextVersion() == null || tbVersion.equals(currentEdgeVersion)) { if (upgradeInfo.getNextVersion() == null || tbVersion.equals(currentEdgeVersion)) {
return null; return null;
@ -147,8 +137,6 @@ public class DefaultEdgeUpgradeService implements EdgeUpgradeService {
} }
String startService = readFile(resolveFile("start_service.md")); String startService = readFile(resolveFile("start_service.md"));
result.append(startService); result.append(startService);
AttributeKvEntry attributeKvEntry = new BaseAttributeKvEntry(new StringDataEntry("edgeVersion", convertDocsFormatToEdgeVersion(currentEdgeVersion)), System.currentTimeMillis());
attributesService.save(tenantId, edgeId, DataConstants.SERVER_SCOPE, attributeKvEntry);
return new EdgeInstructions(result.toString()); return new EdgeInstructions(result.toString());
} }

3
application/src/main/java/org/thingsboard/server/service/edge/instructions/EdgeUpgradeService.java

@ -15,11 +15,10 @@
*/ */
package org.thingsboard.server.service.edge.instructions; package org.thingsboard.server.service.edge.instructions;
import org.thingsboard.server.common.data.edge.Edge;
import org.thingsboard.server.common.data.edge.EdgeInstructions; import org.thingsboard.server.common.data.edge.EdgeInstructions;
import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.TenantId;
public interface EdgeUpgradeService { public interface EdgeUpgradeService {
EdgeInstructions getUpgradeInstructions(TenantId tenantId, Edge edge, String edgeVersion, String upgradeMethod) throws Exception; EdgeInstructions getUpgradeInstructions(TenantId tenantId, String edgeVersion, String upgradeMethod) throws Exception;
} }

Loading…
Cancel
Save