def main(): args = sys.argv dry_run = False while len(args) > 1: arg = args.pop() if arg == "--dry-run": dry_run = True else: print( f"Unknown option: {arg}\nUsage: python3 -m flagger [--dry-run]" ) exit(1) if dry_run: print("Dry run: not making any actual changes") with session_handler() as session: domains = queries.find_domains(session) print(f"{len(domains)} domain(s) found") for domain in domains: aws.create_semaphore(domain, dry_run) with session_handler() as session: domain_cdns = queries.find_cdn_aliases(session) for domain_cdn in domain_cdns: aws.create_cdn_alias(*domain_cdn, dry_run) with session_handler() as session: domain_albs = queries.find_domain_aliases(session) for domain_alb in domain_albs: aws.create_domain_alias(*domain_alb, dry_run)
def clean_db(): with session_handler() as session: session.execute("TRUNCATE TABLE user_data CASCADE", bind=cdn_engine) session.execute("TRUNCATE TABLE routes CASCADE", bind=cdn_engine) session.execute("TRUNCATE TABLE certificates CASCADE", bind=cdn_engine) session.execute("TRUNCATE TABLE user_data CASCADE", bind=domain_engine) session.execute("TRUNCATE TABLE routes CASCADE", bind=domain_engine) session.execute("TRUNCATE TABLE certificates CASCADE", bind=domain_engine) session.execute("TRUNCATE TABLE alb_proxies CASCADE", bind=domain_engine) session.commit() session.close() yield session session.execute("TRUNCATE TABLE user_data CASCADE", bind=cdn_engine) session.execute("TRUNCATE TABLE routes CASCADE", bind=cdn_engine) session.execute("TRUNCATE TABLE certificates CASCADE", bind=cdn_engine) session.execute("TRUNCATE TABLE user_data CASCADE", bind=domain_engine) session.execute("TRUNCATE TABLE routes CASCADE", bind=domain_engine) session.execute("TRUNCATE TABLE certificates CASCADE", bind=domain_engine) session.execute("TRUNCATE TABLE alb_proxies CASCADE", bind=domain_engine) session.commit() session.close()
def main(): logging.basicConfig(level=logging.DEBUG) args = parse_args(sys.argv[1:]) check_connections() if args.cron: schedule.every().tuesday.at(config.MIGRATION_TIME).do(run_and_report) schedule.every().wednesday.at(config.MIGRATION_TIME).do(run_and_report) schedule.every().thursday.at(config.MIGRATION_TIME).do(run_and_report) while True: time.sleep(1) schedule.run_pending() elif args.instance: with session_handler() as session: migrate_single_instance( args.instance, session, get_cf_client(config), skip_dns_check=args.force )
def test_can_create_route(): # the assertion here is really just that no exceptions are raised # note that we shouldn't _actually_ be creating routes in this project # but this is a test we can do with an empty database with db.session_handler() as session: route = models.CdnRoute() route.id = 12345 route.instance_id = "disposable-route-id" route.state = "deprovisioned" session.add(route) session.commit() route = session.query(models.CdnRoute).filter_by(id=12345).first() session.delete(route) session.commit() session.close()
def test_can_create_route(): # the assertion here is really just that no exceptions are raised # note that we shouldn't _actually_ be creating routes in this project # but this is a test we can do with an empty database with db.session_handler() as session: route = models.DomainRoute() route.instance_id = "12345" route.state = "deprovisioned" route.domains = ["example1.com", "example2.com", "example3.com"] session.add(route) session.commit() route = session.query( models.DomainRoute).filter_by(instance_id="12345").first() session.delete(route) session.commit() session.close()
def run_and_report(): with session_handler() as session: results = migrate_ready_instances(session, get_cf_client(config)) send_report_email(results)
def test_can_get_session(): with db.session_handler() as session: result = session.execute("SELECT count(1) FROM certificates", bind=db.domain_engine) assert result.first() == (0, )