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",
      }
    }
  },
  "demands": {
    "vGMuxInfra": [
      {
        "inventory_provider": "aai""inventory_type": "service",
        "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",
            "cpu_min_guarantee"request": true,{
            "mem_min_guarantee"vCPU": true10,
          }"Memory": {
        }
      }"quantity": {
    },
    {
      "checkget_cloud_capacityparam": null,"REQUIRED_MEM"
      "type": "vim_fit",
      },
            "demandsunit": ["GB"
        "vG"
  },
    ],
      "propertiesStorage": {
        "vim-controller": "multicloud",
        "requestquantity": {
          "vCPU    "get_param": 10,"REQUIRED_DISK"
          "mem": {  },
            "quantityunit": {"GB"
          }
     "get_param": "REQUIRED_MEM"   }
      }
    }
  },
  "optimization": {
    "minimize": {
      "unitsum": "GB"[
          },{
          "diskdistance_between": {[
            "quantity": {customer_loc",
              "get_param": "REQUIRED_DISK""vGMuxInfra"
            },]
        },
    "unit": "GB"
   {
       }
        }"distance_between": [
      }
    }
  ]"customer_loc",
  "optimization": {
    "minimize": {
      "sumvG": [
        {
  ]
        "distance_between": [}
      ]
      "customer_loc",}
  }
}



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:
      get_param: customer_long
demands:
  vGMuxInfra:
  - 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:
      - flavorLabel: flavor_label_1
        flavorProperties:
        - 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: "vGMuxInfra="
            unit: GB
      ]
  - hpa-feature: cpuPinning
    },
        {hpa-version: v1
          "distance_between"architecture: [generic
          hpa-feature-attributes:
  "customer_loc",
        - hpa-attribute-key: logicalCpuThreadPinningPolicy
   "vG"
          ]hpa-attribute-value: prefer
        }
    operator: "="
  ]
    }
  }
}


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:
    latitude:
      get_param: customer_lat
    longitude:
      get_param: customer_long
  brg_loc:
    pnf_host_name:    - hpa-attribute-key: logicalCpuPinningPolicy
            hpa-attribute-value: dedicated
            operator: "="
      - flavorLabel: flavor_label_2
        flavorProperties:
        - hpa-feature: basicCapabilities
          hpa-version: v1
          architecture: generic
      get_param: pnf_id
demands:
  vGMuxInfra:
  - inventory_provider: aai
    hpa-feature-attributes:
      inventory_type: service
   - attributes:hpa-attribute-key: numVirtualCpu
      equipment_type: vG_Mux
      customer_id: some_companyhpa-attribute-value: '8'
    excluded_candidates:
       - candidate_id: 1ac71fb8-ad43-4e16-9459-c3f372b8236doperator: "="
    existing_placement:
    - candidate_id: 21d5f3e8-e714 hpa-4383-8f99-cc480144505a
  vG:
  - inventory_provider: aai
attribute-key: virtualMemSize
            inventory_typehpa-attribute-value: cloud
constraints:
- constraint_vgmux_customer:
'16'
       type: distance_to_location
    demandsoperator: "="
    -    vGMuxInfra
    propertiesunit: GB
      distance: "< 100 km"
  - hpa-feature: numa
          locationhpa-version: customer_locv1
- colocation:
    type: zone
    demandsarchitecture: generic
    -  vGMuxInfra
    hpa-feature-attributes:
 vG
    properties:
     - qualifierhpa-attribute-key: samenumaNodes
      category: region
- hpa_constraint:      hpa-attribute-value: '2'
    type: hpa
    demands:
    - vGoperator: "="
    properties:
      - evaluate:hpa-attribute-key: numaCpu-0
      - label: flavor_label_1
    hpa-attribute-value: '2'
   features:
        - hpa-featureoperator: basicCapabilities"="
          - hpa-attribute-versionkey: v1numaCpu-1
            architecturehpa-attribute-value: generic'4'
          hpa-feature-attributes:  operator: "="
          - hpa-attribute-key: numVirtualCpunumaMem-0
            hpa-attribute-value: '42'
            operator: "="
            unit: GB
          - hpa-attribute-key: virtualMemSizenumaMem-1
            hpa-attribute-value: '4'
            operator: "="
            unit: GB
        - hpa-feature: numamemoryPageSize
          hpa-version: v1
          architecture: generic
          hpa-feature-attributes:
          - hpa-attribute-key: numaNodesmemoryPageSize
            hpa-attribute-value: '2'
            operator: "="
          - hpa-attribute-key  unit: numaCpu-0GB
  check_cloud_capacity: 
         hpa-attribute-value: '2'type: vim_fit
            operator: "="demands:
          - hpa-attribute-key: numaCpu-1
   - vG
    properties:
      hpa-attribute-valuecontroller: '4'multicloud
      request:
        operatorvCPU: "="10
          - hpa-attribute-key: numaMem-0Memory:
            hpa-attribute-value: '2'quantity:
            operatorget_param: "="
  REQUIRED_MEM
          unit: GB
          - hpa-attribute-key: numaMem-1Storage:
            hpa-attribute-value: '4'quantity:
            operatorget_param: "="
 REQUIRED_DISK
           unit: GB
optimization:
  minimize:
    sum:
    - hpa-feature: cpuPinningdistance_between:
      - customer_loc
   hpa-version: v1
  - vGMuxInfra
       architecture: generic- distance_between:
          hpa-feature-attributes:
   - customer_loc
       - hpa-attribute-key: logicalCpuThreadPinningPolicy
            hpa-attribute-value: prefervG




HAS Homing Response

State - Done

