Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Gliffy Diagram
size1200
namevCPEPoliciesAndInformationSources
pagePin18


Homing Workflow

...


SO - HAS API (R) - before retrieving homing policies

Code Block
languagetext
titleSO - HAS API (R)
collapsetrue
requestInfo:

...


  callbackUrl: https://so:5000/callback
  numSolutions: 1
  optimizer:
  - placement
  requestId: yyy-yyy-yyyy
  sourceId: so
  timeout: 600
  transactionId: xxx-xxx-xxxx
  requestType: new
placementInfo:
  orderInfo:
    requestParameters:
      customerLatitude: 32.897480
      customerLongitude: -97.040443
      customerName: some_company
  demandInfo:
    placementDemands:
    - resourceName: vGMuxInfra
      resourceId: some_resource_id
      tenantId: some_tenant_id
      resourceModelInfo:
        modelId: vGMux_model_id
        modelName: ''
        modelType: allotted
        modelVersion: '2.0'
      existingPlacement:
        serviceInstanceId: 87257b49-9602-4ca1-9817-094e52bc873b
      excludedCandidates:
      - candidateType: service
        candidates:
        - serviceInstanceId: 1ac71fb8-ad43-4e16-9459-c3f372b8236d

...


      requiredCandidates:
      - candidateType: service 

...


        candidates:
        - serviceInstanceId: 7e6c3e57-62cd-44f6-aa88-d0896998f7ec

...


    - resourceName: vG
      tenantId: some_tenant_id
      resourceId: 71d563e8-e714-4393-8f99-cc480144a05e
      resourceModelInfo:
        modelId: vG_model_id
        modelName: ''
        modelType: dedicated
        modelVersion: '2.0'
      existingPlacement:
        serviceInstanceId: 21d5f3e8-e714-4383-8f99-cc480144505a
      excludedCandidates:
      - candidateType: service
        candidates:
        - serviceInstanceId: 1ac71fb8-ad43-4e16-9459-c3f372b8236d

...


      requiredCandidates:
      - candidateType: cloud
        candidates:
        - cloud-region-id: TXAUS219

...



  otherInfo:
    serviceInstanceId: d61b2543-5914-4b8f-8e81-81e38575b8ec
  serviceModelInfo:
    serviceName: Residential vCPE
    service_id: vcpe_service_id
    serviceType: service
    serviceVersion: '1.0'


