rubrik-sdk-for-python icon indicating copy to clipboard operation
rubrik-sdk-for-python copied to clipboard

Timestamp Calculation doesn't work in Windows

Open squintsgeek opened this issue 2 years ago • 3 comments

In lines 2061 and 2077 in data_management.py, the %s format code is platform-dependent on *nix-like OSes, and the _validate_sql_recovery_point() method (and any dependencies that rely on this method) will abend in Windows with a "invalid string format" error:

recovery_timestamp = int(recovery_date_time.strftime('%s')) * 1000

However, this line is platform-independent, and will work with any Python version:

recovery_timestamp = (recovery_date_time-datetime(1970,1,1,0,0,0)).total_seconds() * 1000

I’ve tested the replacement in a v3.7 venv on my Windows machine, and it appears to fix the problem.

squintsgeek avatar Aug 24 '22 19:08 squintsgeek

If it is working now, then maybe close this issue?

kambleakash0 avatar Sep 08 '22 13:09 kambleakash0

Ah, when I say "I’ve tested the replacement [...]and it appears to fix the problem" I mean that I am able to test and validate the bug locally on my own environment. It still exists, and still affects anyone using the Data Management portion of the SDK on Windows.

Apologies for any confusion.

squintsgeek avatar Sep 08 '22 13:09 squintsgeek

Same problem here:

   2075                 recovery_date_time, '%Y-%m-%dT%H:%M')
   2076             # Create recovery timestamp in (ms) as integer from datetime object
-> 2077             recovery_timestamp = int(recovery_date_time.strftime('%s')) * 1000
   2078 
   2079             for range in range_summary['data']:

ValueError: Invalid format string

edit: Also, I'm using python venv 3.6.4. @squintsgeek solutions works for me

guillermo-caylent avatar Jan 25 '23 20:01 guillermo-caylent