Ack

Thanks
Lennart

-----Original Message-----
From: giang do [mailto:giang.t...@dektech.com.au] 
Sent: den 8 september 2015 06:57
To: mathi.naic...@oracle.com; Vu Nguyen M; Lennart Lund
Cc: opensaf-devel@lists.sourceforge.net
Subject: [PATCH 1 of 1] log: Log Service configuration changes are rejected on 
one node cluster[#1387]

 osaf/services/saf/logsv/lgs/lgs_imm.c |  91 +++++++++++++---------------------
 1 files changed, 34 insertions(+), 57 deletions(-)


Remove checking that peer version is equal or bigger than version 3 before 
allow changes in mailbox limits.

diff --git a/osaf/services/saf/logsv/lgs/lgs_imm.c 
b/osaf/services/saf/logsv/lgs/lgs_imm.c
--- a/osaf/services/saf/logsv/lgs/lgs_imm.c
+++ b/osaf/services/saf/logsv/lgs/lgs_imm.c
@@ -551,9 +551,7 @@ static SaAisErrorT config_ccb_completed_
  * =================================================
  */
 
-/* Attributes that can be modified if both nodes support LGS_MBCSV_VERSION_3
- */
-struct vattr_v3_t {
+struct vattr_t {
        /* true if any of the attributes has been changed */
        bool validate_flag;
        SaUint32T logStreamSystemHighLimit;
@@ -573,27 +571,24 @@ struct vattr_v3_t {
  * the correct values.
  * See lgs_config for validation functions
  * 
- * @param vattr_v3 [in] struct with attributes to validate
+ * @param vattr[in] struct with attributes to validate
  * @param err_str [out] char vector of 256 bytes to return a string.
  * @return error code
  */
-static SaAisErrorT validate_mailbox_limits(struct vattr_v3_t vattr_v3, char 
*err_str)
+static SaAisErrorT validate_mailbox_limits(struct vattr_t vattr, char *err_str)
 {      
        SaUint32T value32_high = 0;
        SaUint32T value32_low = 0;
        SaAisErrorT ais_rc = SA_AIS_OK;
        int rc = 0;
-       bool v3_changed_flag = false; /* True if changes allowed only if V3 
supported */
        
        TRACE_ENTER();
        
-       /* Validate attributes that can be modified if both nodes support
-        * LGS_MBCSV_VERSION_3
-        */
-       if (vattr_v3.logStreamSystemHighLimit_changed) {
-               value32_high = vattr_v3.logStreamSystemHighLimit;
-               if (vattr_v3.logStreamSystemLowLimit_changed) {
-                       value32_low = vattr_v3.logStreamSystemLowLimit;
+       /* Validate attributes that can be modified */
+       if (vattr.logStreamSystemHighLimit_changed) {
+               value32_high = vattr.logStreamSystemHighLimit;
+               if (vattr.logStreamSystemLowLimit_changed) {
+                       value32_low = vattr.logStreamSystemLowLimit;
                } else {
                        value32_low = *(SaUint32T *) lgs_cfg_get(
                                        LGS_IMM_LOG_STREAM_SYSTEM_LOW_LIMIT);
@@ -605,14 +600,12 @@ static SaAisErrorT validate_mailbox_limi
                        snprintf(err_str, 256, "HIGH limit < LOW limit");
                        goto done;
                }
-               
-               v3_changed_flag = true;
        }
        
-       if (vattr_v3.logStreamSystemLowLimit_changed) {
-               value32_low = vattr_v3.logStreamSystemLowLimit;
-               if (vattr_v3.logStreamSystemHighLimit_changed) {
-                       value32_high = vattr_v3.logStreamSystemHighLimit;
+       if (vattr.logStreamSystemLowLimit_changed) {
+               value32_low = vattr.logStreamSystemLowLimit;
+               if (vattr.logStreamSystemHighLimit_changed) {
+                       value32_high = vattr.logStreamSystemHighLimit;
                } else {
                        value32_high = *(SaUint32T *) lgs_cfg_get(
                                        LGS_IMM_LOG_STREAM_SYSTEM_HIGH_LIMIT);
@@ -624,14 +617,12 @@ static SaAisErrorT validate_mailbox_limi
                        snprintf(err_str, 256, "HIGH limit < LOW limit");
                        goto done;
                }
-               
-               v3_changed_flag = true;
        }
        
-       if (vattr_v3.logStreamAppHighLimit_changed) {
-               value32_high = vattr_v3.logStreamAppHighLimit;
-               if (vattr_v3.logStreamAppLowLimit_changed) {
-                       value32_low = vattr_v3.logStreamAppLowLimit;
+       if (vattr.logStreamAppHighLimit_changed) {
+               value32_high = vattr.logStreamAppHighLimit;
+               if (vattr.logStreamAppLowLimit_changed) {
+                       value32_low = vattr.logStreamAppLowLimit;
                } else {
                        value32_low = *(SaUint32T *) lgs_cfg_get(
                                        LGS_IMM_LOG_STREAM_APP_LOW_LIMIT);
@@ -643,14 +634,12 @@ static SaAisErrorT validate_mailbox_limi
                        snprintf(err_str, 256, "HIGH limit < LOW limit");
                        goto done;
                }
-               
-               v3_changed_flag = true;
        }
        
-       if (vattr_v3.logStreamAppLowLimit_changed) {
-               value32_low = vattr_v3.logStreamAppLowLimit;
-               if (vattr_v3.logStreamAppHighLimit_changed) {
-                       value32_high = vattr_v3.logStreamAppHighLimit;
+       if (vattr.logStreamAppLowLimit_changed) {
+               value32_low = vattr.logStreamAppLowLimit;
+               if (vattr.logStreamAppHighLimit_changed) {
+                       value32_high = vattr.logStreamAppHighLimit;
                } else {
                        value32_high = *(SaUint32T *) lgs_cfg_get(
                                        LGS_IMM_LOG_STREAM_APP_HIGH_LIMIT);
@@ -662,20 +651,8 @@ static SaAisErrorT validate_mailbox_limi
                        snprintf(err_str, 256, "HIGH limit < LOW limit");
                        goto done;
                }
-               
-               v3_changed_flag = true;
        }
        
-       /* Check if other node supports v3 if any v3 attribute has changed */
-       if (v3_changed_flag == true) {
-               if (lgs_is_peer_v3() == false) {
-                       /* Not supported by standby. Configuration change not 
allowed */
-                       ais_rc = SA_AIS_ERR_FAILED_OPERATION;
-                       snprintf(err_str, 256, "Not supported by standby node");
-                       goto done;
-               }
-       }
-
        done:
        TRACE_LEAVE2("rc = %d", ais_rc);
        return ais_rc;
@@ -697,7 +674,7 @@ static SaAisErrorT config_ccb_completed_
        int rc = 0;
        int i = 0;
        
-       struct vattr_v3_t vattr_v3 = {
+       struct vattr_t vattr= {
                .validate_flag = false,
                .logStreamSystemHighLimit = 0,
                .logStreamSystemHighLimit_changed = false,
@@ -783,25 +760,25 @@ static SaAisErrorT config_ccb_completed_
                        TRACE("maxLogRecordSize: %s is accepted", 
attribute->attrName);
                        goto done;
                } else if (!strcmp(attribute->attrName, 
LOG_STREAM_SYSTEM_HIGH_LIMIT)) {
-                       vattr_v3.logStreamSystemHighLimit = *((SaUint32T 
*)value);
-                       vattr_v3.logStreamSystemHighLimit_changed = true;
+                       vattr.logStreamSystemHighLimit = *((SaUint32T *)value);
+                       vattr.logStreamSystemHighLimit_changed = true;
                        TRACE("%s %s = %d",__FUNCTION__, attribute->attrName,
-                                       vattr_v3.logStreamSystemHighLimit);
+                                       vattr.logStreamSystemHighLimit);
                } else if (!strcmp(attribute->attrName, 
LOG_STREAM_SYSTEM_LOW_LIMIT)) {
-                       vattr_v3.logStreamSystemLowLimit = *((SaUint32T 
*)value);
-                       vattr_v3.logStreamSystemLowLimit_changed = true;
+                       vattr.logStreamSystemLowLimit = *((SaUint32T *)value);
+                       vattr.logStreamSystemLowLimit_changed = true;
                        TRACE("%s %s = %d",__FUNCTION__, attribute->attrName,
-                                       vattr_v3.logStreamSystemHighLimit);
+                                       vattr.logStreamSystemHighLimit);
                } else if (!strcmp(attribute->attrName, 
LOG_STREAM_APP_HIGH_LIMIT)) {
-                       vattr_v3.logStreamAppHighLimit = *((SaUint32T *)value);
-                       vattr_v3.logStreamAppHighLimit_changed = true;
+                       vattr.logStreamAppHighLimit = *((SaUint32T *)value);
+                       vattr.logStreamAppHighLimit_changed = true;
                        TRACE("%s %s = %d",__FUNCTION__, attribute->attrName,
-                                       vattr_v3.logStreamSystemHighLimit);
+                                       vattr.logStreamSystemHighLimit);
                } else if (!strcmp(attribute->attrName, 
LOG_STREAM_APP_LOW_LIMIT)) {
-                       vattr_v3.logStreamAppLowLimit = *((SaUint32T *)value);
-                       vattr_v3.logStreamAppLowLimit_changed = true;
+                       vattr.logStreamAppLowLimit = *((SaUint32T *)value);
+                       vattr.logStreamAppLowLimit_changed = true;
                        TRACE("%s %s = %d",__FUNCTION__, attribute->attrName,
-                                       vattr_v3.logStreamSystemHighLimit);
+                                       vattr.logStreamSystemHighLimit);
                } else if (!strcmp(attribute->attrName, 
LOG_MAX_APPLICATION_STREAMS)) {
                        report_oi_error(immOiHandle, opdata->ccbId,
                                        "%s cannot be changed", 
attribute->attrName);
@@ -833,7 +810,7 @@ static SaAisErrorT config_ccb_completed_
                attrMod = opdata->param.modify.attrMods[i++];
        }
        
-       ais_rc = validate_mailbox_limits(vattr_v3, oi_err_str);
+       ais_rc = validate_mailbox_limits(vattr, oi_err_str);
        if (ais_rc != SA_AIS_OK) {
                TRACE("Reporting oi error \"%s\"", oi_err_str);
                report_oi_error(immOiHandle, opdata->ccbId, "%s", oi_err_str);

------------------------------------------------------------------------------
Monitor Your Dynamic Infrastructure at Any Scale With Datadog!
Get real-time metrics from all of your servers, apps and tools
in one place.
SourceForge users - Click here to start your Free Trial of Datadog now!
http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to