Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/c7n_gcp/filters/timerange.py: 47%
30 statements
« prev ^ index » next coverage.py v7.3.2, created at 2023-12-08 06:51 +0000
« prev ^ index » next coverage.py v7.3.2, created at 2023-12-08 06:51 +0000
1# Copyright The Cloud Custodian Authors.
2# SPDX-License-Identifier: Apache-2.0
3import datetime
4from c7n.filters.core import Filter
5from c7n.utils import type_schema
7"""
8GC Filter to find resources based on time range
9"""
12class TimeRangeFilter(Filter):
14 schema = type_schema('time-range',
15 value={'$ref': '#/definitions/filters_common/value'})
17 datetime1_pattern = "%Y-%m-%dT%H:%M:%S.%fZ"
18 datetime2_pattern = "%Y-%m-%dT%H:%M:%S"
20 permissions = ()
21 create_time_field_name = ''
22 expire_time_field_name = ''
24 def process(self, resources, event=None):
25 filtered_resources = []
26 value = self.data.get('value')
28 for resource in resources:
29 create_time_pattern = self.datetime1_pattern
30 expired_time_pattern = self.datetime1_pattern
31 expired_time = resource[self.expire_time_field_name]
32 create_time = resource[self.create_time_field_name]
33 if '.' not in expired_time and 'Z' in expired_time:
34 expired_time_pattern = self.datetime2_pattern
35 expired_time = expired_time[:-1]
36 if '.' not in create_time and 'Z' in create_time:
37 create_time_pattern = self.datetime2_pattern
38 create_time = create_time[:-1]
40 filtered_expired_time = datetime.datetime.strptime(
41 expired_time, expired_time_pattern)
42 filtered_start_time = datetime.datetime.strptime(
43 create_time, create_time_pattern)
44 result_time = filtered_expired_time - filtered_start_time
45 if int(result_time.days) < value:
46 filtered_resources.append(resource)
48 return filtered_resources