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

 1 [root@controller ~]# 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')

 

运行效果:

 

[root@controller ~]# python flavor.py
================ list flavor ==============

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

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

[root@controller ~]# vim flavor.py
[root@controller ~]# 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 =================

posted @ 2018-05-28 12:56  salami_china  阅读(608)  评论(0编辑  收藏  举报