make RedFishConnection a class

This commit is contained in:
Devananda van der Veen 2015-03-25 13:22:04 -07:00
parent 4b62406ce9
commit 2b70c34062

View File

@ -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,7 +226,7 @@ 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'
@ -230,7 +234,7 @@ def rest_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):
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)
@ -238,14 +242,14 @@ def rest_post(host, suburi, request_headers, request_body, user_name, password):
# 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):
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):
def collection(self, host, collection_uri, request_headers, user_name, password):
"""
collections are of two tupes:
- array of things that are fully expanded (details)