usr/src/cmd/wbem/provider/com/sun/wbem/solarisprovider/srm/Solaris_UserProcessAggregateStatisticalInformation.java
author Mark J. Nelson <Mark.J.Nelson@Sun.COM>
Wed, 06 Aug 2008 16:29:39 -0600
changeset 7298 b69e27387f74
parent 0 68f95e015346
permissions -rw-r--r--
6733918 Teamware has retired, please welcome your new manager, Mercurial 4758439 some files use "current date" sccs keywords 6560843 asm sources should not rely on .file "%M%" for naming STT_FILE symbols 6560958 Solaris:: perl modules should not use SCCS keywords in version information 6729074 webrev doesn't deal well with remote ssh hg parents
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     1
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     2
 * CDDL HEADER START
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     3
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     4
 * The contents of this file are subject to the terms of the
7298
b69e27387f74 6733918 Teamware has retired, please welcome your new manager, Mercurial
Mark J. Nelson <Mark.J.Nelson@Sun.COM>
parents: 0
diff changeset
     5
 * Common Development and Distribution License (the "License").
b69e27387f74 6733918 Teamware has retired, please welcome your new manager, Mercurial
Mark J. Nelson <Mark.J.Nelson@Sun.COM>
parents: 0
diff changeset
     6
 * You may not use this file except in compliance with the License.
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     7
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     8
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     9
 * or http://www.opensolaris.org/os/licensing.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    10
 * See the License for the specific language governing permissions
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    11
 * and limitations under the License.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    12
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    13
 * When distributing Covered Code, include this CDDL HEADER in each
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    14
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    15
 * If applicable, add the following below this CDDL HEADER, with the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    16
 * fields enclosed by brackets "[]" replaced with your own identifying
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    17
 * information: Portions Copyright [yyyy] [name of copyright owner]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    18
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    19
 * CDDL HEADER END
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    20
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    21
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    22
 * Copyright (c) 2001 by Sun Microsystems, Inc.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    23
 * All rights reserved.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    24
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    25
 * Solaris_UserProcessAggregateStatisticalInformation.java
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    26
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    27
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    28
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    29
package com.sun.wbem.solarisprovider.srm;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    30
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    31
import javax.wbem.cim.*;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    32
import javax.wbem.client.*;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    33
import javax.wbem.provider.*;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    34
import javax.wbem.query.*;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    35
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    36
import com.sun.wbem.solarisprovider.common.ProviderUtility;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    37
import java.util.Enumeration;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    38
import java.util.Iterator;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    39
import java.util.Vector;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    40
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    41
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    42
/**
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    43
 * Provider of the Solaris_UserProcessAggregateStatisticalInformation class.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    44
 * This class provides an accumulated resource utilization measurements for
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    45
 * an aggregation of processes sharing a common User. The (inherited)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    46
 * ProcessStatisticalInformation properties are populated by summing the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    47
 * underlying process' usage.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    48
 * @author Sun Microsystems
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    49
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    50
public class Solaris_UserProcessAggregateStatisticalInformation
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    51
	extends SRMProvider
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    52
	implements Authorizable,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    53
	    Solaris_ProcessStatisticalInformationProperties {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    54
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    55
    String providerName =
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    56
    	SOLARIS_USERPROCESSAGGREGATESTATISTICALINFORMATION;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    57
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    58
    /**
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    59
     * Get the name of the provider implemented by this class.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    60
     * @returns String provider name
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    61
     */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    62
    protected String getProviderName() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    63
	return providerName;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    64
    }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    65
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    66
    
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    67
    /**
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    68
     * Returns an instance specified by the Name key
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    69
     * @param op - the name of the instance to be retrieved. This must include
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    70
     * all of the keys and values for the instance.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    71
     * @param localOnly - if true, only the local properties of the class are
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    72
     * returned, otherwise all properties are required
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    73
     * @param includeQualifiers - if true, the qualifiers are returned as part
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    74
     * of of the returned instancei, otherwise no qualifiers will be returned
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    75
     * @param includeClassOrigin - if true, the class origin of each property
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    76
     * will be returned
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    77
     * @param String[] - if null, all properties are returned, otherwise only
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    78
     * the properties specified will be returned. Any duplicate properties will
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    79
     * be ignored.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    80
     * @param cc - the class reference
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    81
     *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    82
     * @return	CIMInstance the retrieved instance.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    83
     * @exception CIMException - the method getInstance throws a CIMException
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    84
     * if the CIMObjectPath is incorrect or does not exist.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    85
     */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    86
    public synchronized CIMInstance getInstance(CIMObjectPath op,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    87
				   boolean localOnly,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    88
				   boolean includeQualifiers,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    89
				   boolean includeClassOrigin,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    90
				   String[] propList,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    91
				   CIMClass cc)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    92
	    throws CIMException {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    93
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    94
	String name = null;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    95
	CIMProperty cp = null;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    96
	CIMInstance ci = null;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    97
	DataModel   dm = null;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    98
	ProcessAggregateDataModel padm;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    99
	
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   100
	SRMDebug.trace(SRMDebug.METHOD_CALL, op.toString());
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   101
	try {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   102
	    Enumeration e = op.getKeys().elements();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   103
	    while (e.hasMoreElements()) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   104
		cp = (CIMProperty) e.nextElement();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   105
		if (cp.getName().equalsIgnoreCase(NAME)) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   106
		    name = (String)((CIMValue)(cp.getValue())).getValue();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   107
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   108
	    }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   109
	    	    
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   110
    	    dm = resourceMonitor.getDataModel(false);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   111
	    if ((padm = dm.getUserprocs(name)) == null) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   112
	    	dm = resourceMonitor.releaseDataModel(dm);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   113
	    	throw notFoundEx;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   114
	    }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   115
	    ci = padm.getCIMInstance(cc);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   116
	    dm = resourceMonitor.releaseDataModel(dm);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   117
	} catch (Exception e) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   118
	    dm = resourceMonitor.releaseDataModel(dm);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   119
	    String msg = writeLog(LOGERROR, "SRM_1001");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   120
	    writeLog(LOGERROR, e);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   121
	    msg += " (" + e.getClass().toString() + ")";
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   122
	    SRMDebug.trace1(providerName, e);	
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   123
	    throw new CIMException(CIMException.CIM_ERR_FAILED, msg);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   124
    	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   125
    	SRMDebug.trace(SRMDebug.METHOD_RETV, ci.toString());
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   126
	return ci;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   127
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   128
    } // end getInstance
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   129
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   130
    
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   131
    /**
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   132
     * Returns all instances of Solaris_ProcessUtilizationInformation
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   133
     * @param op - the object path specifies the class to be enumerated
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   134
     * localOnly - if true, only the local properties of the class are returned,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   135
     * otherwise all properties are required
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   136
     * @param includeQualifiers - if true, the qualifiers are returned as part
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   137
     * of of the returned instancei, otherwise no qualifiers will be returned
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   138
     * @param includeClassOrigin - if true, the class origin of each property
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   139
     * will be returned
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   140
     * @param String[] - if null, all properties are returned, otherwise only
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   141
     * the properties specified will be
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   142
     * returned. Any duplicate properties will be ignored.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   143
     * @param cc - the class reference
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   144
     * @return An array of CIMInstance
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   145
     * @exception CIMException - if the CIMObjectPath is incorrect or does not
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   146
     * exist.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   147
     */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   148
    public synchronized CIMInstance[] enumerateInstances(CIMObjectPath op,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   149
					    boolean localOnly,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   150
					    boolean includeQualifiers,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   151
					    boolean includeClassOrigin,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   152
					    String[] propList,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   153
					    CIMClass cc)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   154
	    throws CIMException {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   155
    	DataModel   dm = null;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   156
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   157
	SRMDebug.trace(SRMDebug.METHOD_CALL, op.toString());		
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   158
	try {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   159
	    Vector  procAggrInstances = new Vector();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   160
	    CIMInstance ci;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   161
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   162
    	    dm = resourceMonitor.getDataModel(false);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   163
	    Iterator i = dm.getUserprocsIterator();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   164
	    while (i.hasNext()) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   165
		ci = ((ProcessAggregateDataModel) i.next()).getCIMInstance(cc);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   166
		procAggrInstances.addElement(ci);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   167
	    }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   168
	    dm = resourceMonitor.releaseDataModel(dm);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   169
	    CIMInstance[] ciArray = new CIMInstance[procAggrInstances.size()];
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   170
	    procAggrInstances.toArray(ciArray);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   171
	    SRMDebug.trace(SRMDebug.METHOD_RETV, "instance[0]: " +
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   172
	    	    	ciArray[0].toString());
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   173
            return ciArray;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   174
	} catch (Exception e) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   175
	    dm = resourceMonitor.releaseDataModel(dm);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   176
	    String msg = writeLog(LOGERROR, "SRM_1002");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   177
	    writeLog(LOGERROR, e);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   178
	    msg += " (" + e.getClass().toString() + ")";
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   179
	    SRMDebug.trace1(providerName, e);	
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   180
	    throw new CIMException(CIMException.CIM_ERR_FAILED, msg);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   181
    	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   182
    } // end enumerateInstances
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   183
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   184
    
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   185
    /**
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   186
     * Returns the names of all Solaris_UserProcessUtilizationInformation
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   187
     * instances.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   188
     *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   189
     * @param op - the class name to enumerate the instances
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   190
     * @param cc - the class reference passed to the provider
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   191
     * @return an array of CIMObjectPath containing names of the enumerated
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   192
     * instances.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   193
     * @exception CIMException - if the classname is null or does not exist.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   194
     */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   195
    public synchronized CIMObjectPath[] enumerateInstanceNames(CIMObjectPath op,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   196
						  CIMClass cc)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   197
	    throws CIMException {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   198
    	DataModel   dm = null;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   199
	
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   200
	SRMDebug.trace(SRMDebug.METHOD_CALL, op.toString());		
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   201
	try {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   202
	    ProcessAggregateDataModel padm;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   203
	    Vector procAggrInstances = new Vector();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   204
	    int	pid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   205
	    CIMObjectPath cop;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   206
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   207
    	    dm = resourceMonitor.getDataModel(false);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   208
	    Iterator i = dm.getUserprocsIterator();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   209
	    while (i.hasNext()) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   210
		padm = (ProcessAggregateDataModel) i.next();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   211
		cop = new CIMObjectPath(op.getObjectName(), op.getNameSpace());
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   212
		cop.addKey(NAME, new CIMValue(padm.name));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   213
		procAggrInstances.addElement(cop);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   214
	    }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   215
	    dm = resourceMonitor.releaseDataModel(dm);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   216
	    CIMObjectPath[] copArray =
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   217
		new CIMObjectPath[procAggrInstances.size()];
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   218
	    procAggrInstances.toArray(copArray);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   219
	    SRMDebug.trace(SRMDebug.METHOD_RETV, "instanceName[0]: "
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   220
	    	    + copArray[0].toString());
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   221
            return copArray;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   222
	} catch (Exception e) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   223
	    dm = resourceMonitor.releaseDataModel(dm);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   224
	    String msg = writeLog(LOGERROR, "SRM_1003");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   225
	    writeLog(LOGERROR, e);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   226
	    msg += " (" + e.getClass().toString() + ")";
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   227
	    SRMDebug.trace1(providerName, e);	
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   228
	    throw new CIMException(CIMException.CIM_ERR_FAILED, msg);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   229
    	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   230
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   231
    } // end enumerateInstanceNames
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   232
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   233
    protected CIMValue getBulkData(Vector outParams) throws CIMException {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   234
	DataModel   dm = null;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   235
	
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   236
	try {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   237
    	    dm = resourceMonitor.getDataModel(false);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   238
	    Iterator i = dm.getUserprocsIterator();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   239
            // Fill the array; each obj takes the bulk data for one user.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   240
            Vector  vOutParam = new Vector();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   241
	    while (i.hasNext()) {	    
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   242
    	    	vOutParam.addElement(((ProcessAggregateDataModel) i.next()).
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   243
		    	toBulkData());
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   244
	    }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   245
            // rem:  we can only return CIMValues in our outParams
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   246
            CIMDataType dtype = new CIMDataType(CIMDataType.STRING_ARRAY);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   247
            CIMValue outVal = new CIMValue(vOutParam, dtype);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   248
	    outParams.addElement(outVal);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   249
	    dm = resourceMonitor.releaseDataModel(dm);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   250
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   251
	} catch (Exception e) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   252
	    dm = resourceMonitor.releaseDataModel(dm);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   253
	    String msg = writeLog(LOGERROR, "SRM_1002");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   254
	    writeLog(LOGERROR, e);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   255
	    msg += " (" + e.getClass().toString() + ")";
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   256
	    SRMDebug.trace1(providerName, e);	
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   257
	    throw new CIMException(CIMException.CIM_ERR_FAILED, msg);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   258
    	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   259
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   260
        CIMValue rv = new CIMValue(new Integer(0));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   261
	return (rv);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   262
    } // end getBulkData
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   263
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   264
} // end class Solaris_UserProcessAggregateStatisticalInformation