Exemple #1
0
def main():
    parser = get_c7n_mailer_parser()
    args = parser.parse_args()
    mailer_config = get_and_validate_mailer_config(args)
    args_dict = vars(args)
    logger = get_logger(debug=args_dict.get('debug', False))

    if args_dict.get('update_lambda'):
        if is_azure_cloud(mailer_config):
            print('\n** Lambda support not available for Azure queues **\n')
            return
        if args_dict.get('debug'):
            print('\n** --debug is only supported with --run, not --update-lambda **\n')
            return
        if args_dict.get('max_num_processes'):
            print('\n** --max-num-processes is only supported '
                  'with --run, not --update-lambda **\n')
            return
        deploy.provision(mailer_config, functools.partial(session_factory, mailer_config))

    if args_dict.get('run'):
        max_num_processes = args_dict.get('max_num_processes')

        # Select correct processor
        if is_azure_cloud(mailer_config):
            processor = MailerAzureQueueProcessor(mailer_config, logger)
        else:
            aws_session = session_factory(mailer_config)
            processor = MailerSqsQueueProcessor(mailer_config, aws_session, logger)

        # Execute
        if max_num_processes:
            run_mailer_in_parallel(processor, max_num_processes)
        else:
            processor.run()
Exemple #2
0
def main():
    parser = get_c7n_mailer_parser()
    args = parser.parse_args()
    mailer_config = get_and_validate_mailer_config(args)
    aws_session = session_factory(mailer_config)
    args_dict = vars(args)
    logger = get_logger(debug=args_dict.get('debug', False))
    if args_dict.get('update_lambda'):
        if args_dict.get('debug'):
            print(
                '\n** --debug is only supported with --run, not --update-lambda **\n'
            )
            return
        if args_dict.get('max_num_processes'):
            print(
                '\n** --max-num-processes is only supported with --run, not --update-lambda **\n'
            )
            return
        deploy.provision(mailer_config,
                         functools.partial(session_factory, mailer_config))
    if args_dict.get('run'):
        max_num_processes = args_dict.get('max_num_processes')
        if max_num_processes:
            run_mailer_in_parallel(mailer_config, aws_session, logger,
                                   max_num_processes)
        else:
            MailerSqsQueueProcessor(mailer_config, aws_session, logger).run()
Exemple #3
0
def main():
    parser = get_c7n_mailer_parser()
    args = parser.parse_args()
    mailer_config = get_and_validate_mailer_config(args)
    args_dict = vars(args)
    logger = get_logger(debug=args_dict.get('debug', False))

    module_dir = path.dirname(path.abspath(__file__))
    default_templates = [
        path.abspath(path.join(module_dir, 'msg-templates')),
        path.abspath(path.join(module_dir, '..', 'msg-templates')),
        path.abspath('.')
    ]
    templates = args_dict.get('templates', None)
    if templates:
        default_templates.append(
            path.abspath(path.expanduser(path.expandvars(templates))))

    mailer_config['templates_folders'] = default_templates

    provider = get_provider(mailer_config)
    if args_dict.get('update_lambda'):
        if args_dict.get('debug'):
            print(
                '\n** --debug is only supported with --run, not --update-lambda **\n'
            )
            return
        if args_dict.get('max_num_processes'):
            print('\n** --max-num-processes is only supported '
                  'with --run, not --update-lambda **\n')
            return

        if provider == Providers.Azure:
            azure_deploy.provision(mailer_config)
        elif provider == Providers.AWS:
            deploy.provision(mailer_config,
                             functools.partial(session_factory, mailer_config))

    if args_dict.get('run'):
        max_num_processes = args_dict.get('max_num_processes')

        # Select correct processor
        if provider == Providers.Azure:
            processor = MailerAzureQueueProcessor(mailer_config, logger)
        elif provider == Providers.AWS:
            aws_session = session_factory(mailer_config)
            processor = MailerSqsQueueProcessor(mailer_config, aws_session,
                                                logger)

        # Execute
        if max_num_processes:
            run_mailer_in_parallel(processor, max_num_processes)
        else:
            processor.run()
