コード例 #1
0
ファイル: IpAddressActivate.java プロジェクト: rancher/cattle
  @Override
  public HandlerResult handle(ProcessState state, ProcessInstance process) {
    IpAddress ipAddress = (IpAddress) state.getResource();
    Network network = objectManager.loadResource(Network.class, ipAddress.getNetworkId());
    if (!networkService.shouldAssignIpAddress(network)) {
      return null;
    }

    String assignedIp = ipAddress.getAddress();
    Long subnetId = ipAddress.getSubnetId();

    IPAssignment assignment = allocateIp(ipAddress, network);
    if (assignment != null) {
      assignedIp = assignment.getIpAddress();
      if (assignment.getSubnet() != null) {
        subnetId = assignment.getSubnet().getId();
      }
    }

    return new HandlerResult(
        IP_ADDRESS.ADDRESS, assignedIp,
        IP_ADDRESS.SUBNET_ID, subnetId,
        IP_ADDRESS.NAME,
            StringUtils.isBlank(ipAddress.getName()) ? assignedIp : ipAddress.getName());
  }