0% found this document useful (0 votes)
77 views8 pages

PowerFlex REST API Overview

The document describes the different REST APIs available for PowerFlex including the legacy block API, PowerFlex Manager API, and PowerFlex PowerAPI. The block API handles block, protection and core software tasks. The Manager API manages lifecycle of PowerFlex deployments. The PowerAPI introduced in version 4.0 manages SSO, NAS, files, events and alerts using the Dell Technologies standard API model.

Uploaded by

ramshankar
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
77 views8 pages

PowerFlex REST API Overview

The document describes the different REST APIs available for PowerFlex including the legacy block API, PowerFlex Manager API, and PowerFlex PowerAPI. The block API handles block, protection and core software tasks. The Manager API manages lifecycle of PowerFlex deployments. The PowerAPI introduced in version 4.0 manages SSO, NAS, files, events and alerts using the Dell Technologies standard API model.

Uploaded by

ramshankar
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
  • PowerFlex API operations
  • PowerFlex Manager API
  • PowerFlex PowerAPI
  • PowerFlex block API
  • Examples and Code Snippets

PowerFlex REST API

(PowerFlex REST API Introduction)


Mar 2023

1
Table Of Contents

PowerFlex API operations


PowerFlex block API
PowerFlex Manager API
PowerFlex PowerAPI

2
PowerFlex REST API
PowerFlex API operations

PowerFlex API operations are divided into three categories.

The legacy API, which is called the block API. It is used to complete tasks
related to block, protection, and operations on the core PowerFlex software.
The PowerFlex Manager API, used for life cycle management of PowerFlex
rack and appliance deployments, and PowerFlex core software.
The PowerAPI, introduced in PowerFlex v4.0, is used to manage SSO,
NAS, file, events, and alerts. It is based on a new Dell Technologies
standard for product APIs.

Eventually, the block API and PowerFlex Manager API will be deprecated and their
functions will be merged into the PowerAPI model. The web service for REST API is
hosted on the PowerFlex management platform (PFMP), simplifying programmatic
operations including authentication. We will look a little closer at each one of these
models in the following sections.

PFMP uses the OAuth 2.0 industry standard protocol for authorization. In OAuth 2.0,
a user authenticates with an authorization microservice in PFMP. Upon
authentication, the user is passed an access (bearer) token. The bearer token
enables the user to access protected resources and perform protected operations on
all areas of the PowerFlex system.

PowerFlex block API

The legacy PowerFlex block API is hosted as a microservice in PFMP. The data
model for this API is structurally the same as in versions before v4.x. When users
issue block API calls to the PFMP cluster, an ingress microservice redirects the
request to one of the Meta Data Manager services. The gateway connects to the
Meta Data Manager (MDM) in the PowerFlex deployment. The MDM is a tightly
coupled cluster that coordinates activities in the PowerFlex system. It is the brain of
the PowerFlex system in that it monitors the system, coordinates rebalance
operations and rebuilds, and coordinates changes to the storage configuration.

The PowerFlex gateway formats the response from the MDM in a RESTful manner
and returns it to the API client. The API consumes and produces configuration
details in JSON format (application/json).

The URLs are organized into two categories.

1. Types – [Link]

3
PowerFlex REST API
2. Instances – [Link]

The /api/types URL applies to all instances for the given type. For example, GET
/api/types/Sds/instances will return all instances of “type” SDS. The /api/instances
URL will act on a specific object of the type specified in the URL. The ID of the object
is typically a required part of the URL.

For example, /api/instances/StoragePool::{StoragePoolID} will return information for


the storage pool ID specified in the URL.

PowerFlex Manager API

PowerFlex Manager API is used for life cycle management of PowerFlex rack and
appliance deployments. It can be leveraged to automate deployment and expansion
of a PowerFlex system, monitoring hardware health, and compliance with Dell
certified release matrix.

The base URL for PowerFlex Manager API operations is [Link]

PowerFlex PowerAPI

PowerFlex PowerAPI is based on a common Dell PowerAPI style guide. The


PowerAPI style establishes guidelines so that Dell APIs look and behave in a
consistent manner across all products. In PowerFlex v4.0, the PowerAPI endpoints
are used to manage SSO, NAS, file, events, and alerts. The base URL for the
PowerAPI is [Link] The format for URIs that support the GET
method are the collection query and the instance query:

