簡體   English   中英

Openstack NovaClient:使用servers.create()啟動實例時出錯

[英]Openstack NovaClient : Error while launching an instance using servers.create()

我嘗試使用nova python客戶端在api調用下生成一個cirros實例,

server = nova.servers.create(name = "cirros_vm",
                             image = image.id,
                             flavor = flavor.id )

我收到以下錯誤:

novaclient.exceptions.BadRequest: Multiple possible networks
found, use a Network ID to be more specific. (HTTP 400)
(Request-ID: req-c3aba1d2-23e9-4751-badc-60142286232e)

這是因為我在租戶中有多個網絡。幫助文檔顯示應該使用可選的nics參數。

 :param nics:  (optional extension) an ordered list of nics to be
                  added to this server, with information about
                  connected networks, fixed ips, port etc.

但我無法弄清楚如何將網絡ID傳遞給此api。 當我將網絡ID作為有序列表時,

server = nova.servers.create(name = "api_cir_test",
                             image = image.id,
                             flavor = flavor.id,
                             nics=[ network1.id, network2.id])

我收到以下錯誤:

AttributeError: 'unicode' object has no attribute 'get'

以下是使用的變量的詳細信息:

nova is an object of Client in module novaclient.v1_1.client 
image = nova.images.find(name="cirros")
flavor =nova.flavors.find(name="m1.small")
network =nova.networks.find(label="test_net")

nics參數需要您在nova boot命令行中提供的相同信息...這意味着它接受除網絡ID之外的其他內容(例如,您可以傳入明確的中子端口ID,或者您可以提供有關固定IP地址的信息)。 nics參數需要一個有序的字典列表,例如:

server = nova.servers.create(name = "api_cir_test",
                             image = image.id,
                             flavor = flavor.id,
                             nics=[{'net-id': network1.id},
                                   {'net-id': network2.id}])

這應該成功創建您的服務器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM