|
From: Michael Chase-S. <mc...@us...> - 2012-05-24 22:15:43
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "SFCB - Small Footprint CIM Broker".
The branch, master has been updated
via 53746007381cac413a0c123f855f0adb27eea90f (commit)
via 34799d5d358b2b4ea626ede3e8952f35b1d5f00d (commit)
from 0e2196798140db45b8f9f35aa3da636ae8f6153c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 53746007381cac413a0c123f855f0adb27eea90f
Author: Michael Chase-Salerno <br...@li...>
Date: Thu May 24 18:15:03 2012 -0400
[ 3513390 ] Enforce LD and subscription limits
commit 34799d5d358b2b4ea626ede3e8952f35b1d5f00d
Author: Michael Chase-Salerno <br...@li...>
Date: Thu May 24 18:12:47 2012 -0400
[ 3513390 ] Enforce LD and subscription limits
-----------------------------------------------------------------------
Summary of changes:
diff --git a/ChangeLog b/ChangeLog
index 28a0d37..10b3db8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2012-05-23 Michael Chase-Salerno <br...@li...>
+
+ * control.h, indCIMXMLHandler.c, interopServerProvider.c,
+ test/TestProviders/tests/limitTest.sh:
+ [ 3513390 ] Enforce LD and subscription limits
+ Active Subscription limit, move LD check to interop
+
2012-05-21 Narasimha Sharoff <nsh...@us...>
* indCIMXMLExport.c, indCIMXMLHander.c:
diff --git a/indCIMXMLHandler.c b/indCIMXMLHandler.c
index 300c5a3..2250118 100644
--- a/indCIMXMLHandler.c
+++ b/indCIMXMLHandler.c
@@ -49,7 +49,6 @@ extern ExpSegments exportIndicationReq(CMPIInstance *ci, char *id);
extern void memLinkObjectPath(CMPIObjectPath * op);
static const CMPIBroker *_broker;
-static int LDcount=-1;
static int
interOpNameSpace(const CMPIObjectPath * cop, CMPIStatus *st)
@@ -392,15 +391,6 @@ IndCIMXMLHandlerCreateInstance(CMPIInstanceMI * mi,
if (CMClassPathIsA(_broker, copLocal, "cim_listenerdestination", NULL)) {
- // check destination count
- long cfgmax;
- getControlNum("MaxListenerDestinations", &cfgmax);
- if (LDcount+1 > cfgmax) {
- setStatus(&st,CMPI_RC_ERR_FAILED,"Instance creation would exceed MaxListenerDestinations limit");
- CMRelease(ciLocal);
- _SFCB_RETURN(st);
- }
-
//get the creation timestamp
struct timeval tv;
struct timezone tz;
@@ -431,7 +421,6 @@ IndCIMXMLHandlerCreateInstance(CMPIInstanceMI * mi,
CMSetProperty(ciLocal, "SequenceContext", &scontext, CMPI_string);
CMPIValue zarro = {.sint64 = -1 };
CMSetProperty(ciLocal, "LastSequenceNumber", &zarro, CMPI_sint64);
- LDcount++;
}
CMPIString *str = CDToString(_broker, copLocal, NULL);
@@ -533,7 +522,6 @@ IndCIMXMLHandlerDeleteInstance(CMPIInstanceMI * mi,
if (st.rc == CMPI_RC_OK) {
st = InternalProviderDeleteInstance(NULL, ctx, rslt, cop);
- LDcount--;
}
_SFCB_RETURN(st);
@@ -969,41 +957,6 @@ int refillRetryQ (const CMPIContext * ctx)
_SFCB_RETURN(0);
}
-
-int countLD (const CMPIContext * ctx) {
- _SFCB_ENTER(TRACE_INDPROVIDER, "countLD");
- CMPIEnumeration *enm;
- CMPIStatus st = { CMPI_RC_OK, NULL };
- LDcount++; // Mark it initialized
-
- // Enumerate the destinations
- CMPIContext * ctxLocal = prepareUpcall((CMPIContext *)ctx);
- CMPIObjectPath *ref=CMNewObjectPath(_broker,"root/interop","cim_listenerdestination",&st);
- enm = _broker->bft->enumerateInstanceNames(_broker, ctxLocal, ref, &st);
- while(enm && enm->ft->hasNext(enm, &st)) {
- LDcount++;
- enm->ft->getNext(enm, &st);
- }
- ref = CMNewObjectPath(_broker,"root/interop","cim_listenerdestinationcimxml",&st);
- enm = _broker->bft->enumerateInstanceNames(_broker, ctxLocal, ref, &st);
- while(enm && enm->ft->hasNext(enm, &st)) {
- LDcount++;
- enm->ft->getNext(enm, &st);
- }
- ref = CMNewObjectPath(_broker,"root/interop","cim_indicationhandlercimxml",&st);
- enm = _broker->bft->enumerateInstanceNames(_broker, ctxLocal, ref, &st);
- while(enm && enm->ft->hasNext(enm, &st)) {
- LDcount++;
- enm->ft->getNext(enm, &st);
- }
-
- CMRelease(ref);
- CMRelease(ctxLocal);
- _SFCB_TRACE(1,("--- initial count of destinations: %d.",LDcount));
-
- _SFCB_RETURN(0);
-}
-
int initIndCIMXML(const CMPIContext * ctx)
{
unsigned int ri;
@@ -1015,10 +968,6 @@ int initIndCIMXML(const CMPIContext * ctx)
//Refill the queue if there were any from the last run
refillRetryQ(ctx);
- if ( LDcount == -1 ) {
- //Get the count of ListenerDestinations
- countLD(ctx);
- }
_SFCB_RETURN(0);
}
diff --git a/interopProvider.c b/interopProvider.c
index c7545d0..f45b5ab 100644
--- a/interopProvider.c
+++ b/interopProvider.c
@@ -54,6 +54,11 @@ extern void setStatus(CMPIStatus *st, CMPIrc rc, char *msg);
extern int testNameSpace(char *ns, CMPIStatus *st);
extern void memLinkObjectPath(CMPIObjectPath * op);
+// Counts to enforce limits from cfg file
+static int LDcount=0;
+static int AScount=0;
+
+
/*
* -------------------------------------------------------------------------
*/
@@ -698,6 +703,24 @@ processSubscription(const CMPIBroker * broker,
setStatus(&st, CMPI_RC_ERR_NOT_FOUND, "Handler not found");
_SFCB_RETURN(st);
}
+ // Get current state
+ CMPIData d = CMGetProperty(ci, "SubscriptionState", &st);
+ if (d.state != CMPI_goodValue) {
+ // Not given, assume enable
+ val.uint16 = 2;
+ st = CMSetProperty((CMPIInstance*)ci, "SubscriptionState", &val, CMPI_uint16);
+ d.value.uint16=2;
+ }
+ if(d.value.uint16 == 2) {
+ // Check if we are hitting the max
+ long cfgmax;
+ getControlNum("MaxActiveSubscriptions", &cfgmax);
+ if (AScount+1 > cfgmax) {
+ setStatus(&st,CMPI_RC_ERR_FAILED,"Subscription activation would exceed MaxActiveSubscription limit");
+ return st;
+ }
+ AScount++;
+ }
_SFCB_TRACE(1, ("--- setting subscription start time"));
dt = CMNewDateTime(_broker, NULL);
@@ -715,18 +738,8 @@ processSubscription(const CMPIBroker * broker,
/* activation succesful, try to enable it */
if (st.rc == CMPI_RC_OK) {
/* only enable if state is 2 (default) */
- CMPIData d = CMGetProperty(ci, "SubscriptionState", &st);
- if(d.state == CMPI_goodValue) {
- if(d.value.uint16 == 2 && fi->useCount == 1) {
- fowardSubscription(ctx, fi, OPS_EnableIndications, &st);
- }
- } else {
- /* property not set, assume "enable" by default */
- val.uint16 = 2;
- st = CMSetProperty((CMPIInstance*)ci, "SubscriptionState", &val, CMPI_uint16);
- if (fi->useCount == 1) {
- fowardSubscription(ctx, fi, OPS_EnableIndications, &st);
- }
+ if(d.value.uint16 == 2 && fi->useCount == 1) {
+ fowardSubscription(ctx, fi, OPS_EnableIndications, &st);
}
}
@@ -1262,9 +1275,18 @@ InteropProviderModifyInstance(CMPIInstanceMI * mi,
if (newState.state == CMPI_goodValue) {
if (newState.value.uint16 == 2 && oldState.value.uint16 != 2) {
+ // Check if we've hit the max before we actvate
+ long cfgmax;
+ getControlNum("MaxActiveSubscriptions", &cfgmax);
+ if (AScount+1 > cfgmax) {
+ setStatus(&st,CMPI_RC_ERR_FAILED,"Subscription activation would exceed MaxActiveSubscription limit");
+ return st;
+ }
switchIndications(ctx, ci, OPS_EnableIndications);
+ AScount++;
} else if (newState.value.uint16 == 4 && oldState.value.uint16 != 4) {
switchIndications(ctx, ci, OPS_DisableIndications);
+ AScount--;
}
}
/*
@@ -1342,6 +1364,19 @@ InteropProviderDeleteInstance(CMPIInstanceMI * mi,
OPS_DeactivateFilter, NULL);
}
}
+ // get current state
+ ctxLocal = prepareUpcall((CMPIContext *)ctx);
+ CMPIInstance *ci = _broker->bft->getInstance(_broker, ctxLocal, cop, NULL, NULL);
+ CMRelease(ctxLocal);
+ CMPIData d = CMGetProperty(ci, "SubscriptionState", &st);
+ if (d.state != CMPI_goodValue) {
+ // Not given, assume enable
+ d.value.uint16=2;
+ }
+ if(d.value.uint16 == 2) {
+ // If this is an active sub, decrement the count
+ AScount--;
+ }
removeSubscription(su, key);
} else
setStatus(&st, CMPI_RC_ERR_NOT_FOUND, NULL);
@@ -1531,6 +1566,15 @@ InteropProviderInvokeMethod(CMPIMethodMI * mi,
}
else if (strcasecmp(methodName, "_addHandler") == 0) {
+ // check destination count
+ long cfgmax;
+ getControlNum("MaxListenerDestinations", &cfgmax);
+ if (LDcount+1 > cfgmax) {
+ setStatus(&st,CMPI_RC_ERR_FAILED,"Instance creation would exceed MaxListenerDestinations limit");
+ _SFCB_RETURN(st);
+ }
+ LDcount++;
+
CMPIInstance *ci = in->ft->getArg(in, "handler", &st).value.inst;
CMPIObjectPath *op = in->ft->getArg(in, "key", &st).value.ref;
CMPIString *str = CDToString(_broker, op, NULL);
@@ -1550,6 +1594,7 @@ InteropProviderInvokeMethod(CMPIMethodMI * mi,
setStatus(&st, CMPI_RC_ERR_FAILED, "Handler in use");
} else
removeHandler(ha, key);
+ LDcount--;
} else {
setStatus(&st, CMPI_RC_ERR_NOT_FOUND, "Handler object not found");
}
diff --git a/test/TestProviders/tests/limitTest.sh b/test/TestProviders/tests/limitTest.sh
index 9526f4a..22f6c16 100755
--- a/test/TestProviders/tests/limitTest.sh
+++ b/test/TestProviders/tests/limitTest.sh
@@ -43,7 +43,76 @@ sendxml () {
cleanup () {
# Cleans up all created instances
- CLPRE='<?xml version="1.0" encoding="utf-8"?>
+ CLSPRE='<?xml version="1.0" encoding="utf-8"?>
+<CIM CIMVERSION="2.0" DTDVERSION="2.0">
+ <MESSAGE ID="4711" PROTOCOLVERSION="1.0">
+ <SIMPLEREQ>
+ <IMETHODCALL NAME="DeleteInstance">
+ <LOCALNAMESPACEPATH>
+ <NAMESPACE NAME="root"/>
+ <NAMESPACE NAME="interop"/>
+ </LOCALNAMESPACEPATH>
+ <IPARAMVALUE NAME="InstanceName">
+ <INSTANCENAME CLASSNAME="CIM_IndicationSubscription">
+ <KEYBINDING NAME="Filter">
+ <VALUE.REFERENCE>
+ <INSTANCENAME CLASSNAME="CIM_IndicationFilter">
+ <KEYBINDING NAME="SystemCreationClassName">
+ <KEYVALUE VALUETYPE="string">
+ CIM_ComputerSystem
+ </KEYVALUE>
+ </KEYBINDING>
+ <KEYBINDING NAME="SystemName">
+ <KEYVALUE VALUETYPE="string">
+ localhost.localdomain
+ </KEYVALUE>
+ </KEYBINDING>
+ <KEYBINDING NAME="CreationClassName">
+ <KEYVALUE VALUETYPE="string">
+ CIM_IndicationFilter
+ </KEYVALUE>
+ </KEYBINDING>
+ <KEYBINDING NAME="Name">
+ <KEYVALUE VALUETYPE="string">
+ Test_Indication_Filter_
+ </KEYVALUE>
+ </KEYBINDING>
+ </INSTANCENAME>
+ </VALUE.REFERENCE>
+ </KEYBINDING>
+ <KEYBINDING NAME="Handler">
+ <VALUE.REFERENCE>
+ <INSTANCENAME CLASSNAME="CIM_IndicationHandlerCIMXML">
+ <KEYBINDING NAME="SystemCreationClassName">
+ <KEYVALUE VALUETYPE="string">
+ CIM_ComputerSystem
+ </KEYVALUE>
+ </KEYBINDING>
+ <KEYBINDING NAME="SystemName">
+ <KEYVALUE VALUETYPE="string">
+ localhost.localdomain
+ </KEYVALUE>
+ </KEYBINDING>
+ <KEYBINDING NAME="CreationClassName">
+ <KEYVALUE VALUETYPE="string">
+ CIM_IndicationHandlerCIMXML
+ </KEYVALUE>
+ </KEYBINDING>
+ <KEYBINDING NAME="Name">
+ <KEYVALUE VALUETYPE="string">'
+ CLSPOST=' </KEYVALUE>
+ </KEYBINDING>
+ </INSTANCENAME>
+ </VALUE.REFERENCE>
+ </KEYBINDING>
+ </INSTANCENAME>
+ </IPARAMVALUE>
+ </IMETHODCALL>
+ </SIMPLEREQ>
+ </MESSAGE>
+</CIM>'
+
+ CLDPRE='<?xml version="1.0" encoding="utf-8"?>
<CIM CIMVERSION="2.0" DTDVERSION="2.0">
<MESSAGE ID="4711" PROTOCOLVERSION="1.0">
<SIMPLEREQ>
@@ -65,7 +134,7 @@ cleanup () {
</KEYBINDING>
<KEYBINDING NAME="Name">
<KEYVALUE>'
- CLPOST='</KEYVALUE>
+ CLDPOST='</KEYVALUE>
</KEYBINDING>
</INSTANCENAME>
</IPARAMVALUE>
@@ -77,17 +146,25 @@ cleanup () {
j=1
while [ $j -le $lim ]
do
- XML=$CLPRE"limitTest_"$j$CLPOST
+ XML=$CLSPRE"limitTest_"$j$CLSPOST
+ echo $XML > ./limitTest.xml
+ sendxml ./limitTest.xml /dev/null
+ XML=$CLDPRE"limitTest_"$j$CLDPOST
echo $XML > ./limitTest.xml
sendxml ./limitTest.xml /dev/null
j=$((j+1))
done
- XML=$CLPRE"limitTest_final"$CLPOST
+ XML=$CLSPRE"limitTest_final"$CLSPOST
+ echo $XML > ./limitTest.xml
+ sendxml ./limitTest.xml /dev/null
+ XML=$CLDPRE"limitTest_final"$CLDPOST
echo $XML > ./limitTest.xml
sendxml ./limitTest.xml /dev/null
rm ./limitTest.xml
rm ./limitTest.result
+ wbemcat IndTest7DeleteFilter.xml > /dev/null
+ wbemcat limitTestDF2.XML > /dev/null
}
# Start of main
@@ -138,7 +215,7 @@ POST='</VALUE>
# Create 100 Listener Destinations
j=1
-echo -n " Testing LD limit ..."
+echo -n " Testing LD limit "
while [ $j -le $lim ]
do
# Use "limitTest_xxx" as the name
@@ -159,7 +236,9 @@ do
# some reason. Might be ok, so just flag it
# and continue. It's possible other instances
# existed before the test was run.
- echo -n " Create $j failed ... continuing ..."
+ echo -n "X"
+ else
+ echo -n "."
fi
j=$((j+1))
done
@@ -179,6 +258,167 @@ then
exit 1;
fi
echo " PASSED"
-cleanup
+#
+# Now check for active subscriptions
+#
+
+PRE='<?xml version="1.0" encoding="utf-8"?>
+<CIM CIMVERSION="2.0" DTDVERSION="2.0">
+ <MESSAGE ID="4711" PROTOCOLVERSION="1.0">
+ <SIMPLEREQ>
+ <IMETHODCALL NAME="CreateInstance">
+ <LOCALNAMESPACEPATH>
+ <NAMESPACE NAME="root"/>
+ <NAMESPACE NAME="interop"/>
+ </LOCALNAMESPACEPATH>
+ <IPARAMVALUE NAME="NewInstance">
+ <INSTANCE CLASSNAME="CIM_IndicationSubscription">
+ <PROPERTY.REFERENCE NAME="Filter"
+ REFERENCECLASS="CIM_IndicationFilter">
+ <VALUE.REFERENCE>
+ <INSTANCENAME CLASSNAME="CIM_IndicationFilter">
+ <KEYBINDING NAME="SystemCreationClassName">
+ <KEYVALUE VALUETYPE="string">
+ CIM_ComputerSystem
+ </KEYVALUE>
+ </KEYBINDING>
+ <KEYBINDING NAME="SystemName">
+ <KEYVALUE VALUETYPE="string">
+ localhost.localdomain
+ </KEYVALUE>
+ </KEYBINDING>
+ <KEYBINDING NAME="CreationClassName">
+ <KEYVALUE VALUETYPE="string">
+ CIM_IndicationFilter
+ </KEYVALUE>
+ </KEYBINDING>
+ <KEYBINDING NAME="Name">
+ <KEYVALUE VALUETYPE="string">'
+MID='
+ </KEYVALUE>
+ </KEYBINDING>
+ </INSTANCENAME>
+ </VALUE.REFERENCE>
+ </PROPERTY.REFERENCE>
+ <PROPERTY.REFERENCE NAME="Handler"
+ REFERENCECLASS="CIM_IndicationHandler">
+ <VALUE.REFERENCE>
+ <INSTANCENAME CLASSNAME="CIM_IndicationHandlerCIMXML">
+ <KEYBINDING NAME="SystemCreationClassName">
+ <KEYVALUE VALUETYPE="string">
+ CIM_ComputerSystem
+ </KEYVALUE>
+ </KEYBINDING>
+ <KEYBINDING NAME="SystemName">
+ <KEYVALUE VALUETYPE="string">
+ localhost.localdomain
+ </KEYVALUE>
+ </KEYBINDING>
+ <KEYBINDING NAME="CreationClassName">
+ <KEYVALUE VALUETYPE="string">
+ CIM_IndicationHandlerCIMXML
+ </KEYVALUE>
+ </KEYBINDING>
+ <KEYBINDING NAME="Name">
+ <KEYVALUE VALUETYPE="string">'
+
+POST='</KEYVALUE>
+ </KEYBINDING>
+ </INSTANCENAME>
+ </VALUE.REFERENCE>
+ </PROPERTY.REFERENCE>
+ <PROPERTY NAME="SubscriptionState" TYPE="uint16">
+ <VALUE> 2 </VALUE>
+ </PROPERTY>
+ </INSTANCE>
+ </IPARAMVALUE>
+ </IMETHODCALL>
+ </SIMPLEREQ>
+ </MESSAGE>
+</CIM>'
+
+POSTD='</KEYVALUE>
+ </KEYBINDING>
+ </INSTANCENAME>
+ </VALUE.REFERENCE>
+ </PROPERTY.REFERENCE>
+ <PROPERTY NAME="SubscriptionState" TYPE="uint16">
+ <VALUE> 1 </VALUE>
+ </PROPERTY>
+ </INSTANCE>
+ </IPARAMVALUE>
+ </IMETHODCALL>
+ </SIMPLEREQ>
+ </MESSAGE>
+</CIM>'
+
+# Create 100 subs
+lim=100
+j=1
+wbemcat IndTest1CreateFilter.xml > /dev/null
+wbemcat limitTestCF2.XML > /dev/null
+echo -n " Testing Sub limit "
+while [ $j -le $lim ]
+do
+ XML=$PRE"Test_Indication_Filter_"$MID"limitTest_"$j$POST
+ echo $XML > ./limitTest.xml
+ sendxml ./limitTest.xml limitTest.result
+ if [ $? -ne 0 ]
+ then
+ echo " Create $j FAILED"
+ cleanup
+ exit 1;
+ fi
+ grep "limitTest" ./limitTest.result >/dev/null 2>&1
+ if [ $? -ne 0 ]
+ then
+ # This means one of the early creates failed for
+ # some reason. Might be ok, so just flag it
+ # and continue. It's possible other instances
+ # existed before the test was run.
+ echo -n "X"
+ else
+ echo -n "."
+ fi
+ j=$((j+1))
+done
+
+# Make sure the final one fails
+XML=$PRE"limitTest_f2"$MID"limitTest_1"$POST
+echo $XML > ./limitTest.xml
+sendxml ./limitTest.xml ./limit.result
+wbemcat limitTestDS2.XML > /dev/null
+grep "limitTest" ./limit.result >/dev/null 2>&1
+if [ $? -eq 0 ]
+then
+ echo " limit not enforced. FAILED"
+ cleanup
+ exit 1;
+fi
+
+# Should be able to create a disabled one
+XML=$PRE"limitTest_f2"$MID"limitTest_1"$POSTD
+echo $XML > ./limitTest.xml
+sendxml ./limitTest.xml ./limit.result
+grep "limitTest" ./limit.result >/dev/null 2>&1
+if [ $? -ne 0 ]
+then
+ echo " disabled subscription prevented. FAILED"
+ cleanup
+ exit 1;
+fi
+# but we shouldn't be able to activate it.
+wbemcat limitTestEnableSub.XML > ./limit.result
+wbemcat limitTestDS2.XML > /dev/null
+grep "MaxActiveSubscription" ./limit.result >/dev/null 2>&1
+if [ $? -ne 0 ]
+then
+ echo " enable subscription limit not enforced. FAILED"
+ cleanup
+ exit 1;
+fi
+
+echo " PASSED"
+cleanup
exit 0
diff --git a/test/TestProviders/tests/IndTest1CreateFilter.xml b/test/TestProviders/tests/limitTestCF2.XML
similarity index 96%
copy from test/TestProviders/tests/IndTest1CreateFilter.xml
copy to test/TestProviders/tests/limitTestCF2.XML
index d8273d9..fb97d8d 100644
--- a/test/TestProviders/tests/IndTest1CreateFilter.xml
+++ b/test/TestProviders/tests/limitTestCF2.XML
@@ -20,7 +20,7 @@
</PROPERTY>
<PROPERTY NAME="Name" TYPE="string">
- <VALUE>Test_Indication_Filter_</VALUE>
+ <VALUE>limitTest_f2</VALUE>
</PROPERTY>
<PROPERTY NAME="Query" TYPE="string">
<VALUE> SELECT * FROM Test_Indication
diff --git a/test/TestProviders/tests/IndTest7DeleteFilter.xml b/test/TestProviders/tests/limitTestDF2.XML
similarity index 94%
copy from test/TestProviders/tests/IndTest7DeleteFilter.xml
copy to test/TestProviders/tests/limitTestDF2.XML
index 6b434d8..2916f15 100644
--- a/test/TestProviders/tests/IndTest7DeleteFilter.xml
+++ b/test/TestProviders/tests/limitTestDF2.XML
@@ -19,7 +19,7 @@
<KEYVALUE>CIM_IndicationFilter</KEYVALUE>
</KEYBINDING>
<KEYBINDING NAME="Name">
- <KEYVALUE>Test_Indication_Filter_</KEYVALUE>
+ <KEYVALUE>limitTest_f2</KEYVALUE>
</KEYBINDING>
</INSTANCENAME>
</IPARAMVALUE>
diff --git a/test/TestProviders/tests/IndTest5DeleteSubscription.xml b/test/TestProviders/tests/limitTestDS2.XML
similarity index 96%
copy from test/TestProviders/tests/IndTest5DeleteSubscription.xml
copy to test/TestProviders/tests/limitTestDS2.XML
index 302927b..ee0a2ed 100644
--- a/test/TestProviders/tests/IndTest5DeleteSubscription.xml
+++ b/test/TestProviders/tests/limitTestDS2.XML
@@ -29,7 +29,7 @@
</KEYBINDING>
<KEYBINDING NAME="Name">
<KEYVALUE VALUETYPE="string">
- Test_Indication_Filter_
+ limitTest_f2
</KEYVALUE>
</KEYBINDING>
</INSTANCENAME>
@@ -55,7 +55,7 @@
</KEYBINDING>
<KEYBINDING NAME="Name">
<KEYVALUE VALUETYPE="string">
- Test_Indication_Handler_
+ limitTest_1
</KEYVALUE>
</KEYBINDING>
</INSTANCENAME>
diff --git a/test/TestProviders/tests/limitTestEnableSub.XML b/test/TestProviders/tests/limitTestEnableSub.XML
new file mode 100644
index 0000000..b5ecbe2
--- /dev/null
+++ b/test/TestProviders/tests/limitTestEnableSub.XML
@@ -0,0 +1,67 @@
+ <?xml version="1.0" encoding="utf-8" ?>
+ <CIM CIMVERSION="2.0" DTDVERSION="2.0">
+ <MESSAGE ID="4711" PROTOCOLVERSION="1.0"><SIMPLEREQ><IMETHODCALL NAME="ModifyInstance"><LOCALNAMESPACEPATH><NAMESPACE NAME="root"></NAMESPACE><NAMESPACE NAME="interop"></NAMESPACE></LOCALNAMESPACEPATH>
+ <IPARAMVALUE NAME="ModifiedInstance"><VALUE.NAMEDINSTANCE><INSTANCENAME CLASSNAME="cim_indicationsubscription"><KEYBINDING NAME="filter"><VALUE.REFERENCE><INSTANCEPATH><NAMESPACEPATH><HOST>localhost</HOST><LOCALNAMESPACEPATH><NAMESPACE NAME="root"></NAMESPACE><NAMESPACE NAME="interop"></NAMESPACE></LOCALNAMESPACEPATH></NAMESPACEPATH><INSTANCENAME CLASSNAME="cim_indicationfilter"><KEYBINDING NAME="creationclassname"><KEYVALUE VALUETYPE="string">CIM_IndicationFilter</KEYVALUE></KEYBINDING><KEYBINDING NAME="name"><KEYVALUE VALUETYPE="string">limitTest_f2</KEYVALUE></KEYBINDING><KEYBINDING NAME="systemcreationclassname"><KEYVALUE VALUETYPE="string">CIM_ComputerSystem</KEYVALUE></KEYBINDING><KEYBINDING NAME="systemname"><KEYVALUE VALUETYPE="string">localhost.localdomain</KEYVALUE></KEYBINDING></INSTANCENAME></INSTANCEPATH></VALUE.REFERENCE></KEYBINDING><KEYBINDING NAME="handler"><VALUE.REFERENCE><INSTANCEPATH><NAMESPACEPATH><HOST>localhost</HOST><LOCALNAMESPACEPATH><NAMESPACE NAME="root"></NAMESPACE><NAMESPACE NAME="interop"></NAMESPACE></LOCALNAMESPACEPATH></NAMESPACEPATH><INSTANCENAME CLASSNAME="cim_indicationhandlercimxml"><KEYBINDING NAME="creationclassname"><KEYVALUE VALUETYPE="string">CIM_IndicationHandlerCIMXML</KEYVALUE></KEYBINDING><KEYBINDING NAME="name"><KEYVALUE VALUETYPE="string">limitTest_1</KEYVALUE></KEYBINDING><KEYBINDING NAME="systemcreationclassname"><KEYVALUE VALUETYPE="string">CIM_ComputerSystem</KEYVALUE></KEYBINDING><KEYBINDING NAME="systemname"><KEYVALUE VALUETYPE="string">localhost.localdomain</KEYVALUE></KEYBINDING></INSTANCENAME></INSTANCEPATH></VALUE.REFERENCE></KEYBINDING></INSTANCENAME><INSTANCE CLASSNAME="cim_indicationsubscription"><PROPERTY.REFERENCE NAME="Handler">
+ <VALUE.REFERENCE>
+ <LOCALINSTANCEPATH>
+ <LOCALNAMESPACEPATH>
+ <NAMESPACE NAME="root"/>
+ <NAMESPACE NAME="interop"/>
+ </LOCALNAMESPACEPATH>
+ <INSTANCENAME CLASSNAME="CIM_IndicationHandlerCIMXML">
+ <KEYBINDING NAME="SystemCreationClassName">
+ <KEYVALUE VALUETYPE="string">CIM_ComputerSystem</KEYVALUE>
+ </KEYBINDING>
+ <KEYBINDING NAME="SystemName">
+ <KEYVALUE VALUETYPE="string">localhost.localdomain</KEYVALUE>
+ </KEYBINDING>
+ <KEYBINDING NAME="CreationClassName">
+ <KEYVALUE VALUETYPE="string">CIM_IndicationHandlerCIMXML</KEYVALUE>
+ </KEYBINDING>
+ <KEYBINDING NAME="Name">
+ <KEYVALUE VALUETYPE="string">limitTest_1</KEYVALUE>
+ </KEYBINDING>
+ </INSTANCENAME>
+ </LOCALINSTANCEPATH>
+ </VALUE.REFERENCE>
+ </PROPERTY.REFERENCE><PROPERTY.REFERENCE NAME="Filter">
+ <VALUE.REFERENCE>
+ <LOCALINSTANCEPATH>
+ <LOCALNAMESPACEPATH>
+ <NAMESPACE NAME="root"/>
+ <NAMESPACE NAME="interop"/>
+ </LOCALNAMESPACEPATH>
+ <INSTANCENAME CLASSNAME="CIM_IndicationFilter">
+ <KEYBINDING NAME="SystemCreationClassName">
+ <KEYVALUE VALUETYPE="string">CIM_ComputerSystem</KEYVALUE>
+ </KEYBINDING>
+ <KEYBINDING NAME="SystemName">
+ <KEYVALUE VALUETYPE="string">localhost.localdomain</KEYVALUE>
+ </KEYBINDING>
+ <KEYBINDING NAME="CreationClassName">
+ <KEYVALUE VALUETYPE="string">CIM_IndicationFilter</KEYVALUE>
+ </KEYBINDING>
+ <KEYBINDING NAME="Name">
+ <KEYVALUE VALUETYPE="string">limitTest_f2</KEYVALUE>
+ </KEYBINDING>
+ </INSTANCENAME>
+ </LOCALINSTANCEPATH>
+ </VALUE.REFERENCE>
+ </PROPERTY.REFERENCE><PROPERTY NAME="OnFatalErrorPolicy" TYPE="uint16">
+ </PROPERTY><PROPERTY NAME="OtherOnFatalErrorPolicy" TYPE="string">
+ </PROPERTY><PROPERTY NAME="FailureTriggerTimeInterval" TYPE="uint64">
+ </PROPERTY>
+ <PROPERTY NAME="SubscriptionState" TYPE="uint16"><VALUE>2</VALUE></PROPERTY><PROPERTY NAME="OtherSubscriptionState" TYPE="string">
+ </PROPERTY><PROPERTY NAME="TimeOfLastStateChange" TYPE="datetime">
+ </PROPERTY><PROPERTY NAME="SubscriptionDuration" TYPE="uint64">
+ </PROPERTY><PROPERTY NAME="SubscriptionStartTime" TYPE="datetime">
+ <VALUE>20120522154444.655395-240</VALUE>
+ </PROPERTY><PROPERTY NAME="SubscriptionTimeRemaining" TYPE="uint64">
+ </PROPERTY><PROPERTY NAME="RepeatNotificationPolicy" TYPE="uint16">
+ </PROPERTY><PROPERTY NAME="OtherRepeatNotificationPolicy" TYPE="string">
+ </PROPERTY><PROPERTY NAME="RepeatNotificationInterval" TYPE="uint64">
+ </PROPERTY><PROPERTY NAME="RepeatNotificationGap" TYPE="uint64">
+ </PROPERTY><PROPERTY NAME="RepeatNotificationCount" TYPE="uint16">
+ </PROPERTY></INSTANCE></VALUE.NAMEDINSTANCE></IPARAMVALUE>
+ </IMETHODCALL></SIMPLEREQ>
+ </MESSAGE></CIM>
hooks/post-receive
--
SFCB - Small Footprint CIM Broker
|