[pkg-eucalyptus-commits] [SCM] managing cloud instances for Eucalyptus branch, master, updated. 3.0.0-alpha3-257-g1da8e3a
Garrett Holmstrom
gholms at fedoraproject.org
Sun Jun 16 02:30:35 UTC 2013
The following commit has been merged in the master branch:
commit 9cef267a4355ee7da9baf7166cf45c1786e4125c
Author: Garrett Holmstrom <gholms at fedoraproject.org>
Date: Tue Mar 5 16:22:03 2013 -0800
Implement PutScalingPolicy
Fixes TOOLS-216
diff --git a/bin/kilo-put-scaling-policy b/bin/kilo-put-scaling-policy
new file mode 100755
index 0000000..79cb62c
--- /dev/null
+++ b/bin/kilo-put-scaling-policy
@@ -0,0 +1,6 @@
+#!/usr/bin/python -tt
+
+import euca2ools.commands.autoscaling.putscalingpolicy
+
+if __name__ == '__main__':
+ euca2ools.commands.autoscaling.putscalingpolicy.PutScalingPolicy.run()
diff --git a/euca2ools/commands/autoscaling/putscalingpolicy.py b/euca2ools/commands/autoscaling/putscalingpolicy.py
new file mode 100644
index 0000000..7eb4c11
--- /dev/null
+++ b/euca2ools/commands/autoscaling/putscalingpolicy.py
@@ -0,0 +1,63 @@
+# Software License Agreement (BSD License)
+#
+# Copyright (c) 2013, Eucalyptus Systems, Inc.
+# All rights reserved.
+#
+# Redistribution and use of this software in source and binary forms, with or
+# without modification, are permitted provided that the following conditions
+# are met:
+#
+# Redistributions of source code must retain the above
+# copyright notice, this list of conditions and the
+# following disclaimer.
+#
+# Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the
+# following disclaimer in the documentation and/or other
+# materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+from requestbuilder import Arg
+from euca2ools.commands.argtypes import delimited_list
+from euca2ools.commands.autoscaling import AutoScalingRequest
+
+
+class PutScalingPolicy(AutoScalingRequest):
+ DESCRIPTION = "Create or update an auto-scaling group's scaling policy"
+ ARGS = [Arg('PolicyName', metavar='POLICY',
+ help='name of the policy to create or update (required)'),
+ Arg('-g', '--auto-scaling-group', dest='AutoScalingGroupName',
+ metavar='ASGROUP', required=True, help='''name of the
+ auto-scaling group the policy is associated with (required)'''),
+ Arg('-a', '--adjustment', dest='ScalingAdjustment', metavar='SCALE',
+ type=int, required=True, help='''amount to scale the group's
+ capacity of the group. Use a negative value, as in
+ "--adjustment=-1", to decrease capacity. (required)'''),
+ Arg('-t', '--type', dest='AdjustmentType', required=True,
+ choices=('ChangeInCapacity', 'ExactCapacity',
+ 'PercentChangeInCapacity'), help='''whether the
+ adjustment is the new desired size or an increment to the
+ group's current capacity. An increment can either be a fixed
+ number or a percentage of current capacity. (required)'''),
+ Arg('--cooldown', dest='Cooldown', metavar='SECONDS', type=int,
+ help='''waiting period after successful auto-scaling activities
+ during which later auto-scaling activities will not execute'''),
+ Arg('-s', '--min-adjustment-step', dest='MinAdjustmentStep',
+ type=int, metavar='PERCENT',
+ help='''for a PercentChangeInCapacity type policy, guarantee
+ that this policy will change the group's desired capacity by at
+ least this much''')]
+
+ def print_result(self, result):
+ print result.get('PolicyARN')
--
managing cloud instances for Eucalyptus
More information about the pkg-eucalyptus-commits
mailing list