#!/usr/bin/env python
"""
This script will delete clients and associated shelves listed in delete_clients.txt
"""
import os
import re
import sys
import string
import accessdates
import platform
import sdputils
if len(sys.argv) > 1:
SDP_INSTANCE = str(sys.argv[1])
else:
SDP_INSTANCE = '1'
utils = sdputils.SDPUtils(SDP_INSTANCE)
p4 = utils.p4
utils.login()
cfgweeks = int(utils.get('weeks'))
###############################################################################
def delete_clients( command, del_command ):
clients = []
# Read list of clients to be deleted.
if os.path.isfile("delete_clients.txt"):
clientsfile = open( "delete_clients.txt", "r" )
for client in clientsfile.readlines():
client = client.rstrip()
# Avoid deleting or affecting Swarm clients.
if (re.match ('^swarm-', client)):
continue
# Delete shelves from client
os.system('%s -Ztag changes -s shelved -c %s > shelved.txt' % (p4, client))
if os.path.isfile("shelved.txt"):
shelvedfile = open("shelved.txt", "r")
for changeline in shelvedfile.readlines():
if re.search("\.\.\. change ", changeline):
changenum = changeline[11:]
changenum = changenum.strip()
os.system('%s shelve -c %s -df' % (p4, changenum))
shelvedfile.close()
os.remove("shelved.txt")
os.system('%s client -f -d "%s"' % (p4, client))
clientsfile.close()
else:
print("No delete_clients.txt file found.")
###############################################################################
# main
if __name__ == '__main__':
delete_clients( "clients", "client" )