HAS Homing Specification (R') - after retrieving and translating homing policies

Code Block
languagejs
titlevCPE Homing Template (JSON)
collapsetrue
{
  "homing_template_version": "2017-10-10",
  "parameters": {
    "service_name": "Residential vCPE",
    "service_id": "vcpe_service_id",
    "customer_lat": 32.89748,
    "customer_long": -97.040443,
    "REQUIRED_MEM": 4,
    "REQUIRED_DISK": 100,
    "pnf_id": "some_pnf_id"
  },
  "locations": {
    "customer_loc": {
      "latitude": {
        "get_param": "customer_lat"
      },
      "longitude": {
        "get_param": "customer_long"
      }
    },
  },
  "brg_locdemands": {
      "pnf_host_namevGMuxInfra": [
      {
        "getinventory_paramprovider": "pnf_idaai",
      }
  "inventory_type":  }
  },
  "demands": {
    "vGMuxInfra": [
 "service",
      {
        "inventory_provider": "aai",
        "inventory_type": "service",
        "attributes": {
          "equipment_type": "vG_Mux",
          "customer_id": "some_company"
        },
        "excluded_candidates": [
          {
            "candidate_id": "1ac71fb8-ad43-4e16-9459-c3f372b8236d"
          }
        ],
        "existing_placement": [
          {
            "candidate_id": "21d5f3e8-e714-4383-8f99-cc480144505a"
          }
        ]
      }
    ],
    "vG": [
      {
        "inventory_provider": "aai",
        "inventory_type": "cloud"
      }
    ]
  },
  "constraints": [
    {
      "constraint_vgmux_customer": {
        "type": "distance_to_location",
        "demands": [
          "vGMuxInfra"
        ],
        "properties": {
          "distance": "< 100 km",
          "location": "customer_loc"
        }
      },
    },
    {
      "colocation": {
        "type": "zone",
        "demands": [
          "vGMuxInfra",
          "vG"
        ],
        "properties": {
          "qualifier": "same",
          "category": "region"
        }
      }
    },
    {
      "hpa_constraint": {
        "type": "hpa",
        "demands": [
          "vG"
        ],
        "properties": {
          "evaluate": [
            {
              "labelflavorLabel": "flavor_label_1",
              "featuresflavorProperties": [
                {
                  "hpa-feature": "basicCapabilities",
                  "hpa-version": "v1",
                  "architecture": "generic",
                  "hpa-feature-attributes": [
                    {
                      "hpa-attribute-key": "numVirtualCpu",
                      "hpa-attribute-value": "4",
                      "operator": "="
                    },
                    {
                      "hpa-attribute-key": "virtualMemSize",
                      "hpa-attribute-value": "4",
                      "operator": "=",
                      "unit": "GB"
                    }
                  ]
                },
                {
                  "hpa-feature": "numa",
                  "hpa-version": "v1",
                  "architecture": "generic",
                  "hpa-feature-attributes": [
                    {
                      "hpa-attribute-key": "numaNodes",
                      "hpa-attribute-value": "2",
                      "operator": "="
                    },
                    {
                      "hpa-attribute-key": "numaCpu-0",
                      "hpa-attribute-value": "2",
                      "operator": "="
                    },
                    {
                      "hpa-attribute-key": "numaCpu-1",
                      "hpa-attribute-value": "4",
                      "operator": "="
                    },
                    {
                      "hpa-attribute-key": "numaMem-0",
                      "hpa-attribute-value": "2",
                      "operator": "=",
                      "unit": "GB"
                    },
                    {
                      "hpa-attribute-key": "numaMem-1",
                      "hpa-attribute-value": "4",
                      "operator": "=",
                      "unit": "GB"
                    }
                  ]
                },
                {
                  "hpa-feature": "cpuPinning",
                  "hpa-version": "v1",
                  "architecture": "generic",
                  "hpa-feature-attributes": [
                    {
                      "hpa-attribute-key": "logicalCpuThreadPinningPolicy",
                      "hpa-attribute-value": "prefer",
                      "operator": "="
                    },
                    {
                      "hpa-attribute-key": "logicalCpuPinningPolicy",
                      "hpa-attribute-value": "dedicated",
                      "operator": "="
                    }
                  ]]
                }
              ]
            },
            {
              "labelflavorLabel": "flavor_label_2",
              "featuresflavorProperties": [
                {
                  "hpa-feature": "basicCapabilities",
                  "hpa-version": "v1",
                  "architecture": "generic",
                  "hpa-feature-attributes": [
                    {
                      "hpa-attribute-key": "numVirtualCpu",
                      "hpa-attribute-value": "8",
                      "operator": "="
                    },
                    {
                      "hpa-attribute-key": "virtualMemSize",
                      "hpa-attribute-value": "16",
                      "operator": "=",
                      "unit": "GB"
                    }
                  ]
                },
                {
                  "hpa-feature": "numa",
                  "hpa-version": "v1",
                  "architecture": "generic",
                  "hpa-feature-attributes": [
                    {
                      "hpa-attribute-key": "numaNodes",
                      "hpa-attribute-value": "2",
                      "operator": "="
                    },
                    {
                      "hpa-attribute-key": "numaCpu-0",
                      "hpa-attribute-value": "2",
                      "operator": "="
                    },
                    {
                      "hpa-attribute-key": "numaCpu-1",
                      "hpa-attribute-value": "4",
                      "operator": "="
                    },
                    {
                      "hpa-attribute-key": "numaMem-0",
                      "hpa-attribute-value": "2",
                      "operator": "=",
                      "unit": "GB"
                    },
                    {
                      "hpa-attribute-key": "numaMem-1",
                      "hpa-attribute-value": "4",
                      "operator": "=",
                      "unit": "GB"
                    }
                  ]
                },
                {
                  "hpa-feature": "memoryPageSize",
                  "hpa-version": "v1",
                  "architecture": "generic",
                  "hpa-feature-attributes": [
                    {
                      "hpa-attribute-key": "memoryPageSize",
                      "hpa-attribute-value": "2",
                      "operator": "=",
                      "unit": "GB"
                    }
                  ]
                }
              ]
            }
          ]
        }
      }
    },
    {
      "check_cloud_min_guaranteecapacity": {
        "type": "attributevim_fit",
        "demands": [
          "vG"
        ],
        "properties": {
          "evaluatecontroller": {"multicloud",
        "request": {
    "cpu_min_guarantee      "vCPU": true10,
            "mem_min_guarantee"Memory": true{
          }
  "quantity": {
     }
      }
    },"get_param": "REQUIRED_MEM"
    {
       "check_cloud_capacity": null },
            "typeunit": "vim_fitGB",
      "demands": [
    },
          "vGStorage": {
      ],
      "propertiesquantity": {
         "vim-controller     "get_param": "multicloudREQUIRED_DISK",
        "request": {
    },
            "vCPUunit": 10,"GB"
          "mem": {
}
        }
     "quantity": {}
    }
  },
    "optimization": {
    "get_paramminimize": "REQUIRED_MEM"{
      "sum": [
      },
  {
          "unitdistance_between": "GB"[
            }"customer_loc",
            "disk": {
vGMuxInfra"
          ]
       "quantity": { },
        {
          "getdistance_parambetween": "REQUIRED_DISK"[
            }"customer_loc",
            "unitvG": "GB"
          }]
        }
      }]
    }
  ],
  "optimization": {
    "minimize": {
      "sum": [
        {
          "distance_between": [
            "customer_loc",
            "vGMuxInfra"
          ]}
}



Code Block
languagetext
titlevCPE Homing Template (YAML)
collapsetrue
---
homing_template_version: '2017-10-10'
parameters:
  service_name: Residential vCPE
  service_id: vcpe_service_id
  customer_lat: 32.89748
  customer_long: -97.040443
  REQUIRED_MEM: 4
  REQUIRED_DISK: 100
locations:
  customer_loc:
    latitude:
        },get_param: customer_lat
        {longitude:
          "distance_between": [get_param: customer_long
demands:
  vGMuxInfra:
  -        "customer_loc",inventory_provider: aai
    inventory_type: service
    attributes:
    "vG"
  equipment_type: vG_Mux
       ]customer_id: some_company
    excluded_candidates:
    }
  - candidate_id: 1ac71fb8-ad43-4e16-9459-c3f372b8236d
    ]existing_placement:
    }
  }
}


