ExecApi.java 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. package seecoder.devcloud.api.k8s;
  2. import seecoder.devcloud.api.k8s.exception.K8sApiException;
  3. import java.util.List;
  4. /**
  5. * 进入容器执行指令
  6. *
  7. * @todo 传入输入流,获得输出流
  8. */
  9. public interface ExecApi {
  10. /**
  11. * 选择namespace下podName中的containerName的容器执行commands指令
  12. * @param namespace
  13. * @param podName
  14. * @param containerName
  15. * @param commands
  16. * @return exitCode=0 则返回true,其它情况返回false
  17. * @throws K8sApiException NOT_FOUND 命名空间/pod/container不存在
  18. * @throws K8sApiException SYSTEM_ERROR 系统异常
  19. */
  20. boolean exec(String namespace, String podName, String containerName, List<String> commands);
  21. /**
  22. * 当且仅当pod下只有一个container时,该指令才会执行成功,否则会抛出异常
  23. * @param namespace
  24. * @param podName
  25. * @param commands
  26. * @return exitCode=0 则返回true,其它情况返回false
  27. * @throws K8sApiException NOT_FOUND 命名空间不存在/pod不存在/pod下没有container
  28. * @throws K8sApiException SYSTEM_ERROR pod存在多个container/系统异常/指令执行异常
  29. */
  30. boolean exec(String namespace, String podName, List<String> commands);
  31. Process getTerminal(String namespace, String podName);
  32. }