Hi Have you tried backslashes or additional $s?
Maybe you are trying to use it in a way not intended? My understanding of snippets is to try and keep the ks templates easy to read, and in effect they are just include code. We just use a limited number of ksmeta variables. Mainly 'build' 'enable' 'disable' 'addvol'. Then these are interpreted all over the ks and in snippets. So build=vm will give you a VM build. 'enable' is a comma delimited list of things to enable. Example's: vas, nimsoft, stornext. disable is similar; you can disable things that are normally switched on. disable=puppet. Then you can say #if not 'puppet' in disable. Addvol is a comma list of lvm volumes to add in vg_root addvol=/data:10240:lv_data. Point I am trying to make is you can switch functionality on and off via ksmeta variables; that is the way we use cheetah. -- Alastair Munro -----Original Message----- From: "Antonio Sallés" <[email protected]> To: Nishanth Aravamudan <[email protected]>, "Antonio Sebastian Salles M." <[email protected]> Cc: [email protected] Sent: Fri, 27 Nov 2015 2:25 Subject: [cobbler] Re: Calling snippets from ksmeta On 11/25/2015 04:29 PM, Nishanth Aravamudan wrote: > On 25.11.2015 [15:33:12 -0300], Antonio Sebastian Salles M. wrote: >> Hi there, >> >> I'm looking the way for call a list of SNIPPETs using an array of >> ksmeta variables, but finally cheeta doesn't like it. Something like >> this: > > What does cheeta say? > >> cobbler ... --ksmeta="machinetype=kvm machineenv=db" >> ... >> >> #set $machinetype = $getVar('$machinetype') >> #set $machineenv = $getVar('$machineenv') >> $SNIPPET('spacewalk/1/$machinetype') >> $SNIPPET('spacewalk/1/$machineenv') > > You *might* need to evaluate this outside of the $SNIPPET call. THat is, > try: > > #set $machinetypesnippet = 'spacewalk/1/$getVar('$machinetype')' > #set $machineenvsnippet = 'spacewalk/1/$getVar('$machineenv')' > > $SNIPPET($machinetypesnippet) > $SNIPPET($machineenvsnippet) > > Does that make any difference? > > -Nish > > Hi, Nop, it doesn't work neither. This is the output: 8<------------------- <class 'Cheetah.Parser.ParseError'>: Error in the Python code which Cheetah generated for this template: ================================================================================ invalid syntax (cheetah_DynamicallyCompiledCheetahTemplate_1448583729_4_36017.py, line 554) Line|Python Code ----|------------------------------------------------------------- 552 | 553 |''') 554 | machinetypesnippet = 'spacewalk/1/$getVar('VFSL([locals()]+SL+[globals(), __builtin__],"machinetype",True)')' ^ 555 | write(u''' 556 |''') 557 | _v = self.__errorCatcher19(localsDict=locals()) # u'$SNIPPET($machinetypesnippet)' on line 217, col 1 ================================================================================ Here is the corresponding Cheetah code. ** I had to guess the line & column numbers, so they are probably incorrect: Line 217, column 1 Line|Cheetah Code ----|------------------------------------------------------------- 214 |#set $machinetypesnippet = 'spacewalk/1/$getVar('$machinetype')' 215 |#set $machineenvsnippet = 'spacewalk/1/$getVar('$machineenv')' 216 | 217 |$SNIPPET($machinetypesnippet) ^ 218 |$SNIPPET($machineenvsnippet) 219 | 8<------------------- Any idea? Thanks so much. Antonio. _______________________________________________ cobbler mailing list [email protected] https://lists.fedorahosted.org/admin/lists/[email protected]
_______________________________________________ cobbler mailing list [email protected] https://lists.fedorahosted.org/admin/lists/[email protected]
