Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从OpenShift Java REST客户端重新启动Pod_Java_Openshift - Fatal编程技术网

从OpenShift Java REST客户端重新启动Pod

从OpenShift Java REST客户端重新启动Pod,java,openshift,Java,Openshift,我正在尝试以编程方式重新启动Pod。首先,我通过oc命令行找到了一些方法: 删除pod,将创建一个新的pod:oc Delete pod postgresql-2-wz989 启动新部署:oc推出最新dc/postgresql 我认为第二种方法更好,因为部署配置名称是静态的,不会像pod的名称那样更改 我的问题是如何使用JavaREST客户机实现这一点?我不太清楚如何使用这个客户端API 提前感谢。考虑到Graham Dumpleton关于使用--loglevel=9的提示,我找到了一个使用ja

我正在尝试以编程方式重新启动Pod。首先,我通过oc命令行找到了一些方法:

  • 删除pod,将创建一个新的pod:
    oc Delete pod postgresql-2-wz989
  • 启动新部署:
    oc推出最新dc/postgresql
  • 我认为第二种方法更好,因为部署配置名称是静态的,不会像pod的名称那样更改

    我的问题是如何使用JavaREST客户机实现这一点?我不太清楚如何使用这个客户端API


    提前感谢。

    考虑到Graham Dumpleton关于使用
    --loglevel=9
    的提示,我找到了一个使用java客户端的解决方案:

    IClient client = new ClientBuilder("https://10.0.75.2:8443")
                        .withUserName("developer")
                        .withPassword("developer")
                        .build();
    IProject project = client.getResourceFactory().stub(ResourceKind.PROJECT, "prj4testing");
    IDeploymentConfig deploymentConfig = client.getResourceFactory().stub(ResourceKind.DEPLOYMENT_CONFIG, "postgresql", project.getName());
    IDeploymentTriggerable capability = deploymentConfig.getCapability(IDeploymentTriggerable.class);
    capability.setForce(true);
    capability.setLatest(true);
    capability.trigger();
    

    我通过研究客户端的源代码得到了这个解决方案。我不知道是否有更好的方法来实现这一点。欢迎发表任何意见。

    如果您使用选项
    --loglevel=9
    运行
    oc
    ,它将向您显示REST API调用的内容,然后您可以对其进行编程/编写脚本。对于那些将此问题标记为过于宽泛的问题的人,如果您知道该主题,则这并不重要。这实际上是非常具体的。顺便说一句,我不知道
    oc rollout
    在封面下做了什么,但您可以使用的一个技巧是在部署配置上有一个注释,可能是在pod模板上。使用当前日期更新注释的值。因为这代表了配置的改变,所以应该触发POD的新部署。