Source code for pancloud.adapters.adapter
# -*- coding: utf-8 -*-
"""Base adapter class."""
from __future__ import absolute_import
from abc import ABCMeta, abstractmethod
# Python 2.7 and 3.5+ compatibility
ABC = ABCMeta('ABC', (object,), {'__slots__': ()})
[docs]class StorageAdapter(ABC): # enforce StorageAdapter interface
"""A storage adapter abstract base class."""
[docs] @abstractmethod
def fetch_credential(self, credential=None, profile=None):
"""Fetch credential from store.
Args:
credential (str): Credential to fetch.
profile (str): Credentials profile. Defaults to ``'default'``.
"""
pass
[docs] @abstractmethod
def init_store(self):
"""Initialize credentials store."""
pass
[docs] @abstractmethod
def remove_profile(self, profile=None):
"""Remove profile from store.
Args:
profile (str): Credentials profile to remove.
"""
pass
[docs] @abstractmethod
def write_credentials(self, credentials=None, profile=None,
cache_token=None):
"""Write credentials.
Write credentials to store.
Args:
cache_token (bool): If ``True``, stores ``access_token`` in token store. Defaults to ``True``.
credentials (class): Read-only credentials.
profile (str): Credentials profile. Defaults to ``'default'``.
"""
pass