Code Block
languagetext
titlevCPE Homing Template (YAML)
collapsetrue
---
homing_template_version: '2017-10-10'
parameters:
  service_name: Residential vCPE
  service_id: vcpe_service_id
  customer_lat: 32.89748
  customer_long: -97.040443
  REQUIRED_MEM: 4
  REQUIRED_DISK: 100
  pnf_id: some_pnf_id
locations:
  customer_loc- candidate_id: 21d5f3e8-e714-4383-8f99-cc480144505a
  vG:
  - inventory_provider: aai
    inventory_type: cloud
constraints:
  constraint_vgmux_customer:
    type: distance_to_location
    demands:
    - vGMuxInfra
    properties:
      distance: "< 100 km"
      location: customer_loc
  colocation:
    latitudetype: zone
      get_paramdemands:
 customer_lat
   - longitude:vGMuxInfra
    - vG
 get_param: customer_long
  brg_locproperties:
      pnf_host_name:qualifier: same
      get_param: pnf_id
demandscategory: region
  hpa_constraint:
  vGMuxInfra  type: hpa
  -  inventory_providerdemands: aai
    inventory_type: service- vG
    attributesproperties:
      equipment_typeevaluate:
 vG_Mux
     - customer_idflavorLabel: someflavor_label_company1
    excluded_candidates:
    - candidate_id: 1ac71fb8-ad43-4e16-9459-c3f372b8236dflavorProperties:
    existing_placement:
    - candidate_id: 21d5f3e8-e714-4383-8f99-cc480144505ahpa-feature: basicCapabilities
  vG:
  - inventory_provider: aai
    inventory_typehpa-version: cloudv1
constraints:
- constraint_vgmux_customer:
    type: distance_to_location
    demandsarchitecture:
    - vGMuxInfra
  generic
   properties:
       distancehpa-feature-attributes:
 "< 100 km"
      location: customer_loc
- colocation:hpa-attribute-key: numVirtualCpu
    type: zone
    demands:
    hpa-attribute-value: vGMuxInfra'4'
    - vG
    properties:
   operator: "="
  qualifier: same
      category: region
