Add KVM Host

POST/zstack/v1/hosts/kvm

Headers

Authorization: OAuth the-session-uuid

Body

{
  "params": {
    "username": "userName",
    "password": "password",
    "sshPort": 22,
    "name": "newHost",
    "managementIp": "127.0.0.1",
    "clusterUuid": "9adf394ca46432afb1218d220bf2925e"
  },
  "systemTags": [],
  "userTags": []
}

In the preceding example, systemTags and userTags are optional. They are listed to show these fields can be included in the body.

Curl Example

curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"username":"userName","password":"password","sshPort":"22","name":"newHost","managementIp":"127.0.0.1","clusterUuid":"9adf394ca46432afb1218d220bf2925e"}}' \
http://localhost:8080/zstack/v1/hosts/kvm

Parameter List

NameTypeLocationDescriptionAllowed ValuesStarting Version
usernameStringbody (contained in the params structure)SSH username 0.6
passwordStringbody (contained in the params structure)SSH password 0.6
sshPort (optional)intbody (contained in the params structure)SSH port 0.6
nameStringbody (contained in the params structure)Resource name 0.6
description (optional)Stringbody (contained in the params structure)Resource description 0.6
managementIpStringbody (contained in the params structure)Host management IP 0.6
clusterUuidStringbody (contained in the params structure)Cluster UUID 0.6
resourceUuid (optional)Stringbody (contained in the params structure)Resource UUID 0.6
systemTags (optional)ListbodySystem tag 0.6
userTags (optional)ListbodyUser tag 0.6
  • ZSvirt supports disabling EPT when creating KVM hosts. SystemTags adds an option to disable EPT:
  • Option format: pageTableExtensionDisabled
  • Example: pageTableExtensionDisabled

API Response

Response Example

{
  "inventory": {
    "zoneUuid": "24b761ab09f7349684387fdf822aaee7",
    "name": "example",
    "uuid": "f893fe1c941939738a0ec271880d8e53",
    "clusterUuid": "4191157f33ab34d0a55b8e30444a1367",
    "description": "example",
    "managementIp": "192.168.0.1",
    "hypervisorType": "KVM",
    "state": "Enabled",
    "status": "Connected",
    "totalCpuCapacity": 4,
    "availableCpuCapacity": 2,
    "totalMemoryCapacity": 4,
    "availableMemoryCapacity": 4
  }
}
NameTypeDescriptionStarting Version
successboolean 0.6
errorErrorCodeError code. If not null, the operation failed. If null, the operation succeeded. See error for details0.6
inventoryHostInventorySee inventory for details0.6

error

NameTypeDescriptionStarting Version
codeStringError code number, globally unique identifier, e.g. SYS.1000, HOST.10010.6
descriptionStringBrief error description0.6
detailsStringDetailed error information0.6
elaborationStringReserved field, defaults to null0.6
opaqueLinkedHashMapReserved field, defaults to null0.6
causeErrorCodeRoot cause. The error that caused the current error. If there is no original error, this field is null0.6

inventory

NameTypeDescriptionStarting Version
zoneUuidStringData Center UUID0.6
nameStringResource name0.6
uuidStringResource UUID, uniquely identifies the resource0.6
clusterUuidStringCluster UUID0.6
descriptionStringResource description0.6
managementIpString 0.6
hypervisorTypeString 0.6
stateString 0.6
statusString 0.6
totalCpuCapacityLong 0.6
availableCpuCapacityLong 0.6
cpuSocketsInteger 0.6
totalMemoryCapacityLong 0.6
availableMemoryCapacityLong 0.6
cpuNumIntegerLogical CPU count0.6
ipmiAddressStringIPMI address0.6
ipmiUsernameStringIPMI username0.6
ipmiPortIntegerIPMI port0.6
ipmiPowerStatusStringIPMI power status0.6
architectureString 0.6
nqnStringNVMe qualified name4.10.6
hostnameStringHost name4.10.20
createDateTimestampCreation time0.6
lastOpDateTimestampLast modification time0.6
cpuStatusHwMonitorStatusSee cpuStatus4.10.0
memoryStatusHwMonitorStatusSee memoryStatus4.10.0
diskStatusHwMonitorStatusSee diskStatus4.10.0
nicStatusHwMonitorStatusSee nicStatus4.10.0
gpuStatusHwMonitorStatusSee gpuStatus4.10.0
powerSupplyStatusHwMonitorStatusSee powerSupplyStatus4.10.0
fanStatusHwMonitorStatusSee fanStatus4.10.0
raidStatusHwMonitorStatusSee raidStatus4.10.0
temperatureStatusHwMonitorStatusSee temperatureStatus4.10.0

cpuStatus

NameTypeDescriptionStarting Version
NormalHwMonitorStatusNormal4.10.0
ErrorHwMonitorStatusError4.10.0
UnknownHwMonitorStatusUnknown4.10.0

memoryStatus

NameTypeDescriptionStarting Version
NormalHwMonitorStatusNormal4.10.0
ErrorHwMonitorStatusError4.10.0
UnknownHwMonitorStatusUnknown4.10.0

diskStatus

NameTypeDescriptionStarting Version
NormalHwMonitorStatusNormal4.10.0
ErrorHwMonitorStatusError4.10.0
UnknownHwMonitorStatusUnknown4.10.0

nicStatus

NameTypeDescriptionStarting Version
NormalHwMonitorStatusNormal4.10.0
ErrorHwMonitorStatusError4.10.0
UnknownHwMonitorStatusUnknown4.10.0

gpuStatus

NameTypeDescriptionStarting Version
NormalHwMonitorStatusNormal4.10.0
ErrorHwMonitorStatusError4.10.0
UnknownHwMonitorStatusUnknown4.10.0

powerSupplyStatus

NameTypeDescriptionStarting Version
NormalHwMonitorStatusNormal4.10.0
ErrorHwMonitorStatusError4.10.0
UnknownHwMonitorStatusUnknown4.10.0

fanStatus

NameTypeDescriptionStarting Version
NormalHwMonitorStatusNormal4.10.0
ErrorHwMonitorStatusError4.10.0
UnknownHwMonitorStatusUnknown4.10.0

raidStatus

NameTypeDescriptionStarting Version
NormalHwMonitorStatusNormal4.10.0
ErrorHwMonitorStatusError4.10.0
UnknownHwMonitorStatusUnknown4.10.0

temperatureStatus

NameTypeDescriptionStarting Version
NormalHwMonitorStatusNormal4.10.0
ErrorHwMonitorStatusError4.10.0
UnknownHwMonitorStatusUnknown4.10.0

SDK Examples

Java SDK

AddKVMHostAction action = new AddKVMHostAction();
action.username = "userName";
action.password = "password";
action.sshPort = 22;
action.name = "newHost";
action.managementIp = "127.0.0.1";
action.clusterUuid = "9adf394ca46432afb1218d220bf2925e";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddKVMHostAction.Result res = action.call();

Python SDK

action = AddKVMHostAction()
action.username = "userName"
action.password = "password"
action.sshPort = 22
action.name = "newHost"
action.managementIp = "127.0.0.1"
action.clusterUuid = "9adf394ca46432afb1218d220bf2925e"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()