diff options
Diffstat (limited to 'pki/base/common/src/com/netscape/cms/jobs/RequestInQueueJob.java')
-rw-r--r-- | pki/base/common/src/com/netscape/cms/jobs/RequestInQueueJob.java | 217 |
1 files changed, 0 insertions, 217 deletions
diff --git a/pki/base/common/src/com/netscape/cms/jobs/RequestInQueueJob.java b/pki/base/common/src/com/netscape/cms/jobs/RequestInQueueJob.java deleted file mode 100644 index b04461941..000000000 --- a/pki/base/common/src/com/netscape/cms/jobs/RequestInQueueJob.java +++ /dev/null @@ -1,217 +0,0 @@ -// --- BEGIN COPYRIGHT BLOCK --- -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License along -// with this program; if not, write to the Free Software Foundation, Inc., -// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -// -// (C) 2007 Red Hat, Inc. -// All rights reserved. -// --- END COPYRIGHT BLOCK --- -package com.netscape.cms.jobs; - -import java.text.DateFormat; -import java.util.Date; -import java.util.Locale; - -import com.netscape.certsrv.apps.CMS; -import com.netscape.certsrv.authority.IAuthority; -import com.netscape.certsrv.base.EBaseException; -import com.netscape.certsrv.base.IConfigStore; -import com.netscape.certsrv.base.IExtendedPluginInfo; -import com.netscape.certsrv.base.ISubsystem; -import com.netscape.certsrv.jobs.IJob; -import com.netscape.certsrv.jobs.IJobCron; -import com.netscape.certsrv.jobs.IJobsScheduler; -import com.netscape.certsrv.notification.IEmailFormProcessor; -import com.netscape.certsrv.request.IRequestList; -import com.netscape.certsrv.request.IRequestQueue; -import com.netscape.certsrv.request.RequestStatus; - -/** - * A job for the Jobs Scheduler. This job checks in the internal ldap - * db for requests currently in the request queue and send a summary - * report to the administrator - * <p> - * the $TOKENS that are available for the this jobs's summary outer form are:<br> - * <UL> - * $InstanceID $SummaryTotalNum $ExecutionTime - * </UL> - * - * @version $Revision$, $Date$ - * @see com.netscape.certsrv.jobs.IJob - * @see com.netscape.cms.jobs.AJobBase - */ -public class RequestInQueueJob extends AJobBase - implements IJob, Runnable, IExtendedPluginInfo { - protected static final String PROP_SUBSYSTEM_ID = "subsystemId"; - - IAuthority mSub = null; - IRequestQueue mReqQ = null; - private boolean mSummary = false; - - /* Holds configuration parameters accepted by this implementation. - * This list is passed to the configuration console so configuration - * for instances of this implementation can be configured through the - * console. - */ - protected static String[] mConfigParams = - new String[] { - "enabled", - "cron", - "subsystemId", - "summary.enabled", - "summary.emailSubject", - "summary.emailTemplate", - "summary.senderEmail", - "summary.recipientEmail" - }; - - /** - * holds help text for this plugin - */ - public String[] getExtendedPluginInfo(Locale locale) { - String s[] = { - IExtendedPluginInfo.HELP_TEXT + - "; A job that checks for enrollment requests in the " + - "queue, and reports to recipientEmail", - "cron;string;Format: minute hour dayOfMonth month " + - "dayOfWeek. Use '*' for 'every'. For dayOfWeek, 0 is Sunday", - "summary.senderEmail;string;Specify the address to be used " + - "as the email's 'sender'. Bounces go to this address.", - "summary.recipientEmail;string;Who should receive summaries", - "enabled;boolean;Enable this plugin", - "summary.enabled;boolean;Enable the summary. You must enabled " + - "this for the job to work.", - "summary.emailSubject;string;Subject of summary email", - "summary.emailTemplate;string;Fully qualified pathname of " + - "template file of email to be sent", - "subsystemId;choice(ca,ra);The type of subsystem this job is " + - "for", - IExtendedPluginInfo.HELP_TOKEN + - ";configuration-jobrules-requestinqueuejob", - }; - - return s; - } - - /** - * initialize from the configuration file - * - * @param id String name of this instance - * @param implName string name of this implementation - * @param config configuration store for this instance - * @exception EBaseException - */ - public void init(ISubsystem owner, String id, String implName, IConfigStore config) throws - EBaseException { - mConfig = config; - mId = id; - mImplName = implName; - - // read from the configuration file - String sub = mConfig.getString(PROP_SUBSYSTEM_ID); - - mSub = (IAuthority) - CMS.getSubsystem(sub); - if (mSub == null) { - // take this as disable - mSummary = false; - return; - } - - mReqQ = mSub.getRequestQueue(); - - mCron = mConfig.getString(IJobCron.PROP_CRON); - if (mCron == null) { - return; - } - - // parse cron string into a JobCron class - IJobsScheduler scheduler = (IJobsScheduler) owner; - - mJobCron = scheduler.createJobCron(mCron); - - // initialize the summary related config info - IConfigStore sc = mConfig.getSubStore(PROP_SUMMARY); - - if (sc.getBoolean(PROP_ENABLED, false)) { - mSummary = true; - mSummaryMailSubject = sc.getString(PROP_EMAIL_SUBJECT); - mMailForm = sc.getString(PROP_EMAIL_TEMPLATE); - // mItemForm = sc.getString(PROP_ITEM_TEMPLATE); - mSummarySenderEmail = sc.getString(PROP_SENDER_EMAIL); - mSummaryReceiverEmail = sc.getString(PROP_RECEIVER_EMAIL); - } else { - mSummary = false; - } - } - - /** - * summarize the queue status and mail it - */ - public void run() { - if (mSummary == false) - return; - - Date date = CMS.getCurrentDate(); - DateFormat dateFormat = DateFormat.getDateTimeInstance(); - String nowString = dateFormat.format(date); - - int count = 0; - IRequestList list = - mReqQ.listRequestsByStatus(RequestStatus.PENDING); - - while (list != null && list.hasMoreElements()) { - list.nextRequestId(); - - /* This is way too slow - // get request from request id - IRequest req = null; - try { - req = mReqQ.findRequest(rid); - } catch (EBaseException e) { - System.out.println(e.toString()); - } - */ - count++; - } - - // if (count == 0) return; - - String contentForm = null; - - contentForm = getTemplateContent(mMailForm); - - buildContentParams(IEmailFormProcessor.TOKEN_ID, mId); - buildContentParams(IEmailFormProcessor.TOKEN_SUMMARY_TOTAL_NUM, - String.valueOf(count)); - buildContentParams(IEmailFormProcessor.TOKEN_EXECUTION_TIME, - nowString); - - IEmailFormProcessor emailFormProcessor = CMS.getEmailFormProcessor(); - String mailContent = - emailFormProcessor.getEmailContent(contentForm, - mContentParams); - - mailSummary(mailContent); - } - - /** - * Returns a list of configuration parameter names. - * The list is passed to the configuration console so instances of - * this implementation can be configured through the console. - * - * @return String array of configuration parameter names. - */ - public String[] getConfigParams() { - return mConfigParams; - } -} |