Skip to content

Commit 80b7de1

Browse files
authored
Merge pull request #1 from geoteo/bugfix-windows_timezone_incompatibility
Updated with new dependency for windows tz ability
2 parents 069e37c + 281ce7a commit 80b7de1

File tree

4 files changed

+43
-30
lines changed

4 files changed

+43
-30
lines changed

Pipfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ autopep8 = "*"
99

1010
[packages]
1111
plugin-sdk = {path = "./plugin_sdk-1.199.47.20200729.170225-py3-none-any.whl"}
12+
pytz = "*"
1213

1314
[requires]
1415
python_version = "3.6"

Pipfile.lock

Lines changed: 32 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

audit_activegate_plugin.py

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,12 @@
1212
1313
'''
1414
from ruxit.api.base_plugin import RemoteBasePlugin
15+
from datetime import datetime, timedelta
1516
from math import floor
17+
from time import sleep
1618
import requests
1719
import logging
18-
import time
19-
import os
20+
import pytz
2021

2122
logger = logging.getLogger(__name__)
2223

@@ -49,13 +50,9 @@ def initialize(self, **kwargs):
4950
}
5051

5152
self.pollingInterval = int(config['pollingInterval']) * 60 * 1000
52-
self.start_time = floor(time.time()*1000) - self.pollingInterval
53-
54-
55-
os.environ['TZ'] = config['timezone']
56-
time.tzset()
57-
logging.info(f" Timezone: {config['timezone']} and ENV: {os.environ['TZ']} and tzname {time.tzname}")
5853

54+
self.timezone = pytz.timezone(config['timezone'])
55+
self.start_time = floor(datetime.now().timestamp()*1000) - self.pollingInterval
5956
self.verify_ssl = config['verify_ssl']
6057
if not self.verify_ssl:
6158
requests.packages.urllib3.disable_warnings()
@@ -73,7 +70,7 @@ def make_api_request(self, http_method, endpoint, json=None):
7370
response = requests.request(http_method, f"{self.url}{endpoint}", json=json, headers=self.headers, verify=self.verify_ssl)
7471
if response.status_code == 429:
7572
logging.info("AUDIT - RATE LIMITED! SLEEPING...")
76-
time.sleep(response.headers['X-RateLimit-Reset']/1000000)
73+
sleep(response.headers['X-RateLimit-Reset']/1000000)
7774
else:
7875
break
7976
return response.json()
@@ -114,7 +111,7 @@ def post_annotations(self, eventType, user, category, timestamp, entityId, patch
114111
"eventType": eventType,
115112
"User": user,
116113
"Category": category,
117-
"Timestamp": time.strftime("%a, %d %b %Y %H:%M:%S %z", time.localtime(timestamp/1000)),
114+
"Timestamp": datetime.now(tz=self.timezone).strftime("%a, %d %b %Y %H:%M:%S %z"),
118115
"entityId": entityId,
119116
"Change": patch
120117
},
@@ -183,7 +180,7 @@ def query(self, **kwargs):
183180
'''
184181
Routine call from the ActiveGate
185182
'''
186-
self.end_time = floor(time.time()*1000)
183+
self.end_time = floor(datetime.now().timestamp()*1000)
187184
if self.end_time - self.start_time >= self.pollingInterval:
188185
audit_logs = self.get_audit_logs()
189186
self.process_audit_payload(audit_logs)

plugin.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "custom.remote.python.automated_configuration_audit",
3-
"version": "2.0.0",
3+
"version": "2.0.1",
44
"type": "python",
55
"requiredAgentVersion": "1.101.0",
66
"entity": "CUSTOM_DEVICE",
@@ -9,7 +9,7 @@
99
"source": {
1010
"package": "audit_activegate_plugin",
1111
"className": "AuditPluginRemote",
12-
"install_requires": ["requests>=2.6.0"],
12+
"install_requires": ["requests>=2.6.0", "pytz>=2020.1"],
1313
"activation": "Remote"
1414
},
1515
"metrics": [

0 commit comments

Comments
 (0)