Skip to content

Commit 2ea216b

Browse files
committed
fix: update return chunk through yield
1 parent 65ca89b commit 2ea216b

3 files changed

Lines changed: 9 additions & 5 deletions

File tree

src/spaceone/monitoring/conf/monitoring_conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
DEFAULT_REGION = 'us-east-1'
22
DEFAULT_SCHEMA = 'aws_access_key'
3-
NUM_OF_LIMIT = 100
43
PAGINATOR_MAX_ITEMS = 10000
54
PAGINATOR_PAGE_SIZE = 50
5+
LIMIT = 1000
66

77
EXCLUDE_EVENT_NAME = [
88
'AddTags',

src/spaceone/monitoring/connector/cloudtrail_connector.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import logging
22
from spaceone.core.utils import load_json
33
from spaceone.monitoring.libs.connector import AWSConnector
4+
from spaceone.monitoring.conf.monitoring_conf import *
5+
46

57
_LOGGER = logging.getLogger(__name__)
68

@@ -15,7 +17,7 @@ def lookup_events(self, params):
1517
query = params['query']
1618
start = params['start']
1719
end = params['end']
18-
limit = params.get('limit', 1000) # Force throttling because too many events cause performance issues
20+
limit = params.get('limit', LIMIT) # Force throttling because too many events cause performance issues
1921

2022
lookup_attributes = query.get('LookupAttributes', [])
2123

src/spaceone/monitoring/manager/monitoring_manager.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ def lookup_events(self, params):
3333

3434
region_name = params['query'].get('region_name', DEFAULT_REGION)
3535
resource_type = params['query'].get('resource_type')
36+
limit = params.get('limit', LIMIT)
3637

3738
cloudtrail_connector: CloudTrailConnector = self.locator.get_connector('CloudTrailConnector', **params)
3839
cloudtrail_connector.set_client(region_name)
@@ -47,21 +48,23 @@ def lookup_events(self, params):
4748
events.extend(self.get_events_iam_user(params))
4849

4950
event_chunk = []
50-
for event in events:
51+
for event in events[:limit]:
5152
event_chunk.append(event)
5253

5354
if len(event_chunk) == PAGINATOR_PAGE_SIZE:
5455
yield event_chunk
5556
event_chunk = []
5657

58+
yield event_chunk
59+
5760
def set_events(self, events, keyword, resource_type):
5861
event_vos = []
5962
for event in events:
6063
if keyword:
6164
if keyword.lower() not in event.get('EventName', '').lower():
6265
continue
6366

64-
if resource_type:
67+
if resource_type and resource_type != 'AWS::IAM::AccessKey':
6568
if filtered_event := self.filter_resource_type(event, resource_type):
6669
event_vos.append(filtered_event)
6770
else:
@@ -103,7 +106,6 @@ def get_events_iam_access_key(self, params):
103106
cloudtrail_connector.set_client(region_name)
104107
for access_key_events in cloudtrail_connector.lookup_events(params):
105108
events.extend(access_key_events)
106-
107109
return sorted(events, key=lambda event: event.get('EventTime'), reverse=True)
108110

109111
@staticmethod

0 commit comments

Comments
 (0)