openstack resize curl to python

import pycurl, json
import requests

def get_token():
    headers = {'Content-Type': 'application/json', 'Accept': 'application/json'}
    url = 'http://controller:5000/v2.0/tokens'
    data = '{"auth": {"tenantName": "admin", "passwordCredentials": {"username": "admin", "password": "password"}}}'
    response = requests.post(url, headers=headers, data=data)
    return response.json()['access']['token']['id']

def resize(project_id,instance_id,flavor_id):
    url = 'http://controller:8774/v2.1/%s/servers/%s/action' % (project_id, instance_id)
    data = json.dumps({"resize":  {"flavorRef": flavor_id}})
    token = str(get_token())
    print token
    try:
        c = pycurl.Curl()
        c.setopt(pycurl.URL, url)
        c.setopt(pycurl.HTTPHEADER, ['X-Auth-Token: %s' % token, 'Accept: application/json', 'X-OpenStack-Nova-API-Version: 2.25', 'Content-Type: application/json', 'User-Agent: python-novaclient'])
        c.setopt(pycurl.POST, 1)
        c.setopt(pycurl.POSTFIELDS, data)
        c.perform()
    except Exception as e:
        print e
    finally:
        c.close()

if __name__ == '__main__':
    resize_online('42a2921606ba4c048bccec0842594279', '28c82bda-5354-42d7-8e73-68ddf86c094d', 'flavor_id')

猜你喜欢

转载自blog.csdn.net/z770816239/article/details/68064092