Martin Sivák has uploaded a new change for review. Change subject: Allow setting just a single value in MoM policy ......................................................................
Allow setting just a single value in MoM policy This patch prevents a policy coruption that could have happened when the 01-parameters policy was updated with just a single value. If there were more values defined, the variables were lost and the policy ended up broken. This patch defines the variables in a file that is not touched by the setMOMPolicyParameters and uses (set name value) syntax in the generated policy part. It also remembers the old setting and puts all the values to the policy part when it is autogenerated. Change-Id: I7bb1001a05e670e393b2cc0ab4b271b3b333d2e8 Signed-off-by: Martin Sivak <msi...@redhat.com> --- A vdsm/mom.d/00-defines.policy D vdsm/mom.d/00-python.policy M vdsm/mom.d/01-parameters.policy M vdsm/momIF.py 4 files changed, 15 insertions(+), 9 deletions(-) git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/25/21225/1 diff --git a/vdsm/mom.d/00-defines.policy b/vdsm/mom.d/00-defines.policy new file mode 100644 index 0000000..93b70ee --- /dev/null +++ b/vdsm/mom.d/00-defines.policy @@ -0,0 +1,9 @@ +# This file defines python constans that make it easier to convert data +# received by setMOMPolicyParameters +(defvar False 0) +(defvar True 1) + +# Define variables for configurable options here +(defvar ksmEnabled 1) +(defvar balloonEnabled 0) + diff --git a/vdsm/mom.d/00-python.policy b/vdsm/mom.d/00-python.policy deleted file mode 100644 index face6fa..0000000 --- a/vdsm/mom.d/00-python.policy +++ /dev/null @@ -1,4 +0,0 @@ -# This file defines python constans that make it easier to convert data -# received by setMOMPolicyParameters -(defvar False 0) -(defvar True 1) diff --git a/vdsm/mom.d/01-parameters.policy b/vdsm/mom.d/01-parameters.policy index 97803d5..e69de29 100644 --- a/vdsm/mom.d/01-parameters.policy +++ b/vdsm/mom.d/01-parameters.policy @@ -1,2 +0,0 @@ -(defvar balloonEnabled 0) -(defvar ksmEnabled 1) diff --git a/vdsm/momIF.py b/vdsm/momIF.py index 8b62657..7b83ad1 100644 --- a/vdsm/momIF.py +++ b/vdsm/momIF.py @@ -46,6 +46,7 @@ self.log = logging.getLogger("MOM") self.log.info("Starting up MOM") self._mom = mom.MOM(momconf) + self._policy = {} threading.Thread.__init__(self, target=self._mom.run, name="MOM") self.start() @@ -64,14 +65,16 @@ def setPolicyParameters(self, key_value_store): # mom.setNamedPolicy will raise an exception on failure. + # Prepare in-memory policy file with tuning variables # this might need to convert certain python types to proper MoM # policy language + self._policy.update(key_value_store) - # Python bool values are defined in 00-python.policy so need no + # Python bool values are defined in 00-defines.policy so need no # conversion here - policy_string = "\n".join(["(defvar %s %r)" % (k, v) - for k, v in key_value_store.iteritems()]) + policy_string = "\n".join(["(set %s %r)" % (k, v) + for k, v in self._policy.iteritems()]) self._mom.setNamedPolicy(config.get("mom", "tuning_policy"), policy_string) -- To view, visit http://gerrit.ovirt.org/21225 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I7bb1001a05e670e393b2cc0ab4b271b3b333d2e8 Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Martin Sivák <msi...@redhat.com> _______________________________________________ vdsm-patches mailing list vdsm-patches@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches