Use API calls to upgrade an East-West service VM.

Prerequisites

Procedure

  1. Use the following API to retrieve the payload of the East-West service.
    GET https://<nsx-manager>/api/v1/serviceinsertion/services/<ew_service_id>
    Response:
    {
    "functionalities": [
    "NET_MON",
    "NG_FW"
    ],q
    "implementations": [
    "EAST_WEST"
    ],
    "attachment_point": [
    "SERVICE_PLANE"
    ],
    "transports": [
    "NSH"
    ],
    "on_failure_policy": "BLOCK",
    "service_deployment_spec": {
    "deployment_template": [
    {
    "name": "EW_DepTemp",
    "attributes": [
    {
    "key": "password",
    "display_name": "password",
    "attribute_type": "PASSWORD",
    "read_only": false
    },
    {
    "key": "LicenseKey",
    "display_name": "License",
    "attribute_type": "STRING",
    "read_only": false
    }
    ]
    }
    ],
    "deployment_specs": [
    {
    "name": "EW_DepSpec",
    "ovf_url": "http://<server-FQDN/IP>/ovfs/nsxt/EastWest/v2/EW_SI_SVM_v2.ovf",
    "min_host_version": "6.5",
    "host_type": "ESXI",
    "service_form_factor": "MEDIUM",
    "svm_version": "1.0"
    }
    ],
    "nic_metadata_list": [
    {
    "interface_label": "eth",
    "interface_index": 0,
    "interface_type": "MANAGEMENT",
    "user_configurable": true
    },
    {
    "interface_label": "eth",
    "interface_index": 1,
    "interface_type": "DATA1"
    }
    ],
    "svm_version": "1.0"
    },
    "vendor_id": "ABC_Service",
    "service_capability": {
    "nsh_liveness_support_enabled": true,
    "can_decrement_si": false
    },
    "resource_type": "ServiceDefinition",
    "id": "2cb0efaa-beb1-461b-be2b-d94afee98692",
    "display_name": "ABC_Service",
    "description": "This is East West Service Insertion",
    "_create_user": "admin",
    "_create_time": 1614099564224,
    "_last_modified_user": "admin",
    "_last_modified_time": 1614104390834,
    "_system_owned": false,
    "_protection": "NOT_PROTECTED",
    "_revision": 1
    }
  2. Update East-West service deployment specification. The following API call adds a couple of additional deployment specifications to the payload.
    PUT https://<nsx-manager>/api/v1/serviceinsertion/services/<ew_service_id>
    {
    "functionalities": [
    "NET_MON",
    "NG_FW"
    ],
    "implementations": [
    "EAST_WEST"
    ],
    "attachment_point": [
    "SERVICE_PLANE"
    ],
    "transports": [
    "NSH"
    ],
    "on_failure_policy": "BLOCK",
    "service_deployment_spec": {
    "deployment_template": [
    {
    "name": "EW_DepTemp",
    "attributes": [
    {
    "key": "password",
    "display_name": "password",
    "attribute_type": "PASSWORD",
    "read_only": false
    },
    {
    "key": "LicenseKey",
    "display_name": "License",
    "attribute_type": "STRING",
    "read_only": false
    }
    ]
    }
    ],
    "deployment_specs": [
    {
    "name": "EW_DepSpec_up2",
    "ovf_url": "http://<server-FQDN/IP>/OVAs/SVM-tiny-64_3/SVM-tiny-64/SVM-tiny-64.ovf",
    "min_host_version": "6.5",
    "host_type": "ESXI",
    "service_form_factor": "SMALL",
    "svm_version": "1.0"
    },
    {
    "name": "EW_DepSpec",
    "ovf_url": "http://<server-FQDN/IP>/ovfs/nsxt/EastWest/v2/EW_SI_SVM_v2.ovf",
    "min_host_version": "6.5",
    "host_type": "ESXI",
    "service_form_factor": "MEDIUM",
    "svm_version": "1.0"
    },
    {
    "name": "EW_DepSpec_up",
    "ovf_url": "http://<server-FQDN/IP>/EW_OVF/EW_SI_SVM.ovf",
    "min_host_version": "6.5",
    "host_type": "ESXI",
    "service_form_factor": "LARGE",
    "svm_version": "1.0"
    }
    ],
    "nic_metadata_list": [
    {
    "interface_label": "eth",
    "interface_index": 0,
    "interface_type": "MANAGEMENT",
    "user_configurable": true
    },
    {
    "interface_label": "eth",
    "interface_index": 1,
    "interface_type": "DATA1"
    }
    ],
    "svm_version": "1.0"
    },
    "vendor_id": "ABC_Service",
    "service_capability": {
    "nsh_liveness_support_enabled": true,
    "can_decrement_si": false
    },
    "resource_type": "ServiceDefinition",
    "id": "2cb0efaa-beb1-461b-be2b-d94afee98692",
    "display_name": "ABC_Service",
    "description": "This is East West Service Insertion",
    "_create_user": "admin",
    "_create_time": 1614099564224,
    "_last_modified_user": "admin",
    "_last_modified_time": 1614104390834,
    "_system_owned": false,
    "_protection": "NOT_PROTECTED",
    "_revision": 1
    }
  3. Call the following API to upgrade Service VMs belonging to East-West service deployment. NSX upgrades East-West Service VM associated with the specified service deployment.
    POST https://<nsx-manager>/api/v1/serviceinsertion/services/<ew_service_id>/service-deployments/<service_deployment_id>?action=upgrade
    {
    "deployment_spec_name": "EW_DepSpec_up2"
    }

Results

NSX upgrades the East-West Service VM.