Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.1
resource-agents
0001-Low-VirtualDomain-Add-a-functionality-that...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0001-Low-VirtualDomain-Add-a-functionality-that-modifies.patch of Package resource-agents
From fa9ac65f510b58025e234e066d1cff26f8c2d6ed Mon Sep 17 00:00:00 2001 From: John Shi <jshi@novell.com> Date: Mon, 18 Jul 2011 14:54:00 +0800 Subject: [PATCH] Low: VirtualDomain: Add a functionality that modifies utilization of resource automatically. --- heartbeat/VirtualDomain | 67 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 67 insertions(+), 0 deletions(-) Index: resource-agents/heartbeat/VirtualDomain =================================================================== --- resource-agents.orig/heartbeat/VirtualDomain 2011-07-18 16:26:44.000000000 +0800 +++ resource-agents/heartbeat/VirtualDomain 2011-07-18 16:55:41.000000000 +0800 @@ -19,9 +19,15 @@ # Defaults OCF_RESKEY_force_stop_default=0 OCF_RESKEY_hypervisor_default="$(virsh --quiet uri)" +OCF_RESKEY_dynamic_utilization_default="true" +OCF_RESKEY_set_utilization_cpu_default="true" +OCF_RESKEY_set_utilization_memory_default="true" : ${OCF_RESKEY_force_stop=${OCF_RESKEY_force_stop_default}} : ${OCF_RESKEY_hypervisor=${OCF_RESKEY_hypervisor_default}} +: ${OCF_RESKEY_dynamic_utilization=${OCF_RESKEY_dynamic_utilization_default}} +: ${OCF_RESKEY_set_utilization_cpu=${OCF_RESKEY_set_utilization_cpu_default}} +: ${OCF_RESKEY_set_utilization_memory=${OCF_RESKEY_set_utilization_memory_default}} ####################################################################### ## I'd very much suggest to make this RA use bash, @@ -117,6 +123,28 @@ <content type="string" default="" /> </parameter> +<parameter name="dynamic_utilization" unique="0" required="0"> +<longdesc lang="en"> +If set, the utilization parameter of resource will be reset if there are +difference between resource parameters and system parameters when agent monitor. +Otherwise, the resource parameters will be set once when agent start. +</longdesc> +<shortdesc lang="en">Set utilization of resource when agent monitor</shortdesc> +<content type="boolean" default="true" /> +</parameter> + +<parameter name="set_utilization_cpu" unique="0" required="0"> +<longdesc lang="en">Enable setting cpu of utilization.</longdesc> +<shortdesc lang="en">Enable setting cpu of utilization</shortdesc> +<content type="boolean" default="true" /> +</parameter> + +<parameter name="set_utilization_memory" unique="0" required="0"> +<longdesc lang="en">Enable setting memory of utilization.</longdesc> +<shortdesc lang="en">Enable setting memory of utilization</shortdesc> +<content type="boolean" default="true" /> +</parameter> + </parameters> <actions> @@ -133,6 +161,33 @@ EOF } +set_utilization() { + local dom_cpu dom_mem + local uti_cpu uti_mem + + read dom_cpu dom_mem <<EOF +$(LANG=C virsh $VIRSH_OPTIONS dominfo ${DOMAIN_NAME} | +awk '/CPU\(s\)/{cpu=$2} /Max memory/{mem=$3} END{printf("%d %d\n", cpu, mem/1024)}') +EOF + uti_cpu=$(crm_resource -Q -r $OCF_RESOURCE_INSTANCE -z -g cpu 2>/dev/null) + uti_mem=$(crm_resource -Q -r $OCF_RESOURCE_INSTANCE -z -g hv_memory 2>/dev/null) + + if [ "$OCF_RESKEY_set_utilization_cpu" = "true" -o "$OCF_RESKEY_set_utilization_cpu" = "1" ]; then + if [ "$dom_cpu" != "$uti_cpu" ]; then + if ! crm_resource -r $OCF_RESOURCE_INSTANCE -z -p cpu -v $dom_cpu; then + ocf_log warn "Failed to set cpu of utilization by crm_resource." + fi + fi + fi + if [ "$OCF_RESKEY_set_utilization_memory" = "true" -o "$OCF_RESKEY_set_utilization_memory" = "1" ]; then + if [ "$dom_mem" != "$uti_mem" ]; then + if ! crm_resource -r $OCF_RESOURCE_INSTANCE -z -p hv_memory -v $dom_mem; then + ocf_log warn "Failed to set memory of utilization by crm_resource." + fi + fi + fi +} + # Set options to be passed to virsh: VIRSH_OPTIONS="--connect=${OCF_RESKEY_hypervisor} --quiet" @@ -236,6 +291,11 @@ while ! VirtualDomain_Monitor; do sleep 1 done + + if [ "$OCF_RESKEY_dynamic_utilization" = "false" -o "$OCF_RESKEY_dynamic_utilization" = "0" ]; then + set_utilization + fi + return $OCF_SUCCESS } @@ -404,6 +464,13 @@ fi done fi + + if ocf_is_probe; then + if [ "$OCF_RESKEY_dynamic_utilization" = "true" -o "$OCF_RESKEY_dynamic_utilization" = "1" ]; then + set_utilization + fi + fi + return ${rc} }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor