Begin refactoring instances.py

Project: http://git-wip-us.apache.org/repos/asf/cloudstack-gcestack/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/cloudstack-gcestack/commit/b443e521
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack-gcestack/tree/b443e521
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack-gcestack/diff/b443e521

Branch: refs/heads/master
Commit: b443e52121d5be9f59c6818588c7acfa538b1439
Parents: 5bb67d5
Author: BroganD1993 <darrenbro...@hotmail.com>
Authored: Sun Jun 15 18:03:23 2014 +0100
Committer: BroganD1993 <darrenbro...@hotmail.com>
Committed: Sun Jun 15 18:03:23 2014 +0100

----------------------------------------------------------------------
 gstack/controllers/images.py    |  1 -
 gstack/controllers/instances.py | 44 +++++++++++-------------------------
 gstack/templates/images.json    |  3 ++-
 gstack/templates/instances.json | 32 ++++++++++++++++++++++++++
 gstack/templates/response.json  |  1 -
 5 files changed, 47 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack-gcestack/blob/b443e521/gstack/controllers/images.py
----------------------------------------------------------------------
diff --git a/gstack/controllers/images.py b/gstack/controllers/images.py
index c2e5ec5..b15d277 100755
--- a/gstack/controllers/images.py
+++ b/gstack/controllers/images.py
@@ -126,7 +126,6 @@ def listimages(projectid, authorization):
         'template_name_or_list': 'images.json',
         'selflink': request.base_url,
         'request_id': 'projects/' + projectid + '/global/images',
-        'request_kind': 'compute#imageList',
         'response': image_list['listtemplatesresponse']
     }
     return helpers.successful_response(

http://git-wip-us.apache.org/repos/asf/cloudstack-gcestack/blob/b443e521/gstack/controllers/instances.py
----------------------------------------------------------------------
diff --git a/gstack/controllers/instances.py b/gstack/controllers/instances.py
index 4c196ae..9667e76 100755
--- a/gstack/controllers/instances.py
+++ b/gstack/controllers/instances.py
@@ -220,47 +220,29 @@ def aggregatedlistinstances(authorization, projectid):
 @authentication.required
 def listinstances(authorization, projectid, zone):
     instance = None
-    filter = helpers.get_filter(request.args)
 
+    filter = helpers.get_filter(request.args)
+    virtual_machines = {}
     if 'name' in filter:
         instance = filter['name']
 
-    items = []
-
     if instance:
-        virtual_machine = _get_virtual_machine_by_name(
+        virtual_machines['virtualmachine'] = _get_virtual_machine_by_name(
             authorization=authorization,
             instance=instance
         )
-        if virtual_machine:
-            items.append(
-                _cloudstack_virtual_machine_to_gce(
-                    cloudstack_response=virtual_machine,
-                    projectid=projectid,
-                    zone=zone
-                )
-            )
     else:
-        virtual_machine_list = _get_virtual_machines(
-            authorization=authorization)
-        if virtual_machine_list['listvirtualmachinesresponse']:
-            for instance in 
virtual_machine_list['listvirtualmachinesresponse']['virtualmachine']:
-                items.append(
-                    _cloudstack_virtual_machine_to_gce(
-                        cloudstack_response=instance,
-                        projectid=projectid,
-                        zone=zone,
-                    )
-                )
-
-    populated_response = {
-        'kind': 'compute#instance_list',
-        'id': 'projects/' + projectid + '/instances',
-        'selfLink': request.base_url,
-        'items': items
+        virtual_machines = _get_virtual_machines(authorization=authorization)
+        virtual_machines = virtual_machines['listvirtualmachinesresponse']
+
+    kwargs = {
+        'template_name_or_list': 'instances.json',
+        'selflink': request.base_url,
+        'zone':zone,
+        'request_id': 'projects/' + projectid + '/instances',
+        'response': virtual_machines
     }
-
-    return helpers.create_response(data=populated_response)
+    return helpers.successful_response(**kwargs)
 
 
 
@app.route('/compute/v1/projects/<projectid>/zones/<zone>/instances/<instance>',
 methods=['GET'])

http://git-wip-us.apache.org/repos/asf/cloudstack-gcestack/blob/b443e521/gstack/templates/images.json
----------------------------------------------------------------------
diff --git a/gstack/templates/images.json b/gstack/templates/images.json
index d986853..3baa8a9 100644
--- a/gstack/templates/images.json
+++ b/gstack/templates/images.json
@@ -1,7 +1,8 @@
 {% extends "response.json" %}{% block response_content %}
+    "kind": "compute#imageList",
     "items":[{% for image in response.template %}
         {
-            "creationTimestamp":"{{response.template|length}}",
+            "creationTimestamp":"{{image.created}}",
             "description":"{{image.displaytext}}",
             "id":"{{image.id}}",
             "kind":"compute#image",

http://git-wip-us.apache.org/repos/asf/cloudstack-gcestack/blob/b443e521/gstack/templates/instances.json
----------------------------------------------------------------------
diff --git a/gstack/templates/instances.json b/gstack/templates/instances.json
new file mode 100644
index 0000000..bd0c670
--- /dev/null
+++ b/gstack/templates/instances.json
@@ -0,0 +1,32 @@
+{% extends "response.json" %}{% block response_content %}
+    "kind": "compute#instanceList",
+    "items":[{% for instance in response.virtualmachine %}
+        {
+            "creationTimestamp":"{{instance.created}}",
+            "description":"{{instance.name}}",
+            "id":"{{instance.id}}",
+            "status":"{{instance.state}}",
+            "image":"{{instance.templatename}}",
+            "machineType":"{{instance.serviceofferingname}}",
+            "kind":"compute#instance",
+            "name":"{{instance.name}}",
+            "selfLink":"instances/{{instance.name}}",,
+            "canIpForward":"true",
+            "networkInterfaces": [{% if 'securitygroup' in instance %}
+                "network":"{{instance.securitygroup.0.name}}",
+                {% if 'nic' in instance %}
+                "networkIP":"{{instance.nic.0.ipaddress}}",
+                "name":"{{instance.nic.0.id}}",
+                "natIP":"{{instance.nic.0.ipaddress}}",
+                {% endif %}
+                "accessConfigs":[
+                    "kind": "compute#accessConfig",
+                    "type": "ONE_TO_ONE_NAT",
+                    "name": "External NAT"
+                ]{% endif %}
+            ],
+            "disks": [],
+            "zone": "{{zone}}"
+        }{% if loop.index < response.virtualmachine|length %},{% endif %}{% 
endfor %}
+    ]
+{% endblock %}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cloudstack-gcestack/blob/b443e521/gstack/templates/response.json
----------------------------------------------------------------------
diff --git a/gstack/templates/response.json b/gstack/templates/response.json
index 1bc68d1..a32f929 100644
--- a/gstack/templates/response.json
+++ b/gstack/templates/response.json
@@ -1,6 +1,5 @@
 {
     {% if not error %}"id":"{{request_id}}",
-    "kind":"{{request_kind}}",
     "selfLink":"{{selflink}}",{% block response_content %}
     {% endblock %}{% endif %}
 }

Reply via email to