[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:44 UTC 2013
The following commit has been merged in the master branch:
commit 204e88a2b4159eb8add899cadf56c02cb1daa60b
Author: Garrett Holmstrom <gholms at fedoraproject.org>
Date: Sat Apr 21 19:56:42 2012 -0700
Rewrite CreateTags
diff --git a/bin/euca-create-tags b/bin/euca-create-tags
index 00f428a..d890174 100755
--- a/bin/euca-create-tags
+++ b/bin/euca-create-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.createtags
if __name__ == '__main__':
- cmd = euca2ools.commands.euca.createtags.CreateTags()
- cmd.main_cli()
-
+ cmd = euca2ools.commands.euca.createtags.CreateTags().do_cli()
diff --git a/bin/euca-check-bucket b/euca2ools/commands/euca/argtypes.py
old mode 100755
new mode 100644
similarity index 70%
copy from bin/euca-check-bucket
copy to euca2ools/commands/euca/argtypes.py
index 598bc30..95e1082
--- a/bin/euca-check-bucket
+++ b/euca2ools/commands/euca/argtypes.py
@@ -1,9 +1,6 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
# Software License Agreement (BSD License)
#
-# Copyright (c) 2009-2011, Eucalyptus Systems, Inc.
+# Copyright (c) 2012, Eucalyptus Systems, Inc.
# All rights reserved.
#
# Redistribution and use of this software in source and binary forms, with or
@@ -30,13 +27,20 @@
# 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.euca.checkbucket
+from requestbuilder import EMPTY
-if __name__ == '__main__':
- cmd = euca2ools.commands.euca.checkbucket.CheckBucket()
- cmd.main_cli()
+def binary_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, 'Value': EMPTY}
+ '''
+ if '=' in tag_str:
+ (key, val) = tag_str.split('=', 1)
+ return {'Key': key, 'Value': val or EMPTY}
+ else:
+ return {'Key': tag_str, 'Value': EMPTY}
diff --git a/euca2ools/commands/euca/createtags.py b/euca2ools/commands/euca/createtags.py
index bb6c836..ce692b2 100644
--- a/euca2ools/commands/euca/createtags.py
+++ b/euca2ools/commands/euca/createtags.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,47 +27,25 @@
# 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 CreateTags(euca2ools.commands.eucacommand.EucaCommand):
+from requestbuilder import Arg
+from . import EucalyptusRequest
+from .argtypes import binary_tag_def
+class CreateTags(EucalyptusRequest):
APIVersion = '2010-08-31'
- Description = """Adds or overwrites one or more tags for 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):
- self.tags = {}
- for tagpair in self.tag:
- t = tagpair.split('=')
- name = t[0]
- if len(t) == 1:
- value = ''
- else:
- value = t[1]
- self.tags[name] = value
- conn = self.make_connection_cli()
- return self.make_request_cli(conn, 'create_tags',
- resource_ids=self.resource_id,
- tags=self.tags)
+ Description = 'Add or overwrite tags for one or more resources'
+ Args = [Arg('ResourceId', metavar='RESOURCE', nargs='+',
+ help='IDs of the resource(s) to tag'),
+ Arg('--tag', dest='Tag', metavar='KEY[=VALUE]',
+ type=binary_tag_def, action='append', required=True,
+ help='''key and optional value of the tag to create, separated
+ by an "=" character. If no value is given the tag's
+ value is set to an empty string.''')]
- def main_cli(self):
- status = self.main()
- if status:
- for resource_id in self.resource_id:
- for name in self.tags:
- value = self.tags.get(name, '')
- s = 'TAG\t%s\t%s\t%s' % (resource_id, name, value)
- print s
- else:
- self.error_exit()
+ def print_result(self, result):
+ for resource in self.args['ResourceId']:
+ for tag in self.args['Tag']:
+ ## FIXME: The second field should name a resource type
+ print self.tabify(['TAG', None, resource, tag['Key'],
+ tag['Value']])
--
managing cloud instances for Eucalyptus
More information about the pkg-eucalyptus-commits
mailing list