usr/src/cmd/wbem/provider/com/sun/wbem/solarisprovider/srm/Solaris_ActiveProjectProcessAggregateStatistics.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_ActiveProjectProcessAggregateStatistics.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_ActiveProjectProcessAggregateStatistics class.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    41
 * This class represents a link between a Project 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_ActiveProjectProcessAggregateStatistics
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    46
	extends SRMProvider {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    47
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    48
    /**
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    49
     * The name of the provider implemented by this class
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    50
     */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    51
    protected String providerName =
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    52
	SOLARIS_ACTIVEPROJECTPROCESSAGGREGATESTATISTICS;
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
    /**
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    56
     * Get the name of the provider implemented by this class.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    57
     * @returns String provider name
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    58
     */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    59
    protected String getProviderName() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    60
	return providerName;
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
    /**
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    65
     * Returns a specific CIMInstance.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    66
     * @param op - the name of the instance to be retrieved. This must include
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    67
     * all of the keys and values for the instance.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    68
     * @param localOnly - if true, only the local properties of the class are
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    69
     * returned, otherwise all properties are required
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    70
     * @param includeQualifiers - if true, the qualifiers are returned as part
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    71
     * of of the returned instancei, otherwise no qualifiers will be returned
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    72
     * @param includeClassOrigin - if true, the class origin of each property
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    73
     * will be returned
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    74
     * @param String[] - if null, all properties are returned, otherwise only
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    75
     * the properties specified will be returned. Any duplicate properties will
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    76
     * be ignored.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    77
     * @param cc - the class reference
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    78
     *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    79
     * @return	CIMInstance the retrieved instance.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    80
     * @exception CIMException - the method getInstance throws a CIMException
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    81
     * if the CIMObjectPath is incorrect or does not exist.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    82
     */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    83
    public synchronized CIMInstance getInstance(CIMObjectPath op,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    84
				   boolean localOnly,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    85
				   boolean includeQualifiers,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    86
				   boolean includeClassOrigin,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    87
				   String[] propList,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    88
				   CIMClass cc)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    89
	    throws CIMException {
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 activeprojCOP = 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
		    activeprojCOP = (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(activeprojCOP));
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_ActiveProjectAggregateStatistics.
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 synchronized 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
	ActiveProjectModel apm;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   155
	CIMObjectPath procaggreCOP;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   156
	CIMObjectPath activeprojCOP;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   157
	CIMInstance ci;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   158
    	DataModel   dm = null;
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
	    for (Iterator i = dm.getProjectIterator(); i.hasNext(); ) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   164
		apm = (ActiveProjectModel) i.next();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   165
		activeprojCOP = apm.getCIMObjectPath(SOLARIS_ACTIVEPROJECT);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   166
		procaggreCOP = dm.getProjprocs(apm.name).getCIMObjectPath(
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   167
		    SOLARIS_PROJECTPROCESSAGGREGATESTATISTICALINFORMATION);
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(activeprojCOP));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   170
		ci.setProperty(STATS, new CIMValue(procaggreCOP));
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
	CIMInstance[] ciArray = new CIMInstance[installedElements.size()];
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   183
	installedElements.toArray(ciArray);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   184
	SRMDebug.trace(SRMDebug.METHOD_RETV, "instance[0]: "
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   185
	    	+ ciArray[0].toString());
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   186
        return ciArray;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   187
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   188
    } // end enumerateInstances
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   189
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
     * Returns all object paths.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   193
     *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   194
     * @param op - the class name to enumerate the instances
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   195
     * @param cc - the class reference passed to the provider
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   196
     * @return an array of CIMObjectPath containing names of the enumerated
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   197
     * instances.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   198
     * @exception CIMException - if the classname is null or does not exist.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   199
     */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   200
    public synchronized  CIMObjectPath[]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   201
    	enumerateInstanceNames(CIMObjectPath op, CIMClass cc)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   202
	    throws CIMException {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   203
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   204
	Vector installedElements = new Vector();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   205
	ActiveProjectModel apm;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   206
	CIMObjectPath procaggreCOP;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   207
	CIMObjectPath activeprojCOP;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   208
	CIMObjectPath cop;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   209
	DataModel   dm = null;
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.getProjectIterator();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   215
	    while (i.hasNext()) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   216
		apm = (ActiveProjectModel) i.next();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   217
		activeprojCOP = apm.getCIMObjectPath(SOLARIS_ACTIVEPROJECT);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   218
		procaggreCOP = dm.getProjprocs(apm.name).getCIMObjectPath(
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   219
		    SOLARIS_PROJECTPROCESSAGGREGATESTATISTICALINFORMATION);
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(activeprojCOP));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   223
		cop.addKey(STATS, new CIMValue(procaggreCOP));
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
    	CIMObjectPath[] copArray = new CIMObjectPath[installedElements.size()];
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   236
	installedElements.toArray(copArray);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   237
	SRMDebug.trace(SRMDebug.METHOD_RETV, "instanceName[0]: "
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   238
	    	+ copArray[0].toString());
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   239
	return copArray;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   240
    }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   241
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   242
} // end class Solaris_ActiveProjectProcessAggregateStatistics