awips2/edexOsgi/com.raytheon.edex.plugin.gfe/utility/edex_static/base/gfe/isc/purgeAllGrids.py
root 8e80217e59 Initial revision of AWIPS2 11.9.0-7p5
Former-commit-id: a02aeb236c [formerly 9f19e3f712] [formerly 06a8b51d6d [formerly 64fa9254b946eae7e61bbc3f513b7c3696c4f54f]]
Former-commit-id: 06a8b51d6d
Former-commit-id: 3360eb6c5f
2012-01-06 08:55:05 -06:00

112 lines
3.8 KiB
Python

##
# This software was developed and / or modified by Raytheon Company,
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
#
# U.S. EXPORT CONTROLLED TECHNICAL DATA
# This software product contains export-restricted data whose
# export/transfer/disclosure is restricted by U.S. law. Dissemination
# to non-U.S. persons whether in the United States or abroad requires
# an export license or other authorization.
#
# Contractor Name: Raytheon Company
# Contractor Address: 6825 Pine Street, Suite 340
# Mail Stop B8
# Omaha, NE 68106
# 402.291.0100
#
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
# further licensing information.
##
import string, sys, re, time, types, getopt, LogStream, fnmatch, os
import JUtil
import siteConfig
pytime = time
from com.raytheon.edex.plugin.gfe.smartinit import IFPDB
from com.raytheon.edex.plugin.gfe.server import GridParmManager
#--------------------------------------------------------------------------
# Main program purges all grids from a database.
#--------------------------------------------------------------------------
#--------------------------------------------------------------------------
# Prints usage statement.
#--------------------------------------------------------------------------
def usage():
ustr = """\
Usage: purgeAllGrids -h hostname -p rpcport -d databaseID
-h hostname: ifpServer host name
-p rpcport: rpc port number of ifpServer
-d databaseID: database identifier\n"""
sys.stderr.write(ustr)
#--------------------------------------------------------------------------
# Parses command line options and sets internal flags
#--------------------------------------------------------------------------
def getOpts(argv):
Options = {'host': None, 'port': None, 'databaseID': None, 'purgeAll':None}
try:
optl, args = getopt.getopt(argv[1:], "h:p:d:a:")
for opt in optl:
if opt[0] == '-h':
Options['host'] = opt[1]
elif opt[0] == '-p':
Options['port'] = int(opt[1])
elif opt[0] == '-d':
Options['databaseID'] = opt[1]
elif opt[0] == '-a':
Options['purgeAll'] = opt[1]
except:
usage()
if Options['host'] is None:
Options['host'] = siteConfig.GFESUITE_SERVER
if Options['port'] is None:
Options['port'] = siteConfig.GFESUITE_PORT
if Options['host'] is None or Options['port'] is None:
usage()
raise SyntaxError, "Command line error"
return Options
#--------------------------------------------------------------------------
# process function
#--------------------------------------------------------------------------
def process(opts):
if opts['purgeAll'] is None:
purgeDB(opts['databaseID'])
else:
dbList = JUtil.javaStringListToPylist(GridParmManager.getDbInventory(opts['purgeAll']).getPayload())
for db in dbList:
purgeDB(db)
def purgeDB(dbname):
# get list of parms
LogStream.logEvent("Purging all grids from: ", dbname)
db = IFPDB(dbname)
parms = db.getKeys()
# cycle through each parm, get inventory, and store None grid to
# remove the grids
for p in range(0, parms.size()):
we = db.getItem(str(parms.get(p)))
inv = we.getKeys()
for i in range(0, inv.size()):
we.removeItem(inv.get(i))
#--------------------------------------------------------------------------
# Main program
#--------------------------------------------------------------------------
def main(argv):
argv = JUtil.javaStringListToPylist(argv)
Options = getOpts(argv)
LogStream.logEvent("PurgeAllGrids starting")
process(Options)
LogStream.logEvent("PurgeAllGrids finished")