Beispiel #1
0
    def test_get_domain_ids_by_names(self):
        def _create_domain(name):
            domain = Domain(name=name)
            domain.save()
            self.addCleanup(domain.delete)
            return domain._id

        names = ['b', 'a', 'c']
        expected_ids = [_create_domain(name) for name in names]

        ids = get_domain_ids_by_names(names)
        self.assertEqual(ids, expected_ids)

        ids = get_domain_ids_by_names(names[:-1])
        self.assertEqual(ids, expected_ids[:-1])
Beispiel #2
0
def _filter_missing_domains(configs):
    """Return a list of configs whose domain exists on this environment"""
    domain_names = [config.domain for config in configs if config.is_static]
    existing_domains = list(get_domain_ids_by_names(domain_names))
    return [
        config for config in configs
        if not config.is_static or config.domain in existing_domains
    ]
Beispiel #3
0
def _filter_missing_domains(configs):
    """Return a list of configs whose domain exists on this environment"""
    domain_names = [config.domain for config in configs if config.is_static]
    existing_domains = list(get_domain_ids_by_names(domain_names))
    return [
        config for config in configs
        if not config.is_static or config.domain in existing_domains
    ]
Beispiel #4
0
def _filter_domains_to_skip(configs):
    """Return a list of configs whose domain exists on this environment"""
    domain_names = list({config.domain for config in configs if config.is_static})
    existing_domains = list(get_domain_ids_by_names(domain_names))
    migrating_domains = all_domains_with_migrations_in_progress()
    return [
        config for config in configs
        if config.domain not in migrating_domains and (not config.is_static or config.domain in existing_domains)
    ]
Beispiel #5
0
    def handle(self, migration_file, **options):
        name_by_map = {}
        with open(migration_file, 'rb') as csvfile:
            reader = csv.reader(csvfile, delimiter=',')
            for row in reader:
                name_by_map[row[0]] = row[1]

        domain_ids = get_domain_ids_by_names(name_by_map.keys())

        def update_domain(doc):
            domain = Domain.wrap(doc)
            new_bu = name_by_map[domain.name]
            if new_bu not in BUSINESS_UNITS:
                print('Unknown BU: domain={}, BU={}'.format(domain.name, new_bu))
                return
            domain.internal.business_unit = new_bu
            return DocUpdate(doc)

        iter_update(Domain.get_db(), update_domain, domain_ids, verbose=True)
Beispiel #6
0
    def handle(self, *args, **options):
        if len(args) != 1:
            raise CommandError("Usage is ./manage.py migrate_domain_bu [migration_file]!")

        name_by_map = {}
        with open(args[0], 'rb') as csvfile:
            reader = csv.reader(csvfile, delimiter=',')
            for row in reader:
                name_by_map[row[0]] = row[1]

        domain_ids = get_domain_ids_by_names(name_by_map.keys())

        def update_domain(doc):
            domain = Domain.wrap(doc)
            new_bu = name_by_map[domain.name]
            if new_bu not in BUSINESS_UNITS:
                print 'Unknown BU: domain={}, BU={}'.format(domain.name, new_bu)
                return
            domain.internal.business_unit = new_bu
            return DocUpdate(doc)

        iter_update(Domain.get_db(), update_domain, domain_ids, verbose=True)