[zypp-commit] <cmpi-zypp> master : Implement SUSE_InstallationServiceAffectsSoftware (part 2)

ref: refs/heads/master commit 8ddc1ecd39b73641406991fac40a6314ed89445c Author: Michael Calmer <mc@suse.de> Date: Fri Jan 30 16:09:10 2009 +0100 Implement SUSE_InstallationServiceAffectsSoftware (part 2) --- ..._InstallationServiceAffectsSoftwareIdentity.mof | 30 ++ ...allationServiceAffectsSoftwareIdentity.sfcb.reg | 5 + ...lationServiceAffectsSoftwareIdentityProvider.cc | 485 ++++++++++++++++++++ ...llationServiceAffectsSoftwareIdentityProvider.h | 42 ++ 4 files changed, 562 insertions(+), 0 deletions(-) diff --git a/mof/SUSE_InstallationServiceAffectsSoftwareIdentity.mof b/mof/SUSE_InstallationServiceAffectsSoftwareIdentity.mof new file mode 100644 index 0000000..b5465a5 --- /dev/null +++ b/mof/SUSE_InstallationServiceAffectsSoftwareIdentity.mof @@ -0,0 +1,30 @@ +//#pragma namespace ("root/cimv2") + + +// ------------------------------------------------------------------- +// ******************************************************************* +// Classes +// ******************************************************************* +// ------------------------------------------------------------------- + + + +// =================================================================== +// SUSE_InstallationServiceAffectsSoftwareIdentity +// =================================================================== + +[ Provider("cmpi:cmpi-zypp"), + Description ("Association between SUSE_SoftwareInstallationService and SUSE_SoftwareIdentity") +] +class SUSE_InstallationServiceAffectsSoftwareIdentity : CIM_ServiceAffectsElement +{ + [Override ( "AffectedElement" ), + Description ( "Overwrite a CIM_ManagedElement." )] + SUSE_SoftwareIdentity REF AffectedElement; + + [Override ( "AffectingElement" ), + Description ( "Overwrite a CIM_Service." )] + SUSE_SoftwareInstallationService REF AffectingElement; +}; + + diff --git a/mof/SUSE_InstallationServiceAffectsSoftwareIdentity.sfcb.reg b/mof/SUSE_InstallationServiceAffectsSoftwareIdentity.sfcb.reg new file mode 100644 index 0000000..3bb64dd --- /dev/null +++ b/mof/SUSE_InstallationServiceAffectsSoftwareIdentity.sfcb.reg @@ -0,0 +1,5 @@ +[SUSE_InstallationServiceAffectsSoftwareIdentity] + provider: SUSE_InstallationServiceAffectsSoftwareIdentityProvider + location: cmpi-zypp + type: instance association + namespace: root/cimv2 diff --git a/src/SUSE_InstallationServiceAffectsSoftwareIdentityProvider.cc b/src/SUSE_InstallationServiceAffectsSoftwareIdentityProvider.cc new file mode 100644 index 0000000..181830b --- /dev/null +++ b/src/SUSE_InstallationServiceAffectsSoftwareIdentityProvider.cc @@ -0,0 +1,485 @@ + +#include <iostream> + +#include <cmpi/cmpimacs.h> +#include <cmpi/cmpidt.h> +#include <cmpi/CmpiResult.h> +#include <cmpi/CmpiBroker.h> +#include <cmpi/CmpiArray.h> +#include <cmpi/CmpiBooleanData.h> + +#include <zypp/base/String.h> +#include <zypp/base/LogTools.h> + +#include "SUSE_zypp.h" +#include "SUSE_Common.h" +#include "SUSE_SoftwareIdentityProvider.h" +#include "SUSE_InstallationServiceAffectsSoftwareIdentityProvider.h" + +using namespace zypp; +using std::endl; + +namespace cmpizypp +{ + namespace + { + const char * _ClassName = "SUSE_InstallationServiceAffectsSoftwareIdentity"; + const char * _RefLeft = "AffectedElement"; + const char * _RefRight = "AffectingElement"; + const char * _RefLeftClass = "SUSE_SoftwareIdentity"; + const char * _RefRightClass = "SUSE_SoftwareInstallationService"; + + } // namespace + + SUSE_InstallationServiceAffectsSoftwareIdentityProviderClass::SUSE_InstallationServiceAffectsSoftwareIdentityProviderClass( const CmpiBroker & mbp, const CmpiContext & ctx ) + : CmpiBaseMI( mbp, ctx ) + , CmpiInstanceMI( mbp, ctx ) + , CmpiAssociationMI( mbp, ctx ) + { + } + + CmpiStatus SUSE_InstallationServiceAffectsSoftwareIdentityProviderClass::enumInstanceNames( const CmpiContext& ctx, CmpiResult& rslt, const CmpiObjectPath & cop ) + { + _CMPIZYPP_TRACE(1,("--- %s CMPI EnumInstanceNames() called",_ClassName)); + + // zypp init + zypp::scoped_ptr<ZyppAC> zyppac; + try + { + zyppac.reset( new ZyppAC() ); + } + catch ( const zypp::Exception & err ) + { + CmpiStatus rc( CMPI_RC_ERR_FAILED, ZyppAC::exceptionString( err, "Could not list software identities: " ).c_str() ); + _CMPIZYPP_TRACE(1,("--- %s CMPI EnumInstanceNames() failed : %s", _ClassName, rc.msg())); + return rc; + } + + CmpiObjectPath op(cop.getNameSpace(), _RefRightClass); // SUSE_SoftwareInstallationService + if( op.isNull() ) + { + CmpiStatus st( CMPI_RC_ERR_FAILED, "Create CMPIObjectPath failed."); + _CMPIZYPP_TRACE(1,("--- enumInstanceNames() failed: %s", st.msg() ) ); + return st; + } + CmpiEnumeration en = broker->enumInstanceNames( ctx, op ); + if( en.isNull() ) + { + CmpiStatus st( CMPI_RC_ERR_FAILED, "EnumInstanceNames failed."); + _CMPIZYPP_TRACE(1,("--- enumInstanceNames() failed: %s", st.msg() ) ); + return st; + } + + CmpiObjectPath rop( cop.getNameSpace(), _ClassName ); + + while( en.hasNext() ) + { + CmpiData data = en.getNext(); + + ResPool pool( zyppac->pool() ); + for_( it, pool.begin(), pool.end() ) + { + if( (*it).status().isInstalled() ) + continue; + + CmpiObjectPath iop = SUSE_SoftwareIdentityProviderClass::makeSoftwareIdentityOP(*it, *zyppac, cop); + CmpiInstance ci( rop ); + if( ci.isNull() ) + { + return CmpiStatus(CMPI_RC_ERR_FAILED, "Create CmpiInstance failed."); + } + ci.setProperty( _RefRight, iop ); + ci.setProperty( _RefLeft, data ); + + CmpiObjectPath tmp = ci.getObjectPath(); + tmp.setNameSpace(cop.getNameSpace()); + rslt.returnData(tmp); + } + } + + rslt.returnDone(); + _CMPIZYPP_TRACE(1,("--- %s CMPI EnumInstanceNames() exited",_ClassName)); + return CmpiStatus(CMPI_RC_OK); + } + + CmpiStatus SUSE_InstallationServiceAffectsSoftwareIdentityProviderClass::enumInstances( const CmpiContext & ctx, CmpiResult & rslt, const CmpiObjectPath & cop, const char** properties ) + { + _CMPIZYPP_TRACE(1,("--- %s CMPI EnumInstances() called",_ClassName)); + + // zypp init + zypp::scoped_ptr<ZyppAC> zyppac; + try + { + zyppac.reset( new ZyppAC() ); + } + catch ( const zypp::Exception & err ) + { + CmpiStatus rc( CMPI_RC_ERR_FAILED, ZyppAC::exceptionString( err, "Could not list software identities: " ).c_str() ); + _CMPIZYPP_TRACE(1,("--- %s CMPI EnumInstances() failed : %s", _ClassName, rc.msg())); + return rc; + } + + CmpiObjectPath op(cop.getNameSpace(), _RefRightClass); // SUSE_SoftwareInstallationService + if( op.isNull() ) + { + CmpiStatus st( CMPI_RC_ERR_FAILED, "Create CMPIObjectPath failed."); + _CMPIZYPP_TRACE(1,("--- enumInstances() failed: %s", st.msg() ) ); + return st; + } + CmpiEnumeration en = broker->enumInstanceNames( ctx, op ); + if( en.isNull() ) + { + CmpiStatus st( CMPI_RC_ERR_FAILED, "EnumInstanceNames failed."); + _CMPIZYPP_TRACE(1,("--- enumInstances() failed: %s", st.msg() ) ); + return st; + } + + CmpiObjectPath rop( cop.getNameSpace(), _ClassName ); + + while( en.hasNext() ) + { + CmpiData data = en.getNext(); + + ResPool pool( zyppac->pool() ); + for_( it, pool.begin(), pool.end() ) + { + if( (*it).status().isInstalled() ) + continue; + + CmpiObjectPath iop = SUSE_SoftwareIdentityProviderClass::makeSoftwareIdentityOP(*it, *zyppac, cop); + CmpiInstance ci( rop ); + if( ci.isNull() ) + { + return CmpiStatus(CMPI_RC_ERR_FAILED, "Create CmpiInstance failed."); + } + ci.setProperty( _RefRight, iop ); + ci.setProperty( _RefLeft, data ); + + rslt.returnData(ci); + } + } + + rslt.returnDone(); + _CMPIZYPP_TRACE(1,("--- %s CMPI EnumInstances() exited",_ClassName)); + return CmpiStatus(CMPI_RC_OK); + } + + + CmpiStatus SUSE_InstallationServiceAffectsSoftwareIdentityProviderClass::getInstance( const CmpiContext &ctx, CmpiResult &rslt, const CmpiObjectPath &cop, const char **properties ) + { + _CMPIZYPP_TRACE(1,("--- %s CMPI GetInstance() called",_ClassName)); + + CmpiInstance ci = assoc_get_inst( *broker, ctx, cop, _ClassName, _RefLeft, _RefRight); + + rslt.returnData( ci ); + rslt.returnDone(); + _CMPIZYPP_TRACE(1,("--- %s CMPI GetInstance() exited",_ClassName)); + return CmpiStatus(CMPI_RC_OK); + } + + + + CmpiStatus SUSE_InstallationServiceAffectsSoftwareIdentityProviderClass::associators( const CmpiContext& ctx, CmpiResult& rslt, + const CmpiObjectPath& cop, const char* assocClass, const char* resultClass, + const char* role, const char* resultRole, const char** properties ) + { + _CMPIZYPP_TRACE(1,("--- %s CMPI associators() called",_ClassName)); + + CmpiObjectPath op( cop.getNameSpace(), _ClassName ); + + if ( !assocClass || op.classPathIsA( assocClass ) ) + { + if ( assoc_check_parameter_const( cop, _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, + resultClass, role, resultRole ) ) + { + if ( cop.classPathIsA(_RefRightClass) ) // SUSE_SoftwareInstallationService + { + // we need to implement our own handling, + // because we need to search for SUSE_SoftwareIdentity + CmpiInstance cis( broker->getInstance( ctx, cop, NULL ) ); // source instance + + if( !cis.instanceIsA(_RefRightClass) ) + { + return CmpiStatus(CMPI_RC_ERR_FAILED, "Create references failed."); + } + + // zypp init + zypp::scoped_ptr<ZyppAC> zyppac; + try + { + zyppac.reset( new ZyppAC() ); + } + catch ( const zypp::Exception & err ) + { + CmpiStatus rc( CMPI_RC_ERR_FAILED, ZyppAC::exceptionString( err, "Could not list software identities: " ).c_str() ); + _CMPIZYPP_TRACE(1,("--- %s CMPI associators() failed : %s", _ClassName, rc.msg())); + return rc; + } + + ResPool pool( zyppac->pool() ); + for_( it, pool.begin(), pool.end() ) + { + if( (*it).status().isInstalled() ) + continue; + + CmpiInstance ci = SUSE_SoftwareIdentityProviderClass::makeSoftwareIdentityInstance(*it, *zyppac, cop, properties); + rslt.returnData(ci); + } + } + else // ( cop.classPathIsA(_RefLeftClass) ) //SUSE_SoftwareIdentity + { + const char * copInstanceId = cop.getKey("InstanceId"); + if ( ! ZyppAC::isSystemSoftwareIdentityInstanceId( copInstanceId ) ) + { + if(! assoc_create_refs_1toN_ST( *broker, ctx, rslt, cop, _ClassName, + _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, 1, 1) ) + { + CmpiStatus st(CMPI_RC_ERR_FAILED, "Create associations failed."); + _CMPIZYPP_TRACE(1,("--- CMPI associators() failed.")); + return st; + } + } + } + + } + } + + rslt.returnDone(); + _CMPIZYPP_TRACE(1,("--- %s CMPI associators() exited",_ClassName)); + return CmpiStatus(CMPI_RC_OK); + } + + CmpiStatus SUSE_InstallationServiceAffectsSoftwareIdentityProviderClass::associatorNames( const CmpiContext& ctx, CmpiResult& rslt, + const CmpiObjectPath& cop, const char* assocClass, const char* resultClass, + const char* role, const char* resultRole ) + { + _CMPIZYPP_TRACE(1,("--- %s CMPI associatorNames() called",_ClassName)); + + CmpiObjectPath op( cop.getNameSpace(), _ClassName ); + + if ( !assocClass || op.classPathIsA( assocClass ) ) + { + if ( assoc_check_parameter_const( cop, _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, + resultClass, role, resultRole ) ) + { + if ( cop.classPathIsA(_RefRightClass) ) // SUSE_SoftwareInstallationService + { + // we need to implement our own handling, + // because we need to search for SUSE_SoftwareIdentity + CmpiInstance cis( broker->getInstance( ctx, cop, NULL ) ); // source instance + + if( !cis.instanceIsA(_RefRightClass) ) + { + return CmpiStatus(CMPI_RC_ERR_FAILED, "Create instance failed."); + } + + // zypp init + zypp::scoped_ptr<ZyppAC> zyppac; + try + { + zyppac.reset( new ZyppAC() ); + } + catch ( const zypp::Exception & err ) + { + CmpiStatus rc( CMPI_RC_ERR_FAILED, ZyppAC::exceptionString( err, "Could not list software identities: " ).c_str() ); + _CMPIZYPP_TRACE(1,("--- %s CMPI associatorNames() failed : %s", _ClassName, rc.msg())); + return rc; + } + + ResPool pool( zyppac->pool() ); + for_( it, pool.begin(), pool.end() ) + { + if( (*it).status().isInstalled() ) + continue; + + CmpiObjectPath iop = SUSE_SoftwareIdentityProviderClass::makeSoftwareIdentityOP(*it, *zyppac, cop); + + rslt.returnData(iop); + } + } + else // ( cop.classPathIsA(_RefLeftClass) ) //SUSE_SoftwareIdentity + { + const char * copInstanceId = cop.getKey("InstanceId"); + if ( ! ZyppAC::isSystemSoftwareIdentityInstanceId( copInstanceId ) ) + { + if(! assoc_create_refs_1toN_ST( *broker, ctx, rslt, cop, _ClassName, + _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, 0, 1) ) + { + CmpiStatus st(CMPI_RC_ERR_FAILED, "Create references failed."); + _CMPIZYPP_TRACE(1,("--- CMPI associatorNames() failed.")); + return st; + } + } + } + } + } + + rslt.returnDone(); + _CMPIZYPP_TRACE(1,("--- %s CMPI associatorNames() exited",_ClassName)); + return CmpiStatus(CMPI_RC_OK); + } + + CmpiStatus SUSE_InstallationServiceAffectsSoftwareIdentityProviderClass::references( const CmpiContext& ctx, CmpiResult& rslt, + const CmpiObjectPath& cop, const char* resultClass, const char* role, + const char** properties ) + { + _CMPIZYPP_TRACE(1,("--- %s CMPI references() called",_ClassName)); + + CmpiObjectPath op( cop.getNameSpace(), _ClassName ); + + if ( !resultClass || op.classPathIsA( resultClass ) ) + { + if ( assoc_check_parameter_const( cop, _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, + NULL/*resultClass*/, role, NULL /*resultRole*/ ) ) + { + if ( cop.classPathIsA(_RefRightClass) ) // SUSE_SoftwareInstallationService + { + // we need to implement our own handling, + // because we need to search for SUSE_SoftwareIdentity + CmpiInstance cis( broker->getInstance( ctx, cop, NULL ) ); // source instance + + if( !cis.instanceIsA(_RefLeftClass) ) + { + return CmpiStatus(CMPI_RC_ERR_FAILED, "Create references failed."); + } + + CmpiObjectPath rop( cop.getNameSpace(), _ClassName ); // associations op + + // zypp init + zypp::scoped_ptr<ZyppAC> zyppac; + try + { + zyppac.reset( new ZyppAC() ); + } + catch ( const zypp::Exception & err ) + { + CmpiStatus rc( CMPI_RC_ERR_FAILED, ZyppAC::exceptionString( err, "Could not list software identities: " ).c_str() ); + _CMPIZYPP_TRACE(1,("--- %s CMPI references() failed : %s", _ClassName, rc.msg())); + return rc; + } + + ResPool pool( zyppac->pool() ); + for_( it, pool.begin(), pool.end() ) + { + if( (*it).status().isInstalled() ) + continue; + + CmpiObjectPath iop = SUSE_SoftwareIdentityProviderClass::makeSoftwareIdentityOP(*it, *zyppac, cop); + CmpiInstance ci( rop ); + if( ci.isNull() ) + { + return CmpiStatus(CMPI_RC_ERR_FAILED, "Create CmpiInstance failed."); + } + ci.setProperty( _RefRight, iop ); + ci.setProperty( _RefLeft, cop ); + rslt.returnData(ci); + } + } + else //( cop.classPathIsA(_RefLeftClass) ) //SUSE_SoftwareIdentity + { + const char * copInstanceId = cop.getKey("InstanceId"); + if ( ! ZyppAC::isSystemSoftwareIdentityInstanceId( copInstanceId ) ) + { + if(! assoc_create_refs_1toN_ST( *broker, ctx, rslt, cop, _ClassName, + _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, 1, 0) ) + { + CmpiStatus st(CMPI_RC_ERR_FAILED, "Create references failed."); + _CMPIZYPP_TRACE(1,("--- CMPI references() failed.")); + return st; + } + } + } + } + } + + rslt.returnDone(); + _CMPIZYPP_TRACE(1,("--- %s CMPI references() exited",_ClassName)); + return CmpiStatus(CMPI_RC_OK); + } + + CmpiStatus SUSE_InstallationServiceAffectsSoftwareIdentityProviderClass::referenceNames( const CmpiContext& ctx, CmpiResult& rslt, + const CmpiObjectPath& cop, const char* resultClass, const char* role ) + { + _CMPIZYPP_TRACE(1,("--- %s CMPI referenceNames() called",_ClassName)); + + CmpiObjectPath op( cop.getNameSpace(), _ClassName ); + + if ( !resultClass || op.classPathIsA( resultClass ) ) + { + if ( assoc_check_parameter_const( cop, _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, + NULL/*resultClass*/, role, NULL /*resultRole*/ ) ) + { + if ( cop.classPathIsA(_RefRightClass) ) // SUSE_SoftwareInstallationService + { + // we need to implement our own handling, + // because we need to search for SUSE_SoftwareIdentity + CmpiInstance cis( broker->getInstance( ctx, cop, NULL ) ); // source instance + + if( !cis.instanceIsA(_RefRightClass) ) + { + return CmpiStatus(CMPI_RC_ERR_FAILED, "Create referenceNames failed."); + } + + CmpiObjectPath rop( cop.getNameSpace(), _ClassName ); // associations op + + // zypp init + zypp::scoped_ptr<ZyppAC> zyppac; + try + { + zyppac.reset( new ZyppAC() ); + } + catch ( const zypp::Exception & err ) + { + CmpiStatus rc( CMPI_RC_ERR_FAILED, ZyppAC::exceptionString( err, "Could not list software identities: " ).c_str() ); + _CMPIZYPP_TRACE(1,("--- %s CMPI referenceNames() failed : %s", _ClassName, rc.msg())); + return rc; + } + + ResPool pool( zyppac->pool() ); + for_( it, pool.begin(), pool.end() ) + { + if( (*it).status().isInstalled() ) + continue; + + CmpiObjectPath iop = SUSE_SoftwareIdentityProviderClass::makeSoftwareIdentityOP(*it, *zyppac, cop); + CmpiInstance ci( rop ); + if( ci.isNull() ) + { + return CmpiStatus(CMPI_RC_ERR_FAILED, "Create CmpiInstance failed."); + } + ci.setProperty( _RefRight, iop ); + ci.setProperty( _RefLeft, cop ); + + CmpiObjectPath tmp = ci.getObjectPath(); + tmp.setNameSpace(cop.getNameSpace()); + rslt.returnData(tmp); + } + } + else // ( cop.classPathIsA(_RefLeftClass) ) //SUSE_SoftwareIdentity + { + const char * copInstanceId = cop.getKey("InstanceId"); + if ( ! ZyppAC::isSystemSoftwareIdentityInstanceId( copInstanceId ) ) + { + if(! assoc_create_refs_1toN_ST( *broker, ctx, rslt, cop, _ClassName, + _RefLeft, _RefRight, _RefLeftClass, _RefRightClass, 0, 0) ) + { + CmpiStatus st(CMPI_RC_ERR_FAILED, "Create references failed."); + _CMPIZYPP_TRACE(1,("--- CMPI referenceNames() failed.")); + return st; + } + } + } + } + } + + rslt.returnDone(); + _CMPIZYPP_TRACE(1,("--- %s CMPI referenceNames() exited",_ClassName)); + return CmpiStatus(CMPI_RC_OK); + } + +} // namespace cmpizypp + +CMProviderBase( SUSE_InstallationServiceAffectsSoftwareIdentityProvider ); + +CMInstanceMIFactory( cmpizypp::SUSE_InstallationServiceAffectsSoftwareIdentityProviderClass, SUSE_InstallationServiceAffectsSoftwareIdentityProvider ); +CMAssociationMIFactory( cmpizypp::SUSE_InstallationServiceAffectsSoftwareIdentityProviderClass, SUSE_InstallationServiceAffectsSoftwareIdentityProvider ); diff --git a/src/SUSE_InstallationServiceAffectsSoftwareIdentityProvider.h b/src/SUSE_InstallationServiceAffectsSoftwareIdentityProvider.h new file mode 100644 index 0000000..511fb04 --- /dev/null +++ b/src/SUSE_InstallationServiceAffectsSoftwareIdentityProvider.h @@ -0,0 +1,42 @@ +#ifndef SUSE_INSTALLATIONSERVICEAFFECTSSOFTWAREIDENTITYPROVIDERCLASS_H +#define SUSE_INSTALLATIONSERVICEAFFECTSSOFTWAREIDENTITYPROVIDERCLASS_H + +#include <cmpi/CmpiInstanceMI.h> +#include <cmpi/CmpiAssociationMI.h> + +namespace cmpizypp +{ + /** + */ + class SUSE_InstallationServiceAffectsSoftwareIdentityProviderClass : public CmpiInstanceMI, public CmpiAssociationMI + { + public: + SUSE_InstallationServiceAffectsSoftwareIdentityProviderClass( const CmpiBroker & mbp, const CmpiContext & ctx ); + + virtual CmpiStatus enumInstanceNames( const CmpiContext& ctx, CmpiResult& rslt, const CmpiObjectPath & cop ); + virtual CmpiStatus enumInstances( const CmpiContext & ctx, CmpiResult & rslt, const CmpiObjectPath & cop, const char** properties ); + virtual CmpiStatus getInstance( const CmpiContext &ctx, CmpiResult &rslt, const CmpiObjectPath &cop, const char **properties ); + + virtual CmpiStatus associators + (const CmpiContext& ctx, CmpiResult& rslt, + const CmpiObjectPath& cop, const char* assocClass, const char* resultClass, + const char* role, const char* resultRole, const char** properties); + + virtual CmpiStatus associatorNames + (const CmpiContext& ctx, CmpiResult& rslt, + const CmpiObjectPath& cop, const char* assocClass, const char* resultClass, + const char* role, const char* resultRole); + + virtual CmpiStatus references + (const CmpiContext& ctx, CmpiResult& rslt, + const CmpiObjectPath& cop, const char* resultClass, const char* role, + const char** properties); + + virtual CmpiStatus referenceNames + (const CmpiContext& ctx, CmpiResult& rslt, + const CmpiObjectPath& cop, const char* resultClass, const char* role); + }; + +} // namespace cmpizypp + +#endif // SUSE_INSTALLATIONSERVICEAFFECTSSOFTWAREIDENTITYPROVIDERCLASS_H -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org
participants (1)
-
Michael Calmer