Difference between revisions of "Proxmox VE API"

From UVOO Tech Wiki
Jump to navigation Jump to search
(Created page with "# Using API https://pve.proxmox.com/pve-docs/api-viewer/ # Use pyproxmox https://github.com/Daemonthread/pyproxmox/blob/master/src/pyproxmox.py If using `pip install pypr...")
 
Line 11: Line 11:
 
   
 
   
 
https://raw.githubusercontent.com/Daemonthread/pyproxmox/master/src/pyproxmox.py
 
https://raw.githubusercontent.com/Daemonthread/pyproxmox/master/src/pyproxmox.py
 +
 +
<syntaxhighlight>
 +
#!/usr/bin/env python3
 +
# Simple example of some code for testing, please use valid certs or import certs
 +
# export PYTHONWARNINGS="ignore:Unverified HTTPS request"
 +
 +
from pyproxmox import *
 +
from requests.packages.urllib3.exceptions import InsecureRequestWarning
 +
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
 +
 +
 +
auth = prox_auth('pve1','myuser@pve','mypassword')
 +
 +
px = pyproxmox(auth)
 +
 +
# status = px.getClusterStatus()
 +
# print(status)
 +
 +
all_nodes = [ 'pve1', 'pve2']
 +
src_nodes = [ 'pve1', 'pve2']
 +
dst_node = 'pve3'
 +
move_vmname = 'vnname'
 +
 +
for src_node in src_nodes:
 +
    vms = px.getNodeVirtualIndex(src_node)['data']
 +
    print(src_node)
 +
    for vm in vms:
 +
        vmname = vm['name']
 +
        vmid = vm['vmid']
 +
        if vmname == move_vmname:
 +
            print(vmname)
 +
            print(vmid)
 +
            print(dst_node)
 +
            r = px.migrateVirtualMachine(src_node,vmid,dst_node)
 +
            print(r)
 +
</syntaxhighlight>

Revision as of 20:59, 20 July 2019

Using API

https://pve.proxmox.com/pve-docs/api-viewer/

Use pyproxmox

https://github.com/Daemonthread/pyproxmox/blob/master/src/pyproxmox.py

If using pip install pyproxmox you will want to replace pyproxmox.py file with latest from github. pip package has not been updated recently and has api issues with some functions.

https://raw.githubusercontent.com/Daemonthread/pyproxmox/master/src/pyproxmox.py

!/usr/bin/env python3

Simple example of some code for testing, please use valid certs or import certs

export PYTHONWARNINGS="ignore:Unverified HTTPS request"

from pyproxmox import * from requests.packages.urllib3.exceptions import InsecureRequestWarning requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

auth = prox_auth('pve1','myuser@pve','mypassword')

px = pyproxmox(auth)

status = px.getClusterStatus()

print(status)

all_nodes = [ 'pve1', 'pve2'] src_nodes = [ 'pve1', 'pve2'] dst_node = 'pve3' move_vmname = 'vnname'

for src_node in src_nodes:

   vms = px.getNodeVirtualIndex(src_node)['data']
   print(src_node)
   for vm in vms:
       vmname = vm['name']
       vmid = vm['vmid']
       if vmname == move_vmname:
           print(vmname)
           print(vmid)
           print(dst_node)
           r = px.migrateVirtualMachine(src_node,vmid,dst_node)
           print(r)