1. Collection query - [Link]


2. Instance query - [Link]

Optional URL parameters can be used with the collection queries. If a parameter is
not in the collection URL, a 200 response will return all identifiers for the specified
resource type. The optional parameters are select and filter.

Collection query examples

Collection query without optional parameters:

GET [Link]

A 200 response:

4
PowerFlex REST API
[

"id": "23913393-3ce2-4203-929d-8b3163d60fca"

},

"id": "74df3a14-8f81-420e-b191-4dc7745325ad"

Collection with optional select statement:

GET [Link]

A 200 response:

"id": "23913393-3ce2-4203-929d-8b3163d60fca",

"name": "Daily"

},

"id": "74df3a14-8f81-420e-b191-4dc7745325ad",

"name": "Weekly"

The select parameter also supports wildcards. You can select all parameters for an
object by using the asterisk (select=*)

Example:

5
PowerFlex REST API
GET [Link]

A 200 response:

"id": "86c83dd9-0899-4c65-adc8-c08d20ae5071",

"name": "ProdFS",

"description": null,

"snapshot_rule_ids": [

"23913393-3ce2-4203-929d-8b3163d60fca",

"74df3a14-8f81-420e-b191-4dc7745325ad"

An example of an instance query and selecting a set of properties:

GET [Link]
8b3163d60fca?select=name,interval,retention,type

A 200 response:

"name": "Daily",

"interval": "ONE_DAY",

"retention": 168,

"type": "PROTOCOL_READ_ONLY"

An example of using a collection query with the filter parameter:

6
PowerFlex REST API
Example:

GET [Link]

A 200 response:

"results": [

"code": "70020001",

"name": "DEPLOYMENT",

"description": "The deployment job FG Storage-only with SDT failed for


service template TME-Storage-LACP-with-SDT
(8aaa3a1c85e5474d0186043cf635463b).",

"severity": "CRITICAL",

"category": "STATE_CHANGED",

"details": {

"code": "VXFM00213",

"message": "The deployment job FG Storage-only with SDT failed for


service template TME-Storage-LACP-with-SDT
(8aaa3a1c85e5474d0186043cf635463b)."

},

"domain": "MANAGEMENT",

"id": "0cd7750c33c064b0",

"timestamp": "2023-01-30T22:41:06.954Z",

"resource_type": "basic-system-config",

"resource_name": "asmmanager",

"resource_id": "asmcore",

7
PowerFlex REST API
"service_name": "ASMCORE",

"service_version": "1.0",

"service_instance_id": "504b0a60-45dd-4637-b34b-bcd4554bc39a",

"originating_application_name": null,

"request_id": null,

"related_events": null,

"job_id": null,

"is_internal": false

8
PowerFlex REST API

Common questions

Powered by AI

PowerFlex's move from the legacy block API to the PowerAPI reflects broader trends towards API unification, increased standardization, and adaptability in software development. As software systems grow more complex and integrate across multiple platforms, the shift towards a common style guide (as seen in PowerAPI) parallels industry trends towards microservices and agile methodologies. This approach emphasizes modularity, scalability, and consistent user experience, aligning with the need for APIs that are easier to manage and evolve with technological advances, enhancing interoperability and future-proofing .

The PowerFlex Manager API facilitates automation of deployment and expansion of PowerFlex systems by providing structured and programmable management capabilities. These include ensuring compliance with Dell's certified release matrices, monitoring hardware health, and the ability to streamline lifecycle processes for PowerFlex deployments. This automates repetitive tasks, reduces human error, and accelerates system setup and scaling operations, thereby optimizing resource allocation and operational efficiency .

The PowerFlex block API, a legacy system, uses structured JSON data and is hosted as a microservice in PFMP, primarily handling foundational tasks within the PowerFlex ecosystem. In contrast, the PowerAPI is in alignment with the Dell Technologies' strategic goal for standardized APIs as seen in the Dell PowerAPI style guide. It embodies a modern architecture for managing SSO, NAS, files, events, and alerts. This shift signifies Dell's move towards creating consistent, streamlined, and scalable APIs across their product range, enhancing interoperability and simplifying lifecycle management. Such alignment ensures future readiness and easier integration of updated technological capabilities .

OAuth 2.0 is used as the industry standard protocol for authorization within the PowerFlex management platform (PFMP). This protocol requires users to authenticate with an authorization microservice, after which they receive an access (bearer) token. This token allows users to perform operations and access protected resources across the PowerFlex system, thereby enhancing security by ensuring that only authenticated users can execute critical operations, maintaining system integrity and safeguarding against unauthorized access .

The PowerAPI offers filtering mechanisms such as the 'filter' URL parameter to narrow API responses. This functionality is crucial as it allows users to request only data relevant to their needs, reducing response size and network load. For example, a filter can limit event data to specific criteria, enhancing operational efficiency by reducing data processing time. This selective data retrieval is imperative for performance and scalability, particularly in large, diverse datasets encountered in enterprise environments .

An example RESTful API call using the PowerFlex PowerAPI to retrieve all parameters for NAS protection policies is as follows: GET https://pfmp/rest/v1/nas-protection-policies?select=*. This call uses the 'select=*' parameter to ensure that the response includes all possible details about the NAS protection policies. The request takes advantage of the PowerAPI's flexibility in displaying comprehensive resource information without predefined filtering, enabling users to acquire a full dataset efficiently .

The PowerFlex REST API differentiates operations into three main categories: the block API, PowerFlex Manager API, and the PowerAPI. The legacy block API deals with core tasks related to block operations but is eventually slated for deprecation. The PowerFlex Manager API is focused on lifecycle management of hardware deployments, whereas the PowerAPI, a new addition in PowerFlex v4.0, manages SSO, NAS, files, events, and alerts. This new API reflects a shift towards streamlining and unifying operations within a single updated framework, indicating that future system updates will likely consolidate functionalities into the PowerAPI, reducing reliance on the older APIs .

Within the PowerFlex management platform, bearer tokens are used as a means to enforce security by authenticating users with OAuth 2.0 protocol. Once a user is authenticated, they receive a bearer token that must be included in subsequent requests to access protected resources. The use of bearer tokens simplifies authorization processes, but also requires careful token management to prevent unauthorized access. Security implications include the risk of token theft, which necessitates secure token storage and transmission practices to mitigate vulnerabilities .

The Meta Data Manager (MDM) functions as the central component for coordinating operations within the PowerFlex block API. It manages essential activities such as system monitoring, rebalance operations, rebuilds, and adjustments to storage configuration. The MDM's role as the system's 'brain' ensures high availability and consistency, handling task orchestration across the PowerFlex deployment. This pivotal role is critical for maintaining the robustness and reliability of operations managed through the block API .

Collection and instance queries in PowerAPI greatly enhance data retrieval by providing flexible endpoints to query multiple resources or specific instances. Collection queries can return arrays of resource identifiers or detailed information when using parameters like 'select' or 'filter.' This feature allows retrieval of bulk data, crucial for audit and monitoring tasks. Instance queries, on the other hand, allow for precise data retrieval on selected items, optimizing data access efficiency, and reducing unnecessary data processing, which is critical for performance in large-scale environments .

(PowerFlex REST API Introduction)
Mar 2023
PowerFlex REST API
1
Table Of Contents
PowerFlex API operations
PowerFlex block API
PowerFlex Manager API
PowerFlex PowerAPI
2
PowerFlex REST API
PowerFlex API operations
PowerFlex API operations are divided into three categories.
The legacy API, which is called the bloc
2. Instances – https://<PFMP>/api/instances
The /api/types URL applies to all instances for the given type. For example, GET
[
    {
        "id": "23913393-3ce2-4203-929d-8b3163d60fca"
    },
    {
        "id": "74df3a14-8f81-420e-b191-4dc7745325ad
GET https://pfmp/rest/v1/nas-protection-policies?select=*
A 200 response:
[
    {
        "id": "86c83dd9-0899-4c65-adc8-c08d
Example:
GET https://pfmp/rest/v1/events?filter=id%20eq%200cd7750c33c064b0
A 200 response:
{
    "results": [
        {
"service_name": "ASMCORE",
            "service_version": "1.0",
            "service_instance_id": "504b0a60-45d

You might also like