def _unified_jobs(apps): UnifiedJob = apps.get_model('main', 'UnifiedJob') for uj in UnifiedJob.objects.all(): if uj.start_args is not None: if should_decrypt_field(uj.start_args): uj.start_args = decrypt_field(uj, 'start_args') uj.start_args = encrypt_field(uj, 'start_args') uj.save()
def _credentials(apps): for credential in apps.get_model('main', 'Credential').objects.all(): for field_name in PASSWORD_FIELDS: value = getattr(credential, field_name) if should_decrypt_field(value): value = decrypt_field(credential, field_name) setattr(credential, field_name, value) setattr(credential, field_name, encrypt_field(credential, field_name)) credential.save()
def _notification_templates(apps): NotificationTemplate = apps.get_model('main', 'NotificationTemplate') for nt in NotificationTemplate.objects.all(): CLASS_FOR_NOTIFICATION_TYPE = dict([(x[0], x[2]) for x in NOTIFICATION_TYPES]) notification_class = CLASS_FOR_NOTIFICATION_TYPE[nt.notification_type] for field in filter(lambda x: notification_class.init_parameters[x]['type'] == "password", notification_class.init_parameters): if should_decrypt_field(nt.notification_configuration[field]): nt.notification_configuration[field] = decrypt_field(nt, 'notification_configuration', subfield=field) nt.notification_configuration[field] = encrypt_field(nt, 'notification_configuration', subfield=field) nt.save()
def blank_old_start_args(apps, schema_editor): UnifiedJob = apps.get_model('main', 'UnifiedJob') for uj in UnifiedJob.objects.defer('result_stdout_text').exclude(start_args='').iterator(): if uj.status in ['running', 'pending', 'new', 'waiting']: continue try: args_dict = decrypt_field(uj, 'start_args') except ValueError: args_dict = None if args_dict == {}: continue if uj.start_args: logger.debug('Blanking job args for %s', uj.pk) uj.start_args = '' uj.save()