pvea_proxmox

pvea_proxmox (pronounced pea-va) is a modern and up-to-date node.js client for the proxmox api. Note: This is a reupload of pvea package of Jade Cole!

Installation:

npm i pvea_proxmox or yarn add pvea_proxmox.

To-Do List:

  • Basic functionality.

    • Authenticate with Proxmox VE API.
    • Check if authentication token is expired.
    • Get api version.
  • storage

    • getStorage(param)
    • createStorage(param)
    • getStorageConfig(storage)
    • deleteStorageConfig(storage, param)
    • getStorageStatus(node, storage)
    • getStorageRrdData(node, storage, param)
    • getStorageContent(node, storage, param)
    • allocateDiskImage(node, storage, param)
    • getVolumeAttributes(node, storage, volume, param)
    • deleteVolume(node, storage, volume, param)
    • createBackup(node, param)
    • getBackupConfig(node, param)
  • pools

    • getPools()
    • getPoolConfig(poolid)
    • deletePoolConfig(poolid)
    • updatePoolConfig(poolid, param)
  • nodes

    • getNodes()
    • wakeNode(node)
    • getNodeVersion(node)
    • getNodeTime(node)
    • updateNodeTimeZone(node, param)
    • getNodeLog(node, param)
    • getNodeSubscriptionStatus(node)
    • deleteNodeSubscriptionKey(node)
    • setNodeSubscriptionKey(node)
    • updateNodeSubscriptionKey(node)
    • stopAll(node, param)
    • getNodeStatus(node)
    • rebootNode(node)
    • shutdownNode(node)
    • startAll(node, param)
    • getNodeRrdData(node)
    • getNodeReport(node)
    • getNodeNetstat(node)
    • migrateAll(node, param)
    • getNodeJournal(node, param)
    • getNodeHostname(node)
    • setNodeHostname(node, param)
    • getNodeDnsSettings(node)
    • setNodeDnsSettings(node, param)
    • listNodeCpu(node)
    • getNodeConfig(node, param)
    • updateNodeConfig(node, param)
    • getNodeAplInfo(node)
  • tasks

    • getNodeTasks(node, param)
    • stopTask(node, upid)
    • getTaskLog(node, upid, param)
    • getTaskStatus(node, upid)
  • services

    • reloadService(node, service)
    • restartService(node, service)
    • startService(node, service)
    • stopService(node, service)
    • getServiceState(node, service)
    • listServices(node)
  • lxc

    • listLxcContainers(node)
    • createLxcContainer(node, param)
    • createLxcTemplate(node, vmid)
    • getLxcRRDData(node, vmid, param)
    • resizeLxcContainer(node, vmid, param)
    • getLxcPending(node, vmid)
    • getLxcConfig(node, vmid)
    • cloneLxcContainer(node, vmid, param)
    • suspendLxcContainer(node, vmid)
    • stopLxcContainer(node, vmid)
    • resumeLxcContainer(node, vmid)
    • rebootLxcContainer(node, vmid)
    • getLxcContainerStatus(node, vmid)
    • deleteLxcContainer(node, vmid, param)
    • getLxcSnapshot(node, vmid)
    • createLxcSnapshot(node, vmid, param)
    • deleteLxcSnapshot(node, vmid, snapName, param)
    • getLxcSnapshotConfig(node, vmid, snapName)
    • updateLxcSnapshotMetadata(node, vmid, snapName, param)
    • rollbackLxcContainer(node, vmid, snapName)
    • getLxcFirewallRefs(node, vmid)
    • getLxcFirewallOptions(node, vmid)
    • setLxcFirewallOptions(node, vmid, param)
    • getLxcFirewallLog(node, vmid, param)
    • getLxcFirewallRules(node, vmid)
    • createLxcFirewallRule(node, vmid, param)
    • getLxcFirewallIPSets(node, vmid)
    • createLxcFirewallIPSet(node, vmid, param)
    • getLxcFirewallAliases(node, vmid)
    • createLxcFirewallAlias(node, vmid, param)
  • qemu

    • listQemuVms(node)
    • getQemuVmConfig(node, vmid)
    • checkQemuVmFeature(node, vmid)
    • getQemuVmMigrationPreconditions(node, vmid)
    • cloneQemuVm(node, vmid, param)
    • suspendQemuVm(node, vmid)
    • stopQemuVm(node, vmid)
    • startQemuVm(node, vmid)
    • shutdownQemuVm(node, vmid)
    • resumeQemuVm(node, vmid)
    • rebootQemuVm(node, vmid)
    • execQemuMonitorCommand(node, vmid, param)
    • moveQemuVmDisk(node, vmid, param)
    • getQemuVmPendingConfig(node, vmid)
    • getQemuSnapshot(node, vmid)
    • createQemuSnapshot(node, vmid, param)
    • deleteQemuSnapshot(node, vmid, snapName, param)
    • getQemuSnapshotConfig(node, vmid, snapName)
    • updateQemuSnapshotMetadata(node, vmid, snapName, param)
    • rollbackQemuVm(node, vmid, snapName)
    • createQemuVm(node, param)
    • getQemuVmCloudinitConfig(node, vmid)
    • makeQemuVmTemplate(node, vmid, param)
    • createQemuVmTermProxy(node, vmid, param)
    • getQemuFirewallRefs(node, vmid)
    • getQemuFirewallOptions(node, vmid)
    • setQemuFirewallOptions(node, vmid, param)
    • getQemuFirewallLog(node, vmid, param)
    • getQemuFirewallRules(node, vmid)
    • createQemuFirewallRule(node, vmid, param)
    • getQemuFirewallIPSets(node, vmid)
    • createQemuFirewallIPSet(node, vmid, param)
    • createQemuFirewallIPSet(node, vmid, param)
    • unlinkQemuVmDisk(node, vmid, param)
    • createQemuVmVncProxy(node, vmid, param)
    • getQemuRRDData(node, vmid, param)
    • execGetQemuAgentCommand(node, vmid, command)
    • execPostQemuAgentCommand(node, vmid, command, params)
    • deleteQemuVm(node, vmid, param)
    • getCurrentQemuVmState(node, vmid)
  • Write documentation for this library.

Example:

// pvea library.
const pveajs = require("pvea")

// create a new instance, you can use this to connect to multiple nodes if you want.
const pvea = new pveajs('hostname', 'user@auth', 'password')

// our main application.
async function main() {
    // get version of proxmox API.
    pvea.apiVersion().then( res => {
        // log result.
        console.log(res)
    })
}

// execute the application.
pvea.run(main)

Contributors

Thanks to Creator of this package Jade, uqlel, andressantamaria2003, and simonfrfr.

Notes

Thanks to Creator of this package ttarvis for writing node-proxmox! Code was used for reference and function names are taken from it. Also thanks to alo-is for writing another module also called node-proxmox.