make RedFishConnection a class
This commit is contained in:
parent
4b62406ce9
commit
2b70c34062
@ -116,8 +116,6 @@ Clients should always be prepared for:
|
||||
"""
|
||||
|
||||
|
||||
__author__ = 'HP'
|
||||
|
||||
import ssl
|
||||
import urllib2
|
||||
from urlparse import urlparse
|
||||
@ -130,8 +128,14 @@ import StringIO
|
||||
import sys
|
||||
|
||||
|
||||
def rest_op(operation, host, suburi, request_headers, request_body, user_name,
|
||||
password, x_auth_token=None, enforce_SSL=True):
|
||||
class RedFishConnection(object):
|
||||
|
||||
def __init__(self):
|
||||
super(RedFishConnection, self).__init__()
|
||||
# XXX add members, we're going to have to cache
|
||||
|
||||
def rest_op(self, operation, host, suburi, request_headers, request_body,
|
||||
user_name, password, x_auth_token=None, enforce_SSL=True):
|
||||
"""REST operation generic handler"""
|
||||
|
||||
url = urlparse('https://' + host + suburi)
|
||||
@ -208,13 +212,13 @@ def rest_op(operation, host, suburi, request_headers, request_body, user_name,
|
||||
return resp.status, headers, response
|
||||
|
||||
|
||||
def rest_get(host, suburi, request_headers, user_name, password):
|
||||
def rest_get(self, host, suburi, request_headers, user_name, password):
|
||||
"""Generic REST GET handler"""
|
||||
# NOTE: be prepared for various HTTP responses including 500, 404, etc.
|
||||
return rest_op('GET', host, suburi, request_headers, None, user_name, password)
|
||||
|
||||
|
||||
def rest_patch(server, suburi, request_headers, request_body, user_name, password):
|
||||
def rest_patch(self, server, suburi, request_headers, request_body, user_name, password):
|
||||
"""REST PATCH"""
|
||||
if not isinstance(request_headers, dict): request_headers = dict()
|
||||
request_headers['Content-Type'] = 'application/json'
|
||||
@ -222,30 +226,30 @@ def rest_patch(server, suburi, request_headers, request_body, user_name, passwor
|
||||
# NOTE: be prepared for various HTTP responses including 500, 404, 202 etc.
|
||||
|
||||
|
||||
def rest_put(host, suburi, request_headers, request_body, user_name, password):
|
||||
def rest_put(self, host, suburi, request_headers, request_body, user_name, password):
|
||||
"""REST PUT"""
|
||||
if not isinstance(request_headers, dict): request_headers = dict()
|
||||
request_headers['Content-Type'] = 'application/json'
|
||||
return rest_op('PUT', host, suburi, request_headers, request_body, user_name, password)
|
||||
# NOTE: be prepared for various HTTP responses including 500, 404, 202 etc.
|
||||
|
||||
# REST POST
|
||||
def rest_post(host, suburi, request_headers, request_body, user_name, password):
|
||||
# REST POST
|
||||
def rest_post(self, host, suburi, request_headers, request_body, user_name, password):
|
||||
if not isinstance(request_headers, dict): request_headers = dict()
|
||||
request_headers['Content-Type'] = 'application/json'
|
||||
return rest_op('POST', host, suburi, request_headers, request_body, user_name, password)
|
||||
# NOTE: don't assume any newly created resource is included in the response. Only the Location header matters.
|
||||
# the response body may be the new resource, it may be an ExtendedError, or it may be empty.
|
||||
|
||||
# REST DELETE
|
||||
def rest_delete(host, suburi, request_headers, user_name, password):
|
||||
# REST DELETE
|
||||
def rest_delete(self, host, suburi, request_headers, user_name, password):
|
||||
return rest_op('DELETE', host, suburi, request_headers, None, user_name, password)
|
||||
# NOTE: be prepared for various HTTP responses including 500, 404, etc.
|
||||
# NOTE: response may be an ExtendedError or may be empty
|
||||
|
||||
|
||||
# this is a generator that returns collection members
|
||||
def collection(host, collection_uri, request_headers, user_name, password):
|
||||
# this is a generator that returns collection members
|
||||
def collection(self, host, collection_uri, request_headers, user_name, password):
|
||||
"""
|
||||
collections are of two tupes:
|
||||
- array of things that are fully expanded (details)
|
||||
|
Loading…
x
Reference in New Issue
Block a user