Exemple #1
0
def main():
    """main command-line entrypoint; calls parse_args, sets up logging, and
    either lists steps or instantiates a CustodianRunner and calls run()."""
    args = parse_args(sys.argv[1:])

    # set logging level
    if args.verbose > 1:
        set_log_debug(logger)
    elif args.verbose == 1:
        set_log_info(logger)

    if args.ACTION == 'list':
        for x in CustodianRunner.ordered_step_classes:
            print(x.name)
        raise SystemExit(0)
    if args.ACTION == 'accounts':
        accts = ManheimConfig.list_accounts(args.config)
        for acctname in sorted(accts.keys()):
            print("%s (%s)" % (acctname, accts[acctname]))
        raise SystemExit(0)
    cr = CustodianRunner(args.ACCT_NAME, args.config)
    if args.assume_role:
        assume_role(cr.config)
    cr.run(
        args.ACTION, args.regions, step_names=args.steps, skip_steps=args.skip
    )
 def test_list_accounts(self):
     with patch('%s.logger' % pbm, autospec=True) as mock_logger:
         with patch('%s.open' % pbm,
                    mock_open(read_data='foo'),
                    create=True) as m_open:
             with patch('%s.yaml.load' % pbm, autospec=True) as mock_load:
                 with patch('%s.ManheimConfig' % pbm,
                            autospec=True) as mock_conf:
                     mock_load.return_value = [{
                         'account_name': 'a1',
                         'account_id': 1111,
                         'foo': 'bar',
                         'baz': 2,
                         'regions': ['us-east-1']
                     }, {
                         'account_name': 'a2',
                         'account_id': 2222,
                         'foo': 'bar1',
                         'baz': 4,
                         'regions': ['us-east-2']
                     }]
                     res = ManheimConfig.list_accounts('/tmp/conf.yml')
     assert res == {'a1': 1111, 'a2': 2222}
     assert mock_logger.mock_calls == [
         call.info('Loading config from: %s', '/tmp/conf.yml')
     ]
     assert m_open.mock_calls == [
         call('/tmp/conf.yml', 'r'),
         call().__enter__(),
         call().read(),
         call().__exit__(None, None, None)
     ]
     assert mock_load.mock_calls == [call('foo', Loader=yaml.SafeLoader)]
     assert mock_conf.mock_calls == []