usr/src/cmd/wbem/provider/com/sun/wbem/solarisprovider/srm/Solaris_ProcessStatistics.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 2001-2002 Sun Microsystems, Inc.  All rights reserved.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    23
 * Use is subject to license terms.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    24
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    25
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    26
package com.sun.wbem.solarisprovider.srm;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    27
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    28
import javax.wbem.cim.*;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    29
import javax.wbem.client.*;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    30
import javax.wbem.provider.*;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    31
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    32
import java.util.Enumeration;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    33
import java.util.Iterator;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    34
import java.util.Vector;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    35
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    36
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    37
/**
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    38
 * Provider of the Solaris_ProcessStatistics class. This class represents
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    39
 * an association linking a Solaris_Process and its
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    40
 * Solaris_ProcessStatisticalInformation instance a raw resource utilization
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    41
 * measurements for a process.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    42
 * @author Sun Microsystems, Inc.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    43
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    44
public class Solaris_ProcessStatistics extends SRMProvider {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    45
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    46
    /**
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    47
     * The name of the provider implemented by this class
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    48
     */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    49
    String providerName = SOLARIS_PROCESSSTATISTICS;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    50
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    51
    private DataModel dm;
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 instance.
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 synchronized  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
	CIMObjectPath procstatCOP = null;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    91
	CIMObjectPath procCOP = null;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    92
	CIMInstance ci = null;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    93
	CIMProperty cp = null;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    94
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    95
	SRMDebug.trace(SRMDebug.METHOD_CALL, op.toString());		
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    96
	try {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    97
	    Enumeration e = op.getKeys().elements();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    98
	    while (e.hasMoreElements()) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    99
		cp = (CIMProperty) e.nextElement();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   100
		if (cp.getName().equalsIgnoreCase(ELEMENT)) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   101
		    procCOP = (CIMObjectPath)((CIMValue)(cp.getValue())).
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   102
			getValue();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   103
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   104
		if (cp.getName().equalsIgnoreCase(STATS)) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   105
		    procstatCOP = (CIMObjectPath)((CIMValue)(cp.getValue())).
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   106
			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
	    ci = cc.newInstance();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   111
	    ci.setProperty(ELEMENT, new CIMValue(procCOP));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   112
	    ci.setProperty(STATS, new CIMValue(procstatCOP));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   113
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   114
	} catch (Exception e) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   115
	    String msg = writeLog(LOGERROR, "SRM_1001");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   116
	    writeLog(LOGERROR, e);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   117
	    msg += " (" + e.getClass().toString() + ")";
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   118
	    SRMDebug.trace1(providerName, e);	
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   119
	    throw new CIMException(CIMException.CIM_ERR_FAILED, msg);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   120
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   121
    	SRMDebug.trace(SRMDebug.METHOD_RETV, ci.toString());
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   122
	return ci;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   123
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   124
    } // end getInstance
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   125
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
     * Returns all instances of Solaris_ProcessStatistics.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   129
     * @param op - the object path specifies the class to be enumerated
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   130
     * localOnly - if true, only the local properties of the class are returned,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   131
     * otherwise all properties are required
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   132
     * @param includeQualifiers - if true, the qualifiers are returned as part
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   133
     * of of the returned instancei, otherwise no qualifiers will be returned
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   134
     * @param includeClassOrigin - if true, the class origin of each property
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   135
     * will be returned
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   136
     * @param String[] - if null, all properties are returned, otherwise only
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   137
     * the properties specified will be
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   138
     * returned. Any duplicate properties will be ignored.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   139
     * @param cc - the class reference
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   140
     * @return An array of CIMInstance
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   141
     * @exception CIMException - if the CIMObjectPath is incorrect or does not
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   142
     * exist.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   143
     */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   144
    public synchronized  CIMInstance[] enumerateInstances(CIMObjectPath op,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   145
					    boolean localOnly,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   146
					    boolean includeQualifiers,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   147
					    boolean includeClassOrigin,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   148
					    String[] propList,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   149
					    CIMClass cc)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   150
	    throws CIMException {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   151
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   152
	Vector installedElements = new Vector();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   153
	ProcessDataModel pdm;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   154
	CIMObjectPath procstatCOP;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   155
	CIMObjectPath procCOP;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   156
	CIMInstance ci;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   157
    	DataModel   dm = null;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   158
	
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   159
	SRMDebug.trace(SRMDebug.METHOD_CALL, op.toString());		
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   160
	try {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   161
	    dm = resourceMonitor.getDataModel(false);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   162
	    Iterator i = dm.getProcessIterator();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   163
	    while (i.hasNext()) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   164
		pdm = (ProcessDataModel)i.next();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   165
		procstatCOP  = pdm.getCIMObjectPath(
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   166
		    SOLARIS_PROCESSSTATISTICALINFORMATION);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   167
		procCOP = pdm.getCIMObjectPathForProc();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   168
		ci = cc.newInstance();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   169
		ci.setProperty(ELEMENT, new CIMValue(procCOP));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   170
		ci.setProperty(STATS, new CIMValue(procstatCOP));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   171
		installedElements.addElement(ci);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   172
	    }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   173
	    dm = resourceMonitor.releaseDataModel(dm);
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
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
	    + (String)(ciArray.length > 0 ? ciArray[0].toString() : "null"));
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 the names of all Solaris_ProcessUtilizationInformation instances.
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 synchronized  CIMObjectPath[]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   202
    	    enumerateInstanceNames(CIMObjectPath op, 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
	ProcessDataModel pdm;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   207
	CIMObjectPath procstatCOP;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   208
	CIMObjectPath procCOP;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   209
	CIMObjectPath cop;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   210
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   211
	SRMDebug.trace(SRMDebug.METHOD_CALL, op.toString());		
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   212
	try {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   213
	    dm = resourceMonitor.getDataModel(false);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   214
	    Iterator i = dm.getProcessIterator();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   215
	    while (i.hasNext()) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   216
		pdm = (ProcessDataModel) i.next();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   217
		procstatCOP  = pdm.getCIMObjectPath(
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   218
		    SOLARIS_PROCESSSTATISTICALINFORMATION);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   219
		procCOP = pdm.getCIMObjectPathForProc();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   220
		cop = new CIMObjectPath(op.getObjectName(),
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   221
		op.getNameSpace());
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   222
		cop.addKey(ELEMENT, new CIMValue(procCOP));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   223
		cop.addKey(STATS, new CIMValue(procstatCOP));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   224
		installedElements.add(cop);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   225
	    }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   226
	    dm = resourceMonitor.releaseDataModel(dm);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   227
	} catch (Exception e) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   228
	    dm = resourceMonitor.releaseDataModel(dm);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   229
	    String msg = writeLog(LOGERROR, "SRM_1003");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   230
	    writeLog(LOGERROR, e);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   231
	    msg += " (" + e.getClass().toString() + ")";
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   232
	    SRMDebug.trace1(providerName, e);	
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   233
	    throw new CIMException(CIMException.CIM_ERR_FAILED, msg);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   234
    	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   235
	
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   236
	CIMObjectPath[] copArray = new CIMObjectPath[installedElements.size()];
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   237
	installedElements.toArray(copArray);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   238
	SRMDebug.trace(SRMDebug.METHOD_RETV, "instanceName[0]: "
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   239
	    + (String)(copArray.length > 0 ? copArray[0].toString() : "null"));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   240
        return copArray;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   241
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   242
    } // end enumerateInstanceNames
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   243
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   244
} // end class Solaris_ProcessStatistics