[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:27 UTC 2013


The following commit has been merged in the master branch:
commit 7689c8a050a83c033253715e86ef26824f510e33
Author: Garrett Holmstrom <gholms at fedoraproject.org>
Date:   Fri Feb 22 16:40:21 2013 -0800

    Add base classes for the triangle

diff --git a/euca2ools/commands/walrus/deleteobject.py b/euca2ools/commands/autoscaling/__init__.py
similarity index 57%
copy from euca2ools/commands/walrus/deleteobject.py
copy to euca2ools/commands/autoscaling/__init__.py
index 13947b9..5456536 100644
--- a/euca2ools/commands/walrus/deleteobject.py
+++ b/euca2ools/commands/autoscaling/__init__.py
@@ -28,22 +28,31 @@
 # 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 . import WalrusRequest
+from requestbuilder import Arg, SERVICE
+import requestbuilder.auth
+import requestbuilder.service
+import requestbuilder.request
+from .. import Euca2ools
 
-class DeleteObject(WalrusRequest):
-    DESCRIPTION = 'Delete objects from the server'
-    ARGS = [Arg('paths', metavar='BUCKET/KEY', nargs='+', route_to=None)]
+class AutoScaling(requestbuilder.service.BaseService):
+    NAME = 'autoscaling'
+    DESCRIPTION = 'Auto-scaling service'
+    API_VERSION = '2011-01-01'
+    AUTH_CLASS = requestbuilder.auth.QuerySigV2Auth
+    URL_ENVVAR = 'AWS_AUTO_SCALING_URL'
 
-    def configure(self):
-        WalrusRequest.configure(self)
-        for path in self.args['paths']:
-            if '/' not in path:
-                self._cli_parser.error(
-                        "path '{0}' must include a key name")
+class AutoScalingRequest(requestbuilder.request.AWSQueryRequest):
+    SUITE = Euca2ools
+    SERVICE_CLASS = AutoScaling
+    ARGS = [Arg('-U', '--url', dest='url', metavar='URL', route_to=SERVICE,
+                help='auto-scaling service endpoint URL')]
 
-    def main(self):
-        self.method = 'DELETE'
-        for path in self.args['paths']:
-            self.path = path
-            self.send()
+    def parse_response(self, response):
+        response_dict = requestbuilder.request.AWSQueryRequest.parse_response(
+            self, response)
+        useful_keys = list(filter(lambda x: x != 'ResponseMetadata',
+                                  response_dict.keys()))
+        if len(useful_keys) == 1:
+            return response_dict[useful_keys[0]]
+        else:
+            return response_dict
diff --git a/euca2ools/commands/walrus/deleteobject.py b/euca2ools/commands/elasticloadbalancing/__init__.py
similarity index 57%
copy from euca2ools/commands/walrus/deleteobject.py
copy to euca2ools/commands/elasticloadbalancing/__init__.py
index 13947b9..4eac030 100644
--- a/euca2ools/commands/walrus/deleteobject.py
+++ b/euca2ools/commands/elasticloadbalancing/__init__.py
@@ -28,22 +28,31 @@
 # 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 . import WalrusRequest
+from requestbuilder import Arg, SERVICE
+import requestbuilder.auth
+import requestbuilder.service
+import requestbuilder.request
+from .. import Euca2ools
 
-class DeleteObject(WalrusRequest):
-    DESCRIPTION = 'Delete objects from the server'
-    ARGS = [Arg('paths', metavar='BUCKET/KEY', nargs='+', route_to=None)]
+class ELB(requestbuilder.service.BaseService):
+    NAME = 'elasticloadbalancing'
+    DESCRIPTION = 'Load balancing service'
+    API_VERSION = '2012-06-01'
+    AUTH_CLASS = requestbuilder.auth.QuerySigV2Auth
+    URL_ENVVAR = 'AWS_ELB_URL'
 
-    def configure(self):
-        WalrusRequest.configure(self)
-        for path in self.args['paths']:
-            if '/' not in path:
-                self._cli_parser.error(
-                        "path '{0}' must include a key name")
+class ELBRequest(requestbuilder.request.AWSQueryRequest):
+    SUITE = Euca2ools
+    SERVICE_CLASS = ELB
+    ARGS = [Arg('-U', '--url', dest='url', metavar='URL', route_to=SERVICE,
+                help='load balancing service endpoint URL')]
 
-    def main(self):
-        self.method = 'DELETE'
-        for path in self.args['paths']:
-            self.path = path
-            self.send()
+    def parse_response(self, response):
+        response_dict = requestbuilder.request.AWSQueryRequest.parse_response(
+            self, response)
+        useful_keys = list(filter(lambda x: x != 'ResponseMetadata',
+                                  response_dict.keys()))
+        if len(useful_keys) == 1:
+            return response_dict[useful_keys[0]]
+        else:
+            return response_dict
diff --git a/euca2ools/commands/walrus/deleteobject.py b/euca2ools/commands/monitoring/__init__.py
similarity index 57%
copy from euca2ools/commands/walrus/deleteobject.py
copy to euca2ools/commands/monitoring/__init__.py
index 13947b9..0e5febb 100644
--- a/euca2ools/commands/walrus/deleteobject.py
+++ b/euca2ools/commands/monitoring/__init__.py
@@ -28,22 +28,31 @@
 # 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 . import WalrusRequest
+from requestbuilder import Arg, SERVICE
+import requestbuilder.auth
+import requestbuilder.service
+import requestbuilder.request
+from .. import Euca2ools
 
-class DeleteObject(WalrusRequest):
-    DESCRIPTION = 'Delete objects from the server'
-    ARGS = [Arg('paths', metavar='BUCKET/KEY', nargs='+', route_to=None)]
+class CloudWatch(requestbuilder.service.BaseService):
+    NAME = 'monitoring'
+    DESCRIPTION = 'Instance monitoring service'
+    API_VERSION = '2010-08-01'
+    AUTH_CLASS = requestbuilder.auth.QuerySigV2Auth
+    URL_ENVVAR = 'AWS_CLOUDWATCH_URL'
 
-    def configure(self):
-        WalrusRequest.configure(self)
-        for path in self.args['paths']:
-            if '/' not in path:
-                self._cli_parser.error(
-                        "path '{0}' must include a key name")
+class CloudWatchRequest(requestbuilder.request.AWSQueryRequest):
+    SUITE = Euca2ools
+    SERVICE_CLASS = CloudWatch
+    ARGS = [Arg('-U', '--url', dest='url', metavar='URL', route_to=SERVICE,
+                help='instance monitoring service endpoint URL')]
 
-    def main(self):
-        self.method = 'DELETE'
-        for path in self.args['paths']:
-            self.path = path
-            self.send()
+    def parse_response(self, response):
+        response_dict = requestbuilder.request.AWSQueryRequest.parse_response(
+            self, response)
+        useful_keys = list(filter(lambda x: x != 'ResponseMetadata',
+                                  response_dict.keys()))
+        if len(useful_keys) == 1:
+            return response_dict[useful_keys[0]]
+        else:
+            return response_dict

-- 
managing cloud instances for Eucalyptus



More information about the pkg-eucalyptus-commits mailing list