Nova 通过Python API 查询,创建,删除flavor

Posted wangjq_china

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nova 通过Python API 查询,创建,删除flavor相关的知识,希望对你有一定的参考价值。

 1 [[email protected] ~]# cat flavor.py 
 2 from novaclient import client as nvclient
 3 from novaclient import utils
 4 from novaclient import base
 5 
 6 from keystoneauth1.identity import v3
 7 from keystoneauth1 import session
 8 from keystoneclient.v3 import client
 9 
10 import time
11 import sys
12 import keystoneclient.v3.client as ksclient
13 from neutronclient.v2_0 import client as netclient
14 
15 # Keystone get project_id
16 auth = v3.Password(user_domain_name=Default,
17                    username=admin,
18                    password=openstack,
19                    project_domain_name=Default,
20                    project_name=admin,
21                    auth_url=http://controller:35357/v3)
22 sess = session.Session(auth=auth)
23 keystone = client.Client(session=sess)
24 
25 projects_list = keystone.projects.list()
26 for o in projects_list:
27     name = getattr(o, "name", ‘‘)
28     if name == "admin":
29         project_id = getattr(o, "id", ‘‘)
30         break
31 
32 # Nova
33 nova = nvclient.Client(2.42, admin, openstack, project_id, http://controller:5000/v2.0)
34 
35 def flavors_list():
36     flavors_list = nova.flavors.list()
37     print "================ list flavor =============="
38     for data in flavors_list:
39         print "ID  :" + data.id
40         print "Name:" + data.name
41         print "CPU :" + str(data.vcpus)
42         print "MEM :" + str(data.ram)
43         print "Disk:" + str(data.disk)
44         print "==========================================="
45     print ""
46 
47 def flavors_create(name, ram, vcpus, disk):
48     print "=============== create flavor ============="
49     flavors_create = nova.flavors.create(name, ram, vcpus, disk, flavorid="auto",
50                                          ephemeral=0, swap=0, rxtx_factor=1.0, is_public=True)  
51     print flavors_create
52     print "===================  end  ================="
53     print ""
54 
55 def set_key_flavor(name):
56     print "============== set key flavor ============="
57     key = {hw:cpu_cores:4, hw:cpu_sockets:1}
58     flavors_list = nova.flavors.list()
59     for data in flavors_list:
60         if data.name == name:
61             print data
62             data.set_keys(key)
63     print "===================  end  ================="
64     print ""
65 
66 def flavors_delete(name):
67     print "=============== delete flavor ============="
68     flavors_list = nova.flavors.list()
69     for data in flavors_list:
70         if data.name == name:
71             print data
72             nova.flavors.delete(data)
73     print "===================  end  ================="
74 
75 flavors_list()
76 flavors_create(name=flavor_demo, ram=4096, vcpus=4, disk=0)
77 set_key_flavor(name=flavor_demo)
78 flavors_list()
79 flavors_delete(name=flavor_demo)

 

运行效果:

 

[[email protected] ~]# python flavor.py
================ list flavor ==============

=============== create flavor =============
<Flavor: flavor_demo>
=================== end =================

============== set key flavor =============
<Flavor: flavor_demo>
=================== end =================

[[email protected] ~]# vim flavor.py
[[email protected] ~]# python flavor.py
================ list flavor ==============

=============== create flavor =============
<Flavor: flavor_demo>
=================== end =================

============== set key flavor =============
<Flavor: flavor_demo>
=================== end =================

================ list flavor ==============
ID :c2c99abd-82d2-4ef5-9656-10bfaca5b8e8
Name:flavor_demo
CPU :4
MEM :4096
Disk:0
===========================================

=============== delete flavor =============
<Flavor: flavor_demo>
=================== end =================




















以上是关于Nova 通过Python API 查询,创建,删除flavor的主要内容,如果未能解决你的问题,请参考以下文章

OpenStack创建虚拟机流程

openstack 计算服务

在OpenStack环境中创建一个VM实例

十openstack虚拟机创建流程

openstack中nova组件HypervisorsFloating_ips的全部python API 汇总

cloudos怎么查看nova-api