Changeset fd556d1


Ignore:
Timestamp:
Sep 6, 2009 3:11:36 PM (15 years ago)
Author:
Ted Faber <faber@…>
Branches:
axis_example, compt_changes, info-ops, master, version-2.00, version-3.01, version-3.02
Children:
e19b75c
Parents:
2b7d768
Message:

Properly communicate errors

Location:
fedd/federation
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • fedd/federation/access.py

    r2b7d768 rfd556d1  
    13531353        self.generate_ns2(topo, expfile,
    13541354                "/proj/%s/software/%s/" % (proj, ename), master)
    1355         starter = self.start_segment(keyfile=self.ssh_privkey_file, debug=self.create_debug)
    1356         starter(self, ename, proj, user, expfile, tmpdir)
    1357 
    1358         return { 'allocID': req['allocID'] }
     1355        starter = self.start_segment(keyfile=self.ssh_privkey_file,
     1356                debug=self.create_debug)
     1357        rv = starter(self, ename, proj, user, expfile, tmpdir)
     1358        if rv:
     1359            return { 'allocID': req['allocID'] }
     1360        else:
     1361            raise service_error(service_error.federant, "Swapin failed")
    13591362
    13601363    def TerminateSegment(self, req, fid):
     
    13921395            raise service_error(service_error.internal,
    13931396                    "Can't find experiment name for %s" % aid)
    1394         stopper = self.stop_segment(keyfile=self.ssh_privkey_file, debug=self.create_debug)
     1397        stopper = self.stop_segment(keyfile=self.ssh_privkey_file,
     1398                debug=self.create_debug)
    13951399        stopper(self, user, proj, ename)
    1396         print { 'allocID': req['allocID'] }
    13971400        return { 'allocID': req['allocID'] }
  • fedd/federation/experiment_control.py

    r2b7d768 rfd556d1  
    21432143
    21442144    class new_start_segment:
    2145         def __init__(self, debug=False, log=None, cert_file=None,
     2145        def __init__(self, debug=False, log=None, testbed="", cert_file=None,
    21462146                cert_pwd=None, trusted_certs=None, caller=None):
    21472147            self.log = log
     
    21512151            self.trusted_certs = None
    21522152            self.caller = caller
     2153            self.testbed = testbed
    21532154
    21542155        def __call__(self, uri, aid, topo, master, attrs=None):
     
    21632164                req['fedAttr'] = attrs
    21642165
    2165             print req
    2166             r = self.caller(uri, req, self.cert_file, self.cert_pwd,
    2167                     self.trusted_certs)
    2168             print r
    2169             return True
     2166            try:
     2167                r = self.caller(uri, req, self.cert_file, self.cert_pwd,
     2168                        self.trusted_certs)
     2169                return True
     2170            except service_error, e:
     2171                self.log.error("Start segment failed on %s: %s" % \
     2172                        (self.testbed, e))
     2173                return False
    21702174
    21712175
    21722176
    21732177    class new_terminate_segment:
    2174         def __init__(self, debug=False, log=None, cert_file=None,
     2178        def __init__(self, debug=False, log=None, testbed="", cert_file=None,
    21752179                cert_pwd=None, trusted_certs=None, caller=None):
    21762180            self.log = log
     
    21802184            self.trusted_certs = None
    21812185            self.caller = caller
     2186            self.testbed = testbed
    21822187
    21832188        def __call__(self, uri, aid ):
     
    21862191                    'allocID': aid ,
    21872192                }
    2188             r = self.caller(uri, req, self.cert_file, self.cert_pwd,
    2189                     self.trusted_certs)
    2190             return True
     2193            try:
     2194                r = self.caller(uri, req, self.cert_file, self.cert_pwd,
     2195                        self.trusted_certs)
     2196                return True
     2197            except service_error, e:
     2198                self.log.error("Terminate segment failed on %s: %s" % \
     2199                        (self.testbed, e))
     2200                return False
    21912201
    21922202
     
    22242234            t  = self.pooled_thread(\
    22252235                    target=self.new_start_segment(log=log, debug=self.debug,
    2226                         cert_file=self.cert_file, cert_pwd=self.cert_pwd,
     2236                        testbed=tb, cert_file=self.cert_file,
     2237                        cert_pwd=self.cert_pwd,
    22272238                        trusted_certs=self.trusted_certs,
    22282239                        caller=self.call_StartSegment),
     
    22512262                    "No alloc id for testbed %s !?" % master)
    22522263            starter = self.new_start_segment(log=log, debug=self.debug,
    2253                     cert_file=self.cert_file, cert_pwd=self.cert_pwd,
    2254                     trusted_certs=self.trusted_certs,
     2264                    testbed=master, cert_file=self.cert_file,
     2265                    cert_pwd=self.cert_pwd, trusted_certs=self.trusted_certs,
    22552266                    caller=self.call_StartSegment)
    22562267            if not starter(uri, aid, topo[master], True, attrs):
     
    22672278                    t  = self.pooled_thread(\
    22682279                            target=self.stop_segment(log=log,
     2280                                testbed=tb,
    22692281                                keyfile=self.ssh_privkey_file,
    22702282                                debug=self.debug),
     
    33583370                    t  = self.pooled_thread(\
    33593371                            target=self.new_terminate_segment(log=dealloc_log,
     3372                                testbed=tb,
    33603373                                cert_file=self.cert_file,
    33613374                                cert_pwd=self.cert_pwd,
Note: See TracChangeset for help on using the changeset viewer.