- hpa_constraint:-attribute-key: virtualMemSize
    type: hpa
    demands:
    hpa-attribute-value: vG'4'
    properties:
      evaluate:
  operator: "="
   - label: flavor_label_1
       unit: features:GB
        - hpa-feature: basicCapabilitiesnuma
          hpa-version: v1
          architecture: generic
          hpa-feature-attributes:
          - hpa-attribute-key: numVirtualCpunumaNodes
            hpa-attribute-value: '42'
            operator: "="
          - hpa-attribute-key: virtualMemSizenumaCpu-0
            hpa-attribute-value: '42'
            operator: "="
            unit: GB
        - hpa-attribute-featurekey: numanumaCpu-1
            hpa-versionattribute-value: v1'4'
          architecture  operator: generic"="
          - hpa-featureattribute-attributeskey: numaMem-0
          -  hpa-attribute-keyvalue: numaNodes'2'
            hpa-attribute-valueoperator: '2'"="
            operatorunit: "="GB
          - hpa-attribute-key: numaCpunumaMem-01
            hpa-attribute-value: '24'
            operator: "="
            unit: GB
        - hpa-attribute-keyfeature: numaCpu-1cpuPinning
            hpa-attribute-valueversion: '4'v1
            operatorarchitecture: "="generic
          - hpa-attributefeature-keyattributes: numaMem-0
          -  hpa-attribute-valuekey: '2'logicalCpuThreadPinningPolicy
            operatorhpa-attribute-value: "="prefer
            unitoperator: GB"="
          - hpa-attribute-key: numaMem-1logicalCpuPinningPolicy
            hpa-attribute-value: '4'dedicated
            operator: "="
      - flavorLabel: flavor_label_2
          unitflavorProperties: GB
        - hpa-feature: cpuPinningbasicCapabilities
          hpa-version: v1
          architecture: generic
          hpa-feature-attributes:
          - hpa-attribute-key: logicalCpuThreadPinningPolicynumVirtualCpu
            hpa-attribute-value: prefer'8'
            operator: "="
          - hpa-attribute-key: logicalCpuPinningPolicyvirtualMemSize
            hpa-attribute-value: dedicated'16'
            operator: "="
      - label: flavor_label_2
        featuresunit: GB
        - hpa-feature: basicCapabilitiesnuma
          hpa-version: v1
          architecture: generic
          hpa-feature-attributes:
          - hpa-attribute-key: numVirtualCpu
            hpa-attribute-value: '8'
            operator: "="
          - hpa-attribute-key: virtualMemSizenumaNodes
            hpa-attribute-value: '162'
            operator: "="
            unit: GB
        - hpa-featureattribute-key: numanumaCpu-0
            hpa-versionattribute-value: v1'2'
          architecture: generic
          hpa-feature-attributes:operator: "="
          - hpa-attribute-key: numaNodesnumaCpu-1
            hpa-attribute-value: '24'
            operator: "="
          - hpa-attribute-key: numaCpunumaMem-0
            hpa-attribute-value: '2'
            operator: "="
            unit: GB
          - hpa-attribute-key: numaCpunumaMem-1
            hpa-attribute-value: '4'
            operator: "="
  
            unit: GB
        - hpa-attribute-keyfeature: numaMem-0memoryPageSize
            hpa-attribute-valueversion: '2'v1
            operatorarchitecture: "="generic
            unit: GBhpa-feature-attributes:
          - hpa-attribute-key: numaMem-1memoryPageSize
            hpa-attribute-value: '42'
            operator: "="
            unit: GB
  check_cloud_capacity: 
     - hpa-feature: memoryPageSizetype: vim_fit
    demands:
    - vG
    properties:
      hpa-versioncontroller: v1multicloud
      request:
       architecture vCPU: generic10
          hpa-feature-attributesMemory:
          - hpa-attribute-key: memoryPageSizequantity:
            hpa-attribute-value: '2'get_param: REQUIRED_MEM
            operatorunit: "="GB
        Storage:
    unit: GB
- cloud_min_guarantee:
    typequantity: attribute
    demands:
    - vG
    properties:get_param: REQUIRED_DISK
      evaluate:
    unit: GB
optimization:
   cpu_min_guarantee: trueminimize:
    sum:
    mem_min_guarantee: true
- checkdistance_cloud_capacitybetween:
  
    type:- vimcustomer_fitloc
    demands:
    - vGvGMuxInfra
    properties- distance_between:
      controller: multicloud- customer_loc
      request:- vG




HAS Homing Response

State - Done

