Example #1
0
    def test_init_deployment_id(self):
        righteous.init('user', 'pass', 'account', default_deployment_id='22')

        assert_equal(righteous.config.settings.default_deployment_id, '22')
        server_parameters = righteous.config.settings.create_server_parameters
        assert_equal(server_parameters['deployment_href'], 
            'https://my.rightscale.com/api/acct/account/deployments/22')
Example #2
0
def initialise(arguments):
    verbose = arguments['--verbose']
    config_file = arguments['--config']

    if verbose:
        logging.basicConfig(level=logging.DEBUG)

    config = read_authentication(config_file or AUTH_FILE)
    if not config:
        # TODO: prompt for config and store
        pass

    username, password, account_id = tuple(config.get('auth', key)
        for key in config.options('auth'))

    server_parameters = dict(config.items('server-defaults'))
    righteous.init(username, password, account_id, **server_parameters)

    if righteous.login():
        cache_authentication(username, password, account_id,
            config_file or AUTH_FILE)
    else:
        puts_err(colored.red('Authentication failed'))
        exit(2)

    return verbose
Example #3
0
    def test_create_and_start_server(self):
        create_server_parameters = {
            'm1.small': 'https://my.rightscale.com/api/acct/123/ec2_server_templates/52271',
        }
        righteous.init('user', 'pass', 'account', **create_server_parameters)
        new_server_href = '/server/new'
        self.response.status_code = 201
        self.response.headers['location'] = new_server_href 
        success, location = righteous.create_and_start_server('arduous', 'm1.small', server_template_parameters={'envname':'arduous'})
        assert success

        assert_equal(self.request.call_count, 3)

        # create server
        create_data = {
            'server[nickname]': 'arduous',
            'server[server_template_href]': create_server_parameters['m1.small']
        }
        create_expected = urlencode(create_data)
        self.request.assert_any_call('/servers', method='POST', body=create_expected)

        # set server parameters
        self.request.assert_any_call(new_server_href, method='PUT', body='server[parameters][ENVNAME]=text:arduous', headers={'Content-Type': 'application/x-www-form-urlencoded'}, prepend_api_base=False)

        # start server
        self.request.assert_any_call(new_server_href+'/start', method='POST', prepend_api_base=False)
Example #4
0
    def test_request_no_prepend(self):
        username, password, account_id = 'user', 'pass', 'account_id'
        righteous.init(username, password, account_id, debug=False)
        headers =  {'X-API-VERSION': '1.0'}

        with patch('righteous.api.requests') as mock_requests:
            righteous.api._request('/test', prepend_api_base=False)
            mock_requests.request.assert_called_once_with('GET', '/test', headers=headers, config={}, data=None)
Example #5
0
    def test_request(self):
        username, password, account_id = 'user', 'pass', 'account_id'
        righteous.init(username, password, account_id, debug=False)
        headers =  {'X-API-VERSION': '1.0'}

        with patch('righteous.api.requests') as mock_requests:
            righteous.api._request('/test')
            mock_requests.request.assert_called_once_with('GET', 'https://my.rightscale.com/api/acct/account_id/test', headers=headers, config={}, data=None)
Example #6
0
 def test_create_and_start_server_fails(self):
     create_server_parameters = {
         'm1.small': 'https://my.rightscale.com/api/acct/123/ec2_server_templates/52271',
     }
     righteous.init('user', 'pass', 'account', **create_server_parameters)
     
     success, location = righteous.create_and_start_server('titanic', 'm1.small')
     assert not success
     assert not location
Example #7
0
    def test_login_with_init_credentials(self):
        username, password, account_id = 'user', 'pass', 'account_id'
        auth = base64.encodestring('%s:%s' % (username, password))[:-1]

        righteous.init(username, password, account_id)

        self.response.status_code = 204
        self.response.headers['set-cookie'] = 'cookie_value' 
        login_result = righteous.login()
        assert login_result
        self.request.assert_called_once_with('/login', headers={'Authorization': 'Basic %s' % auth})
Example #8
0
    def initialise_righteous(self):
        config = SafeConfigParser()
        config.read('righteous.config')
        if not config.has_section('auth'):
            raise Exception('Please create a righteous.config file with appropriate credentials')

        self.auth = dict((key,config.get('auth', key)) for key in config.options('auth'))
        self.server = dict((key,config.get('server-defaults', key)) for key in config.options('server-defaults'))
        righteous.init(self.auth['username'], self.auth['password'], self.auth['account_id'], **self.server)

        if not righteous.config.settings.cookies:
            righteous.login()
Example #9
0
    def test_create_server_with_init_params(self):
        create_server_parameters = {
            'm1.small': 'https://my.rightscale.com/api/acct/123/ec2_server_templates/52271',
            'm1.large': 'https://my.rightscale.com/api/acct/123/ec2_server_templates/273583',
        }
        create_data = {
            'server[nickname]' : 'torv',
            'server[server_template_href]': create_server_parameters['m1.large']
        }
        expected = urlencode(create_data)

        righteous.init('user', 'pass', 'account', **create_server_parameters)
        righteous.create_server('torv', 'm1.large')
        self.request.assert_called_once_with('/servers', method='POST', body=expected)
Example #10
0
 def test_init_with_kwargs(self):
     righteous.init('user', 'pass', 'account', debug=True, foo='bar')
     assert_equal(righteous.config.settings.username, 'user')
     assert_equal(righteous.config.settings.debug, sys.stderr)
     assert_equal(righteous.config.settings.create_server_parameters['foo'], 'bar')
Example #11
0
 def test_init_with_args(self):
     righteous.init('user', 'pass', 'account')
     assert_equal(righteous.config.settings.username, 'user')
Example #12
0
 def test_list_servers(self):
     righteous.init('user', 'pass', 'account_id', default_deployment_id='foo')
     self.response.content = '{}'
     righteous.list_servers()
     self.request.assert_called_once_with('/deployments/foo.js')
Example #13
0
 def setup(self):
     righteous.init('user', 'pass', 'account_id')
Example #14
0
 def test_list_deployments(self):
     righteous.init("user", "pass", "account_id", default_deployment_id="foo")
     self.response.content = "{}"
     righteous.list_deployments()
     self.request.assert_called_once_with("/deployments.js")