You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bh...@apache.org on 2016/01/19 15:27:36 UTC

[2/3] cloudstack-cloudmonkey git commit: cloudmonkey: print csv rows based on what's available

cloudmonkey: print csv rows based on what's available

This fails if the row item has any additional key than the first row with error:
Error on parsing and printing dict contains fields not in fieldnames

The fix is to start with an empty dictionary fill it based on known keys and
then ask csv to print that row

Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


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

Branch: refs/heads/master
Commit: 5c7f906fae1656e1dc072097ee9061b0f3bbefd4
Parents: b463216
Author: Rohit Yadav <ro...@shapeblue.com>
Authored: Tue Jan 19 15:24:01 2016 +0100
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Tue Jan 19 15:25:35 2016 +0100

----------------------------------------------------------------------
 cloudmonkey/cloudmonkey.py | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack-cloudmonkey/blob/5c7f906f/cloudmonkey/cloudmonkey.py
----------------------------------------------------------------------
diff --git a/cloudmonkey/cloudmonkey.py b/cloudmonkey/cloudmonkey.py
index e7d3c53..fc43167 100644
--- a/cloudmonkey/cloudmonkey.py
+++ b/cloudmonkey/cloudmonkey.py
@@ -282,13 +282,16 @@ class CloudMonkeyShell(cmd.Cmd, object):
                     writer = csv.DictWriter(sys.stdout, keys)
                     print ','.join(keys)
                     for item in result:
+                        row = {}
                         for k in keys:
                             if k not in item:
-                                item[k] = None
+                                row[k] = None
                             else:
                                 if type(item[k]) is unicode:
-                                    item[k] = item[k].encode('utf8')
-                        writer.writerow(item)
+                                    row[k] = item[k].encode('utf8')
+                                else:
+                                    row[k] = item[k]
+                        writer.writerow(row)
             elif isinstance(result, dict):
                 keys = result.keys()
                 writer = csv.DictWriter(sys.stdout, keys)