Ejemplo n.º 1
0
    def WriteMetadataDescriptors(self, metrics_metadata, timestamp=None):
        current_metadata = self.Get(
            self.Schema.METRICS_METADATA,
            default=stats_values.StatsStoreMetricsMetadata())

        if current_metadata.AsDict() != metrics_metadata:
            store_metadata = stats_values.StatsStoreMetricsMetadata(
                metrics=list(itervalues(metrics_metadata)))
            self.AddAttribute(self.Schema.METRICS_METADATA,
                              store_metadata,
                              age=timestamp)
            self.Flush()
Ejemplo n.º 2
0
    def MultiReadMetadata(self, process_ids=None):
        """Reads metadata of stored values for multiple given processes."""

        if not process_ids:
            process_ids = self.ListUsedProcessIds()

        subjects = [
            self.DATA_STORE_ROOT.Add(process_id) for process_id in process_ids
        ]
        subjects_data = aff4.FACTORY.MultiOpen(subjects,
                                               mode="r",
                                               token=self.token,
                                               aff4_type=StatsStoreProcessData)

        results = {}
        for subject_data in subjects_data:
            results[subject_data.urn.Basename()] = subject_data.Get(
                subject_data.Schema.METRICS_METADATA)

        for process_id in process_ids:
            results.setdefault(process_id,
                               stats_values.StatsStoreMetricsMetadata())

        return results