Virtualization

Description

Manages KVM and AHV (Acropolis Hypervisor) Hypervisor components:

  • Virtual Machines

  • Virtual Switches

  • Virtual Interfaces

Request URL

/neo/resources

API Categories

Virtual Machines APIs

  • List all VMs

  • List all VMs of a KVM Hypervisor

  • Get a single VM by its ID

Virtual Switches APIs

  • List all Virtual Switches

  • List all Virtual Switches of a KVM Hypervisor

  • Get a single Virtual Switch by its ID

Virtual Interfaces APIs

  • List all Virtual Interfaces of a Virtual Machine

  • Get a single Virtual Interface by its ID

Get a List of all Virtual Machines

Request URL

GET /neo/resources/vms

Request Content Type

application/json

Response (See directly below)

Note that HTTP Response Location Header will contain URI with file name created from uploading the configuration file.

Response:

Copy
Copied!
            

[{ "status": "Up", "systemIP": "10.212.164.1", "healthState": 5, "description": "", "settingData": [{ "name": "", "configurationDataRoot": "", "systemType": null, "configurationId": "12", "creationTime": "", "id": "10.212.164.1.virt_comp_system.82165a57-b84f-4d5f-a71b-1abcebaa1580.vm_settings.1", "configurationFile": "/images/dev-r-vrt-165-009/dev-r-vrt-164-009.img", "systemIdentifier": "vm_guest" }], "vlanEndpoints": [], "resourceAllocations": [{ "allocationUnits": "", "name": "", "parent": "", "resourceType": "Memory", "resourceSubType": "", "virtualQuantity": 2, "address": "", "virtualQuantityUnits": "GB", "id": "10.212.164.1.virt_comp_system.82165a57-b84f-4d5f-a71b-1abcebaa1580.vm_res_setting.3" }, { "allocationUnits": "", "name": "", "parent": "", "resourceType": "CPU", "resourceSubType": "", "virtualQuantity": 2, "address": "", "virtualQuantityUnits": "cores", "id": "10.212.164.1.virt_comp_system.82165a57-b84f-4d5f-a71b-1abcebaa1580.vm_res_setting.2" }], "caption": "Virtual Machine", "systemID": "10.212.164.1.system", "systemName": "dev-r-vrt-164.mtr.labs.mlnx", "virtualSystem": "hvm", "id": "10.212.164.1.virt_comp_system.82165a57-b84f-4d5f-a71b-1abce¬baa1580", "name": "dev-r-vrt-164-009-RH6.6x64" }, { "status": "Up", "systemIP": "10.212.165.1", "healthState": 5, "description": "", "settingData": [{ "name": "", "configurationDataRoot": "", "systemType": null, "configurationId": "13", "creationTime": "", "id": "10.212.165.1.virt_comp_system.35eda7d1-f1f1-4138-adf7-3c5e24752555.vm_settings.1", "configurationFile": "/images/dev-r-vrt-165-008/dev-r-vrt-165-008.img", "systemIdentifier": "vm_guest" }], "vlanEndpoints": [], "resourceAllocations": [{ "allocationUnits": "", "name": "", "parent": "", "resourceType": "Memory", "resourceSubType": "", "virtualQuantity": 2, "address": "", "virtualQuantityUnits": "GB", "id": "10.212.165.1.virt_comp_system.35eda7d1-f1f1-4138-adf7-3c5e24752555.vm_res_setting.3" }, { "allocationUnits": "", "name": "", "parent": "", "resourceType": "CPU", "resourceSubType": "", "virtualQuantity": 2, "address": "", "virtualQuantityUnits": "cores", "id": "10.212.165.1.virt_comp_system.35eda7d1-f1f1-4138-adf7-3c5e24752555.vm_res_setting.2" }], "caption": "Virtual Machine", "systemID": "10.212.165.1.system", "systemName": "dev-r-vrt-165.mtr.labs.mlnx", "virtualSystem": "hvm", "id": "10.212.165.1.virt_comp_system.35eda7d1-f1f1-4138-adf7-3c5e24752555", "name": "dev-r-vrt-165-008-RH6.6x64" }]


Get a List of all Virtual Machines of KVM and AHV Hypervisors

Request URL

GET /neo/resources/vms?system_id=<KVM id>

Response (See directly below)

Note that HTTP Response Location Header will contain URI with file name created from uploading the configuration file.

Response:

