Search in sources :

Example 1 with InstancePatchObject

use of com.alibaba.nacos.naming.core.InstancePatchObject in project nacos by alibaba.

the class InstanceController method patch.

/**
 * Patch instance.
 *
 * @param request http request
 * @return 'ok' if success
 * @throws Exception any error during patch
 */
@CanDistro
@PatchMapping
@Secured(action = ActionTypes.WRITE)
public String patch(HttpServletRequest request) throws Exception {
    String serviceName = WebUtils.required(request, CommonParams.SERVICE_NAME);
    NamingUtils.checkServiceNameFormat(serviceName);
    String ip = WebUtils.required(request, "ip");
    String port = WebUtils.required(request, "port");
    String cluster = WebUtils.optional(request, CommonParams.CLUSTER_NAME, StringUtils.EMPTY);
    if (StringUtils.isBlank(cluster)) {
        cluster = WebUtils.optional(request, "cluster", UtilsAndCommons.DEFAULT_CLUSTER_NAME);
    }
    InstancePatchObject patchObject = new InstancePatchObject(cluster, ip, Integer.parseInt(port));
    String metadata = WebUtils.optional(request, METADATA, StringUtils.EMPTY);
    if (StringUtils.isNotBlank(metadata)) {
        patchObject.setMetadata(UtilsAndCommons.parseMetadata(metadata));
    }
    String app = WebUtils.optional(request, "app", StringUtils.EMPTY);
    if (StringUtils.isNotBlank(app)) {
        patchObject.setApp(app);
    }
    String weight = WebUtils.optional(request, "weight", StringUtils.EMPTY);
    if (StringUtils.isNotBlank(weight)) {
        patchObject.setWeight(Double.parseDouble(weight));
    }
    String healthy = WebUtils.optional(request, "healthy", StringUtils.EMPTY);
    if (StringUtils.isNotBlank(healthy)) {
        patchObject.setHealthy(ConvertUtils.toBoolean(healthy));
    }
    String enabledString = WebUtils.optional(request, "enabled", StringUtils.EMPTY);
    if (StringUtils.isNotBlank(enabledString)) {
        patchObject.setEnabled(ConvertUtils.toBoolean(enabledString));
    }
    String namespaceId = WebUtils.optional(request, CommonParams.NAMESPACE_ID, Constants.DEFAULT_NAMESPACE_ID);
    getInstanceOperator().patchInstance(namespaceId, serviceName, patchObject);
    return "ok";
}
Also used : InstancePatchObject(com.alibaba.nacos.naming.core.InstancePatchObject) Secured(com.alibaba.nacos.auth.annotation.Secured) CanDistro(com.alibaba.nacos.naming.web.CanDistro) PatchMapping(org.springframework.web.bind.annotation.PatchMapping)

Example 2 with InstancePatchObject

use of com.alibaba.nacos.naming.core.InstancePatchObject in project nacos by alibaba.

the class InstanceControllerV2 method patch.

/**
 * Patch instance.
 *
 * @param namespaceId namespace id
 * @param serviceName service name
 * @param metadata    service metadata
 * @param cluster     service cluster
 * @param ip          instance ip
 * @param port        instance port
 * @param weight      instance weight
 * @param enabled     instance enabled
 * @return 'ok' if success
 * @throws Exception any error during patch
 */
@CanDistro
@PatchMapping
@Secured(action = ActionTypes.WRITE)
public String patch(@RequestParam(defaultValue = Constants.DEFAULT_NAMESPACE_ID) String namespaceId, @RequestParam String serviceName, @RequestParam String ip, @RequestParam(defaultValue = UtilsAndCommons.DEFAULT_CLUSTER_NAME) String cluster, @RequestParam Integer port, @RequestParam Double weight, @RequestParam Boolean enabled, @RequestParam String metadata) throws Exception {
    NamingUtils.checkServiceNameFormat(serviceName);
    InstancePatchObject patchObject = new InstancePatchObject(cluster, ip, port);
    if (StringUtils.isNotBlank(metadata)) {
        patchObject.setMetadata(UtilsAndCommons.parseMetadata(metadata));
    }
    if (weight != null) {
        checkWeight(weight);
        patchObject.setWeight(weight);
    }
    if (enabled != null) {
        patchObject.setEnabled(enabled);
    }
    instanceServiceV2.patchInstance(namespaceId, serviceName, patchObject);
    return "ok";
}
Also used : InstancePatchObject(com.alibaba.nacos.naming.core.InstancePatchObject) Secured(com.alibaba.nacos.auth.annotation.Secured) CanDistro(com.alibaba.nacos.naming.web.CanDistro) PatchMapping(org.springframework.web.bind.annotation.PatchMapping)

Aggregations

Secured (com.alibaba.nacos.auth.annotation.Secured)2 InstancePatchObject (com.alibaba.nacos.naming.core.InstancePatchObject)2 CanDistro (com.alibaba.nacos.naming.web.CanDistro)2 PatchMapping (org.springframework.web.bind.annotation.PatchMapping)2