Exemple #4
0
def main():
    parser = get_c7n_mailer_parser()
    args = parser.parse_args()
    mailer_config = get_and_validate_mailer_config(args)
    args_dict = vars(args)
    logger = get_logger(debug=args_dict.get('debug', False))

    module_dir = path.dirname(path.abspath(__file__))
    default_templates = [path.abspath(path.join(module_dir, 'msg-templates')),
                         path.abspath(path.join(module_dir, '..', 'msg-templates')),
                         path.abspath('.')]
    templates = args_dict.get('templates', None)
    if templates:
        default_templates.append(path.abspath(path.expanduser(path.expandvars(templates))))

    mailer_config['templates_folders'] = default_templates

    if args_dict.get('update_lambda'):
        if args_dict.get('debug'):
            print('\n** --debug is only supported with --run, not --update-lambda **\n')
            return
        if args_dict.get('max_num_processes'):
            print('\n** --max-num-processes is only supported '
                  'with --run, not --update-lambda **\n')
            return

        if is_azure_cloud(mailer_config):
            azure_deploy.provision(mailer_config)
        else:
            deploy.provision(mailer_config, functools.partial(session_factory, mailer_config))

    if args_dict.get('run'):
        max_num_processes = args_dict.get('max_num_processes')

        # Select correct processor
        if is_azure_cloud(mailer_config):
            processor = MailerAzureQueueProcessor(mailer_config, logger)
        else:
            aws_session = session_factory(mailer_config)
            processor = MailerSqsQueueProcessor(mailer_config, aws_session, logger)

        # Execute
        if max_num_processes:
            run_mailer_in_parallel(processor, max_num_processes)
        else:
            processor.run()
Exemple #5
0
def main():
    parser = setup_parser()
    options = parser.parse_args()

    import logging
    logging.basicConfig(level=logging.DEBUG)
    logging.getLogger('botocore').setLevel(logging.WARNING)

    with open(options.config) as fh:
        config = yaml.load(fh.read(), Loader=yaml.SafeLoader)

    jsonschema.validate(config, CONFIG_SCHEMA)
    utils.setup_defaults(config)

    try:
        deploy.provision(config, functools.partial(session_factory, config))
    except Exception:
        import traceback, pdb, sys
        traceback.print_exc()
        pdb.post_mortem(sys.exc_info()[-1])
Exemple #6
0
def main():
    parser = get_c7n_mailer_parser()
    args = parser.parse_args()
    mailer_config = get_and_validate_mailer_config(args)
    aws_session = session_factory(mailer_config)
    args_dict = vars(args)
    logger = get_logger(debug=args_dict.get('debug', False))
    if args_dict.get('update_lambda'):
        if args_dict.get('debug'):
            print('\n** --debug is only supported with --run, not --update-lambda **\n')
            return
        if args_dict.get('max_num_processes'):
            print('\n** --max-num-processes is only supported with --run, not --update-lambda **\n')
            return
        deploy.provision(mailer_config, functools.partial(session_factory, mailer_config))
    if args_dict.get('run'):
        max_num_processes = args_dict.get('max_num_processes')
        if max_num_processes:
            run_mailer_in_parallel(mailer_config, aws_session, logger, max_num_processes)
        else:
            MailerSqsQueueProcessor(mailer_config, aws_session, logger).run()
Exemple #7
0
def main():
    parser = get_c7n_mailer_parser()
    args = parser.parse_args()
    mailer_config = get_and_validate_mailer_config(args)
    args_dict = vars(args)
    logger = get_logger(debug=args_dict.get('debug', False))

    if args_dict.get('update_lambda'):
        if args_dict.get('debug'):
            print('\n** --debug is only supported with --run, not --update-lambda **\n')
            return
        if args_dict.get('max_num_processes'):
            print('\n** --max-num-processes is only supported '
                  'with --run, not --update-lambda **\n')
            return

        if is_azure_cloud(mailer_config):
            azure_deploy.provision(mailer_config)
        else:
            deploy.provision(mailer_config, functools.partial(session_factory, mailer_config))

    if args_dict.get('run'):
        max_num_processes = args_dict.get('max_num_processes')

        # Select correct processor
        if is_azure_cloud(mailer_config):
            processor = MailerAzureQueueProcessor(mailer_config, logger)
        else:
            aws_session = session_factory(mailer_config)
            processor = MailerSqsQueueProcessor(mailer_config, aws_session, logger)

        # Execute
        if max_num_processes:
            run_mailer_in_parallel(processor, max_num_processes)
        else:
            processor.run()
Exemple #8
0
 def run(self):
     conf = self.mailer_config
     mailer_deploy.provision(
         conf,
         functools.partial(session_factory, conf)
     )