From c090c85ae491cab256639d99566f8d6e4e1a67ba Mon Sep 17 00:00:00 2001 From: Scott Baker Date: Tue, 10 Mar 2009 03:02:14 +0000 Subject: [PATCH] automatically switch between slice and auth credentials in update --- cmdline/sfi.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/cmdline/sfi.py b/cmdline/sfi.py index 3b4e4bf2..1db0d6a6 100755 --- a/cmdline/sfi.py +++ b/cmdline/sfi.py @@ -9,7 +9,7 @@ import tempfile from optparse import OptionParser from geni.util.cert import Keypair, Certificate from geni.util.credential import Credential -from geni.util.geniclient import GeniClient +from geni.util.geniclient import GeniClient, ServerException from geni.util.gid import create_uuid from geni.util.record import GeniRecord @@ -392,8 +392,19 @@ def update(opts, args): record = load_record_from_file(rec_file) if record.get_type() == "user": - cred = user_cred - elif record.get_type() in ["sa", "ma", "slice", "node"]: + if record.get_name() == user_cred.get_object_gid().get_hrn(): + cred = user_cred + else: + create = get_auth_cred() + elif record.get_type() in ["slice"]: + try: + cred = get_slice_cred(record.get_name()) + except ServerException, e: + if "PermissionError" in e.args[0]: + cred = get_auth_cred() + else: + raise + elif record.get_type() in ["sa", "ma", "node"]: cred = get_auth_cred() else: raise "unknown record type" + record.get_type() -- 2.43.0