Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.21 KB | None | 0 0
  1. import sys
  2.  
  3. from utils.helpers import *
  4.  
  5. cassandra_domain_tables = ["domain_activity", "domain_user", "domain_host", "domain_group", "domain_expired_user",
  6.                            "domain_locked_user", "domain_last_seen", "domain_activity_event_head",
  7.                            "domain_activity_event_head_meta", "domain_event"]
  8. cassandra_asset_tables = ["asset_activity", "asset_shared_folder",
  9.                           "asset_drive", "asset_monitored_folder", "asset_last_seen"]
  10.  
  11. cassandra_network_tables = ["network_alert", "network_file", "network_application", "network_website",
  12.                             "network_mac_last_seen", "network_ip_last_seen"]
  13. cassandra_resource_tables = ["resource_activity", "resource_last_seen"]
  14. cassandra_all_tables = {
  15.     "network": cassandra_network_tables,
  16.     "domain": cassandra_domain_tables,
  17.     "asset": cassandra_asset_tables,
  18.     "resource": cassandra_resource_tables
  19. }
  20.  
  21. memsql_domain_tables = ["domain_expired_user", "domain_group", "domain_host", "domain_last_seen",
  22.                         "domain_locked_user", "domain_month_cache", "domain_month_last_seen_cache", "domain_month_timestamp_cache"]
  23. memsql_network_tables = ["network_alert_month_last_seen_cache", "network_alert_month_timestamp_cache", "network_application_month_last_seen_cache", "network_application_month_timestamp_cache",
  24.                          "network_file_month_timestamp_cache", "network_file_month_last_seen_cache",
  25.                          "network_ip_last_seen", "network_mac_last_seen",
  26.                          "network_website_month_timestamp_cache", "network_website_month_last_seen_cache"]
  27. memsql_asset_tables = ['asset_drive', 'asset_last_seen', 'asset_monitored_folder', 'asset_shared_folder',
  28.                        'asset_month_last_seen_cache', 'asset_month_timestamp_cache']
  29.  
  30. memsql_resource_tables = ['resource_last_seen',
  31.                           'resource_month_timestamp_cache', 'resource_month_last_seen_cache']
  32. memsql_all_tables = {
  33.     'network': memsql_network_tables,
  34.     'domain': memsql_domain_tables,
  35.     'asset': memsql_asset_tables,
  36.     'resource': memsql_resource_tables
  37. }
  38.  
  39. DELETE_QUERY_FORMAT = lambda table, workspace_uuid, sensor_uuid: "DELETE FROM %s where workspace_uuid = '%s' and sensor_uuid = '%s'" % (
  40.     table,
  41.     workspace_uuid,
  42.     sensor_uuid)
  43. COUNT_QUERY_FORMAT = lambda table, workspace_uuid, sensor_uuid: "SELECT count(*) FROM %s where workspace_uuid = '%s' and sensor_uuid = '%s'" % (
  44.     table,
  45.     workspace_uuid,
  46.     sensor_uuid)
  47.  
  48.  
  49. def delete_cassandra(workspace_uuid, sensor_uuid):
  50.     print "Cassandra cleaning..."
  51.     session = create_cassandra_connection()
  52.     for keyspace in cassandra_all_tables.keys():
  53.         session.set_keyspace(keyspace)
  54.         tables = cassandra_all_tables[keyspace]
  55.         for table in tables:
  56.             result = session.execute(COUNT_QUERY_FORMAT(
  57.                 table, workspace_uuid, sensor_uuid))
  58.             row_counts = result.current_rows[0].count
  59.             try:
  60.                 session.execute(DELETE_QUERY_FORMAT(
  61.                     table, workspace_uuid, sensor_uuid))
  62.                 print "Deleted %s from %s.%s" % (row_counts, keyspace, table)
  63.             except Exception as e:
  64.                 print "Error on deleting %s.%s" % (keyspace, table)
  65.     session.shutdown()
  66.  
  67.  
  68. def delete_memsql(workspace_uuid, sensor_uuid):
  69.     print "MemSQL cleaning..."
  70.     for keyspace in memsql_all_tables.keys():
  71.         session = create_memsql_connection(db_name=keyspace)
  72.         tables = memsql_all_tables[keyspace]
  73.         for table in tables:
  74.             result = session.query(COUNT_QUERY_FORMAT(
  75.                 table, workspace_uuid, sensor_uuid))
  76.             row_counts = result[0].get("count(*)", 0)
  77.             try:
  78.                 session.execute(DELETE_QUERY_FORMAT(
  79.                     table, workspace_uuid, sensor_uuid))
  80.                 print "Deleted %s from %s.%s" % (row_counts,keyspace, table)
  81.             except Exception as e:
  82.                 print "Error on deleting %s.%s" % (keyspace, table)
  83.  
  84. if __name__ == "__main__":
  85.     workspace_uuid = sys.argv[1]
  86.     sensor_uuid = sys.argv[2]
  87.     delete_cassandra(workspace_uuid, sensor_uuid)
  88.     delete_memsql(workspace_uuid, sensor_uuid)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement