osaf/services/saf/amf/amfd/nodegroup.cc | 31 +++++++++++++++++++------------
1 files changed, 19 insertions(+), 12 deletions(-)
If a lock-in operation is ordered on a nodegroup, only perform this on a node
if the node is in 'locked' state.
If an unlock-in operation is ordered on a nodegroup, only perform this on a node
if it's in the 'locked instantiation' state.
diff --git a/osaf/services/saf/amf/amfd/nodegroup.cc
b/osaf/services/saf/amf/amfd/nodegroup.cc
--- a/osaf/services/saf/amf/amfd/nodegroup.cc
+++ b/osaf/services/saf/amf/amfd/nodegroup.cc
@@ -970,16 +970,10 @@
for (std::set<std::string>::const_iterator iter =
ng->saAmfNGNodeList.begin();
iter != ng->saAmfNGNodeList.end(); ++iter) {
AVD_AVND *node = avd_node_get(*iter);
- node->su_cnt_admin_oper = 0;
- node->admin_ng = ng;
- node_sus_termstate_set(node, true);
- if (node->saAmfNodeAdminState != SA_AMF_ADMIN_LOCKED)
+
+ if (node->saAmfNodeAdminState != SA_AMF_ADMIN_LOCKED) {
continue;
- node_admin_state_set(node,
SA_AMF_ADMIN_LOCKED_INSTANTIATION);
- }
- for (std::set<std::string>::const_iterator iter =
ng->saAmfNGNodeList.begin();
- iter != ng->saAmfNGNodeList.end(); ++iter) {
- AVD_AVND *node = avd_node_get(*iter);
+ }
if (node->node_info.member == false) {
LOG_NO("'%s' LOCK_INSTANTIATION: CLM node is
not member", node->name.value);
continue;
@@ -988,6 +982,17 @@
LOG_NO("'%s' LOCK_INSTANTIATION: AMF node oper
state disabled", node->name.value);
continue;
}
+ if (node->saAmfNodeAdminState != SA_AMF_ADMIN_LOCKED) {
+ LOG_NO("'%s' LOCK_INSTANTIATION: AMF node admin
state is not LOCKED", node->name.value);
+ continue;
+ }
+
+ node->su_cnt_admin_oper = 0;
+ node->admin_ng = ng;
+ node_sus_termstate_set(node, true);
+
+ node_admin_state_set(node,
SA_AMF_ADMIN_LOCKED_INSTANTIATION);
+
avd_node_admin_lock_instantiation(node);
TRACE("node:'%s', su_cnt_admin_oper:%u",
node->name.value,
node->su_cnt_admin_oper);
@@ -1037,11 +1042,13 @@
for (std::set<std::string>::const_iterator iter =
ng->saAmfNGNodeList.begin();
iter != ng->saAmfNGNodeList.end(); ++iter) {
AVD_AVND *node = avd_node_get(*iter);
+ if (node->saAmfNodeAdminState !=
SA_AMF_ADMIN_LOCKED_INSTANTIATION) {
+ LOG_NO("'%s' UNLOCK_INSTANTIATION: AMF node
admin state is not LOCK_INSTANTIATION", node->name.value);
+ continue;
+ }
node->su_cnt_admin_oper = 0;
node->admin_ng = ng;
- node_sus_termstate_set(node, false);
- if (node->saAmfNodeAdminState !=
SA_AMF_ADMIN_LOCKED_INSTANTIATION)
- continue;
+ node_sus_termstate_set(node, false);
node_admin_state_set(node, SA_AMF_ADMIN_LOCKED);
}
ng_admin_unlock_inst(ng);
------------------------------------------------------------------------------
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel