Example #1
0
 def setup(self):
     """
     Run deferred __init__ tasks
     """
     self._login = Login(self)
Example #2
0
 def setup(self):
     """
     Run deferred __init__ tasks
     """
     self._login = Login(self)
Example #3
0
class Context(object):
    """
    CLI Context
    """
    def __init__(self):
        self.cookiejar = None
        self.config = ConfigParser()
        self.config_path = None
        self.log = None
        self.cache = True
        self.database = NotImplemented
        self.basedir = os.path.join(os.path.dirname(os.path.realpath(__file__)))

        self.load_config(os.path.join(self.basedir, 'config', 'ipsv.conf'))
        self._login = None

    def setup(self):
        """
        Run deferred __init__ tasks
        """
        self._login = Login(self)

    @property
    def db(self):
        """
        Get a loaded database session
        """
        if self.database is NotImplemented:
            self.database = Session

        return self.database

    def load_config(self, path):
        """
        (Re-)load the configuration file
        """
        self.config_path = path
        self.config.read(self.config_path)

    def get_login(self, use_session=True):
        """
        Get an active login session
        @param  use_session:    Use a saved session file if available
        @type   use_session:    bool
        """
        # Should we try and return an existing login session?
        if use_session and self._login.check():
            self.cookiejar = self._login.cookiejar
            return self.cookiejar

        # Prompt the user for their login credentials
        username = click.prompt('IPS Username')
        password = click.prompt('IPS Password', hide_input=True)
        remember = click.confirm('Save login session?', True)

        # Process the login
        cookiejar = self._login.process(username, password, remember)
        if remember:
            self.cookiejar = cookiejar

        return cookiejar
Example #4
0
class Context(object):
    """
    CLI Context
    """
    def __init__(self):
        self.cookiejar = None
        self.config = ConfigParser()
        self.config_path = None
        self.log = None
        self.cache = True
        self.database = NotImplemented
        self.basedir = os.path.join(os.path.dirname(
            os.path.realpath(__file__)))

        self.load_config(os.path.join(self.basedir, 'config', 'ipsv.conf'))
        self._login = None

    def setup(self):
        """
        Run deferred __init__ tasks
        """
        self._login = Login(self)

    @property
    def db(self):
        """
        Get a loaded database session
        """
        if self.database is NotImplemented:
            self.database = Session

        return self.database

    def load_config(self, path):
        """
        (Re-)load the configuration file
        """
        self.config_path = path
        self.config.read(self.config_path)

    def get_login(self, use_session=True):
        """
        Get an active login session
        @param  use_session:    Use a saved session file if available
        @type   use_session:    bool
        """
        # Should we try and return an existing login session?
        if use_session and self._login.check():
            self.cookiejar = self._login.cookiejar
            return self.cookiejar

        # Prompt the user for their login credentials
        username = click.prompt('IPS Username')
        password = click.prompt('IPS Password', hide_input=True)
        remember = click.confirm('Save login session?', True)

        # Process the login
        cookiejar = self._login.process(username, password, remember)
        if remember:
            self.cookiejar = cookiejar

        return cookiejar