Copy
Copied!
            

[{ "status": "Up", "systemIP": "10.212.165.1", "healthState": 5, "description": "", "settingData": [{ "name": "", "configurationDataRoot": "", "systemType": null, "configurationId": "12", "creationTime": "", "id": "10.212.165.1.virt_comp_system.82165a57-b84f-4d5f-a71b-1abcebaa1580.vm_settings.1", "configurationFile": "/images/dev-r-vrt-165-009/dev-r-vrt-165-009.img", "systemIdentifier": "vm_guest" }], "vlanEndpoints": [], "resourceAllocations": [{ "allocationUnits": "", "name": "", "parent": "", "resourceType": "Memory", "resourceSubType": "", "virtualQuantity": 2, "address": "", "virtualQuantityUnits": "GB", "id": "10.212.165.1.virt_comp_system.82165a57-b84f-4d5f-a71b-1abcebaa1580.vm_res_setting.3" }, { "allocationUnits": "", "name": "", "parent": "", "resourceType": "CPU", "resourceSubType": "", "virtualQuantity": 2, "address": "", "virtualQuantityUnits": "cores", "id": "10.212.165.1.virt_comp_system.82165a57-b84f-4d5f-a71b-1abcebaa1580.vm_res_setting.2" }], "caption": "Virtual Machine", "systemID": "10.212.165.1.system", "systemName": "dev-r-vrt-165.mtr.labs.mlnx", "virtualSystem": "hvm", "id": "10.212.165.1.virt_comp_system.82165a57-b84f-4d5f-a71b-1abce¬baa1580", "name": "dev-r-vrt-165-009-RH6.6x64" }]


Get a Specific Virtual Machine by ID

Request URL

GET /neo/resources/vms/<vm-id>

Request Content Type

application/json

Response (See directly below)

Note that HTTP Response Location Header will contain URI with file name created from uploading the configuration file.

Response:

Copy
Copied!
            

{ "status": "Up", "systemIP": "10.212.164.1", "healthState": 5, "description": "", "settingData": [{ "name": "", "configurationDataRoot": "", "systemType": null, "configurationId": "12", "creationTime": "", "id": "10.212.164.1.virt_comp_system.82165a57-b84f-4d5f-a71b-1abcebaa1580.vm_settings.1", "configurationFile": "/images/dev-r-vrt-165-009/dev-r-vrt-164-009.img", "systemIdentifier": "vm_guest" }], "vlanEndpoints": [], "resourceAllocations": [{ "allocationUnits": "", "name": "", "parent": "", "resourceType": "Memory", "resourceSubType": "", "virtualQuantity": 2, "address": "", "virtualQuantityUnits": "GB", "id": "10.212.164.1.virt_comp_system.82165a57-b84f-4d5f-a71b-1abcebaa1580.vm_res_setting.3" }, { "allocationUnits": "", "name": "", "parent": "", "resourceType": "CPU", "resourceSubType": "", "virtualQuantity": 2, "address": "", "virtualQuantityUnits": "cores", "id": "10.212.164.1.virt_comp_system.82165a57-b84f-4d5f-a71b-1abcebaa1580.vm_res_setting.2" }], "caption": "Virtual Machine", "systemID": "10.212.164.1.system", "systemName": "dev-r-vrt-164.mtr.labs.mlnx", "virtualSystem": "hvm", "id": "10.212.164.1.virt_comp_system.82165a57-b84f-4d5f-a71b-1abce¬baa1580", "name": "dev-r-vrt-164-009-RH6.6x64" }


Get a List of all Bridges (Virtual Switches)

Request URL

GET /neo/resources/bridges

Request Content Type

application/json

Response (See directly below)

Note that HTTP Response lists all Virtual Switches.

Response:

Copy
Copied!
            

