[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:29:46 UTC 2013
The following commit has been merged in the master branch:
commit f9c7804fb6d74aca25e8f7d2af26c268134d7153
Author: Garrett Holmstrom <gholms at fedoraproject.org>
Date: Sat Apr 21 23:29:14 2012 -0700
Rewrite DeleteTags
diff --git a/bin/euca-delete-tags b/bin/euca-delete-tags
index e15f48b..01b95df 100755
--- a/bin/euca-delete-tags
+++ b/bin/euca-delete-tags
@@ -1,42 +1,6 @@
-#!/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 at eucalyptus.com
-# Mitch Garnaat mgarnaat at eucalyptus.com
+#!/usr/bin/python -tt
import euca2ools.commands.euca.deletetags
if __name__ == '__main__':
- cmd = euca2ools.commands.euca.deletetags.DeleteTags()
- cmd.main_cli()
-
+ euca2ools.commands.euca.deletetags.DeleteTags().do_cli()
diff --git a/euca2ools/commands/euca/argtypes.py b/euca2ools/commands/euca/argtypes.py
index c7820d7..a05222a 100644
--- a/euca2ools/commands/euca/argtypes.py
+++ b/euca2ools/commands/euca/argtypes.py
@@ -93,3 +93,18 @@ def binary_tag_def(tag_str):
return {'Key': key, 'Value': val or EMPTY}
else:
return {'Key': tag_str, 'Value': EMPTY}
+
+def ternary_tag_def(tag_str):
+ '''
+ Parse a tag definition from the command line. Return a dict that depends
+ on the format of the string given:
+
+ - 'key=value': {'Key': key, 'Value': value}
+ - 'key=': {'Key': key, 'Value': EMPTY}
+ - 'key': {'Key': key}
+ '''
+ if '=' in tag_str:
+ (key, val) = tag_str.split('=', 1)
+ return {'Key': key, 'Value': val or EMPTY}
+ else:
+ return {'Key': tag_str}
diff --git a/euca2ools/commands/euca/deletetags.py b/euca2ools/commands/euca/deletetags.py
index 5baa49e..0f61691 100644
--- a/euca2ools/commands/euca/deletetags.py
+++ b/euca2ools/commands/euca/deletetags.py
@@ -1,6 +1,6 @@
# Software License Agreement (BSD License)
#
-# Copyright (c) 2009-2011, Eucalyptus Systems, Inc.
+# Copyright (c) 2009-2012, Eucalyptus Systems, Inc.
# All rights reserved.
#
# Redistribution and use of this software in source and binary forms, with or
@@ -27,40 +27,24 @@
# 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 at eucalyptus.com
-# Mitch Garnaat mgarnaat at eucalyptus.com
-
-import euca2ools.commands.eucacommand
-from boto.roboto.param import Param
-class DeleteTags(euca2ools.commands.eucacommand.EucaCommand):
+from requestbuilder import Arg
+from . import EucalyptusRequest
+from .argtypes import ternary_tag_def
+class DeleteTags(EucalyptusRequest):
APIVersion = '2010-08-31'
- Description = """Deletes the specified tags from the
- specified resource or resources"""
- Options = [Param(name='tag', long_name='tag',
- optional=False, ptype='string', cardinality='+',
- doc='The key and optional value, separated by = sign.')]
- Args = [Param(name='resource_id', ptype='string',
- doc='The resource you want to tag.',
- cardinality='+', optional=False)]
-
- def main(self):
- tags = {}
- for tagpair in self.tag:
- t = tagpair.split('=')
- name = t[0]
- if len(t) == 1:
- value = ''
- else:
- value = t[1]
- tags[name] = value
- conn = self.make_connection_cli()
- return self.make_request_cli(conn, 'delete_tags',
- resource_ids=self.resource_id,
- tags=tags)
-
- def main_cli(self):
- self.main()
+ Description = 'Delete tags from one or more resources'
+ Args = [Arg('ResourceId', metavar='RESOURCE', nargs='+',
+ help='IDs of the resource(s) to un-tag'),
+ Arg('--tag', dest='Tag', metavar='KEY[=[VALUE]]',
+ type=ternary_tag_def, action='append', required=True,
+ help='''key and optional value of the tag to delete, separated
+ by an "=" character. If no value is given, but a "="
+ character is, then the tag is deleted if its value is
+ not an empty string. If neither a value nor a "="
+ character is given then the tag with that key is
+ deleted regardless of its value.''')]
+ def print_result(self, result):
+ pass
--
managing cloud instances for Eucalyptus
More information about the pkg-eucalyptus-commits
mailing list