Created
April 30, 2020 13:18
-
-
Save jfrantz1-r7/bcb469e5f248829b30a97992cc4212e4 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
-- Asset Purge v3 | |
------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
SET search_path TO nxsilo_default, nxadmin, nxglobal; | |
ANALYZE VERBOSE; | |
\echo `date` 'Disable constraints' | |
SET session_replication_role = replica; | |
------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
-- Start of Version Asset Data purge | |
------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
-- Drop a temp table if exists. | |
DROP TABLE IF EXISTS temp_orphan_asset; | |
-- Create a temp table to store assets that will be purged. | |
\echo `date` 'Calculating orphaned assets to delete' | |
CREATE TABLE temp_orphan_asset AS | |
SELECT a.asset_id | |
FROM asset a | |
LEFT JOIN site_devices sd ON a.asset_id = sd.dev_id | |
WHERE sd.dev_id IS NULL; | |
CREATE INDEX ix_temp_orphan_asset_id ON temp_orphan_asset (asset_id); | |
-- Purge Data from tables | |
\echo `date` 'Purging asset_history' | |
DELETE FROM asset_history t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging device_synopsis' | |
DELETE FROM device_synopsis t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.dev_id); | |
\echo `date` 'Purging device_nodes' | |
DELETE FROM device_nodes t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.dev_id); | |
\echo `date` 'Purging device_groups' | |
DELETE FROM device_groups t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.dev_id); | |
\echo `date` 'Purging vuln_exceptions' | |
DELETE FROM vuln_exceptions t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.dev_id); | |
\echo `date` 'Purging silo_cp_global_override' | |
DELETE FROM silo_cp_global_override t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.device_id); | |
\echo `date` 'Purging tag_membership_history' | |
DELETE FROM tag_membership_history t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging validated_asset_vulnerability' | |
DELETE FROM validated_asset_vulnerability t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging asset_nodes_archive' | |
DELETE FROM asset_nodes_archive t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging asset_group_membership_history' | |
DELETE FROM asset_group_membership_history t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging tag_criteria_asset_bridge' | |
DELETE FROM tag_criteria_asset_bridge t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging tag_asset_bridge' | |
DELETE FROM tag_asset_bridge t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_address' | |
DELETE FROM version_asset_address t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_name' | |
DELETE FROM version_asset_name t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_host_type' | |
DELETE FROM version_asset_host_type t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_unique_id' | |
DELETE FROM version_asset_unique_id t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_attribute' | |
DELETE FROM version_asset_attribute t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_endpoint_service_type' | |
DELETE FROM version_asset_endpoint_service_type t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_database' | |
DELETE FROM version_asset_database t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_file_attribute' | |
DELETE FROM version_asset_file_attribute t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_file' | |
DELETE FROM version_asset_file t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_user_attribute' | |
DELETE FROM version_asset_user_attribute t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_user' | |
DELETE FROM version_asset_user t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_user_group_attribute' | |
DELETE FROM version_asset_user_group_attribute t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_user_group' | |
DELETE FROM version_asset_user_group t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_operating_system_attribute' | |
DELETE FROM version_asset_operating_system_attribute t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_operating_system' | |
DELETE FROM version_asset_operating_system t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_software_attribute' | |
DELETE FROM version_asset_software_attribute t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_software' | |
DELETE FROM version_asset_software t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_endpoint_configuration' | |
DELETE FROM version_asset_endpoint_configuration t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_endpoint_credential_status' | |
DELETE FROM version_asset_endpoint_credential_status t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_endpoint_service' | |
DELETE FROM version_asset_endpoint_service t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_endpoint_web_application' | |
DELETE FROM version_asset_endpoint_web_application t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_endpoint_web_page' | |
DELETE FROM version_asset_endpoint_web_page t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_vulnerability_finding' | |
DELETE FROM version_asset_vulnerability_finding t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_vulnerability_test' | |
DELETE FROM version_asset_vulnerability_test t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset_endpoint' | |
DELETE FROM version_asset_endpoint t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging version_asset' | |
DELETE FROM version_asset t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging device_asset_bridge' | |
DELETE FROM device_asset_bridge t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.device_id); | |
\echo `date` 'Purging policy_rule_check_result' | |
DELETE FROM policy_rule_check_result t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging asset_policy_rule_synopsis' | |
DELETE FROM asset_policy_rule_synopsis t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging asset_policy_synopsis' | |
DELETE FROM asset_policy_synopsis t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging asset_container' | |
DELETE FROM asset_container t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging cross_site_unmerge_site_assets' | |
DELETE FROM cross_site_unmerge_site_assets t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
\echo `date` 'Purging asset' | |
DELETE FROM asset t WHERE EXISTS (SELECT asset_id FROM temp_orphan_asset mav WHERE mav.asset_id = t.asset_id); | |
DROP TABLE IF EXISTS temp_orphan_asset; | |
------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
-- End of data Version Asset Data purge | |
------------------------------------------------------------------------------------------------------------------------------------------------------------ | |
\echo `date` 'Enable constraints' | |
SET session_replication_role = DEFAULT; | |
ANALYZE VERBOSE; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment