mirror of
https://github.com/ansible/awx.git
synced 2026-03-18 01:17:35 -02:30
optimize transformation
This commit is contained in:
@@ -11,12 +11,12 @@ class KeyTransform(SONManipulator):
|
|||||||
|
|
||||||
def replace_key(self, key):
|
def replace_key(self, key):
|
||||||
for (replace, replacement) in self.replace:
|
for (replace, replacement) in self.replace:
|
||||||
key = key.replace(replace, replacement)
|
key = key.replace(replace, replacement)
|
||||||
return key
|
return key
|
||||||
|
|
||||||
def revert_key(self, key):
|
def revert_key(self, key):
|
||||||
for (replacement, replace) in self.replace:
|
for (replacement, replace) in self.replace:
|
||||||
key = key.replace(replace, replacement)
|
key = key.replace(replace, replacement)
|
||||||
return key
|
return key
|
||||||
|
|
||||||
def replace_incoming(self, obj):
|
def replace_incoming(self, obj):
|
||||||
@@ -49,7 +49,10 @@ class KeyTransform(SONManipulator):
|
|||||||
return self.replace_incoming(son)
|
return self.replace_incoming(son)
|
||||||
|
|
||||||
def transform_outgoing(self, son, collection):
|
def transform_outgoing(self, son, collection):
|
||||||
|
if not collection or collection.name != 'fact':
|
||||||
|
return son
|
||||||
return self.replace_outgoing(son)
|
return self.replace_outgoing(son)
|
||||||
|
|
||||||
def register_key_transform(db):
|
def register_key_transform(db):
|
||||||
db.add_son_manipulator(KeyTransform([('.', '\uff0E'), ('$', '\uff04')]))
|
#db.add_son_manipulator(KeyTransform([('.', '\uff0E'), ('$', '\uff04')]))
|
||||||
|
pass
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
|
|
||||||
from awx.fact.models import FactVersion
|
from awx.fact.models import FactVersion
|
||||||
|
from awx.fact.utils.dbtransform import KeyTransform
|
||||||
from mongoengine.connection import ConnectionError
|
from mongoengine.connection import ConnectionError
|
||||||
from pymongo.errors import OperationFailure
|
from pymongo.errors import OperationFailure
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
@@ -36,10 +37,11 @@ def migrate_facts(apps, schema_editor):
|
|||||||
|
|
||||||
migrated_count = 0
|
migrated_count = 0
|
||||||
not_migrated_count = 0
|
not_migrated_count = 0
|
||||||
|
transform = KeyTransform([('.', '\uff0E'), ('$', '\uff04')])
|
||||||
for factver in FactVersion.objects.all():
|
for factver in FactVersion.objects.all():
|
||||||
fact_obj = factver.fact
|
|
||||||
try:
|
try:
|
||||||
host = Host.objects.only('id').get(inventory__id=factver.host.inventory_id, name=factver.host.hostname)
|
host = Host.objects.only('id').get(inventory__id=factver.host.inventory_id, name=factver.host.hostname)
|
||||||
|
fact_obj = transform.replace_outgoing(factver.fact)
|
||||||
Fact.objects.create(host_id=host.id, timestamp=fact_obj.timestamp, module=fact_obj.module, facts=fact_obj.fact).save()
|
Fact.objects.create(host_id=host.id, timestamp=fact_obj.timestamp, module=fact_obj.module, facts=fact_obj.fact).save()
|
||||||
migrated_count += 1
|
migrated_count += 1
|
||||||
except Host.DoesNotExist:
|
except Host.DoesNotExist:
|
||||||
|
|||||||
Reference in New Issue
Block a user