Infrastructure Groups

Infrastructure Groups

#340080

Description

The Infrastructure Group object represents a full control hosting venue (i.e. infrastructure group), a non-control hosting venue or a guest-level hosting venue. The term Infrastructure Group refers to any of the three, for the purpose of this guide.

This API returns Infrastructure Group details so that Workloads can be routed appropriately. The API provides stats and amenities at each defined timeframe of the timeline. The API also provides the results of the Fit-for-Purpose checks for a specific hosting venue and workload placement.

Hosting Venues

This API supports full control hosting venues (i.e. infrastructure groups), non-control hosting venues and guest-level hosting venues.

With respect to this API, the difference between the hosting venues is as follows:

  • Options for Returned Details—for the amenities query, the empty arrays "host_summary": [] and "sensor_capacities": [] are returned as there are no hosts or sensors in non-control and guest-level hosting venues; all options are available for all three hosting venues
  • Supported Operations—all operations are supported for all three hosting venues except:
    • for non-control and guest-level hosting venues, you can only open/close but not auto-close them using PUT /infrastructure-groups/<id>
  • Resource Elements—only elements that are applicable to the hosting venue is returned in the response. Specifically:
    • for non-control and guest-level hosting venues, element value allow_new_workloads: "DO_NOT_ALLOW_IF_RISK", stats elements (specifically cei, total_guests, total_hosts, required_hosts, outbound_guest_bookings, inbound_host_bookings, outbound_host_bookings) are not returned
    • for non-control hosting venues, element value last_refreshed_time is not returned

Options for Returned Details

You can extend the amenities query:

GET /infrastructure-groups/<id>/amenities/

with any or all of the following to return only the information required:

  • host_summary=false—does not return the host_summary array
  • sensor_capacities=false—does not return the sensor_capacities array
  • capability_groups=false—does not return the capability_groups array

By default, these options are all true.

Resource

/infrastructure-groups

/infrastructure-groups/amenities

Supported Operations

Table: Infrastructure Group Supported Operations

Operation

HTTP Method

Input

Output

Description

Get Collection

GET /infrastructure-groups

None

Infrastructure Group collection of [id, name, platform, platform_category, href, hardware_name, hardware_icon, control_type, color_code_selected, color_code_unselected]

Default Sort By is defined as:
?sort_by=name.

Common Operations is supported.

Example: Getting a Collection of Infrastructure Groups

Get Individual

GET /infrastructure-groups/<id>

None

Infrastructure Groups: Resource Elements

Retrieve the Infrastructure Group elements of the specified id.

Example: Getting an Individual Infrastructure Group

Get Individual Amenities

GET /infrastructure-groups/<id>/amenities

None

Amenities of the Infrastructure Group: Resource Elements

Retrieve the amenities of the Infrastructure Group specified by id, for each defined timeframe of the timeline.

Example: Getting the Amenities of an Individual Infrastructure Group, Example: Getting the Amenities of an Individual Infrastructure Group for Today

Modify Individual

PUT /infrastructure-groups/<id>

Infrastructure Groups: Form Definition

Infrastructure Groups: Resource Elements

An Infrastructure Group can be modified to open, close or auto-close it, in terms of allowing new workloads.

Example: Modifying an Infrastructure Group to Auto-Close Based on Performance Risk, Example: Manually Closing an Infrastructure Group

Post Individual Fit-for-Purpose Checks

POST /infrastructure-groups/<id>/ffp-check

Fit-for-Purpose Checks of the Infrastructure Group: Form Definition

categories, as defined in Resource Elements

Retrieve the results of the Fit-for-Purpose checks for the Infrastructure Group specified by id and the workload placement specified by Fit-for-Purpose Checks of the Infrastructure Group: Form Definition.

Example: Getting an Infrastructure Group's Fit-for-Purpose Checks

Resource Elements

Infrastructure Groups: Resource Elements

Table: Infrastructure Group Resource Elements

Element

Type

Sort By

Filter

Description

id, name, href

strings

S by name

F by name

The filter-metadata returns infrastructure_groups with the metadata values of name

See ID, Name and Self Reference (id, name, href).

allow_new_workloads

string

 

 

Indicates whether this Infrastructure Group is accepting new workloads or not. This corresponds to the field Allow New VM Bookings in Managing Hosting Venues.

  • "ALLOW"
  • "DO_NOT_ALLOW"—with this option, the availability_status is set to "BLOCKED_BY_USER". When setting this option, you can also set "availability_reason" (e.g. to "New VM Bookings have been Blocked by Operations")
  • "DO_NOT_ALLOW_IF_RISK"—if there is risk, the availability_status is set to "BLOCKED_BY_USER" and the "availability_reason" is automatically set to the detected performance risk (e.g. "100.0% of Hosts in the Infrastructure Group are Under-Provisioned, exceeds policy limit of 50%"); if no risk has been identified, then the availability_status is set to "AVAILABLE"

amenities

href

 

 

