Versions Compared

Key

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

...

Gliffy
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": "service",
  }   },
  "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": [
 
          {
 
            "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_guaranteevCPU": true10,
 
          "mem_min_guaranteeMemory": true{
            "quantity": }{
        }       }"get_param": "REQUIRED_MEM"
     },     {  },
    "check_cloud_capacity": null,       "typeunit": "vim_fit",GB"
          "demands": [},
          "vGStorage": {
     ],       "propertiesquantity": {
             "vim-controller "get_param": "multicloud",REQUIRED_DISK"
            },
"request": {           "vCPUunit": "GB"
 10,         }
 "mem": {      }
      "quantity":}
{    }
  },
  "optimization": {
    "get_paramminimize": "REQUIRED_MEM"{
      "sum": [
      },  {
          "unitdistance_between": "GB"[
            }"customer_loc",
            "diskvGMuxInfra":
{          ]
  "quantity": {     },
        {
  "get_param        "distance_between": "REQUIRED_DISK"[
            }"customer_loc",
            "unitvG":
"GB"           }]
        }
      }]
    }
  ],}
}

"optimization":
{
    "minimize": {
      "sum": [
        {
          "distance_between": [
    
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_loc",lat
    longitude:
       "vGMuxInfra"
get_param: customer_long
demands:
  vGMuxInfra:
  - inventory_provider: aai
 ]   inventory_type: service
    },attributes:
      equipment_type: vG_Mux
 {     customer_id: some_company
    "distanceexcluded_between"candidates:
[             "customer_loc",
            "vG"
          ]
        }
      ]
    }
  }
}


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- 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:  get_param: pnf_iddistance_to_location
    demands:
    - vGMuxInfra:
   - inventory_providerproperties:
aai      inventory_typedistance: service"< 100 km"
      attributes:
 location: customer_loc
  colocation:
    equipment_type: vG_Muxzone
      customer_iddemands:
some_company    - excluded_candidates:vGMuxInfra
    - candidate_id: 1ac71fb8-ad43-4e16-9459-c3f372b8236dvG
    properties:
existing_placement:     - candidate_id: 21d5f3e8-e714-4383-8f99-cc480144505aqualifier: same
      vGcategory: region
 - inventoryhpa_providerconstraint:
aai     inventory_type: hpa
 cloud constraints: - constraint_vgmux_customerdemands:
    type: distance_to_location- vG
    demandsproperties:
      evaluate:
 - vGMuxInfra    - propertiesflavorLabel: flavor_label_1
     distance: "< 100 km"flavorProperties:
      location: customer_loc - colocationhpa-feature: basicCapabilities
    type: zone     demandshpa-version: v1
   - vGMuxInfra     - vGarchitecture: generic
   properties:       qualifierhpa-feature-attributes:
 same       category: region - hpa_constraint-attribute-key: numVirtualCpu
   type: hpa     demands:   hpa-attribute-value: '4'
- vG     properties:       evaluateoperator: "="
     - label: flavor_label_1   - hpa-attribute-key: virtualMemSize
   features:         hpa- hpaattribute-featurevalue: '4'
 basicCapabilities           hpa-versionoperator: v1"="
            architectureunit: genericGB
        -  hpa-feature-attributes: numa
         - hpa-attribute-keyversion: numVirtualCpuv1
            hpa-attribute-valuearchitecture: '4'generic
            operator: "="hpa-feature-attributes:
          - hpa-attribute-key: virtualMemSizenumaNodes
            hpa-attribute-value: '42'
            operator: "="
            unit: GB
        - hpa-feature: numa          - hpa-attribute-versionkey: v1numaCpu-0
            architecturehpa-attribute-value: generic'2'
            hpa-feature-attributesoperator: "="
          - 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-0cpuPinning
            hpa-attribute-valueversion: '2'v1
            operatorarchitecture: "="
 generic
          unithpa-feature-attributes:
GB           - hpa-attribute-key: numaMem-1logicalCpuThreadPinningPolicy
            hpa-attribute-value: '4'prefer
            operator: "="
          - hpa-attribute-key: logicalCpuPinningPolicy
 unit: GB         - hpa-feature: cpuPinningattribute-value: dedicated
            hpa-versionoperator: v1"="
      - flavorLabel: flavor_label_2
  architecture: generic
      flavorProperties:
        - hpa-feature-attributes: basicCapabilities
         - hpa-attribute-keyversion: logicalCpuThreadPinningPolicyv1
            hpa-attribute-valuearchitecture: prefergeneric
            operator: "="hpa-feature-attributes:
          - hpa-attribute-key: logicalCpuPinningPolicynumVirtualCpu
            hpa-attribute-value: dedicated'8'
            operator: "="
      - label: flavor_label_2  - hpa-attribute-key: virtualMemSize
    features:         hpa- hpaattribute-featurevalue: '16'
basicCapabilities            hpa-version: v1operator: "="
            architectureunit: genericGB
        -  hpa-feature-attributes: numa
         - hpa-attribute-keyversion: numVirtualCpuv1
            hpa-attribute-valuearchitecture: '8'generic
            operatorhpa-feature-attributes:
