X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fclient%2Fsfi.py;h=726138f84ceb10bfe6c513d08443e4aff75f042a;hb=d3bd7ebad0c47a1bb04e83770ac0350a54f70c1f;hp=293e5bdd7de5d3f5acd1e04137939181526620bc;hpb=16b9b27493626e78ab9d8385b58f677273d72e51;p=sfa.git diff --git a/sfa/client/sfi.py b/sfa/client/sfi.py old mode 100755 new mode 100644 index 293e5bdd..726138f8 --- a/sfa/client/sfi.py +++ b/sfa/client/sfi.py @@ -83,7 +83,6 @@ def filter_records(type, records): def save_rspec_to_file(rspec, filename): if not filename.endswith(".rspec"): filename = filename + ".rspec" - f = open(filename, 'w') f.write(rspec) f.close() @@ -226,7 +225,8 @@ class Sfi: help="optional component information", default=None) - if command in ("resources", "show", "list", "create_gid"): + # 'create' does return the new rspec, makes sense to save that too + if command in ("resources", "show", "list", "create_gid", 'create'): parser.add_option("-o", "--output", dest="file", help="output XML to file", metavar="FILE", default=None) @@ -688,10 +688,7 @@ class Sfi: for record in list: print "%s (%s)" % (record['hrn'], record['type']) if opts.file: - file = opts.file - if not file.startswith(os.sep): - file = os.path.join(self.options.sfi_dir, file) - save_records_to_file(file, list) + save_records_to_file(opts.file, list) return # show named registry record @@ -722,10 +719,7 @@ class Sfi: else: print record.save_to_string() if opts.file: - file = opts.file - if not file.startswith(os.sep): - file = os.path.join(self.options.sfi_dir, file) - save_records_to_file(file, records) + save_records_to_file(opts.file, records) return def delegate(self, opts, args): @@ -938,14 +932,10 @@ class Sfi: if self.server_supports_call_id_arg(server): call_args.append(unique_call_id()) result = server.ListResources(*call_args) - format = opts.format if opts.file is None: - display_rspec(result, format) + display_rspec(result, opts.format) else: - file = opts.file - if not file.startswith(os.sep): - file = os.path.join(self.options.sfi_dir, file) - save_rspec_to_file(result, file) + save_rspec_to_file(result, opts.file) return # created named slice with given rspec @@ -972,7 +962,7 @@ class Sfi: all_keys = [] all_key_ids = [] slice_records = self.registry.Resolve(slice_urn, [user_cred.save_to_string(save_parents=True)]) - if slice_records and 'researcher' in slice_records[0]: + if slice_records and 'researcher' in slice_records[0] and slice_records[0]['researcher']!=[]: slice_record = slice_records[0] user_hrns = slice_record['researcher'] user_urns = [hrn_to_urn(hrn, 'user') for hrn in user_hrns] @@ -1005,7 +995,10 @@ class Sfi: call_args.append(unique_call_id()) result = server.CreateSliver(*call_args) - print result + if opts.file is None: + print result + else: + save_rspec_to_file (result, opts.file) return result # get a ticket for the specified slice