【问题标题】:How to launch a new openstack instance in Java?如何在 Java 中启动一个新的 openstack 实例?
【发布时间】:2017-07-10 13:53:39
【问题描述】:

我试图通过参考下面的 URL 在 Java 中启动新的开放堆栈实例。

https://help.dreamhost.com/hc/en-us/articles/216456877-How-to-launch-and-delete-OpenStack-instances-using-Java-and-Jclouds

这就是我的 createInstance 方法的样子:-

public void createInstance(String instanceName) {
    for (String region : regions) {
        ServerApi serverApi = novaApi.getServerApi(region);
        System.out.println("server api : " + serverApi.toString());
        String imageId = "7d246e9a-dd2a-4342-97f7-32accd0f9c35";
        String flavorId = "8041379d-7261-401d-90cf-e2d97184fe94";

        /*Launch an instance*/
        ServerCreated ser = serverApi.create(instanceName, imageId, flavorId);

        Server server = serverApi.get(ser.getId());
        while (server.getStatus().value().equals("ACTIVE") == false) {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException ex) {
            }
            server = serverApi.get(ser.getId());
        }

        System.out.println(ser.getId());
    }
}

我得到 HttpResponseException 但能够获取图像 ID、风味 ID 等。

异常:org.jclouds.http.HttpResponseException:命令:POST http://192.168.1.224:8774/v2/e02b6387fa5a4b619bc2ba554661ea99/servers HTTP/1.1 失败,响应:HTTP/1.1 400 错误请求;内容:[{“badRequest”:{“消息”:“找到多个可能的网络,使用网络ID更具体。”,“代码”:400}}]

【问题讨论】:

    标签: java openstack-nova jclouds


    【解决方案1】:

    您必须指定用于启动实例的风味、图像和网络。我看到你已经指定了味道和形象。 但是,您还必须指定要使用的网络。在下面的链接中查看答案

    jcloud_create_instance_with_network

    【讨论】:

    • 效果很好:- CreateServerOptions serverOptions = CreateServerOptions.Builder .networks("80cbba74-acf7-44e6-9700-4265fe6b76a8"); ServerCreated allInOneInstanceCreated = serverApi.create(instanceName, imageId, flavorId, serverOptions);
    猜你喜欢
    • 2017-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-01
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    相关资源
    最近更新 更多