From 25ffa46bd2f212fbfdb44c51811b99dc2a37a804 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Gabriel=20Jim=C3=A9nez=20Fuentes?= Date: Thu, 21 May 2020 17:28:01 +0200 Subject: [PATCH] no waf metrics (#48) --- pystackpath/stacks/wafsites/__init__.py | 6 +- pystackpath/stacks/wafsites/metrics.py | 99 ------------------------- 2 files changed, 1 insertion(+), 104 deletions(-) delete mode 100644 pystackpath/stacks/wafsites/metrics.py diff --git a/pystackpath/stacks/wafsites/__init__.py b/pystackpath/stacks/wafsites/__init__.py index 9647e7f..52caf8a 100644 --- a/pystackpath/stacks/wafsites/__init__.py +++ b/pystackpath/stacks/wafsites/__init__.py @@ -6,7 +6,6 @@ from pystackpath.stacks.wafsites.policy_groups import PolicyGroups from pystackpath.stacks.wafsites.rules import Rules from pystackpath.stacks.wafsites.events import Events -from pystackpath.stacks.wafsites.metrics import Metrics from pystackpath.stacks.wafsites.traffic import Traffic @@ -30,10 +29,7 @@ def set_monitoring(self): return Monitoring(self._client, f"{self._base_api}/sites/{self.id}") def events(self): - return Events(self._client, f"{self._base_api}/sites/{self.id}") - - def metrics(self): - return Events(self._client, f"{self._base_api}/sites/{self.id}") + return Events(self._client, f"{self._base_api}/sites/{self.id}") def traffic(self): return Traffic(self._client, f"{self._base_api}") diff --git a/pystackpath/stacks/wafsites/metrics.py b/pystackpath/stacks/wafsites/metrics.py deleted file mode 100644 index ca05088..0000000 --- a/pystackpath/stacks/wafsites/metrics.py +++ /dev/null @@ -1,99 +0,0 @@ -import json -from pystackpath.util import BaseObject, api_time_format -from datetime import datetime as dt -from datetime import timedelta - - -ACCEPTED_GRANULARITY = ('AUTO', 'PT5M', 'PT1H', 'P1D', 'P1M') -ACCEPTED_GROUP_BY = ( - 'NONE', 'SITE', 'PLATFORM', 'POP', - 'REGION', 'STATUS', 'STATUS_CATEGORY' -) -ACCEPTED_METRIC_TYPE = ('TRANSFER', 'STATUS_CODE') -DEFAULT_DELTA_TIME = 1 # day - - -class Metrics(BaseObject): - - def index( - self, - start_date=None, - end_date=None, - granularity=ACCEPTED_GRANULARITY[0], - group_by=ACCEPTED_GROUP_BY[0], - status_category=[], - status_code=[], - sites=[], - billing_regions=[], - pops=[], - platforms=[], - site_type_filter=[], - metric_type=ACCEPTED_METRIC_TYPE[0] - ): - """ - Get all the Metrics. - You can use the parameters to add options to your request. - """ - - params = dict() - - if end_date is None: - end_date = dt.today() - if start_date is None: - start_date = end_date - timedelta(days=DEFAULT_DELTA_TIME) - - end_date_iso = api_time_format(end_date) - start_date_iso = api_time_format(start_date) - - if start_date_iso > end_date_iso: - raise ValueError(f"Search start date, \"{start_date_iso}\", is later than end date, \"{end_date_iso}\"!") - - params['start_date'] = start_date_iso - params['end_date'] = end_date_iso - - if granularity not in ACCEPTED_GRANULARITY: - raise ValueError(f"{granularity} is not a valid granularity value: {ACCEPTED_GRANULARITY}") - params['granularity'] = granularity - - if group_by not in ACCEPTED_GROUP_BY: - raise ValueError(f"{group_by} is not a valid group_by value: {ACCEPTED_GROUP_BY}") - params['group_by'] = group_by - - if metric_type not in ACCEPTED_METRIC_TYPE: - raise ValueError(f"{metric_type} is not a valid metric type: {ACCEPTED_METRIC_TYPE}") - params['metric_type'] = metric_type - - if status_category: - params['status_category'] = Metrics._list_to_string(status_category) - - if status_code: - params['status_code'] = Metrics._list_to_string(status_code) - - if sites: - params['sites'] = Metrics._list_to_string(sites) - - if billing_regions: - params['billing_regions'] = Metrics._list_to_string(billing_regions) - - if pops: - params['pops'] = Metrics._list_to_string(pops) - - if platforms: - params['platforms'] = Metrics._list_to_string(platforms) - - if site_type_filter: - params['site_type_filter'] = Metrics._list_to_string(site_type_filter) - - response = self._client.get(f"{self._base_api}/metrics", params=params) - return self.loaddict(response.json()) - - - @staticmethod - def _list_to_string(items, separator=','): - if not isinstance(items, list): - raise ValueError(f"{items} is not a list") - - try: - return separator.join(items) - except Exception as e: - raise ValueError(f"{items} is not valid data: {e}") \ No newline at end of file