[ { "systemIP": "10.212.165.1", "name": "br11", "vlanEndpoints": [ { "id": "10.212.165.1.caption.vlan.ep.11", "vlanId": 11 }, { "id": "10.212.165.1.caption.vlan.ep.12", "vlanId": 12 } ], "systemName": "dev-r-vrt-165.mtr.labs.mlnx", "systemID": "10.212.165.1.system", "id": "10.212.165.1.system.bridge.br11.8000.002590fd7509", "physicalPort": "eno2" }, { "systemIP": "10.212.165.1", "name": "br10", "vlanEndpoints": [ { "id": "10.212.165.1.caption.vlan.ep.10", "vlanId": 10 } ], "systemName": "dev-r-vrt-165.mtr.labs.mlnx", "systemID": "10.212.165.1.system", "id": "10.212.165.1.system.bridge.br10.8000.002590fd7509", "physicalPort": "eno2" }, { "systemIP": "10.212.165.1", "name": "br0", "vlanEndpoints": [], "systemName": "dev-r-vrt-165.mtr.labs.mlnx", "systemID": "10.212.165.1.system", "id": "10.212.165.1.system.bridge.br0.8000.002590fd7508", "physicalPort": "eno1" }, { "systemIP": "10.212.165.1", "name": "br1", "vlanEndpoints": [ { "id": "10.212.165.1.caption.vlan.ep.7", "vlanId": 7 }, { "id": "10.212.165.1.caption.vlan.ep.9", "vlanId": 9 } ], "systemName": "dev-r-vrt-165.mtr.labs.mlnx", "systemID": "10.212.165.1.system", "id": "10.212.165.1.system.bridge.br1.8000.002590fd7509", "physicalPort": "eno2" } ]


Get a List of all Bridges (Virtual Switches) of KVM and AHV Hypervisors

Request URL

GET /neo/resources/bridges?system_id=<KVM id>

Response (See directly below)

Note that HTTP Response lists all Virtual Switches.

Response:

Copy
Copied!
            

[ { "systemIP": "10.212.165.1", "name": "br1", "vlanEndpoints": [ { "id": "10.212.165.1.caption.vlan.ep.7", "vlanId": 7 }, { "id": "10.212.165.1.caption.vlan.ep.9", "vlanId": 9 } ], "systemName": "dev-r-vrt-165.mtr.labs.mlnx", "systemID": "10.212.165.1.system", "id": "10.212.165.1.system.bridge.br1.8000.002590fd7509", "physicalPort": "eno2" } ]


Get a Specific Bridge by ID (Virtual Switch)

Request URL

GET /neo/resources/bridge/<bridge-id>

Response:

Copy
Copied!
            

{ "systemIP": "10.212.165.1", "name": "br1", "vlanEndpoints": [ { "id": "10.212.165.1.caption.vlan.ep.7", "vlanId": 7 }, { "id": "10.212.165.1.caption.vlan.ep.9", "vlanId": 9 } ], "systemName": "dev-r-vrt-165.mtr.labs.mlnx", "systemID": "10.212.165.1.system", "id": "10.212.165.1.system.bridge.br1.8000.002590fd7509", "physicalPort": "eno2" }


Get All Virtual Interfaces of a Virtual Machine

Description

Retrieves a list of all Virtual Interfaces of a specific Virtual Machine

Request URL

GET /neo/resources/vifs?vm-id=<Virtual Machine id>

Response:

Copy
Copied!
            

[ { "name": "vnet4", "vmId": "10.212.165.1.virt_comp_system.35eda7d1-f1f1-4138-adf7-3c5e24752555", "otherPortType": "Normal", "vlanEndpoints": [ { "id": "10.212.165.1.caption.vlan.ep.11", "vlanId": 11 }, { "id": "10.212.165.1.caption.vlan.ep.12", "vlanId": 12 } ], "physicalPortName": "eno2", "portType": 1, "id": "10.212.165.1.virt_comp_system.35eda7d1-f1f1-4138-adf7-3c5e24752555.vif.vnet4" }, { "name": "vnet6", "vmId": "10.212.165.1.virt_comp_system.35eda7d1-f1f1-4138-adf7-3c5e24752555", "otherPortType": "Normal", "vlanEndpoints": [ { "id": "10.212.165.1.caption.vlan.ep.10", "vlanId": 10 } ], "physicalPortName": "eno2", "portType": 1, "id": "10.212.165.1.virt_comp_system.35eda7d1-f1f1-4138-adf7-3c5e24752555.vif.vnet6" } ]


Get Virtual Interface by ID

Description

Retrieves Virtual Interfaces by ID

Request URL

GET /neo/resources/vifs/<vif-id>

Response:

Copy
Copied!
            

