JSON RPC
Module description
Scheduler - a subsystem that schedule and manage resources such VMs
Operations
Clear Vcluster definition
Context model: VclusterReqQ
Request data
Description
name [ required ] - Vcluster name
Del Vcluster
Context model: VclusterReqQ
Request data
Description
name [ required ] - Vcluster name
Add Vcluster
Context model: VclusterReqQ
Request data
{
"context": {
"op": "vcluster_add"
},
"data": {
"name": "<name>",
"uuids": "<uuids>",
"descr": "<descr>",
"labels": "<labels>",
"rf": "<rf>",
"isolation_strategy": "<isolation_strategy>",
"drain_strategy": "<drain_strategy>",
"ulimits": "<ulimits>",
"cpu": "<cpu>",
"ram": "<ram>",
"vcpu_scaling": "<vcpu_scaling>",
"vram_scaling": "<vram_scaling>",
"path_to": "<path_to>"
}
}
Description
name [ required ] - Vcluster name
uuids [ * ] - List of UUID nodes
descr [ ] - Vcluster Description
labels [ * required ] - {{ no such element: dict object['desc'] }}
rf [ int ] - Replication factor
isolation_strategy [ ] - Isolation node strategy (Default - RECREATE) ['STOP', 'NOTHING', 'RECREATE']
drain_strategy [ ] - Drain node strategy (Default - MIGRATE) ['STOP', 'NOTHING', 'MIGRATE']
ulimits [ ] - Enable user limits (Default - yes) ['yes', 'no']
cpu [ float ] - Vcluster CPU limit
ram [ memstr ] - Vcluster RAM limit
vcpu_scaling [ bool ] - should system reserve 2x vcpu per domain for potential scaling in future
vram_scaling [ bool ] - should system reserve 2x vram per domain for potential scaling in future
path_to [ str ] - Placing an object in the directory structure
Show Vcluster
Context model: VclusterReqQ
Request data
Description
name [ required ] - Vcluster name
List Vclusters
Context model: VclusterReqQ
Request data
Update Vcluster
Context model: VclusterReqQ
Request data
{
"context": {
"op": "vcluster_update"
},
"data": {
"name": "<name>",
"descr": "<descr>",
"rf": "<rf>",
"cpu": "<cpu>",
"ram": "<ram>",
"isolation_strategy": "<isolation_strategy>",
"drain_strategy": "<drain_strategy>",
"ulimits": "<ulimits>"
}
}
Description
name [ required ] - Vcluster name
descr [ ] - Vcluster Description
rf [ int ] - Replication factor
cpu [ float ] - Vcluster CPU limit
ram [ memstr ] - Vcluster RAM limit
isolation_strategy [ ] - Isolation node strategy (Default - RECREATE) ['STOP', 'NOTHING', 'RECREATE']
drain_strategy [ ] - Drain node strategy (Default - MIGRATE) ['STOP', 'NOTHING', 'MIGRATE']
ulimits [ ] - Enable user limits (Default - yes) ['yes', 'no']
Add Vcluster nodes
Context model: VclusterReqQ
Request data
Description
name [ required ] - Vcluster name
uuids [ * required ] - List of UUID nodes
List Vcluster nodes
Context model: VclusterReqQ
Request data
Description
name [ required ] - Vcluster name
Del Vcluster nodes
Context model: VclusterReqQ
Request data
Description
name [ required ] - Vcluster name
uuids [ * required ] - List of UUID nodes
Delete User Scheduler params
Context model: UserParams
Request data
Description
vcluster [ required ] - Vcluster name
login [ required ] - User Login
Add User Scheduler params
Context model: UserParams
Request data
{
"context": {
"op": "user_param_add"
},
"data": {
"vcluster": "<vcluster>",
"login": "<login>",
"rf": "<rf>",
"isolation_strategy": "<isolation_strategy>",
"drain_strategy": "<drain_strategy>",
"cpu": "<cpu>",
"ram": "<ram>"
}
}
Description
vcluster [ required ] - Vcluster name
login [ required ] - User Login
rf [ int ] - Replication factor
isolation_strategy [ ] - Isolation node strategy (Default - NOTHING) ['STOP', 'NOTHING', 'RECREATE']
drain_strategy [ ] - Drain node strategy (Default - NOTHING) ['STOP', 'NOTHING', 'MIGRATE']
cpu [ float ] - User CPU limit
ram [ memstr ] - User RAM limit
List User Scheduler params
Context model: UserParams
Request data
Description
vcluster [ required ] - Vcluster name
Show User Scheduler params
Context model: UserParams
Request data
Description
vcluster [ required ] - Vcluster name
Show User Scheduler params for admin
Context model: UserParams
Request data
{
"context": {
"op": "user_param_admin"
},
"data": {
"vcluster": "<vcluster>",
"login": "<login>"
}
}
Description
vcluster [ required ] - Vcluster name
login [ str required ] - User Login
Update User Scheduler params
Context model: UserParams
Request data
{
"context": {
"op": "user_param_update"
},
"data": {
"vcluster": "<vcluster>",
"login": "<login>",
"rf": "<rf>",
"isolation_strategy": "<isolation_strategy>",
"drain_strategy": "<drain_strategy>",
"cpu": "<cpu>",
"ram": "<ram>"
}
}
Description
vcluster [ required ] - Vcluster name
login [ required ] - User Login
rf [ int ] - Replication factor
isolation_strategy [ ] - Isolation node strategy (Default - NOTHING) ['STOP', 'NOTHING', 'RECREATE']
drain_strategy [ ] - Drain node strategy (Default - NOTHING) ['STOP', 'NOTHING', 'MIGRATE']
cpu [ float ] - User CPU limit
ram [ memstr ] - User RAM limit
Clear Scheduler request
Context model: RequestsQ
Request data
{
"context": {
"op": "request_clear"
},
"data": {
"vcluster": "<vcluster>",
"kind": "<kind>",
"name": "<name>"
}
}
Description
vcluster [ required ] - Vcluster name
kind [ ] - Requets type (Default - vm) ['vm']
name [ required ] - Resource name
Add Scheduler request
Context model: RequestsQ
Request data
{
"context": {
"op": "request_add"
},
"data": {
"vcluster": "<vcluster>",
"kind": "<kind>",
"name": "<name>",
"descr": "<descr>",
"labels": "<labels>",
"template": "<template>",
"data": "<data>"
}
}
Description
vcluster [ str required ] - vcluster
kind [ str ] - kind
name [ str required ] - name
descr [ str ] - descr
labels [ str ] - labels
template [ str ] - template
data [ str ] - data
Update Scheduler request without re-creation vm
Context model: RequestsQ
Request data
{
"context": {
"op": "request_update"
},
"data": {
"vcluster": "<vcluster>",
"kind": "<kind>",
"name": "<name>",
"descr": "<descr>",
"labels": "<labels>",
"data": "<data>"
}
}
Description
vcluster [ required ] - Vcluster name
kind [ ] - Requets type (Default - vm) ['vm']
name [ required ] - Resource name
descr [ ] - Vcluster Description
labels [ ] - {{ no such element: dict object['desc'] }}
data [ jsonstr required ] - Specs definition
Show Scheduler request
Context model: RequestsQ
Request data
{
"context": {
"op": "request_show"
},
"data": {
"vcluster": "<vcluster>",
"kind": "<kind>",
"name": "<name>",
"show_uuid": "<show_uuid>",
"metrics": "<metrics>"
}
}
Description
vcluster [ required ] - Vcluster name
kind [ ] - Requets type (Default - vm) ['vm']
name [ required ] - Resource name
show_uuid [ ] - show object uuid
metrics [ ] - Get metrics VM ['yes', 'no']
List Scheduler requests
Context model: RequestsQ
Request data
Description
vcluster [ required ] - Vcluster name
Change Scheduler request state
Context model: RequestsQ
Request data
{
"context": {
"op": "request_state"
},
"data": {
"vcluster": "<vcluster>",
"kind": "<kind>",
"name": "<name>",
"vms": "<vms>",
"state": "<state>"
}
}
Description
vcluster [ required ] - Vcluster name
kind [ ] - Requets type (Default - vm) ['vm']
name [ required ] - Resource name
vms [ * ] - List of VMs
state [ required ] - Scheduler request state ['START', 'STOP', 'REBOOT', 'SUSPEND', 'RESUME']
Migrate Scheduler request
Context model: RequestsQ
Request data
{
"context": {
"op": "request_migrate"
},
"data": {
"vcluster": "<vcluster>",
"kind": "<kind>",
"name": "<name>",
"node": "<node>",
"mode": "<mode>"
}
}
Description
vcluster [ required ] - Vcluster name
kind [ ] - Requets type (Default - vm) ['vm']
name [ required ] - Resource name
node [ required ] - Destination host
mode [ required ] - Migration mode ['live', 'offline']
Del Scheduler request
Context model: RequestsQ
Request data
{
"context": {
"op": "request_del"
},
"data": {
"vcluster": "<vcluster>",
"kind": "<kind>",
"name": "<name>",
"backup": "<backup>"
}
}
Description
vcluster [ required ] - Vcluster name
kind [ ] - Requets type (Default - vm) ['vm']
name [ required ] - Resource name
backup [ ] - Create snapshot(delete_after=1d) VMs before delete (if enough space). Default - yes ['yes', 'no']
Scheduler request status
Context model: RequestsQ
Request data
{
"context": {
"op": "request_status"
},
"data": {
"vcluster": "<vcluster>",
"kind": "<kind>",
"name": "<name>"
}
}
Description
vcluster [ required ] - Vcluster name
kind [ ] - Requets type (Default - vm) ['vm']
name [ str ] - Request name
Requests VNC connection credentials to specified VM
Context model: RequestsQ
Request data
{
"context": {
"op": "request_vnc"
},
"data": {
"vcluster": "<vcluster>",
"name": "<name>",
"vm_name": "<vm_name>",
"timeout": "<timeout>",
"idle_timeout": "<idle_timeout>",
"hb": "<hb>"
}
}
Description
vcluster [ required ] - Vcluster name
name [ required ] - Resource name
vm_name [ required ] - VM name
timeout [ int ] - wait sec to kill VNC proxy before connect
idle_timeout [ int ] - wait sec before killing VNC proxy after disconnect
hb [ int ] - VNC proxy heartbeat sec
Add CIPF label to VM
Context model: RequestsQ
Request data
{
"context": {
"op": "request_cips_label_add"
},
"data": {
"vcluster": "<vcluster>",
"name": "<name>"
}
}
Description
vcluster [ required ] - Vcluster name
name [ required ] - Resource name
Remove CIPF label from VM
Context model: RequestsQ
Request data
{
"context": {
"op": "request_cips_label_del"
},
"data": {
"vcluster": "<vcluster>",
"name": "<name>"
}
}
Description
vcluster [ required ] - Vcluster name
name [ required ] - Resource name
View available RAM and CPU resources for Namespace
Request data
Add snapshot request
Context model: SnapshotsQ
Request data
{
"context": {
"op": "request_snapshot_add"
},
"data": {
"vcluster": "<vcluster>",
"kind": "<kind>",
"name": "<name>",
"snapshot_name": "<snapshot_name>",
"vms": "<vms>",
"descr": "<descr>"
}
}
Description
vcluster [ str required ] - Vcluster name
kind [ ] - Requets type (Default - vm) ['vm']
name [ str required ] - Resource name
snapshot_name [ str required ] - Snapshot name
vms [ * ] - List of VMs
descr [ str ] - Snapshot description
Snapshot del
Context model: SnapshotsQ
Request data
{
"context": {
"op": "request_snapshot_del"
},
"data": {
"name": "<name>",
"kind": "<kind>",
"vcluster": "<vcluster>",
"uuid": "<uuid>"
}
}
Description
name [ str required ] - Resource name
kind [ ] - Requets type (Default - vm) ['vm']
vcluster [ str required ] - Vcluster name
uuid [ required ] - Snapshot UUID
Snapshot clear
Context model: SnapshotsQ
Request data
{
"context": {
"op": "request_snapshot_clear"
},
"data": {
"name": "<name>",
"kind": "<kind>",
"vcluster": "<vcluster>",
"uuid": "<uuid>"
}
}
Description
name [ str required ] - Resource name
kind [ ] - Requets type (Default - vm) ['vm']
vcluster [ str required ] - Vcluster name
uuid [ required ] - Snapshot UUID
Snapshots list
Context model: SnapshotsQ
Request data
{
"context": {
"op": "request_snapshot_list"
},
"data": {
"vcluster": "<vcluster>",
"kind": "<kind>",
"name": "<name>"
}
}
Description
vcluster [ str required ] - Vcluster name
kind [ ] - Requets type (Default - vm) ['vm']
name [ str required ] - Request name
Snapshot show
Context model: SnapshotsQ
Request data
{
"context": {
"op": "request_snapshot_show"
},
"data": {
"name": "<name>",
"kind": "<kind>",
"vcluster": "<vcluster>",
"uuid": "<uuid>"
}
}
Description
name [ str required ] - Resource name
kind [ ] - Requets type (Default - vm) ['vm']
vcluster [ str required ] - Vcluster name
uuid [ required ] - Snapshot UUID
Scheduler request revert to snapshot
Context model: SnapshotsQ
Request data
{
"context": {
"op": "request_snapshot_revert"
},
"data": {
"vcluster": "<vcluster>",
"kind": "<kind>",
"name": "<name>",
"uuid": "<uuid>",
"vms": "<vms>"
}
}
Description
vcluster [ str required ] - Vcluster name
kind [ ] - Requets type (Default - vm) ['vm']
name [ str required ] - Resource name
uuid [ required ] - Snapshot UUID
vms [ * ] - List of VMs
Create new labels in cluster
Request data
{
"context": {
"op": "labels_add"
},
"data": {
"labels": "<labels>",
"nodes": "<nodes>",
"taints": "<taints>",
"descr": "<descr>"
}
}
Description
labels [ str * required ] - list of labels to add
nodes [ str * required ] - list of nodes (or *) to assign labels to
taints [ str ] - taint labels as NoSchedule (y/n)
descr [ str ] - label description
Assign labels to cluster nodes
Request data
Description
labels [ str * required ] - list of labels to assign
nodes [ str * required ] - list of nodes (or *) to assign labels to
Delete cluster labels
Request data
Description
labels [ str * required ] - list of labels to delete
Delegate cluster labels to namespaces
Request data
Description
ns [ str * required ] - list of namespaces (or *)
labels [ str * required ] - list of labels to delegate
Add namespace labels to vclusters
Request data
{
"context": {
"op": "labels_vcluster_add"
},
"data": {
"vcluster": "<vcluster>",
"labels": "<labels>"
}
}
Description
vcluster [ str * required ] - list of vclusters (or *)
labels [ str * required ] - list of labels to add
Delete labels from vcluster
Request data
{
"context": {
"op": "labels_vcluster_del"
},
"data": {
"vcluster": "<vcluster>",
"labels": "<labels>"
}
}
Description
vcluster [ str * required ] - list of vclusters (or *)
labels [ str * required ] - list of labels to del
Show labels by groups where they can be used together
Request data
Description
vcluster [ str required ] - vcluster
Mark labels as ignored, either globally or in certain namespaces
Request data
Description
labels [ str * required ] - list of labels to ignore
ns [ str * ] - list of namespaces (or *) to ignore labels in (will ignore provided labels only in these namespaces)
Mark labels as unignored
Request data
Description
labels [ str * required ] - list of labels to unignore
ns [ str * ] - list of namespaces (or *) to unignore labels in
List all cluster labels
Request data
Description
nodes [ str * ] - nodes to list (or *)
filter [ str ] - labels filter: a - all, i - ignored, u - unignored
Lists nodes by labels
Request data
{
"context": {
"op": "labels_nodes_list"
},
"data": {
"labels": "<labels>",
"strict": "<strict>",
"silent": "<silent>"
}
}
Description
labels [ str * required ] - List of labels to search nodes by
strict [ str ] - list nodes that have full set of given labels y/n
silent [ str ] - silence non-existent labels errors y/n
Show namespaces with their labels
Request data
Description
ns [ str * ] - List of namespaces (or *)
filter [ str ] - labels filter: a - all, i - ignored, u - unignored
Show current namespace vclusters with their labels
Request data
{
"context": {
"op": "labels_vcluster_show"
},
"data": {
"vcluster": "<vcluster>",
"filter": "<filter>"
}
}
Description
vcluster [ str * required ] - List of vclusters (or *)
filter [ str ] - labels filter: a - all, i - ignored, u - unignored
List labels with namespaces they're delegated to
Request data
Description
ns [ str * ] - list of namespaces (or *)
filter [ str ] - labels filter: a - all, i - ignored, u - unignored
List labels with current namespace vclusters
Request data
{
"context": {
"op": "labels_vcluster_list"
},
"data": {
"vcluster": "<vcluster>",
"filter": "<filter>"
}
}
Description
vcluster [ str * ] - list of vclusters (or *)
filter [ str ] - labels filter: a - all, i - ignored, u - unignored
Mark cluster nodes as drain
Request data
Description
nodes [ str * required ] - list of nodes (or *)
Remove drain from nodes
Request data
Description
nodes [ str * required ] - list of nodes (or *)
Taint labels
Request data
Description
labels [ str * required ] - list of labels to taint
Remove taint from labels
Request data
Description
labels [ str * required ] - list of labels to remove taint from
vm_template_add
Request data
{
"context": {
"op": "vm_template_add"
},
"data": {
"name": "<name>",
"descr": "<descr>",
"vcpu": "<vcpu>",
"vram": "<vram>",
"storage": "<storage>",
"labels": "<labels>",
"ip_addresses": "<ip_addresses>",
"cpu_overcommit_ratio": "<cpu_overcommit_ratio>",
"overcommit_tolerance": "<overcommit_tolerance>",
"networks": "<networks>",
"inbounds": "<inbounds>",
"outbounds": "<outbounds>",
"nodeSelector": "<nodeSelector>",
"affinity": "<affinity>"
}
}
Description
name [ str required ] - name
descr [ str ] - descr
vcpu [ int required ] - vcpu
vram [ str required ] - vram
storage [ jsonstr required ] - storage
labels [ str ] - labels
ip_addresses [ jsonstr ] - ip_addresses
cpu_overcommit_ratio [ int ] - cpu_overcommit_ratio
overcommit_tolerance [ int ] - overcommit_tolerance
networks [ jsonstr ] - networks
inbounds [ jsonstr ] - inbounds
outbounds [ jsonstr ] - outbounds
nodeSelector [ jsonstr required ] - nodeSelector
affinity [ jsonstr ] - affinity
vm_template_update
Request data
{
"context": {
"op": "vm_template_update"
},
"data": {
"name": "<name>",
"descr": "<descr>",
"vcpu": "<vcpu>",
"vram": "<vram>",
"storage": "<storage>",
"labels": "<labels>",
"ip_addresses": "<ip_addresses>",
"cpu_overcommit_ratio": "<cpu_overcommit_ratio>",
"overcommit_tolerance": "<overcommit_tolerance>",
"networks": "<networks>",
"inbounds": "<inbounds>",
"outbounds": "<outbounds>",
"nodeSelector": "<nodeSelector>",
"affinity": "<affinity>",
"uuid": "<uuid>"
}
}
Description
name [ str ] - name
descr [ str ] - descr
vcpu [ int ] - vcpu
vram [ str ] - vram
storage [ jsonstr ] - storage
labels [ str ] - labels
ip_addresses [ jsonstr ] - ip_addresses
cpu_overcommit_ratio [ int ] - cpu_overcommit_ratio
overcommit_tolerance [ int ] - overcommit_tolerance
networks [ jsonstr ] - networks
inbounds [ jsonstr ] - inbounds
outbounds [ jsonstr ] - outbounds
nodeSelector [ jsonstr ] - nodeSelector
affinity [ jsonstr ] - affinity
uuid [ str required ] - uuid
vm_template_del
Request data
Description
uuid [ str required ] - uuid
vm_template_show
Request data
Description
uuid [ str required ] - uuid
vm_template_list
Request data
vm_template_from
Request data
Description
vm_uuid [ str required ] - vm_uuid
Return info about ifaces in selected vcluster or request
Request data
{
"context": {
"op": "report_iface"
},
"data": {
"request": "<request>",
"vcluster": "<vcluster>"
}
}
Description
request [ str ] - request
vcluster [ str ] - vcluster
Report on cluster nodes memory usage
Request data
Models
VclusterReqQ
name [ required ] - Vcluster name
uuids [ * required ] - List of UUID nodes
descr [ ] - Vcluster Description
taints [ ] - {{ no such element: dict object['desc'] }}
labels [ * required ] - {{ no such element: dict object['desc'] }}
rf [ int ] - Replication factor
isolation_strategy [ ] - Isolation node strategy (Default - RECREATE) ['STOP', 'NOTHING', 'RECREATE']
drain_strategy [ ] - Drain node strategy (Default - MIGRATE) ['STOP', 'NOTHING', 'MIGRATE']
ulimits [ ] - Enable user limits (Default - yes) ['yes', 'no']
cpu [ float ] - Vcluster CPU limit
ram [ memstr ] - Vcluster RAM limit
UserParams
vcluster [ required ] - Vcluster name
login [ required ] - User Login
rf [ int ] - Replication factor
isolation_strategy [ ] - Isolation node strategy (Default - NOTHING) ['STOP', 'NOTHING', 'RECREATE']
drain_strategy [ ] - Drain node strategy (Default - NOTHING) ['STOP', 'NOTHING', 'MIGRATE']
cpu [ float ] - User CPU limit
ram [ memstr ] - User RAM limit
RequestsQ
vcluster [ required ] - Vcluster name
kind [ ] - Requets type (Default - vm) ['vm']
name [ required ] - Resource name
descr [ ] - Vcluster Description
labels [ ] - {{ no such element: dict object['desc'] }}
data [ jsonstr required ] - Specs definition
SnapshotsQ
uuid [ required ] - Snapshot UUID
vcluster [ str required ] - Vcluster name
kind [ ] - Requets type (Default - vm) ['vm']
name [ str required ] - Resource name
snapshot_name [ str required ] - Snapshot name
vms [ * ] - List of VMs
descr [ str ] - Snapshot description