<div dir="ltr"><div class="gmail_default" style="font-family:tahoma,sans-serif;color:rgb(0,0,0)">​<span style="font-size:12.8px;font-family:arial,sans-serif;color:rgb(34,34,34)">Hello all,</span></div><br style="font-size:12.8px"><span style="font-size:12.8px">I am using 0.9 on both master and worker. Is there a way to force an Interpolate from a renderable?</span><br style="font-size:12.8px"><span style="font-size:12.8px">I have a property that contains a property format string that I </span><div class="gmail_default" style="font-size:12.8px;font-family:tahoma,sans-serif;color:rgb(0,0,0);display:inline">​want</div><span style="font-size:12.8px"> interpolated as part of the render execution.</span><div class="gmail_default" style="font-size:12.8px;font-family:tahoma,sans-serif;color:rgb(0,0,0);display:inline">​ I have tried Interpolating within the renderable but I get ​the following error:</div><div style="font-size:12.8px"><font color="#000000" face="tahoma, sans-serif"><br></font></div><div style="font-size:12.8px"><font color="#000000" face="tahoma, sans-serif"><div class="gmail_default" style="display:inline">​​</div>Unpersistable('Unpersistable data: instance of class buildbot.process.properties.<wbr>Interpolate deemed insecure')</font></div><div style="font-size:12.8px"><font color="#000000" face="tahoma, sans-serif"><br></font></div><div style="font-size:12.8px"><font color="#000000" face="tahoma, sans-serif"><div class="gmail_default" style="display:inline">​I am guessing that is because the result is an object, not the string I am trying to render.​</div><br></font><br><div class="gmail_default" style="font-family:tahoma,sans-serif;color:rgb(0,0,0)">I​n the below code, self.outputs is a dictionary where the value has a string with a property formatted string in it like this:</div><div><br></div><div><div class="gmail_default" style="font-family:tahoma,sans-serif;color:rgb(0,0,0)">​outputs={ 'ar71xx' : os.path.join('ar71xx', 'pkg', 'minder-full_%(prop:version)s.<wbr>%(prop:buildtag)s_ar71xx.ipk')<wbr>}​</div><br></div><br>Here is my command renderable<div><br><div class="gmail_default"><span style="color:rgb(0,0,0);font-family:tahoma,sans-serif">​</span><font color="#000000" face="tahoma, sans-serif">class CopyOutputCommand(object):</font></div><div class="gmail_default"><font color="#000000" face="tahoma, sans-serif"><span class="gmail-m_-2464047522692361752gmail-Apple-tab-span" style="white-space:pre-wrap">      </span>implements(IRenderable)</font></div><div class="gmail_default"><font color="#000000" face="tahoma, sans-serif"><span class="gmail-m_-2464047522692361752gmail-Apple-tab-span" style="white-space:pre-wrap">        </span>def getRenderingFor(self, props):</font></div><div class="gmail_default"><font color="#000000" face="tahoma, sans-serif"><span class="gmail-m_-2464047522692361752gmail-Apple-tab-span" style="white-space:pre-wrap">              </span>arch = props.getProperty('arch')</font></div><div class="gmail_default"><font color="#000000" face="tahoma, sans-serif"><span class="gmail-m_-2464047522692361752gmail-Apple-tab-span" style="white-space:pre-wrap">               </span>output_dir = props.getProperty('output_dir'<wbr>)</font></div><div class="gmail_default"><font color="#000000" face="tahoma, sans-serif"><span class="gmail-m_-2464047522692361752gmail-Apple-tab-span" style="white-space:pre-wrap">                </span>version = props.getProperty('version')</font></div><div class="gmail_default"><font color="#000000" face="tahoma, sans-serif"><span class="gmail-m_-2464047522692361752gmail-Apple-tab-span" style="white-space:pre-wrap">         </span>buildtag = props.getProperty('buildtag')</font></div><div class="gmail_default"><font color="#000000" face="tahoma, sans-serif"><br></font></div><div class="gmail_default"><font color="#000000" face="tahoma, sans-serif"><span class="gmail-m_-2464047522692361752gmail-Apple-tab-span" style="white-space:pre-wrap">               </span>#src = os.path.join(output_dir, 'packages', 'coco', os.path.basename(self.outputs[<wbr>arch]))</font></div><div class="gmail_default"><font color="#000000" face="tahoma, sans-serif"><span class="gmail-m_-2464047522692361752gmail-Apple-tab-span" style="white-space:pre-wrap">           </span>src = util.Interpolate(os.path.join(output_dir, 'packages', 'coco', os.path.basename(self.outputs[<wbr>arch])))</font></div><div class="gmail_default"><font color="#000000" face="tahoma, sans-serif"><span class="gmail-m_-2464047522692361752gmail-Apple-tab-span" style="white-space:pre-wrap">          </span>dst = os.path.join(output_dir, '{0}.{1}-sdk'.format(version, buildtag), arch, 'pkg')</font></div><div class="gmail_default"><font color="#000000" face="tahoma, sans-serif"><br></font></div><div class="gmail_default"><font color="#000000" face="tahoma, sans-serif"><span class="gmail-m_-2464047522692361752gmail-Apple-tab-span" style="white-space:pre-wrap">           </span>return ['cp', src, dst]</font></div><div class="gmail_default"><font color="#000000" face="tahoma, sans-serif"><br></font></div><div class="gmail_default"><font color="#000000" face="tahoma, sans-serif"><br></font></div><div class="gmail_default"><font color="#000000" face="tahoma, sans-serif"><span class="gmail-m_-2464047522692361752gmail-Apple-tab-span" style="white-space:pre-wrap">        </span>def __init__(self, outputs):</font></div><div class="gmail_default"><font color="#000000" face="tahoma, sans-serif"><span class="gmail-m_-2464047522692361752gmail-Apple-tab-span" style="white-space:pre-wrap">           </span>self.outputs = outputs</font></div></div></div><div class="gmail_default" style="font-size:12.8px"><font color="#000000" face="tahoma, sans-serif"><br></font></div><div class="gmail_default" style="font-family:tahoma,sans-serif;color:rgb(0,0,0)"><span style="font-size:12.8px">Thanks for any advice</span>​</div><br></div>