usr/src/cmd/wbem/provider/com/sun/wbem/solarisprovider/srm/Solaris_ActiveUserProcessAggregateStatistics.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_ActiveUserProcessAggregateStatistics.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.provider.*;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    33
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    34
import java.util.Enumeration;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    35
import java.util.Iterator;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    36
import java.util.Vector;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    37
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    38
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    39
/**
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    40
 * Provider of the Solaris_ProjectProcessAggregateStatisticalInformation class.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    41
 * This class represents a link between an User active on a system and the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    42
 * aggregated resource usage of its Process(es).
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    43
 * @author Sun Microsystems
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    44
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    45
public class  Solaris_ActiveUserProcessAggregateStatistics extends SRMProvider {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    46
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    47
    /**
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    48
     * The name of the provider implemented by this class
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    49
     */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    50
    protected String providerName =
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    51
    	SOLARIS_ACTIVEUSERPROCESSAGGREGATESTATISTICS;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    52
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    53
    
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    54
    /**
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    55
     * Get the name of the provider implemented by this class.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    56
     * @returns String provider name
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    57
     */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    58
    protected String getProviderName() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    59
	return providerName;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    60
    }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    61
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    62
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    63
    /**
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    64
     * Returns a specific CIMInstance
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    65
     * @param op - the name of the instance to be retrieved. This must include
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    66
     * all of the keys and values for the instance.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    67
     * @param localOnly - if true, only the local properties of the class are
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    68
     * returned, otherwise all properties are required
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    69
     * @param includeQualifiers - if true, the qualifiers are returned as part
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    70
     * of of the returned instancei, otherwise no qualifiers will be returned
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    71
     * @param includeClassOrigin - if true, the class origin of each property
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    72
     * will be returned
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    73
     * @param String[] - if null, all properties are returned, otherwise only
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    74
     * the properties specified will be returned. Any duplicate properties will
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    75
     * be ignored.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    76
     * @param cc - the class reference
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    77
     *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    78
     * @return	CIMInstance the retrieved instance.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    79
     * @exception CIMException - the method getInstance throws a CIMException
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    80
     * if the CIMObjectPath is incorrect or does not exist.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    81
     */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    82
    public CIMInstance getInstance(CIMObjectPath op,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    83
				   boolean localOnly,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    84
				   boolean includeQualifiers,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    85
				   boolean includeClassOrigin,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    86
				   String[] propList,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    87
				   CIMClass cc)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    88
	    throws CIMException {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    89
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    90
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    91
	CIMObjectPath procaggreCOP = null;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    92
	CIMObjectPath activeusrCOP = null;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    93
	CIMInstance ci = null;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    94
	CIMProperty cp;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    95
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    96
	SRMDebug.trace(SRMDebug.METHOD_CALL, op.toString());		
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    97
	try {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    98
	    Enumeration e = op.getKeys().elements();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    99
	    while (e.hasMoreElements()) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   100
		cp = (CIMProperty)e.nextElement();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   101
		if (cp.getName().equalsIgnoreCase(ELEMENT)) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   102
		    activeusrCOP = (CIMObjectPath)((CIMValue)(cp.getValue())).
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   103
			getValue();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   104
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   105
		if (cp.getName().equalsIgnoreCase(STATS)) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   106
		    procaggreCOP = (CIMObjectPath)((CIMValue)(cp.getValue())).
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   107
			getValue();
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
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   111
	    ci = cc.newInstance();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   112
	    ci.setProperty(ELEMENT, new CIMValue(activeusrCOP));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   113
	    ci.setProperty(STATS, new CIMValue(procaggreCOP));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   114
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   115
	} catch (Exception e) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   116
	    String msg = writeLog(LOGERROR, "SRM_1001");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   117
	    writeLog(LOGERROR, e);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   118
	    msg += " (" + e.getClass().toString() + ")";
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   119
	    SRMDebug.trace1(providerName, e);	
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   120
	    throw new CIMException(CIMException.CIM_ERR_FAILED, msg);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   121
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   122
    	SRMDebug.trace(SRMDebug.METHOD_RETV, ci.toString());
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   123
	return ci;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   124
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   125
    } // end getInstance
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   126
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   127
    
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   128
    /**
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   129
     * Enumerates all instances of Solaris_ActiveUserAggregateStatistics.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   130
     * @param op - the object path specifies the class to be enumerated
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   131
     * localOnly - if true, only the local properties of the class are returned,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   132
     * otherwise all properties are required
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   133
     * @param includeQualifiers - if true, the qualifiers are returned as part
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   134
     * of of the returned instancei, otherwise no qualifiers will be returned
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   135
     * @param includeClassOrigin - if true, the class origin of each property
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   136
     * will be returned
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   137
     * @param String[] - if null, all properties are returned, otherwise only
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   138
     * the properties specified will be
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   139
     * returned. Any duplicate properties will be ignored.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   140
     * @param cc - the class reference
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   141
     * @return An array of CIMInstance
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   142
     * @exception CIMException - if the CIMObjectPath is incorrect or does not
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   143
     * exist.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   144
     */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   145
    public CIMInstance[] enumerateInstances(CIMObjectPath op,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   146
					    boolean localOnly,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   147
					    boolean includeQualifiers,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   148
					    boolean includeClassOrigin,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   149
					    String[] propList,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   150
					    CIMClass cc)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   151
	    throws CIMException {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   152
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   153
	Vector installedElements = new Vector();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   154
	DataModel       dm = null;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   155
	ActiveUserModel aum;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   156
	CIMObjectPath   procaggreCOP;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   157
	CIMObjectPath   activeusrCOP;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   158
	CIMInstance     ci;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   159
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   160
	SRMDebug.trace(SRMDebug.METHOD_CALL, op.toString());		
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   161
	try {
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.getUserIterator();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   164
	    while (i.hasNext()) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   165
		aum = (ActiveUserModel) i.next();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   166
		activeusrCOP = aum.getCIMObjectPath(SOLARIS_ACTIVEUSER);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   167
		procaggreCOP = dm.getUserprocs(aum.name).getCIMObjectPath(
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   168
		    SOLARIS_USERPROCESSAGGREGATESTATISTICALINFORMATION);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   169
		ci = cc.newInstance();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   170
		ci.setProperty(ELEMENT, new CIMValue(activeusrCOP));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   171
		ci.setProperty(STATS, new CIMValue(procaggreCOP));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   172
		installedElements.addElement(ci);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   173
	    }    
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   174
	    dm = resourceMonitor.releaseDataModel(dm);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   175
	} catch (Exception e) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   176
	    dm = resourceMonitor.releaseDataModel(dm);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   177
	    String msg = writeLog(LOGERROR, "SRM_1002");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   178
	    writeLog(LOGERROR, e);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   179
	    msg += " (" + e.getClass().toString() + ")";
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   180
	    SRMDebug.trace1(providerName, e);	
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   181
	    throw new CIMException(CIMException.CIM_ERR_FAILED, msg);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   182
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   183
	CIMInstance[] ciArray = new CIMInstance[installedElements.size()];
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   184
	installedElements.toArray(ciArray);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   185
	SRMDebug.trace(SRMDebug.METHOD_RETV, "instance[0]: "
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   186
	    	+ ciArray[0].toString());
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   187
        return ciArray;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   188
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   189
    } // end enumerateInstances
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   190
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   191
    
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   192
    /**
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   193
     * Returns all object paths
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   194
     *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   195
     * @param op - the class name to enumerate the instances
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   196
     * @param cc - the class reference passed to the provider
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   197
     * @return an array of CIMObjectPath containing names of the enumerated
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   198
     * instances.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   199
     * @exception CIMException - if the classname is null or does not exist.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   200
     */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   201
    public CIMObjectPath[] enumerateInstanceNames(CIMObjectPath op,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   202
						  CIMClass cc)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   203
	    throws CIMException {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   204
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   205
	Vector installedElements = new Vector();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   206
	DataModel       dm = null;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   207
	ActiveUserModel aum;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   208
	CIMObjectPath procaggreCOP;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   209
	CIMObjectPath activeusrCOP;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   210
	CIMObjectPath cop;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   211
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   212
	SRMDebug.trace(SRMDebug.METHOD_CALL, op.toString());		
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   213
	try {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   214
	    dm = resourceMonitor.getDataModel(false);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   215
	    Iterator i = dm.getUserIterator();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   216
	    while (i.hasNext()) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   217
		aum = (ActiveUserModel) i.next();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   218
		activeusrCOP = aum.getCIMObjectPath(SOLARIS_ACTIVEUSER);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   219
		procaggreCOP = dm.getUserprocs(aum.name).getCIMObjectPath(
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   220
		    SOLARIS_USERPROCESSAGGREGATESTATISTICALINFORMATION);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   221
		cop = new CIMObjectPath(op.getObjectName(),
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   222
		    op.getNameSpace());
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   223
		cop.addKey(ELEMENT, new CIMValue(activeusrCOP));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   224
		cop.addKey(STATS, new CIMValue(procaggreCOP));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   225
		installedElements.add(cop);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   226
	    }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   227
	    dm = resourceMonitor.releaseDataModel(dm);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   228
	} catch (Exception e) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   229
	    dm = resourceMonitor.releaseDataModel(dm);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   230
	    String msg = writeLog(LOGERROR, "SRM_1003");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   231
	    writeLog(LOGERROR, e);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   232
	    msg += " (" + e.getClass().toString() + ")";
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   233
	    SRMDebug.trace1(providerName, e);	
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   234
	    throw new CIMException(CIMException.CIM_ERR_FAILED, msg);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   235
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   236
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   237
	CIMObjectPath[] copArray = new CIMObjectPath[installedElements.size()];
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   238
	installedElements.toArray(copArray);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   239
	SRMDebug.trace(SRMDebug.METHOD_RETV, "instanceName[0]: "
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   240
	    	+ copArray[0].toString());
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   241
	return copArray;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   242
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   243
    } // end enumerateInstanceNames
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   244
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   245
} // end class Solaris_ActiveUserProcessAggregateStatistics