Пример #1
0
    def process_measure_for_metric(self, metric_id):
        sack = self.sack_for_metric(metric_id)
        sack_name = self.get_sack_name(sack)
        files = self._list_measure_files_for_metric(sack, metric_id)

        yield self._array_concatenate([
            self._unserialize_measures(
                f['name'],
                self.swift.get_object(sack_name, f['name'])[1],
            ) for f in files
        ])

        # Now clean objects
        swift.bulk_delete(self.swift, sack_name, files)
Пример #2
0
    def process_measure_for_metric(self, metric):
        sack = self.sack_for_metric(metric.id)
        sack_name = self.get_sack_name(sack)
        files = self._list_measure_files_for_metric_id(sack, metric.id)

        measures = []
        for f in files:
            headers, data = self.swift.get_object(sack_name, f['name'])
            measures.extend(self._unserialize_measures(f['name'], data))

        yield measures

        # Now clean objects
        swift.bulk_delete(self.swift, sack_name, files)
Пример #3
0
 def _delete_metric(self, metric):
     container = self._container_name(metric)
     try:
         headers, files = self.swift.get_container(
             container, full_listing=True)
     except swclient.ClientException as e:
         if e.http_status != 404:
             # Maybe it never has been created (no measure)
             raise
     else:
         swift.bulk_delete(self.swift, container, files)
         try:
             self.swift.delete_container(container)
         except swclient.ClientException as e:
             if e.http_status != 404:
                 # Deleted in the meantime? Whatever.
                 raise
Пример #4
0
 def _delete_metric(self, metric):
     container = self._container_name(metric)
     try:
         headers, files = self.swift.get_container(
             container, full_listing=True)
     except swclient.ClientException as e:
         if e.http_status != 404:
             # Maybe it never has been created (no measure)
             raise
     else:
         swift.bulk_delete(self.swift, container, files)
         try:
             self.swift.delete_container(container)
         except swclient.ClientException as e:
             if e.http_status != 404:
                 # Deleted in the meantime? Whatever.
                 raise
Пример #5
0
    def process_measure_for_metrics(self, metric_ids):
        measures = {}
        all_files = defaultdict(list)
        for metric_id in metric_ids:
            sack = self.sack_for_metric(metric_id)
            sack_name = str(sack)
            files = self._list_measure_files_for_metric(sack, metric_id)
            all_files[sack_name].extend(files)
            measures[metric_id] = self._array_concatenate([
                self._unserialize_measures(
                    f['name'],
                    self.swift.get_object(sack_name, f['name'])[1],
                ) for f in files
            ])

        yield measures

        # Now clean objects
        for sack_name, files in six.iteritems(all_files):
            swift.bulk_delete(self.swift, sack_name, files)
Пример #6
0
    def process_measure_for_metrics(self, metric_ids):
        measures = {}
        all_files = defaultdict(list)
        for metric_id in metric_ids:
            sack = self.sack_for_metric(metric_id)
            sack_name = str(sack)
            files = self._list_measure_files_for_metric(sack, metric_id)
            all_files[sack_name].extend(files)
            measures[metric_id] = self._array_concatenate([
                self._unserialize_measures(
                    f['name'],
                    self.swift.get_object(sack_name, f['name'])[1],
                )
                for f in files
            ])

        yield measures

        # Now clean objects
        for sack_name, files in six.iteritems(all_files):
            swift.bulk_delete(self.swift, sack_name, files)
Пример #7
0
    def process_measures_for_sack(self, sack):
        measures = defaultdict(self._make_measures_array)
        sack_name = str(sack)
        headers, files = self.swift.get_container(sack_name, full_listing=True)
        for f in files:
            try:
                metric_id, random_id = f['name'].split("/")
                metric_id = uuid.UUID(metric_id)
            except ValueError:
                LOG.warning("Unable to parse measure file name %s", f)
                continue
            measures[metric_id] = self._array_concatenate([
                measures[metric_id],
                self._unserialize_measures(
                    metric_id,
                    self.swift.get_object(sack_name, f['name'])[1],
                )
            ])

        yield measures

        swift.bulk_delete(self.swift, sack_name, files)
Пример #8
0
    def process_measures_for_sack(self, sack):
        measures = defaultdict(self._make_measures_array)
        sack_name = str(sack)
        headers, files = self.swift.get_container(sack_name, full_listing=True)
        for f in files:
            try:
                metric_id, random_id = f['name'].split("/")
                metric_id = uuid.UUID(metric_id)
            except ValueError:
                LOG.warning("Unable to parse measure file name %s", f)
                continue
            measures[metric_id] = self._array_concatenate([
                measures[metric_id],
                self._unserialize_measures(
                    metric_id,
                    self.swift.get_object(sack_name, f['name'])[1],
                )
            ])

        yield measures

        swift.bulk_delete(self.swift, sack_name, files)
Пример #9
0
 def delete_unprocessed_measures_for_metric(self, metric_id):
     sack = self.sack_for_metric(metric_id)
     files = self._list_measure_files_for_metric(sack, metric_id)
     swift.bulk_delete(self.swift, self.get_sack_name(sack), files)
Пример #10
0
 def delete_unprocessed_measures_for_metric(self, metric_id):
     sack = self.sack_for_metric(metric_id)
     files = self._list_measure_files_for_metric(sack, metric_id)
     swift.bulk_delete(self.swift, str(sack), files)