diff options
| author | Seth Vidal <skvidal@fedoraproject.org> | 2012-11-05 15:20:14 +0000 |
|---|---|---|
| committer | Seth Vidal <skvidal@fedoraproject.org> | 2012-11-05 15:20:14 +0000 |
| commit | 22cbcb1b2e6b1d7bace017e1b16ecd2db07e30e3 (patch) | |
| tree | f38e22061e430f64b41e51e3ebbaaecac20602ba /scripts/terminate-instances | |
| parent | 355c668d8c6d671d447f7710dce4f27bfd67c4b2 (diff) | |
| download | ansible-22cbcb1b2e6b1d7bace017e1b16ecd2db07e30e3.tar.gz ansible-22cbcb1b2e6b1d7bace017e1b16ecd2db07e30e3.tar.xz ansible-22cbcb1b2e6b1d7bace017e1b16ecd2db07e30e3.zip | |
add terminate-instances to scripts in ansible public repo
takes ip addresses instead of instance ids for shutting down instances
Diffstat (limited to 'scripts/terminate-instances')
| -rwxr-xr-x | scripts/terminate-instances | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/scripts/terminate-instances b/scripts/terminate-instances new file mode 100755 index 000000000..457e3d5e3 --- /dev/null +++ b/scripts/terminate-instances @@ -0,0 +1,68 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Software License Agreement (BSD License) +# +# Copyright (c) 2009-2011, 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. +# +# Author: Neil Soman neil@eucalyptus.com +# Mitch Garnaat mgarnaat@eucalyptus.com + +# additional modifications below by seth vidal skvidal@fedoraproject.org + +import euca2ools.commands.euca.terminateinstances +import euca2ools.commands.euca.describeinstances +import fnmatch + +if __name__ == '__main__': + cmd = euca2ools.commands.euca.terminateinstances.TerminateInstances() + di = euca2ools.commands.euca.describeinstances.DescribeInstances() + di.instance=['verbose'] + reservations = di.main() + matched_instances = [] + # go through each instance in each reservation and match in this order: + # instanceid, public_dns, public_ip, private_dns, private_ip + for res in reservations: + for inst in res.instances: + if inst.id in matched_instances: + continue + for arg in cmd.instance_id: + for attr in ['id', 'public_dns_name', 'ip_address', + 'private_dns_name', 'private_ip_address']: + if inst.id in matched_instances: + break + if fnmatch.fnmatch(getattr(inst, attr), arg): + matched_instances.append(inst.id) + break + + + cmd.instance_id = matched_instances + instances = cmd.main() + cmd.display_instances(instances) + |
