<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def login(self):
 """ Gets and stores an OAUTH token from Rightscale. """

        log.debug('Logging into RightScale...')
        login_data = {
            'grant_type': 'refresh_token',
            'refresh_token': self.refresh_token,
            }
        response = self._request('post', self.oauth_path, data=login_data)

        raw_token = response.json()
        auth_token = "Bearer %s" % raw_token['access_token']
        self.s.headers['Authorization'] = auth_token

        # Generate an expiration time for our token of 60-seconds before the
        # standard time returned by RightScale. This will be used in the
        # self.client property to validate that our token is still usable on
        # every API call.
        log.debug('Auth Token expires in %s(s)' % raw_token['expires_in'])
        self.auth_expires_at = time.time() + int(raw_token['expires_in']) - 60