【问题标题】:Openstack NovaClient : Error while launching an instance using servers.create()Openstack NovaClient:使用 servers.create() 启动实例时出错
【发布时间】:2015-07-09 19:20:01
【问题描述】:

我尝试使用带有以下 api 调用的 nova python 客户端生成一个 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")

【问题讨论】:

    标签: python openstack openstack-nova novaclient


    【解决方案1】:

    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}])
    

    这应该会成功创建您的服务器。

    【讨论】:

    • 你能在 nics 参数中提及可用的键吗?如果我想通过port-id 字典中的键应该是什么。
    • 谢谢@larsks。我用的是server = nova.servers.create(name = "api_cir_test", image = image.id, flavor = flavor.id, nics=[{'net-id': network1.id}, {'port-id': port_id } ] , block_dev_mapping = { 'vdb':'8b7e3ab4-18a3-49d6-8f7d-767ca30809c2' , 'vdc':'6933e0cd-df22-4bab-b870-9365935956bb' } )
    猜你喜欢
    • 2017-04-18
    • 1970-01-01
    • 2014-02-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多