The href to the Amenities for the Infrastructure Group. The Amenities object is used to show the capabilities of the Infrastructure Group, for each defined timeframe of the timeline (referenced by the short_name of the Timeline Tags). This includes the supported hardware, licensed software, compute and storage information. See Amenities of the Infrastructure Group: Resource Elements below for details.

availability_reason

string

 

 

The reason why the availability_status has the value it has. Can be user-defined or Densify-defined:

  • "Reserved"
  • "Infrastructure Group has Critical Notifications"
  • "Infrastructure unavailable, insufficient data for capacity calculation"
  • "Infrastructure unavailable, analysis is out of date"
  • "New VM Bookings have been Blocked by Operations"
  • "<%> Hosts/VMs in the Infrastructure Group are Under-Provisioned, exceeds policy limit <%>"
  • "<#> Hosts/VMs in the Infrastructure Group are Under-Provisioned, exceeds policy limit <#>"

availability_status

string

S

F

The filter-metadata returns status_values with all possible states

Whether or not the Infrastructure Group is available or not for routing.

  • "UNAVAILABLE"−when Control Environment has never been refreshed, the last_refreshed_time is older than rest.api.WithinHoursFromLastRefreshOfCluster, Infrastructure Group has never been refreshed, Infrastructure Group is disqualified due to analysis errors or missing benchmarks, planned date is past the lastest timeframe
  • "BLOCKED_BY_USER"−when the Infrastructure Group is not accepting quests (i.e. Allow New VM Bookings is set to "No", either manually or automatically blocked from performance risks)
  • "AVAILABLE"−in all other cases. "AVAILABLE" is returned even when the Control Environment or Infrastructure Group is refreshing as long as the refresh has been done at least once (which provides the data for the availability)

color_code_selected

string

 

 

The color displayed in the Hosting Venues pane of the Route and Reserve Demand page, when this hosting venue tile is selected.

color_code_unselected

string

 

 

The color displayed in the Hosting Venues pane of the Route and Reserve Demand page, when this hosting venue tile is not selected.

control_type

string

 

F

The type of hosting venue:

  • "FULL"—full control hosting venue
  • "GUEST_LEVEL"—guest-level hosting venue
  • "NONE"—non-control hosting venue

control_environment

id, name, platform, platform_category, href, icon

 

F by control_environment_id

The Control Environment where this Infrastructure Group belongs.

creation_time

number

S

 

The UTC date and time the Infrastructure Group was created.

hardware_icon

string

 

 

The URL where the icon representing the hardware is found, e.g. "http://thedocs1:8086/CIRBA/images/serverModelIcon/Dell_small.png".

hardware_name

string

 

 

The name of the hardware in the Infrastructure Group, e.g. "PowerEdge".

last_refreshed_time

number

S

sort by last_refresh_time

F

The filter-metadata returns last_refresh_time with only UTC values, and filter by last_refresh_time with UTC values

The UTC date and time the Infrastructure Group itself was last refreshed.

If the Infrastructure Group has never been refreshed, the following is returned:

"last_refreshed_time": 0

If all Infrastructure Groups in the filter-metadata query have never been refreshed, then the filter-metadata returns:

"last_refresh_time": {

  "min": 0,

  "max": 0

}

Filtering by range with a value of 0 is not supported. e.g. the following does not return all Infrastructure Groups that have never been refreshed:

?last_refresh_time_from=0&
   last_refresh_time_to=0

platform

string

 

F

The filter-metadata returns platform_type with the metadata values of platform

The system type being analyzed. For examples:

  • "IBM"
  • "HYPERV"
  • "VMWARE"
  • "XENSERVER"
  • "X86"

platform_category

string

 

F

The type of platform. Infrastructure Groups have the same platform_category as the Control Environment where they belong. Possible categories are:

  • "Internal Virtual"—for control environments, e.g. for a VMware environment whether or not fully controlled through analytics
  • "Internal Physical"—for physical environments, e.g. a Bare Metal
  • "External Cloud"—for external cloud environments, e.g. an AWS environment
  • "External Physical"—for external physical environments, e.g. SoftLayer Bare Metal

stats

Complex, as specified in the Description

 

 

The overall statistics of the Infrastructure Group at each timeframe.

For each timeframe that has data (tagged using short_name of the Timeline Tags):

  • cei
  • timeline_name—the long_name of the Timeline Tags
  • date—same as date of the Timeline Tags
  • total_guests
  • total_hosts
  • required_hosts
  • inbound_guest_bookings
  • outbound_guest_bookings
  • inbound_host_bookings
  • outbound_host_bookings
  • amenities

If the Infrastructure Group has never been refreshed or is currently being refreshed (even for a specific timeframe), the following is returned:
"stats": {}

Note: If the Infrastructure Group has been disqualified, then the CEI is -1 and all the above totals are 0.

Form Definition

You can use an Infrastructure Group form if you want to specify how the Infrastructure Group can be modified to open, close or auto-close it, in terms of allowing new workloads.

