Update client session to use requests.session

DrydockSession will handle the base Drydock URL
and authentication. Also use requests.session
to more efficiently use TCP connection pooling
This commit is contained in:
Scott Hussey 2017-07-10 20:37:38 -05:00
parent 282349680f
commit 397e9e9769

View File

@ -11,16 +11,25 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import requests
class DrydockSession(object)
class DrydockSession(object):
"""
A session to the Drydock API maintaining credentials and API options
:param string host: The Drydock server hostname or IP
:param int port: The service port, defaults to 9000
:param string token: Auth token
:param string marker: (optional) external context marker
"""
def __init__(self, token=None, marker=None):
def __init__(self, host=None, port=9000, token=None, marker=None):
self.__session = requests.Session()
self.__session.headers.update({'X-Auth-Token': token, 'X-Context-Marker': marker})
self.host = host
self.port = port
self.base_url = "http://%s:%d/api/" % (host, port)
self.token = token
self.marker = marker
# TODO Add keystone authentication to produce a token for this session