Ejemplo n.º 1
0
    def record_class_and_instance_string(self, record):
        from chroma_core.lib.storage_plugin.manager import storage_plugin_manager
        # Get the BaseStorageResource class and have it translate the alert_class
        klass = storage_plugin_manager.get_resource_class_by_id(
            record.resource_class_id)

        return klass._meta.label, record.to_resource().get_label()
Ejemplo n.º 2
0
 def delete_attribute(self, attr_name):
     from chroma_core.lib.storage_plugin.manager import storage_plugin_manager
     resource_class = storage_plugin_manager.get_resource_class_by_id(
         self.resource_class_id)
     model_class = resource_class.attr_model_class(attr_name)
     try:
         model_class.objects.get(resource=self, key=attr_name).delete()
     except model_class.DoesNotExist:
         pass
    def record_alert_message(self, record_id, alert_class):
        from chroma_core.lib.storage_plugin.manager import storage_plugin_manager
        # Get the StorageResourceRecord
        record = StorageResourceRecord.objects.get(pk=record_id)

        # Get the BaseStorageResource class and have it translate the alert_class
        klass = storage_plugin_manager.get_resource_class_by_id(
            record.resource_class_id)
        msg = "%s (%s %s)" % (klass.alert_message(alert_class), klass._meta.label, record.alias_or_name())
        return msg
Ejemplo n.º 4
0
    def to_resource(self):
        from chroma_core.lib.storage_plugin.manager import storage_plugin_manager
        klass = storage_plugin_manager.get_resource_class_by_id(
            self.resource_class_id)
        attr_model_to_keys = defaultdict(list)
        for attr, attr_props in klass._meta.storage_attributes.items():
            attr_model_to_keys[attr_props.model_class].append(attr)
        storage_dict = {}
        for attr_model, keys in attr_model_to_keys.items():
            for attr in attr_model.objects.filter(resource=self, key__in=keys):
                storage_dict[attr.key] = attr_model.decode(attr.value)

        resource = klass(**storage_dict)
        resource._handle = self.id
        resource._handle_global = True
        return resource
    def update_attribute(self, key, val):
        from chroma_core.lib.storage_plugin.manager import storage_plugin_manager

        resource_class = storage_plugin_manager.get_resource_class_by_id(self.resource_class_id)

        # Try to update an existing record
        attr_model_class = resource_class.attr_model_class(key)
        updated = attr_model_class.objects.filter(resource=self, key=key).update(value=attr_model_class.encode(val))
        # If there was no existing record, create one
        if updated == 0:
            from django.db import IntegrityError

            try:
                attr_model_class.objects.create(resource=self, key=key, value=attr_model_class.encode(val))
            except IntegrityError:
                # Collided with another update, order undefined so let him win
                pass
Ejemplo n.º 6
0
 def get_class(self):
     from chroma_core.lib.storage_plugin.manager import storage_plugin_manager
     return storage_plugin_manager.get_resource_class_by_id(self.pk)