minor: fix save_rspec_to_file in sfi.py
[sfa.git] / sfa / client / sfi.py
index 2f8a2a8..2f47839 100644 (file)
@@ -138,7 +138,7 @@ def save_rspec_to_file(rspec, filename):
     if not filename.endswith(".rspec"):
         filename = filename + ".rspec"
     f = open(filename, 'w')
-    f.write(rspec)
+    f.write("%s"%rspec)
     f.close()
     return
 
@@ -434,7 +434,7 @@ class Sfi:
                               help="specify specific keys to be displayed from record")
         if command in ("resources", "describe"):
             # rspec version
-            parser.add_option("-r", "--rspec-version", dest="rspec_version", default="SFA 1",
+            parser.add_option("-r", "--rspec-version", dest="rspec_version", default="GENI 3",
                               help="schema type and version of resulting RSpec")
             # disable/enable cached rspecs
             parser.add_option("-c", "--current", dest="current", default=False,
@@ -1095,7 +1095,7 @@ use this if you mean an authority instead""")
         if self.options.raw:
             save_raw_to_file(result, self.options.raw, self.options.rawformat, self.options.rawbanner)
         if options.file is not None:
-            save_rspec_to_file(value, options.file)
+            save_rspec_to_file(value['geni_rspec'], options.file)
         if (self.options.raw is None) and (options.file is None):
             display_rspec(value, options.format)
 
@@ -1136,7 +1136,7 @@ use this if you mean an authority instead""")
         if self.options.raw:
             save_raw_to_file(result, self.options.raw, self.options.rawformat, self.options.rawbanner)
         if options.file is not None:
-            save_rspec_to_file(value, options.file)
+            save_rspec_to_file(value['geni_rspec'], options.file)
         if (self.options.raw is None) and (options.file is None):
             display_rspec(value, options.format)
 
@@ -1221,7 +1221,7 @@ use this if you mean an authority instead""")
         if self.options.raw:
             save_raw_to_file(result, self.options.raw, self.options.rawformat, self.options.rawbanner)
         if options.file is not None:
-            save_rspec_to_file (value, options.file)
+            save_rspec_to_file (value['geni_rspec'], options.file)
         if (self.options.raw is None) and (options.file is None):
             print value
         return value
@@ -1281,7 +1281,7 @@ use this if you mean an authority instead""")
         if self.options.raw:
             save_raw_to_file(result, self.options.raw, self.options.rawformat, self.options.rawbanner)
         if options.file is not None:
-            save_rspec_to_file (value, options.file)
+            save_rspec_to_file (value['geni_rspec'], options.file)
         if (self.options.raw is None) and (options.file is None):
             print value
         return value     
@@ -1493,8 +1493,9 @@ $ sfi myslice
 $ sfi -v myslice  -- or sfi -vv myslice
   same but with more and more verbosity
 
-$ sfi m
+$ sfi m -b http://mymanifold.foo.com:7080/
   is synonym to sfi myslice as no other command starts with an 'm'
+  and uses a custom backend for this one call
 """
 ) # register_command
     def myslice (self, options, args):
@@ -1518,13 +1519,13 @@ $ sfi m
 
         # (a) rain check for sufficient config in sfi_config
         myslice_dict={}
-        myslice_keys=['backend', 'delegate', 'platform', 'username']
+        myslice_keys=[ 'backend', 'delegate', 'platform', 'username']
         for key in myslice_keys:
             value=None
             # oct 2013 - I'm finding myself juggling with config files
             # so a couple of command-line options can now override config
-            if hasattr(args,key):
-                value=getattr(args,key)
+            if hasattr(options,key) and getattr(options,key) is not None:
+                value=getattr(options,key)
             else:
                 full_key="MYSLICE_" + key.upper()
                 value=getattr(self.config_instance,full_key,None)
@@ -1585,6 +1586,7 @@ $ sfi m
         # (f) and finally upload them to manifold server
         # xxx todo add an option so the password can be set on the command line
         # (but *NOT* in the config file) so other apps can leverage this
+        self.logger.info("Uploading on backend at %s"%myslice_dict['backend'])
         uploader = ManifoldUploader (logger=self.logger,
                                      url=myslice_dict['backend'],
                                      platform=myslice_dict['platform'],