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)
这是因为我的 tenant.The 帮助文档中有多个网络表明应该使用可选的 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}])
这应该会成功创建您的服务器。
我尝试使用 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)
这是因为我的 tenant.The 帮助文档中有多个网络表明应该使用可选的 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}])
这应该会成功创建您的服务器。