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

Method execute

keepercommander/commands/record.py:1819–1874  ·  view source on GitHub ↗
(self, params, **kwargs)

Source from the content-addressed store, hash-verified

1817 return list_parser
1818
1819 def execute(self, params, **kwargs):
1820 verbose = kwargs.get('verbose', False)
1821 fmt = kwargs.get('format', 'table')
1822 # Use the --field parameter(s) if provided.
1823 search_fields = kwargs.get('field') # Can be a list if passed multiple times.
1824 pattern = kwargs.get('pattern')
1825
1826 record_types = kwargs.get('record_type')
1827 if record_types:
1828 record_version = set()
1829 record_type = set()
1830 if isinstance(record_types, str):
1831 record_types = [record_types]
1832 for rt in record_types:
1833 if rt == 'app':
1834 record_version.add(5)
1835 elif rt == 'file':
1836 record_version.update((3, 4))
1837 record_type.add('file')
1838 elif rt in ('general', 'legacy'):
1839 record_version.update((1, 2))
1840 elif rt == 'pam':
1841 record_version.add(6)
1842 else:
1843 record_version.update((3, 6))
1844 record_type.add(rt)
1845 else:
1846 record_version = None if verbose else (1, 2, 3)
1847 record_type = None
1848
1849 records = [x for x in vault_extensions.find_records(
1850 params,
1851 pattern,
1852 record_type=record_type,
1853 record_version=record_version,
1854 search_fields=search_fields,
1855 use_regex=True)]
1856 if any(records):
1857 headers = ['record_uid', 'type', 'title', 'description', 'shared', 'record_category']
1858 if fmt == 'table':
1859 headers = [base.field_to_title(x) for x in headers]
1860 table = []
1861 for record in records:
1862 # Determine if record is from Nested Share Folder or Classic
1863 is_nested_share = hasattr(params, 'nested_share_records') and record.record_uid in params.nested_share_records
1864 record_category = 'nested' if is_nested_share else 'classic'
1865 row = [record.record_uid, record.record_type, record.title,
1866 vault_extensions.get_record_description(record), record.shared, record_category]
1867 table.append(row)
1868 table.sort(key=lambda x: (x[2] or '').lower())
1869 if fmt != 'json':
1870 headers = [base.field_to_title(x) for x in headers]
1871 return base.dump_report_data(table, headers, fmt=fmt, filename=kwargs.get('output'),
1872 row_number=True, column_width=None if verbose else 40)
1873 else:
1874 return handle_empty_result(fmt, 'No records are found', kwargs.get('output'))
1875
1876

Callers 7

find_recordFunction · 0.95
executeMethod · 0.95
executeMethod · 0.95
executeMethod · 0.95
executeMethod · 0.95

Calls 4

handle_empty_resultFunction · 0.85
getMethod · 0.80
addMethod · 0.45
updateMethod · 0.45