"="
          - hpa-attribute-key: virtualMemSizenumaNodes
            hpa-attribute-value: '16'
            operator: "="2'
            unitoperator: GB"="
          - hpa-attribute-featurekey: numanumaCpu-0
            hpa-attribute-versionvalue: v1'2'
          architecture: generic    operator: "="
      hpa-feature-attributes:           - 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-key: numaMem-0
 feature: memoryPageSize
          hpa-attribute-valueversion: '2'v1
            operatorarchitecture: "="generic
            unit: GBhpa-feature-attributes:
          - hpa-attribute-key: numaMem-1memoryPageSize
            hpa-attribute-value: '42'
            operator: "="
            unit: GB
        - hpa-featurecheck_cloud_capacity: memoryPageSize
          hpa-versiontype: v1vim_fit
          architecturedemands:
generic    - vG
     hpa-feature-attributesproperties:
          - hpa-attribute-key: memoryPageSize     controller: multicloud
      hpa-attribute-value: '2'request:
        vCPU: 10
     operator: "="  Memory:
          unitquantity:
GB - cloud_min_guarantee:     type: attribute     demands:get_param: REQUIRED_MEM
    - vG     propertiesunit: GB
     evaluate   Storage:
        cpu_min_guarantee  quantity:
true         mem_min_guarantee: true - check_cloud_capacity:get_param: REQUIRED_DISK
     type: vim_fit    unit: demandsGB
optimization:
  minimize:
  - vG sum:
   properties: - distance_between:
    controller: multicloud - customer_loc
    request:  - vGMuxInfra
    - vCPUdistance_between:
10      - customer_loc
 Memory:     - vG




quantity:

HAS Homing Response

State - Done

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

HAS Homing Response

State - Done: 

Code Block
languagejs
titlevCPE homing response (JSON)
collapsetrue
{]
      ],
      "plansrecommendations": [
    {    {
  "status": "solved",       "idvG": "plan_id", {
            "nameinventory_provider": "Plan Name 1","aai",
            "linkscandidate": [{
        [      "candidate_id": "DLLSTX1A",
   {             "hrefcloud_owner": "http://conductor:8091/v1/plans/plan_idCloudOwner1",
              "relinventory_type": "selfcloud",
             } "location_id": "DLLSTX1A",
      ]       ],
  "location_type": "openstack-cloud"
    "recommendations": [       },
 {           "vGattributes": {
              "inventory_providerflavors": "aai", {
                "candidateflavor_label_1": {"vim_flavor_X",
                "candidateflavor_label_id2": "DLLSTX1Avim_flavor_Y",
              "cloud_owner": "CloudOwner1"},
              "inventorycloud_typeowner": "cloudCloudOwner1",
              "physical-location_-id": "DLLSTX1A",
              "locationcloud_typeversion": "openstack-cloud"
   3.0",
			  "vim-id": "CloudOwner1_DLLSTX1A"
        },    }
        "attributes": { }
        },
    "flavors": {     {
           "flavor_label_1vGMuxInfra": "vim_flavor_X",{
                "flavor_label_2"attributes": "vim_flavor_Y"{
              }"host_id": "vgmux_host_name",
              "cloud_owner": "CloudOwner1",
              "physical-location-id": "DLLSTX1A",
              "cloudservice_instance_versionid": "3.0"21d5f3e8-e714-4383-8f99-cc480144505a",
            }  "cloud_version": "3.0",
			  "vim-id": "CloudOwner1_DLLSTX1A"
   }         },
          {  "inventory_provider": "aai",
            "vGMuxInfraservice_resource_id": {"12345",
            "attributescandidate": {
              "hostis_idrehome": "vgmux_host_namefalse",
              "cloudlocation_ownerid": "CloudOwner1DLLSTX1A",
              "physical-location-idinventory_type": "DLLSTX1Aservice",
              "servicecandidate_instance_id": "21d5f3e8-e714-4383-8f99-cc480144505a",
              "cloudhost_versionid": "3.0"vgmux_host_name",
            }   "cloud_owner": "CloudOwner1",
              "inventorylocation_providertype": "aai",openstack-cloud"
            }
         "service_resource_id": "12345", }
        }
   "candidate": {  ]
    }
  ]
}


 "is_rehome": "false",

State - Error 

Code Block
languagejs
titleHAS Error Response
collapsetrue
{
  "plans": [
      {
      "location_idstatus": "DLLSTX1Aerror",
      "message": "Some error message",
      "inventory_typename": "servicePlan Name 1",
  
           "candidate_id"links": "21d5f3e8-e714-4383-8f99-cc480144505a",[
        [
       "host_id": "vgmux_host_name",  {
            "cloud_ownerhref": "CloudOwner1http://conductor:8091/v1/plans/plan_id",
 
            "location_typerel": "openstack-cloudself"
 
          }
         ]
}      ],
  }       ]"id": "plan_id"
    }
  ]
}


State -

...

Template 

Code Block
languagejs
titleHAS Error ResponsePlan in Template State
collapsetrue
{
  "plans": [
    {
      "status": "errortemplate",
    
 "message": "Some error message",
      "name": "Plan Name 1",
      "links": [

       [
  
       {
   
        "href": "http://conductor:8091/v1/plans/plan_id",
   
        "rel": "self"
 
        }
        ]
   
  ],
  
   "id": "plan_id"
    }
  ]
}


State -

...

Solving

Code Block
languagejs
titleHAS Plan in Template StateSolving state
collapsetrue
{
  "plans": [
    {
      "status": "templatesolving",
      "name": "Plan Name 1",
      "links": [
        [
          {
            "href": "http://conductor:8091/v1/plans/plan_id",
            "rel": "self"
          }
        ]
      ],
      "id": "plan_id"
    }
  ]
}