public VmwareUpdateInstanceTask createUpdateTask()

in cloud-vmware-server/src/main/java/jetbrains/buildServer/clouds/vmware/tasks/VmwareUpdateTaskManager.java [32:52]


  public VmwareUpdateInstanceTask createUpdateTask(@NotNull final VMWareApiConnector connector, @NotNull final VMWareCloudClient client){
    final Set<String> keys = new HashSet<>();
    final VmwarePooledUpdateInstanceTask pooledTask;
    try {
      POOLED_TASKS_LOCK.writeLock().lock();
      myUpdateTasks.forEach((key, t) -> {
        if (t.isExhausted()) {
          keys.add(connector.getKey());
        }
      });
      keys.forEach(myUpdateTasks::remove);
      pooledTask = myUpdateTasks.computeIfAbsent(connector.getKey(), k -> createNewPooledTask(connector, client));
      pooledTask.setShouldKeep();
    } finally {
      POOLED_TASKS_LOCK.writeLock().unlock();
    }
    final VmwareUpdateInstanceTask task = new VmwareUpdateInstanceTask(connector.getKey(), client, pooledTask);
    task.register();

    return task;
  }