Table: Infrastructure Group Form Definition

Element

Type

Req

Description

allow_new_workloads

string

P

To specify whether or not to allow new workloads, as documented above for allow_new_workloads. Options are:

  • "ALLOW"
  • "DO_NOT_ALLOW"
  • "DO_NOT_ALLOW_IF_RISK"

availability_reason

string

 

Optionally, you can define a reason why new workloads are not allowed, as documented above for availability_reason. Setting this element is valid only when allow_new_workloads is set to "DO_NOT_ALLOW".

Amenities of the Infrastructure Group: Resource Elements

For each timeframe, the following information on amenities is returned.

Table: Amenities of the Infrastructure Group Resource Elements

Element

Type

Description

href

string

Link to this amenities for this timeframe. e.g. for "timeline": "180", "href": "/infrastructure-groups/542cd4bc-1e4a-494c-930c-e00679e9e11a/amenities/180".

capability_groups

Complex, as specified in the Description

An array of capabilities, NOT returned if option capability_groups=false is used in the query. An array entry defines one capability grouping, as follows:

  • name—name of the capability group (e.g. "Resource", "Security", "Business", "Technical")
  • capabilities—array of capabilities within the group, where each entry is of the form name-type-values of types string, string, array, respectively
    • name—name of the capability sub-group (e.g. "Operating Systems")
    • type—value type (e.g. "Pick-list type A", "Parameter-driven")
    • values—array of supported capabilities in the subgroup, as key-value pairs, where key is the priority order in integer form starting from 0 when type is "Pick-list type A" or key is the name of the parameter when type is "Parameter-driven"

feature_description

string

Optional description for the timeframe amenities.

host_summary

Complex, as specified in the Description

An array of the different hosts in the Infrastructure Group, NOT returned if option host_summary=false is used in the query. An array entry defines each model, as follows:

  • count—number of host systems in the Infrastructure Group with the same model_name
  • memory—amount of total memory of the host systems in MB
  • model_name—manufacturer and model type of the host systems
  • cpu_cores—number of total CPU cores of the host systems
  • os_names—array of operating system names that are installed on the host systems

sensor_capacities

Complex, as specified in the Description

An array of metrics for each sensor type, NOT returned if option sensor_capacities=false is used in the query. An array entry defines each sensor type as follows:

  • metrics—an array of metrics in the form of name-value pairs, where each metric is the sum from all the sensors with the same sensor_type
  • sensor_type—type of sensor (i.e. "Datastores", "Physical Storage", "Resource Pools")
  • total_sensors—number of sensors with the same sensor_type

timeline

string

Name of the timeframe of the timeline. This is the same as the short_name of the Timeline Tags.

Fit-for-Purpose Checks of the Infrastructure Group: Form Definition

In order to retrieve the results of the Fit-for-Purpose checks, you need to specify the workloads for placement along with the expected date.

Table: Fit-for-Purpose Checks of the Infrastructure Group Form Definition

Element

Type

Req

Description

workloads

[id]

P

An array of Workload ids to be placed.

expected_date

number

P

The date these workloads are expected to arrive in UTC. The time portion is ignored. The date must be today's date or some date in the future.

Examples

Example: Getting a Collection of Infrastructure Groups

The following example shows you how to obtain the collection of current hosting venues.

Example: Getting an Individual Infrastructure Group

The following example shows you how to get a single hosting venue.

Example: Getting an Infrastructure Group's Fit-for-Purpose Checks

The following example shows you how to get the Fit-for-Purpose results for a specific hosting venue and workload placement, for the expected date as specified.

Example: Getting the Amenities of an Individual Infrastructure Group

The following example shows you how to get the amenities for a single hosting venue.

Example: Getting the Amenities of an Individual Infrastructure Group for Today

The following example shows you how to get amenities for a single hosting venue for today's date. The following query does not return the capability_groups array:

Example: Getting the hosting venue Filter Metadata for an Environment

This example retrieves the filter metadata for the hosting venues that belong to a specific environment.

Example: Getting the Infrastructure Group Filter Metadata for IBM

Request:

GET /infrastructure-group-filter-metadata/?platform=IBM

Example: Getting the Infrastructure Group Filter Metadata for Specific Groups

Request:

GET /infrastructure-group-filter-metadata/?infrastructure_group=Engineering1,Engineering2

Example: Modifying an Infrastructure Group to Auto-Close Based on Performance Risk

Request:

PUT /infrastructure-groups/4f22bdc6-7b77-49ab-bf34-6f4f75625da3

{

  "allow_new_workloads": "DO_NOT_ALLOW_IF_RISK"

}

Example: Manually Closing an Infrastructure Group

Request:

PUT /infrastructure-groups/4f22bdc6-7b77-49ab-bf34-6f4f75625da3

{

  "allow_new_workloads": "DO_NOT_ALLOW",

  "availability_reason": "New VM workloads are blocked"

}