MCPcopy Create free account
hub / github.com/Keeper-Security/Commander / execute

Method execute

keepercommander/commands/aram.py:1893–2025  ·  view source on GitHub ↗
(self, params, **kwargs)

Source from the content-addressed store, hash-verified

1891 return aging_report_parser
1892
1893 def execute(self, params, **kwargs):
1894 def get_floor(duration): # type: (str) -> Union[datetime.datetime, None]
1895 now_dt = datetime.datetime.now()
1896 if not duration:
1897 logging.info('\n\nThe default password aging period is 3 months\n'
1898 'To change this value pass --period=[PERIOD] parameter\n'
1899 '[PERIOD] example: 10d for 10 days; 3m for 3 months; 1y for 1 year\n\n')
1900 duration = '3m'
1901 co = duration[-1]
1902 try:
1903 va = abs(int(duration[:-1]))
1904 except:
1905 logging.warning(f'Invalid period: {duration}')
1906 return None
1907
1908 if co != 'd':
1909 if co == 'm':
1910 va *= 30
1911 elif co == 'y':
1912 va *= 365
1913 else:
1914 logging.warning(f'Invalid period: {duration}')
1915 return None
1916 return now_dt - datetime.timedelta(days=va)
1917
1918 def parse_date(date_str):
1919 fmts = ['%Y-%m-%d', '%Y.%m.%d', '%Y/%m/%d', '%m-%d-%Y', '%m.%d.%Y', '%m/%d/%Y']
1920 for fmt in fmts:
1921 try:
1922 return datetime.datetime.strptime(date_str, fmt)
1923 except ValueError:
1924 pass
1925 fmts_str = '\n'.join(fmts)
1926 msg = 'Unrecognized date format: must be one of the following\n' + fmts_str
1927 raise CommandError('aging-report', msg)
1928
1929 enterprise_id = next(((x['node_id'] >> 32) for x in params.enterprise['nodes']), 0)
1930 if kwargs.get('delete') is True:
1931 db_name = get_sox_database_name(params, enterprise_id)
1932 if os.path.isfile(db_name):
1933 os.remove(db_name)
1934 logging.info('Local encrypted storage has been deleted.')
1935 else:
1936 logging.info('Local encrypted storage does not exist.')
1937 return
1938
1939 cutoff_date = kwargs.get('cutoff_date')
1940 period = kwargs.get('period')
1941 dt = parse_date(cutoff_date) if cutoff_date else get_floor(period)
1942 period_min_ts = int(dt.timestamp())
1943
1944 rebuild = kwargs.get('rebuild')
1945 exclude_deleted = kwargs.get('exclude_deleted')
1946 in_shared_folder = kwargs.get('in_shared_folder')
1947 node_id = get_node_id(params, enterprise_id)
1948
1949 # Pre-filter to specific user if --username is set
1950 user_filter = None

Callers

nothing calls this directly

Calls 13

get_sox_database_nameFunction · 0.85
get_node_idFunction · 0.85
field_to_titleFunction · 0.85
dump_report_dataFunction · 0.85
getMethod · 0.80
removeMethod · 0.80
update_aging_dataMethod · 0.80
get_user_recordsMethod · 0.80
get_record_sfsMethod · 0.80
CommandErrorClass · 0.70
infoMethod · 0.45
get_usersMethod · 0.45

Tested by

no test coverage detected