Last updated: 04-04-2024
Download OpenAPI specification:Download
Foundation is a Nutanix provided tool used for bootstrapping, imaging, and deployment of Nutanix clusters. The imaging process will install the desired version of the AOS software and the hypervisor of your choice. One of the ways to use Foundation services is to make use of the APIs provided by Foundation.
Foundation provides seven categories of APIs, namely, General APIs, File Management APIs, Networking APIs, Imaging and Cluster Creation APIs, UCS Managed Mode APIs, Foundation Upgrade APIs and Factory APIs.
However, most of these APIs find their use in internal scenarios. Some APIs that find most relevance in the customer scenario are image_nodes, pre_check, reboot_to_phoenix, reboot_from_phoenix, progress, phoenix_network_status, abort_session, get_progress_sessions among others.
Some of the acronyms frequently used in the API descriptions are listed below:
License: Copyright Nutanix Inc. All rights reserved
Gets the list of available updates. Comma-separated component names can be provided as query parameter. If no component name is provided, it returns the list of updates for all installed components.
components | string Comma-separated list of components |
curl --request GET \ --url https://fvm_ip:8000/foundation/components/available_updates \ --header 'Accept: application/json' \
{- "updates": [
- {
- "name": "string",
- "packages": [
- {
- "checksum": "string",
- "version": "string"
}
]
}
]
}
curl --request GET \ --url https://fvm_ip:8000/foundation/components/install_progress \ --header 'Accept: application/json' \
{- "components": [
- {
- "component_name": "string",
- "state": "string",
- "version": "string"
}
], - "error": {
- "description": "string"
}, - "status": "string"
}
Gets a list of all installed components along with their versions.
curl --request GET \ --url https://fvm_ip:8000/foundation/components/inventory \ --header 'Accept: application/json' \
{- "components": [
- {
- "name": "string",
- "version": "string"
}
]
}
Installs the updates from the list.
required | Array of objects (component_install) Updates list. |
curl --request POST \ --url https://fvm_ip:8000/foundation/components/install \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "updates": [ { "component_name": "string", "target_version": "string" } ] }'
{- "components": [
- {
- "component_name": "string",
- "target_version": "string"
}
]
}
Uploads and install the package for a component.
filename required | string Package file name |
component required | string Component name |
curl --request PUT \ --url https://fvm_ip:8000/foundation/components/upload \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \
{- "error": {
- "details": { },
- "message": "string",
- "session_id": "string"
}
}
Deletes hypervisor or AOS images uploaded to foundation.
curl --request POST \ --url https://fvm_ip:8000/foundation/delete \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \
curl --request GET \ --url https://fvm_ip:8000/foundation/get_whitelist \ --header 'Accept: application/json' \
{- "iso_whitelist": {
- "additionalProperties": {
- "compatible_versions": {
- "esx": [
- "string"
], - "hyperv": [
- "string"
], - "kvm": [
- "string"
], - "xen": [
- "string"
]
}, - "deprecated": "string",
- "filesize": "string",
- "friendly_name": "string",
- "hypervisor": "string",
- "min_foundation": "string",
- "min_nos": "string",
- "skus": [
- "string"
], - "unsupported_hardware": [
- "string"
], - "version": "string"
}
}, - "last_modified": 0
}
Lists the available AOS packages in Foundation.
curl --request GET \ --url https://fvm_ip:8000/foundation/enumerate_nos_packages \ --header 'Accept: application/json' \
[- "string"
]
Lists the hypervisor ISOs available in Foundation.
curl --request GET \ --url https://fvm_ip:8000/foundation/enumerate_hypervisor_isos \ --header 'Accept: application/json' \
{- "esx": [
- {
- "filename": "string",
- "supported": true
}
], - "hyperv": [
- {
- "filename": "string",
- "supported": true
}
], - "kvm": [
- {
- "filename": "string",
- "supported": true
}
], - "linux": [
- {
- "filename": "string",
- "supported": true
}
]
}
Updates the hypervisor whitelist.
object Details of ISO. | |
last_modified | integer <int64> Last modified time. |
curl --request POST \ --url https://fvm_ip:8000/foundation/update_whitelist \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "iso_whitelist": { "additionalProperties": { "compatible_versions": { "esx": [ "string" ], "hyperv": [ "string" ], "kvm": [ "string" ], "xen": [ "string" ] }, "deprecated": "string", "filesize": "string", "friendly_name": "string", "hypervisor": "string", "min_foundation": "string", "min_nos": "string", "skus": [ "string" ], "unsupported_hardware": [ "string" ], "version": "string" } }, "last_modified": 0 }'
Uploads hypervisor or AOS image to foundation.
filename required | string Name of installer file. |
installer_type required | string One of "kvm", "esx", "hyperv", "xen", or "nos". |
curl --request POST \ --url https://fvm_ip:8000/foundation/upload \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \
{- "in_whitelist": true,
- "md5sum": "string",
- "name": "string"
}
Checks if a foundation update is available.
curl --request POST \ --url https://fvm_ip:8000/foundation/is_update_available \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \
{- "update": "string",
- "update_available": true
}
Gets the previous Foundation update status such as success, failure, in-progress and no auto update in progress.
curl --request GET \ --url https://fvm_ip:8000/foundation/last_update_status \ --header 'Accept: application/json' \
{- "status": "string"
}
Updates Foundation either to a specified TAR file or version available on the Foundation Update URL mentioned in update_manager. If no path is provided for TAR file, the API looks, by default, for TAR file in the ~/foundation_updates folder.
tar_file | string |
curl --request GET \ --url https://fvm_ip:8000/foundation/auto_update_foundation \ --header 'Accept: application/json' \
{- "error": {
- "details": { },
- "message": "string",
- "session_id": "string"
}
}
Boots node(s) in phoenix asynchronously.
ipmi_password | string IPMI password. |
ipmi_user | string IPMI user. |
required | Array of objects (node_dict_for_boot_phoenix) Node details. |
phoenix_gateway | string <ipv4> Phoenix gateway. |
phoenix_netmask | string <ipv4> Phoenix netmask. |
curl --request POST \ --url https://fvm_ip:8000/foundation/boot_phoenix \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "ipmi_password": "string", "ipmi_user": "string", "nodes": [ { "bond_lacp_rate": "string", "bond_mode": "string", "bond_uplinks": [ "string" ], "device_hint": "string", "install_discovery_os": true, "ipmi_ip": "192.168.0.1", "phoenix_ip": "192.168.0.1" } ], "phoenix_gateway": "192.168.0.1", "phoenix_netmask": "192.168.0.1" }'
{- "session_id": "string"
}
Gets the details of a supported hypervisor from the iso_whitelist.json. If an AHV version is not specified in the JSON, the API reports it as supported with no additional details.
hypervisor_type required | string Hypervisor type. |
md5sum required | string md5sum of the hypervisor ISO. |
node_model required | string Model name of the node. |
nos_version required | string NOS version. |
curl --request POST \ --url https://fvm_ip:8000/foundation/is_iso_supported \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "hypervisor_type": "string", "md5sum": "string", "node_model": "string", "nos_version": "string" }'
{- "metadata": { },
- "supported": true
}
curl --request GET \ --url https://fvm_ip:8000/foundation/detect_local_hypervisor_type \ --header 'Accept: application/json' \
"string"
Enables or disables foundation features for the current foundation session. If any of the features provided are unsupported by foundation or cannot be modified by this API, it aborts the operation and returns an error. This API has a non-persistent behaviour, i.e., when foundation is restarted, the features which are enabled/disabled by the API will not be reflected.
enable | boolean True, if the feature has to be enabled. False, if the feature has to be disabled. |
feature_name | string Name of the feature. |
curl --request POST \ --url https://fvm_ip:8000/foundation/features \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "features": [ { "enable": true, "feature_name": "string" } ] }'
{- "error": {
- "details": { },
- "message": "string",
- "session_id": "string"
}
}
Gets a tarball with the required drivers for a given hypervisor type.
vendor | string Vendor of hypervisor iso, required only for esx. |
hypervisor_version | string Hypervisor version, required only for esx. |
hypervisor_type required | string Hypervisor Type. |
curl --request GET \ --url https://fvm_ip:8000/foundation/drivers \ --header 'Accept: application/json' \
[- {
- "md5sum": "string",
- "url": "string"
}
]
Gets the status of the feature if feature_name is specified. Gets all the features with a particular status if status is specified. Gets all the features and their status if no query parameters are provided.
enabled | boolean True, to query enabled features. False, to query disabled features |
feature_name | string Name of the feature. |
curl --request GET \ --url https://fvm_ip:8000/foundation/features \ --header 'Accept: application/json' \
[- {
- "enabled": true,
- "feature_name": "string"
}
]
Gets tarball of currently running foundation. By default, this excludes hypervisor and AOS images inside Foundation VM to return a tarball of minimum size.
curl --request GET \ --url https://fvm_ip:8000/foundation/get_foundation_tar \ --header 'Accept: application/json' \
Generates and downloads Phoenix ISO.
arch | string Must be one of x86_64 or ppc64le. |
bond_lacp_rate | string slow or fast if lacp if being used at the switch. |
bond_mode | string dynamic if LACP, static if using LAG. |
bond_uplinks | Array of strings MAC Addresses of NICs in a teambond. |
gateway | string <ipv4> Phoenix Netmask |
ip | string <ipv4> Phoenix Ipv4 address. |
mode | string Must be one of Installer, RescueShell or NDPRescueShell. |
nameservers | Array of strings <ipv4> [ items <ipv4 > ] List of DNS servers. |
netmask | string <ipv4> Phoenix Netmask. |
test_ip | string <ipv4> IP to test phoenix connectivity with. |
curl --request POST \ --url https://fvm_ip:8000/foundation/get_phoenix_iso \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "arch": "string", "bond_lacp_rate": "string", "bond_mode": "string", "bond_uplinks": [ "string" ], "gateway": "192.168.0.1", "ip": "192.168.0.1", "mode": "string", "nameservers": [ "192.168.0.1" ], "netmask": "192.168.0.1", "test_ip": "192.168.0.1" }'
Reboot the phoenix image back.
compute_only | boolean indicate this is a compute-only node. |
cvm_ip | string <ipv4> IP address of CVM. |
hypervisor_ip | string <ipv4> IP address of Hypervisor. |
reboot_timeout_mins | integer <int64> >= 25 Time period (in minutes) foundation waits for the CVM to come up. |
curl --request POST \ --url https://fvm_ip:8000/foundation/reboot_from_phoenix \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "compute_only": true, "cvm_ip": "192.168.0.1", "hypervisor_ip": "192.168.0.1", "reboot_timeout_mins": 25 }'
Reboot CVM into Phoenix image.
bond_lacp_rate | string slow or fast if lacp if being used at the switch |
bond_mode | string dynamic if using LACP, static for LAG |
bond_uplinks | Array of strings MAC Addresses of NICs in a team/bond |
compute_only | boolean indicate this is a compute-only node. |
cvm_gateway | string <ipv4> Gateway of CVM. |
cvm_ip | string <ipv4> IP address of CVM. |
cvm_netmask | string <ipv4> Netmask of CVM. |
cvm_vlan_id | integer vlan id of cvm. |
hypervisor_gateway | string <ipv4> Gateway of the hypervisor. |
hypervisor_ip | string <ipv4> IP address of the hypervisor. |
hypervisor_netmask | string <ipv4> Netmask of the hypervisor. |
mitigate_low_boot_space | boolean relocate bootbank files to make space for phoenix files. |
nameservers | Array of strings <ipv4> [ items <ipv4 > ] List of DNS servers. |
precheck_only | boolean Check if the node can be booted into phoenix. |
reboot_timeout_mins | integer <int64> >= 25 Time period (in minutes) foundation waits for the node to boot into phoenix. |
curl --request POST \ --url https://fvm_ip:8000/foundation/reboot_to_phoenix \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "bond_lacp_rate": "string", "bond_mode": "string", "bond_uplinks": [ "string" ], "compute_only": true, "cvm_gateway": "192.168.0.1", "cvm_ip": "192.168.0.1", "cvm_netmask": "192.168.0.1", "cvm_vlan_id": 0, "hypervisor_gateway": "192.168.0.1", "hypervisor_ip": "192.168.0.1", "hypervisor_netmask": "192.168.0.1", "mitigate_low_boot_space": true, "nameservers": [ "192.168.0.1" ], "precheck_only": true, "reboot_timeout_mins": 25 }'
{- "session_id": "string"
}
Gets the cluster installation log. Can also get the logs for a particular session ID.
session_id | string ID of imaging session |
cvm_ip required | string Specify cvm ip of any member of the cluster. |
curl --request GET \ --url https://fvm_ip:8000/foundation/cluster_log \ --header 'Accept: application/json' \
Gets the Foundation installation log for an individual node. Can also get the logs for a particular session ID.
ip | string Can be one of hypervisor, phoenix or cvm ip of the node. |
session_id | string ID of imaging session |
hypervisor_ip | string Specify the hypervisor ip of the node. |
curl --request GET \ --url https://fvm_ip:8000/foundation/node_log \ --header 'Accept: application/json' \
Gets progress of imaging session.
session_id | string ID of imaging session |
curl --request GET \ --url https://fvm_ip:8000/foundation/progress \ --header 'Accept: application/json' \
{- "abort_session": true,
- "action": "string",
- "aggregate_percent_complete": 0.1,
- "clusters": [
- {
- "category": [
- "string"
], - "cluster_members": [
- "192.168.0.1"
], - "cluster_name": "string",
- "messages": [
- "string"
], - "percent_complete": 0.1,
- "status": "string",
- "time_elapsed": 0.1,
- "time_total": 0.1
}
], - "imaging_stopped": true,
- "nodes": [
- {
- "category": [
- "string"
], - "cvm_ip": "192.168.0.1",
- "hypervisor_ip": "192.168.0.1",
- "messages": [
- "string"
], - "percent_complete": 0.1,
- "status": "string",
- "time_elapsed": 0.1,
- "time_total": 0.1
}
], - "results": [
- "string"
], - "session_id": "string"
}
Reports status of current and all previous sessions. The sessions can have active, failed and succeeded status. Can use this API to also check if a session is currently active.
curl --request GET \ --url https://fvm_ip:8000/foundation/get_progress_sessions \ --header 'Accept: application/json' \
{- "active_sessions": [
- {
- "property1": {
- "abort_session": true,
- "action": "string",
- "aggregate_percent_complete": 0.1,
- "clusters": [
- {
- "category": [
- "string"
], - "cluster_members": [
- "192.168.0.1"
], - "cluster_name": "string",
- "messages": [
- "string"
], - "percent_complete": 0.1,
- "status": "string",
- "time_elapsed": 0.1,
- "time_total": 0.1
}
], - "imaging_stopped": true,
- "nodes": [
- {
- "category": [
- "string"
], - "cvm_ip": "192.168.0.1",
- "hypervisor_ip": "192.168.0.1",
- "messages": [
- "string"
], - "percent_complete": 0.1,
- "status": "string",
- "time_elapsed": 0.1,
- "time_total": 0.1
}
], - "results": [
- "string"
], - "session_id": "string"
}, - "property2": {
- "abort_session": true,
- "action": "string",
- "aggregate_percent_complete": 0.1,
- "clusters": [
- {
- "category": [
- "string"
], - "cluster_members": [
- "192.168.0.1"
], - "cluster_name": "string",
- "messages": [
- "string"
], - "percent_complete": 0.1,
- "status": "string",
- "time_elapsed": 0.1,
- "time_total": 0.1
}
], - "imaging_stopped": true,
- "nodes": [
- {
- "category": [
- "string"
], - "cvm_ip": "192.168.0.1",
- "hypervisor_ip": "192.168.0.1",
- "messages": [
- "string"
], - "percent_complete": 0.1,
- "status": "string",
- "time_elapsed": 0.1,
- "time_total": 0.1
}
], - "results": [
- "string"
], - "session_id": "string"
}
}
], - "failed_sessions": [
- {
- "property1": {
- "abort_session": true,
- "action": "string",
- "aggregate_percent_complete": 0.1,
- "clusters": [
- {
- "category": [
- "string"
], - "cluster_members": [
- "192.168.0.1"
], - "cluster_name": "string",
- "messages": [
- "string"
], - "percent_complete": 0.1,
- "status": "string",
- "time_elapsed": 0.1,
- "time_total": 0.1
}
], - "imaging_stopped": true,
- "nodes": [
- {
- "category": [
- "string"
], - "cvm_ip": "192.168.0.1",
- "hypervisor_ip": "192.168.0.1",
- "messages": [
- "string"
], - "percent_complete": 0.1,
- "status": "string",
- "time_elapsed": 0.1,
- "time_total": 0.1
}
], - "results": [
- "string"
], - "session_id": "string"
}, - "property2": {
- "abort_session": true,
- "action": "string",
- "aggregate_percent_complete": 0.1,
- "clusters": [
- {
- "category": [
- "string"
], - "cluster_members": [
- "192.168.0.1"
], - "cluster_name": "string",
- "messages": [
- "string"
], - "percent_complete": 0.1,
- "status": "string",
- "time_elapsed": 0.1,
- "time_total": 0.1
}
], - "imaging_stopped": true,
- "nodes": [
- {
- "category": [
- "string"
], - "cvm_ip": "192.168.0.1",
- "hypervisor_ip": "192.168.0.1",
- "messages": [
- "string"
], - "percent_complete": 0.1,
- "status": "string",
- "time_elapsed": 0.1,
- "time_total": 0.1
}
], - "results": [
- "string"
], - "session_id": "string"
}
}
], - "succeeded_sessions": [
- {
- "property1": {
- "abort_session": true,
- "action": "string",
- "aggregate_percent_complete": 0.1,
- "clusters": [
- {
- "category": [
- "string"
], - "cluster_members": [
- "192.168.0.1"
], - "cluster_name": "string",
- "messages": [
- "string"
], - "percent_complete": 0.1,
- "status": "string",
- "time_elapsed": 0.1,
- "time_total": 0.1
}
], - "imaging_stopped": true,
- "nodes": [
- {
- "category": [
- "string"
], - "cvm_ip": "192.168.0.1",
- "hypervisor_ip": "192.168.0.1",
- "messages": [
- "string"
], - "percent_complete": 0.1,
- "status": "string",
- "time_elapsed": 0.1,
- "time_total": 0.1
}
], - "results": [
- "string"
], - "session_id": "string"
}, - "property2": {
- "abort_session": true,
- "action": "string",
- "aggregate_percent_complete": 0.1,
- "clusters": [
- {
- "category": [
- "string"
], - "cluster_members": [
- "192.168.0.1"
], - "cluster_name": "string",
- "messages": [
- "string"
], - "percent_complete": 0.1,
- "status": "string",
- "time_elapsed": 0.1,
- "time_total": 0.1
}
], - "imaging_stopped": true,
- "nodes": [
- {
- "category": [
- "string"
], - "cvm_ip": "192.168.0.1",
- "hypervisor_ip": "192.168.0.1",
- "messages": [
- "string"
], - "percent_complete": 0.1,
- "status": "string",
- "time_elapsed": 0.1,
- "time_total": 0.1
}
], - "results": [
- "string"
], - "session_id": "string"
}
}
]
}
Gets the imaging configuration of the previous session.
curl --request GET \ --url https://fvm_ip:8000/foundation/get_last_config \ --header 'Accept: application/json' \
{- "blocks": [
- {
- "block_id": "string",
- "nodes": [
- {
- "bond_lacp_rate": "string",
- "bond_mode": "string",
- "bond_uplinks": [
- "string"
], - "cluster_id": null,
- "current_cvm_vlan_tag": null,
- "current_network_interface": "string",
- "cvm_gb_ram": 0,
- "cvm_ip": "192.168.0.1",
- "cvm_num_vcpus": 0,
- "device_hint": "string",
- "exlude_boot_serial": "string",
- "hypervisor": "string",
- "hypervisor_hostname": "string",
- "hypervisor_ip": "192.168.0.1",
- "image_delay": 0,
- "image_now": true,
- "image_successful": true,
- "ipmi_configure_now": true,
- "ipmi_ip": "192.168.0.1",
- "ipmi_mac": "string",
- "ipv6_address": "string",
- "ipv6_interface": "string",
- "mitigate_low_boot_space": true,
- "node_position": "string",
- "node_serial": "string",
- "rdma_mac_addr": "string",
- "rdma_passthrough": true,
- "ucsm_managed_mode": "string",
- "ucsm_node_serial": "string",
- "ucsm_params": {
- "keep_ucsm_settings": true,
- "mac_pool": "string",
- "native_vlan": true,
- "vlan_name": "string"
}, - "vswitches": [
- {
- "bond_mode": "string",
- "lacp": "string",
- "mtu": 0,
- "name": "string",
- "other_config": [
- "string"
], - "uplinks": [
- "string"
]
}
]
}
]
}
], - "clusters": [
- {
- "backplane_netmask": "192.168.0.1",
- "backplane_subnet": "192.168.0.1",
- "backplane_vlan": null,
- "cluster_external_ip": "192.168.0.1",
- "cluster_init_now": true,
- "cluster_init_successful": true,
- "cluster_members": [
- "string"
], - "cluster_name": "string",
- "cvm_dns_servers": "string",
- "cvm_ntp_servers": "string",
- "enable_ns": true,
- "hypervisor_ntp_servers": "string",
- "redundancy_factor": 0,
- "single_node_cluster": true
}
], - "cvm_gateway": "192.168.0.1",
- "cvm_netmask": "192.168.0.1",
- "eos_metadata": {
- "account_name": [
- "string"
], - "config_id": "string",
- "email": "user@example.com"
}, - "fc_settings": {
- "fc_metadata": {
- "api_key": "string",
- "fc_ip": "string"
}, - "foundation_central": true
}, - "hyperv_external_vnic": "string",
- "hyperv_external_vswitch": "string",
- "hyperv_product_key": "string",
- "hyperv_sku": "string",
- "hypervisor_gateway": "192.168.0.1",
- "hypervisor_iso": {
- "esx": {
- "checksum": "string",
- "filename": "string"
}, - "hyperv": {
- "checksum": "string",
- "filename": "string"
}, - "kvm": {
- "checksum": "string",
- "filename": "string"
}, - "xen": {
- "checksum": "string",
- "filename": "string"
}
}, - "hypervisor_nameserver": "string",
- "hypervisor_netmask": "192.168.0.1",
- "hypervisor_password": "string",
- "install_script": "string",
- "ipmi_password": "string",
- "ipmi_user": "string",
- "nos_package": "string",
- "skip_hypervisor": true,
- "svm_rescue_args": [
- "string"
], - "tests": {
- "run_ncc": true,
- "run_syscheck": true
}, - "ucsm_ip": "192.168.0.1",
- "ucsm_password": "string",
- "ucsm_user": "string",
- "unc_password": "string",
- "unc_path": "string",
- "unc_username": "string",
- "xen_config_type": "string",
- "xs_master_ip": "192.168.0.1",
- "xs_master_label": "string",
- "xs_master_password": "string",
- "xs_master_username": "string"
}
Images node(s) and optionally creates clusters.
required | Array of objects (block) Block level parameters. |
Array of objects (cluster) Cluster parameters. | |
cvm_gateway | string <ipv4> CVM gateway. |
cvm_netmask | string <ipv4> CVM netmask. |
object (eos_metadata) Contains user data from Eos portal. | |
object (fc_settings) Foundation Central specific settings. | |
hyperv_external_vnic | string Hyperv External virtual network adapter name. |
hyperv_external_vswitch | string Hyperv External vswitch name. |
hyperv_product_key | string Hyperv product key . |
hyperv_sku | string Hyperv SKU. |
hypervisor_gateway | string <ipv4> Hypervisor gateway. |
object (hypervisor_iso) Hypervisor ISO. | |
hypervisor_nameserver | string Hypervisor nameserver . |
hypervisor_netmask | string <ipv4> Hypervisor netmask. |
hypervisor_password | string Hypervisor password. |
install_script | string install script. |
ipmi_password | string IPMI password. |
ipmi_user | string IPMI username. |
nos_package | string NOS package. |
skip_hypervisor | boolean If hypervisor installation should be skipped. |
svm_rescue_args | Array of strings Arguments to be passed to svm_rescue for AOS installation. Ensure that the arguments provided are supported by the AOS version used for imaging. |
object (tests) Types of tests to be performed. | |
ucsm_ip | string <ipv4> UCSM IP address. |
ucsm_password | string UCSM password. |
ucsm_user | string UCSM username. |
unc_password | string UNC password. |
unc_path | string UNC Path. |
unc_username | string UNC username. |
xen_config_type | string xen config types. |
xs_master_ip | string <ipv4> xen server master IP address. |
xs_master_label | string xen server master label. |
xs_master_password | string xen server master password. |
xs_master_username | string xen server master username. |
curl --request POST \ --url https://fvm_ip:8000/foundation/image_nodes \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "blocks": [ { "block_id": "string", "nodes": [ { "bond_lacp_rate": "string", "bond_mode": "string", "bond_uplinks": [ "string" ], "cluster_id": null, "current_cvm_vlan_tag": null, "current_network_interface": "string", "cvm_gb_ram": null, "cvm_ip": "192.168.0.1", "cvm_num_vcpus": 0, "device_hint": "string", "exlude_boot_serial": "string", "hypervisor": "string", "hypervisor_hostname": "string", "hypervisor_ip": "192.168.0.1", "image_delay": null, "image_now": true, "image_successful": true, "ipmi_configure_now": true, "ipmi_ip": "192.168.0.1", "ipmi_mac": "string", "ipv6_address": "string", "ipv6_interface": "string", "mitigate_low_boot_space": true, "node_position": "string", "node_serial": "string", "rdma_mac_addr": "string", "rdma_passthrough": true, "ucsm_managed_mode": "string", "ucsm_node_serial": "string", "ucsm_params": { "keep_ucsm_settings": true, "mac_pool": "string", "native_vlan": true, "vlan_name": "string" }, "vswitches": [ { "bond_mode": "string", "lacp": "string", "mtu": 0, "name": "string", "other_config": [ "string" ], "uplinks": [ "string" ] } ] } ] } ], "clusters": [ { "backplane_netmask": "192.168.0.1", "backplane_subnet": "192.168.0.1", "backplane_vlan": null, "cluster_external_ip": "192.168.0.1", "cluster_init_now": true, "cluster_init_successful": true, "cluster_members": [ "string" ], "cluster_name": "string", "cvm_dns_servers": "string", "cvm_ntp_servers": "string", "enable_ns": true, "hypervisor_ntp_servers": "string", "redundancy_factor": 0, "single_node_cluster": true } ], "cvm_gateway": "192.168.0.1", "cvm_netmask": "192.168.0.1", "eos_metadata": { "account_name": [ "string" ], "config_id": "string", "email": "user@example.com" }, "fc_settings": { "fc_metadata": { "api_key": "string", "fc_ip": "string" }, "foundation_central": true }, "hyperv_external_vnic": "string", "hyperv_external_vswitch": "string", "hyperv_product_key": "string", "hyperv_sku": "string", "hypervisor_gateway": "192.168.0.1", "hypervisor_iso": { "esx": { "checksum": "string", "filename": "string" }, "hyperv": { "checksum": "string", "filename": "string" }, "kvm": { "checksum": "string", "filename": "string" }, "xen": { "checksum": "string", "filename": "string" } }, "hypervisor_nameserver": "string", "hypervisor_netmask": "192.168.0.1", "hypervisor_password": "string", "install_script": "string", "ipmi_password": "string", "ipmi_user": "string", "nos_package": "string", "skip_hypervisor": true, "svm_rescue_args": [ "string" ], "tests": { "run_ncc": true, "run_syscheck": true }, "ucsm_ip": "192.168.0.1", "ucsm_password": "string", "ucsm_user": "string", "unc_password": "string", "unc_path": "string", "unc_username": "string", "xen_config_type": "string", "xs_master_ip": "192.168.0.1", "xs_master_label": "string", "xs_master_password": "string", "xs_master_username": "string" }'
{- "session_id": "string"
}
Checks all the parameters and configurations that are used to call image_nodes.
required | Array of objects (block) Block level parameters. |
Array of objects (cluster) Cluster parameters. | |
cvm_gateway | string <ipv4> CVM gateway. |
cvm_netmask | string <ipv4> CVM netmask. |
object (eos_metadata) Contains user data from Eos portal. | |
object (fc_settings) Foundation Central specific settings. | |
hyperv_external_vnic | string Hyperv External virtual network adapter name. |
hyperv_external_vswitch | string Hyperv External vswitch name. |
hyperv_product_key | string Hyperv product key . |
hyperv_sku | string Hyperv SKU. |
hypervisor_gateway | string <ipv4> Hypervisor gateway. |
object (hypervisor_iso) Hypervisor ISO. | |
hypervisor_nameserver | string Hypervisor nameserver . |
hypervisor_netmask | string <ipv4> Hypervisor netmask. |
hypervisor_password | string Hypervisor password. |
install_script | string install script. |
ipmi_password | string IPMI password. |
ipmi_user | string IPMI username. |
nos_package | string NOS package. |
skip_hypervisor | boolean If hypervisor installation should be skipped. |
svm_rescue_args | Array of strings Arguments to be passed to svm_rescue for AOS installation. Ensure that the arguments provided are supported by the AOS version used for imaging. |
object (tests) Types of tests to be performed. | |
ucsm_ip | string <ipv4> UCSM IP address. |
ucsm_password | string UCSM password. |
ucsm_user | string UCSM username. |
unc_password | string UNC password. |
unc_path | string UNC Path. |
unc_username | string UNC username. |
xen_config_type | string xen config types. |
xs_master_ip | string <ipv4> xen server master IP address. |
xs_master_label | string xen server master label. |
xs_master_password | string xen server master password. |
xs_master_username | string xen server master username. |
curl --request POST \ --url https://fvm_ip:8000/foundation/pre_check \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "blocks": [ { "block_id": "string", "nodes": [ { "bond_lacp_rate": "string", "bond_mode": "string", "bond_uplinks": [ "string" ], "cluster_id": null, "current_cvm_vlan_tag": null, "current_network_interface": "string", "cvm_gb_ram": null, "cvm_ip": "192.168.0.1", "cvm_num_vcpus": 0, "device_hint": "string", "exlude_boot_serial": "string", "hypervisor": "string", "hypervisor_hostname": "string", "hypervisor_ip": "192.168.0.1", "image_delay": null, "image_now": true, "image_successful": true, "ipmi_configure_now": true, "ipmi_ip": "192.168.0.1", "ipmi_mac": "string", "ipv6_address": "string", "ipv6_interface": "string", "mitigate_low_boot_space": true, "node_position": "string", "node_serial": "string", "rdma_mac_addr": "string", "rdma_passthrough": true, "ucsm_managed_mode": "string", "ucsm_node_serial": "string", "ucsm_params": { "keep_ucsm_settings": true, "mac_pool": "string", "native_vlan": true, "vlan_name": "string" }, "vswitches": [ { "bond_mode": "string", "lacp": "string", "mtu": 0, "name": "string", "other_config": [ "string" ], "uplinks": [ "string" ] } ] } ] } ], "clusters": [ { "backplane_netmask": "192.168.0.1", "backplane_subnet": "192.168.0.1", "backplane_vlan": null, "cluster_external_ip": "192.168.0.1", "cluster_init_now": true, "cluster_init_successful": true, "cluster_members": [ "string" ], "cluster_name": "string", "cvm_dns_servers": "string", "cvm_ntp_servers": "string", "enable_ns": true, "hypervisor_ntp_servers": "string", "redundancy_factor": 0, "single_node_cluster": true } ], "cvm_gateway": "192.168.0.1", "cvm_netmask": "192.168.0.1", "eos_metadata": { "account_name": [ "string" ], "config_id": "string", "email": "user@example.com" }, "fc_settings": { "fc_metadata": { "api_key": "string", "fc_ip": "string" }, "foundation_central": true }, "hyperv_external_vnic": "string", "hyperv_external_vswitch": "string", "hyperv_product_key": "string", "hyperv_sku": "string", "hypervisor_gateway": "192.168.0.1", "hypervisor_iso": { "esx": { "checksum": "string", "filename": "string" }, "hyperv": { "checksum": "string", "filename": "string" }, "kvm": { "checksum": "string", "filename": "string" }, "xen": { "checksum": "string", "filename": "string" } }, "hypervisor_nameserver": "string", "hypervisor_netmask": "192.168.0.1", "hypervisor_password": "string", "install_script": "string", "ipmi_password": "string", "ipmi_user": "string", "nos_package": "string", "skip_hypervisor": true, "svm_rescue_args": [ "string" ], "tests": { "run_ncc": true, "run_syscheck": true }, "ucsm_ip": "192.168.0.1", "ucsm_password": "string", "ucsm_user": "string", "unc_password": "string", "unc_path": "string", "unc_username": "string", "xen_config_type": "string", "xs_master_ip": "192.168.0.1", "xs_master_label": "string", "xs_master_password": "string", "xs_master_username": "string" }'
{- "session_id": "string"
}
Checks whether node is booted into phoenix and has a stable network.
phoenix_ip required | string IP address of phoenix node. |
curl --request GET \ --url https://fvm_ip:8000/foundation/phoenix_network_status \ --header 'Accept: application/json' \
{- "stable": true
}
Configures IPMI IP address on BMC of nodes.
required | Array of objects Block details. |
ipmi_gateway required | string <ipv4> IPMI gateway. |
ipmi_netmask required | string <ipv4> IPMI netmask. |
ipmi_password | string IPMI password. |
ipmi_user | string IPMI username. |
curl --request POST \ --url https://fvm_ip:8000/foundation/ipmi_config \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "blocks": [ {} ], "ipmi_gateway": "192.168.0.1", "ipmi_netmask": "192.168.0.1", "ipmi_password": "string", "ipmi_user": "string" }'
{- "blocks": [
- {
- "block_id": "string",
- "nodes": [
- {
- "ipmi_configure_now": true,
- "ipmi_configure_successful": true,
- "ipmi_ip": "192.168.0.1",
- "ipmi_mac": "string"
}
]
}
], - "ipmi_gateway": "192.168.0.1",
- "ipmi_netmask": "192.168.0.1",
- "ipmi_password": "string",
- "ipmi_user": "string"
}
Delete all the virtual interfaces on a node except the primary interface.
curl --request DELETE \ --url https://fvm_ip:8000/foundation/foundation_networking \ --header 'Accept: application/json' \
{- "default_gateway": "string",
- "nics": {
- "interface_details": {
- "ipv4_address": "192.168.0.1",
- "ipv6_address": "string",
- "name": "string",
- "netmask": "192.168.0.1",
- "parent_interface_index": 0,
- "primary_interface": true,
- "vlan": 0
}, - "interface_index": "string"
}
}
Gets IPv4 and IPv6 addresses for network interfaces on CVM. Lists only network interfaces that have both IPv4 and IPv6 Link Local addresses.
curl --request GET \ --url https://fvm_ip:8000/foundation/list_nics \ --header 'Accept: application/json' \
{- "property1": {
- "ipv4": [
- {
- "addr": "string",
- "netmask": "string"
}
], - "ipv6": "string",
- "name": "string"
}, - "property2": {
- "ipv4": [
- {
- "addr": "string",
- "netmask": "string"
}
], - "ipv6": "string",
- "name": "string"
}
}
Gets NIC configuration for discovery and imaging. Lists NICs only if they have both IPv4 and IPv6 Link Local addresses.
curl --request GET \ --url https://fvm_ip:8000/foundation/foundation_networking \ --header 'Accept: application/json' \
{- "default_gateway": "string",
- "nics": {
- "interface_details": {
- "ipv4_address": "192.168.0.1",
- "ipv6_address": "string",
- "name": "string",
- "netmask": "192.168.0.1",
- "parent_interface_index": 0,
- "primary_interface": true,
- "vlan": 0
}, - "interface_index": "string"
}
}
curl --request GET \ --url https://fvm_ip:8000/foundation/primary_nic \ --header 'Accept: application/json' \
{- "primary_nic": "string"
}
Gets hypervisor, CVM & IPMI info of the discovered nodes.
required | Array of objects (cvm_ipv6_address) target ipv6 address array. |
timeout | string timeout in seconds |
curl --request POST \ --url https://fvm_ip:8000/foundation/node_network_details \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "nodes": [ { "ipv6_address": "string" } ], "timeout": "string" }'
{- "error": "string",
- "nodes": [
- {
- "cvm_gateway": "192.168.0.1",
- "cvm_ip": "192.168.0.1",
- "cvm_netmask": "192.168.0.1",
- "cvm_vlan_id": "string",
- "error": "string",
- "hypervisor_gateway": "192.168.0.1",
- "hypervisor_hostname": "string",
- "hypervisor_ip": "192.168.0.1",
- "hypervisor_netmask": "192.168.0.1",
- "ipmi_gateway": "192.168.0.1",
- "ipmi_ip": "192.168.0.1",
- "ipmi_netmask": "192.168.0.1",
- "ipv6_address": "string"
}
]
}
curl --request GET \ --url https://fvm_ip:8000/foundation/discover_nodes \ --header 'Accept: application/json' \
[- {
- "block_id": "string",
- "chassis_n": "string",
- "model": "string",
- "nodes": [
- {
- "cluster_id": null,
- "configured": true,
- "current_cvm_vlan_tag": null,
- "current_network_interface": "string",
- "cvm_ip": "192.168.0.1",
- "foundation_version": "string",
- "hypervisor": "string",
- "hypervisor_version": "string",
- "ipv6_address": "string",
- "model": "string",
- "node_position": "string",
- "node_uuid": "string",
- "nos_version": "string"
}
]
}
]
Ping multiple nodes concurrently.
Array of IP addresses to ping
curl --request POST \ --url https://fvm_ip:8000/foundation/ping_multiple \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \
[- [
- "string",
- "string"
]
]
Configures IP address on cvm and(or) host and dynamically change vlan tag to move the nodes into a different vlan network. This operation should be attempted only if standalone foundation has access to that particular network. Else, nodes will not be reachable.
error | string Present when this API returns partial results.
See the |
required | Array of objects (node_info_list) nodes array. |
curl --request POST \ --url https://fvm_ip:8000/foundation/provision_network \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "error": "string", "nodes": [ { "cvm_gateway": "192.168.0.1", "cvm_ip": "192.168.0.1", "cvm_netmask": "192.168.0.1", "cvm_vlan_id": "string", "error": "string", "hypervisor_gateway": "192.168.0.1", "hypervisor_hostname": "string", "hypervisor_ip": "192.168.0.1", "hypervisor_netmask": "192.168.0.1", "ipmi_gateway": "192.168.0.1", "ipmi_ip": "192.168.0.1", "ipmi_netmask": "192.168.0.1", "ipv6_address": "string" } ] }'
{- "error": {
- "details": { },
- "message": "string",
- "session_id": "string"
}
}
Sets a NIC as primary for node discovery.
curl --request POST \ --url https://fvm_ip:8000/foundation/primary_nic \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \
{- "primary_nic": "string"
}
Configures network settings for foundation. Supports configuring virtual interfaces when multihoming is enabled. Configures sub-interfaces with VLAN ID so that standalone or CVM foundation can image and/or discover nodes that are behind a flat switch or managed switch.
default_gateway | string <ipv4> Default gateway on the node. |
required | Array of objects (nics_list) NICs array. |
curl --request POST \ --url https://fvm_ip:8000/foundation/foundation_networking \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "default_gateway": "192.168.0.1", "nics": [ { "config": [ { "delete": true, "ipv4_address": "192.168.0.1", "netmask": "192.168.0.1", "vlan": 0 } ], "interface_index": "string" } ] }'
[- {
- "config": [
- {
- "ipv4": "192.168.0.1",
- "netmask": "192.168.0.1",
- "vlan": "string"
}
], - "ifindex": "string"
}
]
Validates the IP configuration of Hypervisor, CVM and IPMI. This includes:
required | Array of objects (block) Block level parameters. |
Array of objects (cluster) Cluster parameters. | |
cvm_gateway | string <ipv4> CVM gateway. |
cvm_netmask | string <ipv4> CVM netmask. |
object (eos_metadata) Contains user data from Eos portal. | |
object (fc_settings) Foundation Central specific settings. | |
hyperv_external_vnic | string Hyperv External virtual network adapter name. |
hyperv_external_vswitch | string Hyperv External vswitch name. |
hyperv_product_key | string Hyperv product key . |
hyperv_sku | string Hyperv SKU. |
hypervisor_gateway | string <ipv4> Hypervisor gateway. |
object (hypervisor_iso) Hypervisor ISO. | |
hypervisor_nameserver | string Hypervisor nameserver . |
hypervisor_netmask | string <ipv4> Hypervisor netmask. |
hypervisor_password | string Hypervisor password. |
install_script | string install script. |
ipmi_password | string IPMI password. |
ipmi_user | string IPMI username. |
nos_package | string NOS package. |
skip_hypervisor | boolean If hypervisor installation should be skipped. |
svm_rescue_args | Array of strings Arguments to be passed to svm_rescue for AOS installation. Ensure that the arguments provided are supported by the AOS version used for imaging. |
object (tests) Types of tests to be performed. | |
ucsm_ip | string <ipv4> UCSM IP address. |
ucsm_password | string UCSM password. |
ucsm_user | string UCSM username. |
unc_password | string UNC password. |
unc_path | string UNC Path. |
unc_username | string UNC username. |
xen_config_type | string xen config types. |
xs_master_ip | string <ipv4> xen server master IP address. |
xs_master_label | string xen server master label. |
xs_master_password | string xen server master password. |
xs_master_username | string xen server master username. |
curl --request POST \ --url https://fvm_ip:8000/foundation/validate_network_configuration \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "blocks": [ { "block_id": "string", "nodes": [ { "bond_lacp_rate": "string", "bond_mode": "string", "bond_uplinks": [ "string" ], "cluster_id": null, "current_cvm_vlan_tag": null, "current_network_interface": "string", "cvm_gb_ram": null, "cvm_ip": "192.168.0.1", "cvm_num_vcpus": 0, "device_hint": "string", "exlude_boot_serial": "string", "hypervisor": "string", "hypervisor_hostname": "string", "hypervisor_ip": "192.168.0.1", "image_delay": null, "image_now": true, "image_successful": true, "ipmi_configure_now": true, "ipmi_ip": "192.168.0.1", "ipmi_mac": "string", "ipv6_address": "string", "ipv6_interface": "string", "mitigate_low_boot_space": true, "node_position": "string", "node_serial": "string", "rdma_mac_addr": "string", "rdma_passthrough": true, "ucsm_managed_mode": "string", "ucsm_node_serial": "string", "ucsm_params": { "keep_ucsm_settings": true, "mac_pool": "string", "native_vlan": true, "vlan_name": "string" }, "vswitches": [ { "bond_mode": "string", "lacp": "string", "mtu": 0, "name": "string", "other_config": [ "string" ], "uplinks": [ "string" ] } ] } ] } ], "clusters": [ { "backplane_netmask": "192.168.0.1", "backplane_subnet": "192.168.0.1", "backplane_vlan": null, "cluster_external_ip": "192.168.0.1", "cluster_init_now": true, "cluster_init_successful": true, "cluster_members": [ "string" ], "cluster_name": "string", "cvm_dns_servers": "string", "cvm_ntp_servers": "string", "enable_ns": true, "hypervisor_ntp_servers": "string", "redundancy_factor": 0, "single_node_cluster": true } ], "cvm_gateway": "192.168.0.1", "cvm_netmask": "192.168.0.1", "eos_metadata": { "account_name": [ "string" ], "config_id": "string", "email": "user@example.com" }, "fc_settings": { "fc_metadata": { "api_key": "string", "fc_ip": "string" }, "foundation_central": true }, "hyperv_external_vnic": "string", "hyperv_external_vswitch": "string", "hyperv_product_key": "string", "hyperv_sku": "string", "hypervisor_gateway": "192.168.0.1", "hypervisor_iso": { "esx": { "checksum": "string", "filename": "string" }, "hyperv": { "checksum": "string", "filename": "string" }, "kvm": { "checksum": "string", "filename": "string" }, "xen": { "checksum": "string", "filename": "string" } }, "hypervisor_nameserver": "string", "hypervisor_netmask": "192.168.0.1", "hypervisor_password": "string", "install_script": "string", "ipmi_password": "string", "ipmi_user": "string", "nos_package": "string", "skip_hypervisor": true, "svm_rescue_args": [ "string" ], "tests": { "run_ncc": true, "run_syscheck": true }, "ucsm_ip": "192.168.0.1", "ucsm_password": "string", "ucsm_user": "string", "unc_password": "string", "unc_path": "string", "unc_username": "string", "xen_config_type": "string", "xs_master_ip": "192.168.0.1", "xs_master_label": "string", "xs_master_password": "string", "xs_master_username": "string" }'
{- "session_id": "string"
}