Ack, code review only/Thanks HansN
-----Original Message-----
From: [email protected] [mailto:[email protected]]
Sent: den 28 oktober 2015 13:33
To: Hans Nordebäck; [email protected]; Gary Lee
Cc: [email protected]
Subject: [PATCH 1 of 1] amfd: adjust NPI app configuration during unlock-in op
[#1564]
osaf/services/saf/amf/amfd/node.cc | 3 ++-
osaf/services/saf/amf/amfd/nodegroup.cc | 1 +
osaf/services/saf/amf/amfd/sg.cc | 1 +
3 files changed, 4 insertions(+), 1 deletions(-)
SG went to unstable for unlock operation on locked SG.
This issue is applicable for NPI apps only.
For a NPI SU, only one SI can be assigned to the whole SU. Remaining SIs if
configured will remain unassigned. Earliar creating a SU in the system was
allowed only in LOCK_IN state. So in typical steps, a user used to configure a
SU in the system in LOCK_IN state and after this user performs unlock-in
operation on the SU. During this UNLOCK_IN opearation, AMF adjusts SG
configuration attributes for example for NPI application it adjusts the value
of saAmfSGMaxActiveSIsperSU and saAmfSGMaxStandbySIsperSU. So issue will not be
reproducible in this way.
Now from 4.5 release creation of SU is allowed if either node or sg is in
LOCK_IN state. In this reported issue SUs are created by keeping SG in LOCK_IN
state.
Patch fixes the problem by adjusting the SG attributes during unlock-in
operation on SG, Node or NG.
diff --git a/osaf/services/saf/amf/amfd/node.cc
b/osaf/services/saf/amf/amfd/node.cc
--- a/osaf/services/saf/amf/amfd/node.cc
+++ b/osaf/services/saf/amf/amfd/node.cc
@@ -892,7 +892,8 @@ uint32_t node_admin_unlock_instantiation
LOG_WA("Failed Instantiation
'%s'", su->name.value);
}
}
- }
+ } else
+ avd_sg_adjust_config(su->sg_of_su);
}
}
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
@@ -940,6 +940,7 @@ static void ng_admin_unlock_inst(AVD_AMF
continue;
su_try_inst = 0;
+ avd_sg_adjust_config(sg);
for (const auto& su : sg->list_of_su) {
//Continue if this SU is not hosted on the Node
of NG.
if
(node_in_nodegroup(Amf::to_string(&su->su_on_node->name), ng) == false) diff
--git a/osaf/services/saf/amf/amfd/sg.cc b/osaf/services/saf/amf/amfd/sg.cc
--- a/osaf/services/saf/amf/amfd/sg.cc
+++ b/osaf/services/saf/amf/amfd/sg.cc
@@ -1382,6 +1382,7 @@ static void sg_admin_op_cb(SaImmOiHandle
avd_sg_admin_state_set(sg, SA_AMF_ADMIN_LOCKED);
if ((sg->list_of_su.empty() == false) &&
(sg->first_su()->saAmfSUPreInstantiable == false)) {
+ avd_sg_adjust_config(sg);
avd_saImmOiAdminOperationResult(immOiHandle,
invocation, SA_AIS_OK);
goto done;
}
------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel