Changeset e07c8f3


Ignore:
Timestamp:
Jun 1, 2010 8:02:00 AM (14 years ago)
Author:
Ted Faber <faber@…>
Branches:
axis_example, compt_changes, info-ops, master, version-3.01, version-3.02
Children:
1502580
Parents:
5767b20
Message:

Remove software, etc when experiment swaps out

Fix a couple small bugs in access controller that I believed were fixed before.

Location:
fedd/federation
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • fedd/federation/emulab_access.py

    r5767b20 re07c8f3  
    612612                                        "dragonportal ip %s vlan %s " + \
    613613                                        "netmask 255.255.255.0\n") % \
    614                                         (e.name, addr, vlan)
     614                                        (topdl.to_tcl_name(e.name), addr, vlan)
    615615                            elif type =='lan':
    616616                                s = ("tb-allow-external ${%s} " + \
    617617                                        "dragonportal " + \
    618618                                        "ip %s vlan %s usurp %s\n") % \
    619                                         (e.name, addr, vlan, subs)
     619                                        (topdl.to_tcl_name(e.name), addr,
     620                                                vlan, subs)
    620621                            else:
    621622                                raise service_error(service_error_internal,
     
    824825        # If this is the seer master, add that node, too.
    825826        if seer_master:
    826             self.add_seer_node(topo, 'seer-master', self.seer_master_start)
     827            self.add_seer_node(topo, 'seer-master',
     828                    "%s -R -n -R seer-master -R -A -R sink" % \
     829                            self.seer_master_start)
    827830
    828831    def retrieve_software(self, topo, certfile, softdir):
  • fedd/federation/experiment_control.py

    r5767b20 re07c8f3  
    21342134        return rv
    21352135
     2136    def remove_dirs(self, dir):
     2137        """
     2138        Remove the directory tree and all files rooted at dir.  Log any errors,
     2139        but continue.
     2140        """
     2141        self.log.debug("[removedirs]: removing %s" % dir)
     2142        try:
     2143            for path, dirs, files in os.walk(dir, topdown=False):
     2144                for f in files:
     2145                    os.remove(os.path.join(path, f))
     2146                for d in dirs:
     2147                    os.rmdir(os.path.join(path, d))
     2148            os.rmdir(dir)
     2149        except EnvironmentError, e:
     2150            self.log.error("Error deleting directory tree in %s" % e);
     2151
    21362152    def terminate_experiment(self, req, fid):
    21372153        """
     
    21752191        self.state_lock.acquire()
    21762192        fed_exp = self.state.get(key, None)
     2193        repo = None
    21772194
    21782195        if fed_exp:
     
    22052222            #  keys of self.state - and puts them into ids.
    22062223            for id in fed_exp.get('experimentID', []):
    2207                 if id.has_key('fedid'): ids.append(id['fedid'])
     2224                if id.has_key('fedid'):
     2225                    ids.append(id['fedid'])
     2226                    repo = "%s" % id['fedid']
    22082227                if id.has_key('localname'): ids.append(id['localname'])
    22092228
     
    22762295                    pass
    22772296            self.write_store()
     2297
     2298            # Remove software and other cached stuff from the filesystem.
     2299            if repo:
     2300                self.remove_dirs("%s/%s" % (self.repodir, repo))
    22782301               
    22792302            return {
Note: See TracChangeset for help on using the changeset viewer.