Solaris_RealizesExtent.c revision 7c478bd95313f5f23a4c958a745db2134aa03244
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2002 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#pragma ident "%Z%%M% %I% %E% SMI"
#include <unistd.h>
#include <netdb.h>
#include <errno.h>
#include "util.h"
#include "cimKeys.h"
#include "providerNames.h"
#include "messageStrings.h"
#include "disk_descriptors.h"
#include "logicaldisk_descriptors.h"
#include "realizesextent_descriptors.h"
#include "Solaris_RealizesExtent.h"
#define REALIZES_GETINSTANCE "REALIZES_EXTENT,GET_INSTANCE"
#define REALIZES_ENUMINSTANCES "REALIZES_EXTENT,ENUM_INSTANCES"
#define REALIZES_ENUMINSTANCENAMES \
"REALIZES_EXTENT,ENUM_INSTANCENAMES"
#define REALIZES_CREATEINSTANCE "REALIZES_EXTENT,CREATE_INSTANCE"
#define REALIZES_DELETEINSTANCE "REALIZES_EXTENT,DELETE_INSTANCE"
#define REALIZES_SETINSTANCE "REALIZES_EXTENT,SET_INSTANCE"
#define REALIZES_SETPROPERTY "REALIZES_EXTENT,SET_PROPERTY"
#define REALIZES_GETPROPERTY "REALIZES_EXTENT,GET_PROPERTY"
#define REALIZES_INVOKEMETHOD "REALIZES_EXTENT,INVOKE_METHOD"
#define REALIZES_EXECQUERY "REALIZES_EXTENT,EXEC_QUERY"
#define REALIZES_ASSOCIATORS "REALIZES_EXTENT,ASSOCIATORS"
#define REALIZES_ASSOCIATORNAMES "REALIZES_EXTENT,ASSOCIATOR_NAMES"
#define REALIZES_REFERENCES "REALIZES_EXTENT,REFERENCES"
#define REALIZES_REFERENCENAMES "REALIZES_EXTENT,REFERENCE_NAMES"
static
/*
* Solaris_RealizesExtent provider
*
* It is important to note that all memory allocated by these functions
* and passed to the CIMOM, is freed by the door process prior to
* sending a copy of the data to the CIMOM.
*/
/*
* Name: cp_getInstance_Solaris_RealizesExtent
*
* Description: Returns an instance of Solaris_RealizesExtent if one
* is found that matches the object path passed in .
*
* Parameters:
* pOP - An CCIMObjectPath * which contains the information on
* the class for which to find the instance.
* Returns: CCIMInstance * if match is found, or NULL if not.
*
*/
{
char *name;
int error;
}
ANTECEDENT, &error);
if (error == 0) {
}
/*
* Make sure we have both keys. If not, this is an error.
*/
if (error != 0) {
return ((CCIMInstance *)NULL);
}
/*
* Now get the name of the antecedent from the object path.
*/
return ((CCIMInstance *)NULL);
}
return ((CCIMInstance *)NULL);
}
/*
* Not found. Return a null instance.
*/
return ((CCIMInstance *)NULL);
}
if (error != 0) {
return ((CCIMInstance *)NULL);
}
/*
* Turn this in to a realizes extent instance.
*/
REALIZES_EXTENT, &error);
if (error != 0) {
return ((CCIMInstance *)NULL);
}
return (inst);
}
/*
* Name: cp_enumInstances_Solaris_RealizesExtent
*
* Description: Returns a linked list of instances of this association.
*
* Parameters:
* pOP - An CCIMObjectPath * which contains the information on
* the class for which to find the instances.
* Returns:
* CCIMInstanceList * if istances are found. NULL otherwise.
*/
/* ARGSUSED */
{
int error = 0;
int filter[2];
int i = 0;
filter[0] = DM_MT_FIXED;
if (disk_descriptorp == NULL ||
disk_descriptorp[0] == NULL) {
return ((CCIMInstanceList *)NULL);
}
if (error != 0) {
return ((CCIMInstanceList *)NULL);
}
/*
* For each one of the disks found, generate the physical and
* logical views and create an association instance.
*/
ex = cim_getLastError();
return ((CCIMInstanceList *)NULL);
}
for (i = 0; disk_descriptorp[i] != NULL; i ++) {
if (error != 0) {
return ((CCIMInstanceList *)NULL);
}
return ((CCIMInstanceList *)NULL);
}
}
}
return (instList);
}
/*
* Name: cp_enumInstanceNames_Solaris_RealizesExtent
*
* Description: Returns a linked list of CCIMObjectPath *
* of Solaris_RealizesExtent objects if found.
*
* Parameters:
* pOP - An CCIMObjectPath * which contains the information on
* the class for which to find the instances.
* Returns:
* CCIMObjectPathList * if objects are found. NULL otherwise.
*/
/* ARGSUSED */
int error;
return ((CCIMObjectPathList *)NULL);
}
/*
* Call in to enumInstances and then convert the instance list in
* to an object list.
*/
}
return (objList);
}
/*
* Creating an instance of a Solaris_RealizesExtent is not supported.
*/
/* ARGSUSED */
{
int error;
return ((CCIMObjectPath *)NULL);
}
/*
* Deleting an instance of a Solaris_RealizesExtent is not supported.
*/
/* ARGSUSED */
{
int error;
return (cim_false);
}
/*
* Name: cp_getProperty_Solaris_RealizesExtent
*
* Description: Returns the property requested, if found.
*
* Parameters:
* pOP - An CCIMObjectPath * which contains the information on
* the class for which to find the instances.
* Returns:
* CCIMProperty * if found.
*/
/* ARGSUSED */
char *pPropName)
{
int error = 0;
return ((CCIMProperty *)NULL);
}
return ((CCIMProperty *)NULL);
}
return (prop);
}
/*
* Setting an instance of a Solaris_RealizesExtent is not supported.
*/
/* ARGSUSED */
{
int error;
return (cim_false);
}
/*
* Setting a property on a Solaris_RealizesExtent is not supported.
*/
/* ARGSUSED */
{
int error;
return (cim_false);
}
/*
* No Methods for Solaris_RealizesExtent.
*/
/* ARGSUSED */
{
return (retVal);
}
/*
* Name: cp_execQuery_Solaris_RealizesExtent
*
* Description:
* Returns an instance list which matches the query if any are found.
*
* Parameters:
* CCIMObjectPath *op - An CCIMObjectPath * which contains the
* information on the class for which to find the instances.
*
* selectList - Not used
* nonJoinExp - Not used
*
* Returns:
* CCIMInstance * if matched instance is found. Otherwise, NULL.
*/
/*
* Currently, there is no WQL parser for the C providers. As a result,
* what is returned to the CIMOM is a list of instances with
* a NULL value at the beginning of the list. This NULL value indicates
* to the CIMOM that it must do the filtering for the client.
*/
/* ARGSUSED */
{
int error;
return ((CCIMInstanceList *)NULL);
}
return ((CCIMInstanceList *)NULL);
}
/*
* Create a null instance and add it to the beginning
* of the list to indicate to the CIMOM that no filtering
* was done.
*/
ex = cim_getLastError();
return ((CCIMInstanceList *)NULL);
}
ex = cim_getLastError();
return ((CCIMInstanceList *)NULL);
}
ex = cim_getLastError();
return ((CCIMInstanceList *)NULL);
}
/*
* Since copying the original list to the new list will
* leave no way to free the original list, manually
* concatenate the original list to the new one.
*/
return (result);
}
/*
* Name: cp_associators_Solaris_RealizesExtent
*
* Description:
* Returns a instances of objects associated with the passed in
* object if there are any.
*
* Parameters:
*
* CCIMObjectPath *pAssocName - The name of the association that
* the client wants information about.
*
* CCIMObjectPath *pObjectName - An CCIMObjectPath * which contains the
* information on the class for which to find the associated instances.
*
* cimchar *pResultClass - If specified, only return instances that
* are of this class type.
*
* cimchar *pRole - If specified, must be valid for the object path
* passed in requesting the associated instances.
*
* cimchar *pResultRole - If specified, only return instances that
* are playing this role in the association.
*
*
* Returns:
* CCIMInstanceList * if associated objects are found. NULL otherwise.
*/
/* ARGSUSED */
{
char *name;
int error = 0;
int isAntecedent = 0;
if (pObjectName == NULL ||
}
isAntecedent = 1;
}
if (isAntecedent != 1) {
return ((CCIMInstanceList *)NULL);
}
}
}
/*
* Get the key. It will either be deviceid or tag. These are
* mutually exclusive.
*/
if (isAntecedent) {
&error);
} else {
&error);
}
/*
* We went through the whole list and didn't find the necessary
* key value.
*/
return ((CCIMInstanceList *)NULL);
}
/*
* No device found.
*/
return (instList);
}
if (error != 0) {
return ((CCIMInstanceList *)NULL);
}
if (isAntecedent == 1) {
/*
* Physical disk calling this method, return instances of the
* logical disk associated with this disk.
*/
if (error != 0) {
return ((CCIMInstanceList *)NULL);
}
ex = cim_getLastError();
return ((CCIMInstanceList *)NULL);
}
ex = cim_getLastError();
return ((CCIMInstanceList *)NULL);
}
} else {
/*
* This is the logical disk calling this function. Return the
* disk that this belongs to.
*/
if (error != 0) {
return ((CCIMInstanceList *)NULL);
}
ex = cim_getLastError();
return ((CCIMInstanceList *)NULL);
}
ex = cim_getLastError();
return ((CCIMInstanceList *)NULL);
}
}
return (instList);
}
/*
* Name: cp_associatorNames_Solaris_RealizesExtent
*
* Description:
* Returns a list of objects associated with the passed in
* object if there are any via the object CCIMObjectPath.
*
* Parameters:
*
* CCIMObjectPath *pAssocName - The name of the association that
* the client wants information about.
*
* CCIMObjectPath *pObjectName - An CCIMObjectPath * which contains the
* information on the class for which to find the associated instances.
*
* cimchar *pResultClass - If specified, only return instances that
* are of this class type.
*
* cimchar *pRole - If specified, must be valid for the object path
* passed in requesting the associated instances.
*
* cimchar *pResultRole - If specified, only return instances that
* are playing this role in the association.
*
*
* Returns:
* CCIMObjectPathList * if associated objects are found. NULL otherwise.
*/
/* ARGSUSED */
{
int error;
if (pObjectName == NULL) {
return ((CCIMObjectPathList *)NULL);
}
instList =
}
return (objList);
}
/*
* Name: cp_references_Solaris_RealizesExtent
*
* Description:
* Returns a instances of objects that have references to the passed in
* object if there are any.
*
* Parameters:
*
* CCIMObjectPath *pAssocName - The name of the association that
* the client wants information about.
*
* CCIMObjectPath *pObjectName - An CCIMObjectPath * which contains the
* information on the class for which to find the associated instances.
*
* cimchar *pRole - If specified, must be valid for the object path
* passed in requesting the associated instances.
*
* Returns:
* CCIMObjectPathList * if associated objects are found. NULL otherwise.
*/
/* ARGSUSED */
{
int error;
if (pObjectName == NULL) {
return ((CCIMInstanceList *)NULL);
}
/*
* Get the list of those objects that are referred to by
* the calling object.
*/
objList =
return ((CCIMInstanceList *)NULL);
}
/*
* Now generate the list of instances to return.
*/
} else {
}
return (instList);
}
/*
* Name: cp_referenceNames_Solaris_RealizesExtent
*
* Description:
* Returns a instances of objects that have references to the passed in
* object if there are any.
*
* Parameters:
*
* CCIMObjectPath *pAssocName - The name of the association that
* the client wants information about.
*
* CCIMObjectPath *pObjectName - An CCIMObjectPath * which contains the
* information on the class for which to find the associated instances.
*
* cimchar *pRole - If specified, must be valid for the object path
* passed in requesting the associated instances.
*
*
* Returns:
* CCIMObjectPathList * if associated objects are found. NULL otherwise.
*
*/
/* ARGSUSED */
{
int error;
if (pObjectName == NULL) {
return ((CCIMObjectPathList *)NULL);
}
instList =
pObjectName, pRole);
}
return (objList);
}
/*
* Create the association class with the passed in attributes.
*/
static
{
*error = 0;
/*
* If no objects associated with this one, return NULL.
*/
return ((CCIMInstanceList *)NULL);
}
ex = cim_getLastError();
return ((CCIMInstanceList *)NULL);
}
ex = cim_getLastError();
return ((CCIMInstanceList *)NULL);
}
ex = cim_getLastError();
return ((CCIMInstanceList *)NULL);
}
error);
if (*error != 0) {
ex = cim_getLastError();
return ((CCIMInstanceList *)NULL);
}
if (*error != 0) {
ex = cim_getLastError();
return ((CCIMInstanceList *)NULL);
}
ex = cim_getLastError();
return ((CCIMInstanceList *)NULL);
}
}
return (instList);
}