def get_template(
            self,
            url,
            dest,
            template='jinja',
            makedirs=False,
            saltenv='base',
            cachedir=None,
            **kwargs):
        '''
        Cache a file then process it as a template
        '''
        if 'env' in kwargs:
            # "env" is not supported; Use "saltenv".
            kwargs.pop('env')

        kwargs['saltenv'] = saltenv
        url_data = urlparse(url)
        sfn = self.cache_file(url, saltenv, cachedir=cachedir)
        if not sfn or not os.path.exists(sfn):
            return ''
        if template in salt.utils.templates.TEMPLATE_REGISTRY:
            data = salt.utils.templates.TEMPLATE_REGISTRY[template](
                sfn,
                **kwargs
            )
        else:
            log.error(
                'Attempted to render template with unavailable engine %s',
                template
            )
            return ''
        if not data['result']:
            # Failed to render the template
            log.error('Failed to render template with error: %s', data['data'])
            return ''
        if not dest:
            # No destination passed, set the dest as an extrn_files cache
            dest = self._extrn_path(url, saltenv, cachedir=cachedir)
            # If Salt generated the dest name, create any required dirs
            makedirs = True

        destdir = os.path.dirname(dest)
        if not os.path.isdir(destdir):
            if makedirs:
                os.makedirs(destdir)
            else:
                salt.utils.files.safe_rm(data['data'])
                return ''
        shutil.move(data['data'], dest)
        return dest
def get_template ( self , url , dest , template = 'jinja' , makedirs = False , saltenv = 'base' , cachedir = None , ** kwargs ) : if 'env' in kwargs : kwargs . pop ( 'env' ) kwargs [ 'saltenv' ] = saltenv url_data = urlparse ( url ) sfn = self . cache_file ( url , saltenv , cachedir = cachedir ) if not sfn or not os . path . exists ( sfn ) : return '' if template in salt . utils . templates . TEMPLATE_REGISTRY : data = salt . utils . templates . TEMPLATE_REGISTRY [ template ] ( sfn , ** kwargs ) else : log . error ( 'Attempted to render template with unavailable engine %s' , template ) return '' if not data [ 'result' ] : log . error ( 'Failed to render template with error: %s' , data [ 'data' ] ) return '' if not dest : dest = self . _extrn_path ( url , saltenv , cachedir = cachedir ) makedirs = True destdir = os . path . dirname ( dest ) if not os . path . isdir ( destdir ) : if makedirs : os . makedirs ( destdir ) else : salt . utils . files . safe_rm ( data [ 'data' ] ) return '' shutil . move ( data [ 'data' ] , dest ) return dest
Cache a file then process it as a template