Ticket #87: customprops_web.diff

File customprops_web.diff, 2.2 KB (added by redsymbol, 2 years ago)

Patch to allow custom properties to be propagated from web force build form (i.e. an HTMLResource), for 0.7.6. Assumes that customprops076.tgz has been applied

  • status/web/builder.py

     
    128128 
    129129        return data 
    130130 
    131     def force(self, req): 
     131    def force(self, req, custom_props={}): 
     132        """ 
     133 
     134        Custom properties can be passed from the web form.  To do 
     135        this, subclass this class, overriding the force() method.  You 
     136        can then determine the properties (usually from form values, 
     137        by inspecting req.args), then passing them to this superclass 
     138        force method. 
     139         
     140        @param custom_props: Custom properties to set on build 
     141         
     142        """ 
    132143        name = req.args.get("username", ["<unknown>"])[0] 
    133144        reason = req.args.get("comments", ["<no reason specified>"])[0] 
    134145        branch = req.args.get("branch", [""])[0] 
     
    161172        # button, use their name instead of None, so they'll be informed of 
    162173        # the results. 
    163174        s = SourceStamp(branch=branch, revision=revision) 
    164         req = BuildRequest(r, s, self.builder_status.getName()) 
     175        req = BuildRequest(r, s, custom_props, self.builder_status.getName()) 
    165176        try: 
    166177            self.builder_control.requestBuildSoon(req) 
    167178        except interfaces.NoSlaveError: 
  • process/base.py

     
    9090        return d 
    9191 
    9292    def customProps(self): 
    93      return self.custom_props; 
     93     return self.custom_props 
    9494 
    9595    # these are called by the Builder 
    9696 
     
    272272        self.setProperty("buildnumber", self.build_status.number) 
    273273        self.setProperty("branch", self.source.branch) 
    274274        self.setProperty("revision", self.source.revision) 
    275         cp = self.custom_properties 
    276         for key,userProp in cp.iteritems(): 
    277          self.setProperty(key,userProp) 
    278  
     275        for key, userProp in self.custom_properties.iteritems(): 
     276            self.setProperty(key,userProp) 
     277          
    279278    def setupSlaveBuilder(self, slavebuilder): 
    280279        self.slavebuilder = slavebuilder 
    281280        self.slavename = slavebuilder.slave.slavename