Changeset 80b1e82


Ignore:
Timestamp:
Nov 18, 2011 7:19:48 PM (13 years ago)
Author:
Ted Faber <faber@…>
Branches:
compt_changes, info-ops, master
Children:
9294673
Parents:
29d5f7c
Message:

Info stuff all works. SEER will need to add a legacy parameter to info.

Files:
3 edited

Legend:

Unmodified
Added
Removed
  • fedd/fedd_info.py

    r29d5f7c r80b1e82  
    1919        self.add_option("--data", dest="data", default=[],
    2020                action="append", type="choice",
    21                 choices=("id", "experimentdescription", "federant", "vtopo",
    22                     "vis", "log", "status", "embedding"),
     21                choices=("id", "experimentdescription", "vtopo", "vis",
     22                    "log", "status"),
    2323                help="data to extract")
    2424       
     
    3737
    3838req = { 'experiment': exp_id }
     39
     40# If legacy data is requested, request it from the server.
     41if 'vis' in opts.data  or 'vtopo' in opts.data:
     42    req['legacy'] = True
    3943
    4044try:
  • fedd/federation/experiment_control.py

    r29d5f7c r80b1e82  
    18921892        self.state_lock.acquire()
    18931893        # XXX: this needs to be recalculated
    1894         if self.state.has_key(key):
    1895             if self.state[key].has_key('vtopo'):
     1894        if key in self.state:
     1895            if self.state[key].top is not None:
     1896                vtopo = topdl.topology_to_vtopo(self.state[key].top)
    18961897                rv = { 'experiment' : {keytype: key },
    1897                         'vtopo': self.state[key]['vtopo'],
     1898                        'vtopo': vtopo,
    18981899                        'proof': proof.to_dict(),
    18991900                    }
    19001901            else:
    1901                 state = self.state[key]['experimentStatus']
     1902                state = self.state[key].status
    19021903        self.state_lock.release()
    19031904
     
    19371938
    19381939        self.state_lock.acquire()
    1939         # XXX: this needs to be recalculated
    1940         if self.state.has_key(key):
    1941             if self.state[key].has_key('vis'):
    1942                 rv =  { 'experiment' : {keytype: key },
    1943                         'vis': self.state[key]['vis'],
     1940        # Generate the visualization
     1941        if key in self.state:
     1942            if self.state[key].top is not None:
     1943                try:
     1944                    vis = self.genviz(
     1945                            topdl.topology_to_vtopo(self.state[key].topo))
     1946                except service_error, e:
     1947                    self.state_lock.release()
     1948                    raise e
     1949                rv =  { 'experiment' : {keytype: key },
     1950                        'vis': vis,
    19441951                        'proof': proof.to_dict(),
    1945                         }
     1952                        }
    19461953            else:
    1947                 state = self.state[key]['experimentStatus']
     1954                state = self.state[key].status
    19481955        self.state_lock.release()
    19491956
     
    22102217                    "Bad request format (no InfoRequestBody)")
    22112218        exp = req.get('experiment', None)
     2219        legacy = req.get('legacy', False)
    22122220        if exp:
    22132221            if exp.has_key('fedid'):
     
    22272235        if self.state.has_key(key):
    22282236            rv = self.state[key].get_info()
     2237            # Copy the topo if we need to generate legacy representations
     2238            if legacy:
     2239                top = self.state[key].top
     2240                if top is not None: top = top.clone()
    22292241        self.state_lock.release()
    22302242
     2243        # If the legacy visualization and topology representations are
     2244        # requested, calculate them and add them to teh return.
     2245        if legacy and rv is not None:
     2246            if top is not None:
     2247                vtopo = topdl.topology_to_vtopo(top)
     2248                if vtopo is not None:
     2249                    rv['vtopo'] = vtopo
     2250                    try:
     2251                        vis = self.genviz(vtopo)
     2252                    except service_error, e:
     2253                        self.log.debug('Problem generating visualization: %s' \
     2254                                % e)
     2255                        vis = None
     2256                    if vis is not None:
     2257                        rv['vis'] = vis
    22312258        if rv:
    22322259            rv['proof'] = proof.to_dict()
  • wsdl/fedd_types.xsd

    r29d5f7c r80b1e82  
    670670    <xsd:sequence>
    671671      <xsd:element name="experiment" type="tns:IDType"/>
     672      <xsd:element name="legacy" type="xsd:boolean"
     673        minOccurs="0" maxOccurs="1"/>
    672674    </xsd:sequence>
    673675  </xsd:complexType>
Note: See TracChangeset for help on using the changeset viewer.