discovery.restfulPost
discovery.restfulPost(target, protocol, path, body[, headers, port, use_http
])
, port, use_http
])
Performs a POST request on the target using the RESTful system and returns a node containing information on the discovered system.
The function takes the following parameters:
target
– the device against which the request is performed.protocol
– distinguishes the RESTful protocol for distinguishing credentials and handling any device specific behavior. The following protocols are supported:"VPLEX"
— VPLEX protocol""
— Generic protocol, no authentication"basic_auth"
— Generic protocol, HTTP basic authentication"digest_auth"
— Generic protocol, HTTP Digest authentication"oauth2"
— Generic protocol, OAuth2 authentication. The OAuth2 authentication method used is a client credentials grant as described on the IETF Tools website.
path
— a string specifying the URL path on the target, for example/api/about
. The IP address and access method are automatically added according to the credential and endpoint being discovered.body
— string, optional. The HTTP body of the request.headers
— an optional dictionary of HTTP headers to be sent with the request. You can use this to implement custom protocols that require certain HTTP headers to be present. For requests using the VPLEX protocol, the username and password fields are automatically added. It is not possible to override automatically added values.port
— an optional integer. Port on which HTTP server listens. Default value is80
ifuse_http
isTrue
, otherwise443
is used.use_http
— boolean, optional. Whether to use HTTP instead of HTTPS. Default value isFalse
(HTTPS).
and returns a DiscoveryAPIResult node containing the following:
– the response status.response_
status
– the response reason.response_
reasonresponse_header
– a table of header entries. Sensitive fields are removed.response_body
– the body of the response. When data is successfully retrieved and theresponse_body
is a JSON encoded string, it can be decoded using the json.decode function.
For example:
encoded := json.encode(table(args := '-l /clusters/cluster-1/exports/storage-views')); result := discovery.restfulPost(process, 'VPLEX', '/vplex/ls', encoded); if result then log.info('result status %result.response_status%'); log.info('result reason %result.response_reason%'); log.info('result headers %result.response_headers%'); log.info('result body %result.response_body%'); if result.response_body then decoded := json.decode(result.response_body); log.info('decoded body %decoded%'); else log.info('no body to decode'); end if; else log.info('discovery.restfulPost failed'); end if;
If the request fails the discovery.restfulPost
function returns none.
Was this page helpful? Yes No
Submitting...
Thank you
Comments