zoukankan      html  css  js  c++  java
  • 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 =================

  • 相关阅读:
    学习C++的第一天
    2016.12.28
    无主之地
    一种排序
    街区最短问题
    配对类问题
    蛇形填数
    c#unity
    贪心
    台阶
  • 原文地址:https://www.cnblogs.com/wangjq19920210/p/9099591.html
Copyright © 2011-2022 走看看