2015-06-29 3 views
0

Я использую OpenStack4J для взаимодействия с OpenStack. Моя цель в этот момент - просто запустить экземпляр. Я могу сделать это вручную, используя моего арендатора: rosemend. И когда я это делаю, у меня есть сеть под названием rosemond (Id: a9b097b3-af47-4222-b98e-f1b631f9ec45), которую я выбираю и делаю частью экземпляра.Запуск экземпляров OpenStack программно

Однако, используя OpenStack4J, я не могу добиться какого-либо прогресса. OpenStack4j требует сетевого порта, который, по-видимому, не способен определить, как установить. вызова, чтобы установить этот сетевой порт будет выглядеть так:

serverCreateBuilder.addNetworkPort("0a44eedc-8298-4544-87d7-094c7b34708e") 

Сначала я попробовал идентификатор Rosemond сети самого (a9b097b3-af47-4222-b98e-f1b631f9ec45). Сообщение об ошибке в этом случае:

Port id a9b097b3-af47-4222-b98e-f1b631f9ec45 could not be found. 

Далее в OpenStack, когда я нажимаю на Rosemond сети, я вижу список из 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 

Мой вопрос: что является значение, которое я должен использовать здесь?

ответ

0

1) Чтобы создать vm с существующим портом, требуется идентификатор порта. 2) Порт, который вы используете для загрузки экземпляра vm, должен находиться в состоянии DOWN (Отдельно). Если порт подключен к экземпляру (активен), Openstack сообщит о конфликте. Для Openstack4j он выдает исключение ClientResponseException с сообщением: порт xxxis все еще используется.

См. https://developer.openstack.org/api-ref/compute/?expanded=create-server-detail