[ { "name": "vnet4", "vmId": "10.212.165.1.virt_comp_system.35eda7d1-f1f1-4138-adf7-3c5e24752555", "otherPortType": "Normal", "vlanEndpoints": [ { "id": "10.212.165.1.caption.vlan.ep.11", "vlanId": 11 }, { "id": "10.212.165.1.caption.vlan.ep.12", "vlanId": 12 } ], "physicalPortName": "eno2", "portType": 1, "id": "10.212.165.1.virt_comp_system.35eda7d1-f1f1-4138-adf7-3c5e24752555.vif.vnet4" }, { "name": "vnet6", "vmId": "10.212.165.1.virt_comp_system.35eda7d1-f1f1-4138-adf7-3c5e24752555", "otherPortType": "Normal", "vlanEndpoints": [ { "id": "10.212.165.1.caption.vlan.ep.10", "vlanId": 10 } ], "physicalPortName": "eno2", "portType": 1, "id": "10.212.165.1.virt_comp_system.35eda7d1-f1f1-4138-adf7-3c5e24752555.vif.vnet4" } ]


Configure vCenter Credentials

Description

vCenter can be configured even if it is disabled for the UI

Request URL

POST /neo/app/settings/virtualization/vcenter

Request

{

"server":"<IP address>",

"user_name":"<User Name>",

"password":"<Password>",

"port":<Port>,

"vlan_provisioning": <vlan provisioning enable True/False>,

"dci_enable": <DCI enable True/False,

"dci_mode": "< DCI mode>",

"migration_mode": "<Fast/Secured>"

}


Get vCenter Credentials

Description

Get vCenter credentials

Request URL

GET /neo/app/settings/virtualization/vcenter

Response (See directly below)

Note that vCenter configuration with the UI enable attributes.

Response:

Copy
Copied!
            

{ "server": "127.0.0.1", "password": "pass", "user_name": "user", "port": "443" }


PUT vCenter Clusters

Description

Update vCenter cluster list for ESXi hosts discovery

Request URL

PUT /neo/app/virtualization/vcenter/clusters

Response:

Copy
Copied!
            

[ { name: <Cluster_name> isSelected: <True/False> }, ]


Get vCenter Clusters

Description

Get vCenter cluster list from repository

Request URL

GET /neo/app/settings/virtualization/vcenter/clusters

Response:

Copy
Copied!
            

[ { name: <Cluster_name> isSelected: <True/False> }, ]


Fetch Latest Clusters from vCenter

Description

Fetch latest clusters from vCenter

Request URL

POST /neo/app/settings/virtualization/vcenter/clusters/fetch

Response

Job ID of the action


Connection Test for vCenter

Description

Validating connection for vCenter

Request URL

POST /neo/app/settings/virtualization/vcenter/connection_test

Response

{ "location": "/neo/app/jobs/job_id", "objectID": "job_id" }

Connection Test for Prism Central

Description

Validating connection for Prism Central

Request URL

GET neo/app/settings/virtualization/prism_central/connection_test

Response

{ "location": "/neo/app/jobs/job_id", "objectID": "job_id" }

Get Prism Configuration

Description

Get Prism configuration

Request URL

GET neo/app/settings/virtualization/prism_central

Response

{

"enable":true,

"migration_mode":"fast",

"switch_os":"Onyx",

"dci_enable":false,

"events_port":8080,

"cluster_credentials":{

"default":{"

username":"username",

"password":"password"}},

"server":"1.2.3.4",

"port":9440,

"requests_retries":40,

"session_timeout":86400,

"timeout":10,

"dci_mode":null,

"password":"password",

"user_name":"admin",

"vlan_ip_order":null

}


Update Prism Configuration

Description

Update Prism configuration

Request URL

PUT neo/app/settings/virtualization/prism_central

Request

{

"password": "password",

"port": 9440,

"server": "1.2.3.4",

"user_name": "username",

"migration_mode": "fast",

"timeout": 10,

"session_timeout": 86400,

"requests_retries": 40,

"events_port": 8080,

"switch_os": "Onyx",

"dci_enable": false,

"cluster_credentials": {

"default": {

"username": "username",

"password": "password"

}

},

"enable": true

}


Manage Nutanix Prism Plug-in

Description

Nutanix Prism Plugin is bundled and managed by NEO. The plugin is actually a Linux service that can be started or stopped.

Request URL

PUT neo/app/settings/virtualization/prism_central/plugin

Response

{

"action": "start/stop/restart"

}

Response

Reference to Job ID with the action result

{

"location":"\/neo\/app\/jobs\/4","objectID":"4"

}


© Copyright 2023, NVIDIA. Last updated on Nov 16, 2023.