Code Block
languagejs
titlevCPE homing response (JSON)
collapsetrue
{
  "plans": [
    {
        operator"status": "=done",
          - hpa-attribute-key: logicalCpuPinningPolicy"id": "plan_id",
      "name": "Plan     hpa-attribute-value: dedicatedName 1",
            operator"links": "="[
      - label: flavor_label_2
 [
          features:{
        - hpa-feature: basicCapabilities    "href": "http://conductor:8091/v1/plans/plan_id",
          hpa-version  "rel": v1"self"
          }
   architecture: generic
    ]
      hpa-feature-attributes:],
      "recommendations": [
    - hpa-attribute-key: numVirtualCpu
  {
          hpa-attribute-value"vG": '8'{
            operator"inventory_provider": "=aai",
           - hpa-attribute-key "candidate": virtualMemSize{
              hpa-attribute-value: '16'"candidate_id": "DLLSTX1A",
            operator  "cloud_owner": "=CloudOwner1",
              unit"inventory_type": GB"cloud",
        - hpa-feature: numa
          hpa-version: v1"location_id": "DLLSTX1A",
          architecture: generic
          hpa-feature-attributes:"location_type": "openstack-cloud"
          - hpa-attribute-key: numaNodes },
            hpa-attribute-value"attributes": '2'{
             operator: "=flavors": {
          - hpa-attribute-key: numaCpu-0
    "flavor_label_1": "vim_flavor_X",
       hpa-attribute-value: '2'
            operator"flavor_label_2": "=vim_flavor_Y"
           - hpa-attribute-key: numaCpu-1   },
            hpa-attribute-value: '4'  "cloud_owner": "CloudOwner1",
            operator  "physical-location-id": "=DLLSTX1A",
          - hpa-attribute-key: numaMem-0
      "cloud_version": "3.0",
			  "vim-id": "CloudOwner1_DLLSTX1A"
          hpa-attribute-value: '2'  }
          }
  operator: "="
     },
       unit: GB{
          - hpa-attribute-key: numaMem-1 "vGMuxInfra": {
            hpa-attribute-value"attributes": '4'{
            operator  "host_id": "=vgmux_host_name",
              unit"cloud_owner": GB"CloudOwner1",
        - hpa-feature: memoryPageSize
      "physical-location-id": "DLLSTX1A",
    hpa-version: v1
          architecture: generic"service_instance_id": "21d5f3e8-e714-4383-8f99-cc480144505a",
          hpa-feature-attributes:
    "cloud_version": "3.0",
			     - hpa-attribute-key: memoryPageSize"vim-id": "CloudOwner1_DLLSTX1A"
            hpa-attribute-value: '2'},
            operator"inventory_provider": "=aai",
            unit: GB
- cloud_min_guarantee:"service_resource_id": "12345",
    type: attribute
    demands:
    - vG
    properties:"candidate": {
      evaluate:
        cpu_min_guarantee: true
"is_rehome": "false",
           mem_min_guarantee: true
- check_cloud_capacity:    "location_id": "DLLSTX1A",
  type: vim_fit
  demands:
  - vG
  properties:
    vim-controller"inventory_type": multicloud
  "service",
  request:
      vCPU: 10
      mem:"candidate_id": "21d5f3e8-e714-4383-8f99-cc480144505a",
        quantity:
          get_param: REQUIRED_MEM"host_id": "vgmux_host_name",
        unit: GB
      disk:"cloud_owner": "CloudOwner1",
        quantity:
          get_param: REQUIRED_DISK"location_type": "openstack-cloud"
        unit: GB
optimization:
  minimize:
    sum:}
    - distance_between:
      - customer_loc
   }
   - vGMuxInfra
    - distance_between:}
      - customer_loc]
    }
  - vG

...

]
}


State - Error 

Code Block
languagejs
titlevCPE homing responseHAS Error Response
collapsetrue
{
  "recommendationsplans": [
    {
      "vGstatus": {
  "error",
      "inventory_providermessage": "aaiSome error message",
        "candidatename": {
"Plan    Name 1",
      "candidate_idlinks": "DLLSTX1A",[
          "cloud_owner": "rackspace",[
          "inventory_type": "cloud",
{
            "location_idhref": "DLLSTX1Ahttp://conductor:8091/v1/plans/plan_id",
            "location_typerel": "openstack-cloudself"
          },
        "attributes": {
]
      ],
      "flavorsid": {"plan_id"
    }
          "flavor_label_1]
}


State - Template 

Code Block
languagejs
titleHAS Plan in Template State
collapsetrue
{
  "status": "vim_flavor_Xtemplate",
  "name": "Plan Name 1",
         "flavor_label_2"links": "vim_flavor_Y"[
    [
      },{
          "physical-location-idhref": "DLLSTX1223"http://conductor:8091/v1/plans/plan_id",
        }
      }"rel": "self"
    },
    {
      "vGMuxInfra": { }
    ]
  ],
  "inventory_providerid": "plan_id"
}


State - Solving

Code Block
languagejs
titleHAS Plan in Solving state
collapsetrue
{
  "plans": [aai",
        "candidate": {
    {
      "candidate_idstatus": "21d5f3e8-e714-4383-8f99-cc480144505asolving",
          "cloud_ownername": "rackspacePlan Name 1",
          "host_id": "vgmux_host_name",
 "links": [
        [
         "inventory_type": "service", {
            "location_idhref": "DLLSTX1Ahttp://conductor:8091/v1/plans/plan_id",
            "location_typerel": "openstack-cloudself"
          },
        ]
 "attributes": {
    ],
      "physical-location-id": "DLLSTX1223plan_id"
        }
      }
    }
  ]
}