我正在使用OpenStack4J与OpenStack进行交互。在这一点上,我的目标只是启动一个实例。我可以使用我的租户rosemend手动完成此操作。当我这样做时,我有一个名为rosemond的网络(Id: a9b097b3-af47-4222-b98e-f1b631f9ec45),我选择该网络并使其成为实例的一部分。
然而,使用OpenStack4J,我无法取得任何进展。OpenStack4j需要一个网络端口,我似乎不知道如何设置。设置此网络端口的调用将如下所示:
serverCreateBuilder.addNetworkPort("0a44eedc-8298-4544-87d7-094c7b34708e")首先,我尝试了rosemond网络本身的Id (a9b097b3-af47-4222-b98e-f1b631f9ec45)。这种情况下的错误消息是:
Port id a9b097b3-af47-4222-b98e-f1b631f9ec45 could not be found.接下来,在OpenStack中,当我单击rosemond网络时,我看到一个名为ports的5个项目的列表。然后,我尝试使用它们中的每一个,结果都出现了错误消息:
Port 0a44eedc-8298-4544-87d7-094c7b34708e is still in use.当我根本没有传递网络端口时,我会得到错误:
It is not allowed to create an interface on external network c6fb539b-2013-405c-903a-4700a00d954b我的问题是,我应该在这里使用什么值?
发布于 2015-07-01 14:40:23
我建议你改用JClouds。在我看来,它更容易使用,文档也更好。
请看我在Openstack cloud (identity service, nova service and swift service) vs Java application中的回答。您可以查看GitHub中的一些示例代码。
发布于 2017-07-25 04:44:09
1)要使用现有端口创建虚拟机,需要提供端口id。2)用于启动vm实例的端口必须处于DOWN状态(已分离)。如果端口连接到实例(活动),Openstack将报告冲突。对于Openstack4j,它抛出一个ClientResponseException异常,并显示一条消息:端口xxxis仍在使用中。
请参阅https://developer.openstack.org/api-ref/compute/?expanded=create-server-detail
https://stackoverflow.com/questions/31122554
复制相似问题