Skip to content

Commit ab9846d

Browse files
author
William Lam
committed
VI/JSON Examples
1 parent 5a8ff77 commit ab9846d

File tree

3 files changed

+68
-0
lines changed

3 files changed

+68
-0
lines changed

shell/create_snapshot_for_vm.sh

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
VC='vcsa.primp-industries.local'
2+
VC_USERNAME='[email protected]'
3+
VC_PASSWORD='VMware1!'
4+
VC_API_RELEASE='8.0.1.0'
5+
VM_NAME="esx-1.0"
6+
7+
# vCenter REST API
8+
VCREST_API_SESSION_ID=$(curl -s -u "${VC_USERNAME}:${VC_PASSWORD}" -X POST "https://${VC}/api/session" | jq -j)
9+
VM_MOREF=$(curl -s -H "vmware-api-session-id: ${VCREST_API_SESSION_ID}" -X GET "https://${VC}/api/vcenter/vm?names=${VM_NAME}" | jq -r '.[0].vm')
10+
11+
# vCenter VI JSON API
12+
SESSION_MANAGER_MOID=$(curl -s https://$VC/sdk/vim25/${VC_API_RELEASE}/ServiceInstance/ServiceInstance/content | jq -j .sessionManager.value)
13+
VIJSON_API_SESSION_ID=$(curl -s -o /dev/null -D - "https://$VC/sdk/vim25/${VC_API_RELEASE}/SessionManager/$SESSION_MANAGER_MOID/Login" -H 'Content-Type: application/json' -d "{\"userName\":\"${VC_USERNAME}\", \"password\": \"${VC_PASSWORD}\"}" | awk 'BEGIN {FS=": "}/^vmware-api-session-id/{print $2}')
14+
15+
# Create Snapshot spec
16+
cat > snapshot_spec.json <<EOF
17+
{
18+
"description": "Test Snapshot",
19+
"memory": false,
20+
"name": "test-snapshot-1"
21+
}
22+
EOF
23+
24+
# Create Snapshot
25+
curl -s -H "vmware-api-session-id: ${VIJSON_API_SESSION_ID}" -H "Content-Type: application/json" -X POST "https://$VC/sdk/vim25/${VC_API_RELEASE}/VirtualMachine/${VM_MOREF}/CreateSnapshotEx_Task" -d@snapshot_spec.json
26+
27+
# List Snapshots
28+
curl -s -H "vmware-api-session-id: ${VIJSON_API_SESSION_ID}" -H "Content-Type: application/json" -X GET "https://$VC/sdk/vim25/${VC_API_RELEASE}/VirtualMachine/${VM_MOREF}/snapshot"
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
VC='vcsa.primp-industries.local'
2+
VC_USERNAME='[email protected]'
3+
VC_PASSWORD='VMware1!'
4+
VC_API_RELEASE='8.0.1.0'
5+
VM_NAME="esx-1.0"
6+
7+
# vCenter REST API
8+
9+
VCREST_API_SESSION_ID=$(curl -s -u "${VC_USERNAME}:${VC_PASSWORD}" -X POST "https://${VC}/api/session" | jq -j)
10+
VM_MOREF=$(curl -s -H "vmware-api-session-id: ${VCREST_API_SESSION_ID}" -X GET "https://${VC}/api/vcenter/vm?names=${VM_NAME}" | jq -r '.[0].vm')
11+
12+
# vCenter VI JSON API
13+
14+
SESSION_MANAGER_MOID=$(curl -s https://$VC/sdk/vim25/${VC_API_RELEASE}/ServiceInstance/ServiceInstance/content | jq -j .sessionManager.value)
15+
VIJSON_API_SESSION_ID=$(curl -s -o /dev/null -D - "https://$VC/sdk/vim25/${VC_API_RELEASE}/SessionManager/$SESSION_MANAGER_MOID/Login" -H 'Content-Type: application/json' -d "{\"userName\":\"${VC_USERNAME}\", \"password\": \"${VC_PASSWORD}\"}" | awk 'BEGIN {FS=": "}/^vmware-api-session-id/{print $2}')
16+
17+
# List VM Advanced Setings
18+
curl -s -H "vmware-api-session-id: ${VIJSON_API_SESSION_ID}" -X GET "https://$VC/sdk/vim25/${VC_API_RELEASE}/VirtualMachine/${VM_MOREF}/config" | jq -r .extraConfig
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
VC='vcsa.primp-industries.local'
2+
VC_USERNAME='[email protected]'
3+
VC_PASSWORD='VMware1!'
4+
VC_API_RELEASE='8.0.1.0'
5+
VM_NAME="esx-1.0"
6+
7+
# vCenter REST API
8+
9+
VCREST_API_SESSION_ID=$(curl -s -u "${VC_USERNAME}:${VC_PASSWORD}" -X POST "https://${VC}/api/session" | jq -j)
10+
VM_MOREF=$(curl -s -H "vmware-api-session-id: ${VCREST_API_SESSION_ID}" -X GET "https://${VC}/api/vcenter/vm?names=${VM_NAME}" | jq -r '.[0].vm')
11+
12+
# vCenter VI JSON API
13+
14+
SESSION_MANAGER_MOID=$(curl -s https://$VC/sdk/vim25/${VC_API_RELEASE}/ServiceInstance/ServiceInstance/content | jq -j .sessionManager.value)
15+
VIJSON_API_SESSION_ID=$(curl -s -o /dev/null -D - "https://$VC/sdk/vim25/${VC_API_RELEASE}/SessionManager/$SESSION_MANAGER_MOID/Login" -H 'Content-Type: application/json' -d "{\"userName\":\"${VC_USERNAME}\", \"password\": \"${VC_PASSWORD}\"}" | awk 'BEGIN {FS=": "}/^vmware-api-session-id/{print $2}')
16+
17+
CUSTOM_FIELDS_MANAGER_MOID=$(curl -s https://$VC/sdk/vim25/${VC_API_RELEASE}/ServiceInstance/ServiceInstance/content | jq -j .customFieldsManager.value)
18+
19+
# Retrieve Custom Field Key/Name for VirtualMachine definitions
20+
curl -s -H "vmware-api-session-id: ${VIJSON_API_SESSION_ID}" -X GET "https://$VC/sdk/vim25/${VC_API_RELEASE}/CustomFieldsManager/${CUSTOM_FIELDS_MANAGER_MOID}/field" | jq -r '.[] | select(.managedObjectType == "VirtualMachine") | {key, name}'
21+
22+
curl -s -H "vmware-api-session-id: ${VIJSON_API_SESSION_ID}" -X GET "https://$VC/sdk/vim25/${VC_API_RELEASE}/VirtualMachine/${VM_MOREF}/value"

0 commit comments

Comments
 (0)