Esempio n. 1
0
def status(arguments):
    output = StringIO()
    verbose = initialise(arguments)
    environments = arguments['<environment>']

    if environments:
        puts(columns(
            [(colored.green('Nickname')), 15],
            [(colored.green('Instance Type')), 10],
            [(colored.green('Status')), 20],
            [(colored.green('Instance href')), 60],
        ), stream=output.write)

    for environment in environments:
        server = righteous.find_server(environment)
        if server:
            settings = righteous.server_settings(server['href'])
            if verbose:
                server_info = righteous.server_info(server['href'])
                puts('Server Info:\n' + colored.cyan(pformat(server_info)))
                puts('Server Settings:\n' + colored.cyan(pformat(settings)))

            puts(columns(
                [environment, 15],
                [settings['ec2-instance-type'], 10],
                [server['state'] if server else 'Found', 20],
                [server['href'] if server else 'Not', 60],

            ), stream=output.write)
        else:
            puts(colored.red('%s: Not Found' % environment),
                    stream=output.write)

    print output.getvalue()
Esempio n. 2
0
    def test_server_status(self):
        self._create_server()

        server = righteous.find_server(self.env)
        assert server is not None
        server_settings = righteous.server_settings(server['href'])
        assert server_settings is not None
        server_info = righteous.server_info(server['href'])
        assert server_info is not None
        assert_equal(server_settings['ec2-instance-type'], 'm1.small')
        assert_equal(server['state'], 'pending')
Esempio n. 3
0
def print_running_servers(servers, exclude_states=['stopped']):

    def server_owner(server_info):
        owner = [
            p['value'][5:] for p in server_info['parameters']
            if p['name'] == 'EMAIL'
        ]
        return owner[0] if len(owner) else None

    output = StringIO()
    now = datetime.now()
    server_list = []
    for server in servers['servers']:
        server_info = righteous.server_info(server['href'])
        server_settings = righteous.server_settings(server['href'])
        owner = server_owner(server_info)
        running = now - datetime.strptime(
            server['created_at'], '%Y/%m/%d %H:%M:%S +0000'
        )
        if server['state'] not in exclude_states:
            server_list.append(
                dict(
                    days=running.days,
                    instance=server['nickname'],
                    size=server_settings['ec2-instance-type'],
                    creator=owner
                )
            )

    puts(columns(
        [(colored.red('Instance')), COL],
        [(colored.green('Size')), COL],
        [(colored.magenta('Creator')), COL],
        [(colored.cyan('Running days')), COL],
    ), stream=output.write)

    for line in sorted(server_list, key=lambda d: d['days']):
        puts(columns(
            [line['instance'], COL],
            [line['size'], COL],
            [line['creator'], COL],
            [str(line['days']), COL],
        ), stream=output.write)

    print(output.getvalue())
Esempio n. 4
0
 def test_server_settings(self):
     self.response.content = '{}'
     response = righteous.server_settings('/my/ref')
     assert_equal(response, {})