Code Block
languagejs
titlevCPE homing response (JSON)
collapsetrue
{
  "plans": [
    {
 vCPU: 10
    "status": "done",
   Memory:
   "id": "plan_id",
      quantity"name":
 "Plan Name 1",
      "links": [
  get_param: REQUIRED_MEM
      [
    unit: GB
     {
   Storage:
          quantity:"href": "http://conductor:8091/v1/plans/plan_id",
            get_param"rel": REQUIRED_DISK"self"
          unit: GB
optimization:
}
    minimize:
    sum:]
     - distance_between: ],
      - customer_loc
"recommendations": [
       - vGMuxInfra{
    - distance_between:
      "vG": {
  - customer_loc
      - vG

HAS Homing Response

Success: 

Code Block
languagejs
titlevCPE homing response (JSON)
collapsetrue
{
  "plansinventory_provider": [
"aai",
      {
      "statuscandidate": "solved",{
              "candidate_id": "plan_idDLLSTX1A",
      "name": "Plan Name 1",
        "linkscloud_owner": ["CloudOwner1",
        [
       "inventory_type": "cloud",
  {
            "hreflocation_id": "http://conductor:8091/v1/plans/plan_idDLLSTX1A",
              "rellocation_type": "selfopenstack-cloud"
            },
            "attributes": ]{
      ],
        "recommendationsflavors": [{
         {
       "flavor_label_1": "vim_flavor_X",
     "vG": {
            "inventoryflavor_label_provider2": "aaivim_flavor_Y",
            "candidate": {  },
              "candidatecloud_idowner": "DLLSTX1ACloudOwner1",
              "cloud_ownerphysical-location-id": "CloudOwner1DLLSTX1A",
              "inventorycloud_typeversion": "cloud",3.0",
			  "vim-id": "CloudOwner1_DLLSTX1A"
            }
     "location_id": "DLLSTX1A",     }
        },
      "location_type": "openstack-cloud"  {
            },"vGMuxInfra": {
            "attributes": {
              "flavorshost_id": {
  "vgmux_host_name",
              "flavorcloud_label_1owner": "vim_flavor_XCloudOwner1",
                "flavor_label_2physical-location-id": "vim_flavor_YDLLSTX1A",
              } "service_instance_id": "21d5f3e8-e714-4383-8f99-cc480144505a",
              "cloud_ownerversion": "3.0",
			  "vim-id": "CloudOwner1_DLLSTX1A",
              "physical-location-id": "DLLSTX1A"},
              "cloudinventory_versionprovider": "3.0aai",
            }"service_resource_id": "12345",
          }
        },"candidate": {
        {
          "vGMuxInfra"is_rehome": {"false",
              "attributeslocation_id": {"DLLSTX1A",
              "hostinventory_idtype": "vgmux_host_nameservice",
              "cloud_owner": "CloudOwner1"candidate_id": "21d5f3e8-e714-4383-8f99-cc480144505a",
              "physical-location-host_id": "DLLSTX1Avgmux_host_name",
              "servicecloud_instance_idowner": "21d5f3e8-e714-4383-8f99-cc480144505aCloudOwner1",
              "cloudlocation_versiontype": "3.0openstack-cloud"
            },
          }
    "inventory_provider": "aai",    }
      ]
      "service_resource_id": "12345",}
  ]
}


State - Error 

Code Block
languagejs
titleHAS Error Response
collapsetrue
{
  "plans": [
      {
      "candidatestatus": {"error",
      "message": "Some error message",
      "is_rehomename": "falsePlan Name 1",
              "location_id"links": "DLLSTX1A",[
        [
       "inventory_type": "service",
  {
            "candidate_idhref": "21d5f3e8-e714-4383-8f99-cc480144505ahttp://conductor:8091/v1/plans/plan_id",
              "host_idrel": "vgmux_host_name",
self"
          }
        ]
      ],
 "cloud_owner     "id": "CloudOwner1plan_id",
    }
  ]
}


State - Template 

Code Block
languagejs
titleHAS Plan in Template State
collapsetrue
{
     "status": "template",
   "location_typename": "openstack-cloud"Plan Name 1",
  "links": [
    [
     } {
        "href":  }
"http://conductor:8091/v1/plans/plan_id",
         }"rel": "self"
      ]}
    }]
  ],
  "id": "plan_id"
}


...

State - Solving

Code Block
languagejs
titleHAS Error ResponsePlan in Solving state
collapsetrue
{
  "plans": [
    {
      "status": "errorsolving",
      "message": "Some error message",
      "name": "Plan Name 1",
      "links": [
        [
          {
            "href": "http://conductor:8091/v1/plans/plan_id",
            "rel": "self"
          }
        ]
      ],
      "id": "plan_id"
    }
  ]
}