Source code for document.ebpf_program.instance

from document.base import Base_Document
from elasticsearch_dsl import Date, InnerDoc as Inner_Doc, Nested, Text

__all__ = [
    'eBPF_Program_Instance_Document'
]

class eBPF_Program_Instance_Parameter_Inner_Doc(Inner_Doc):
    """Parameter of the eBPF Program instance installed in an execution environment."""
    id = Text(required=True)
    # value = Raw() # FIXME Raw?
    timestamp = Date(required=True)


[docs]class eBPF_Program_Instance_Document(Base_Document): """Represents an eBPF program installed in an execution environment.""" # id already defined by Elasticsearch ebpf_program_catalog_id = Text(required=True) exec_env_id = Text(required=True) parameters = Nested(eBPF_Program_Instance_Parameter_Inner_Doc) description = Text()
[docs] class Index: """Elasticsearch configuration.""" name = 'ebpf-program-instance'
def edit_parameter(self, parameter): so = self.Status_Operation id = parameter.get('id', None) for p in self.parameters: val = parameter.get('value', None) ts = parameter.get('timestamp', None) if p.id == id: if p.value != val or p.timestamp != ts: p.value = val p.timestamp = ts return so.UPDATED return so.NOT_MODIFIED self.parameters.append(eBPF_Program_Instance_Parameter_Inner_Doc(**parameter)) return so.UPDATED