Форум сайта python.su
0
Добрый день
Подскжите, пожалуйста, как передать в функцию многострочную переменную
def test(jdbc_new): if jdbc_new.strip() == '': print yellow('1.txt not use. It is normal =)') else: run('echo -e "'+ jdbc_new +'" >> '+ resin_path +'/1.txt')
вввввв
вввв=3333
уууу=1111
http//
Офлайн
568
За год изучения языка вы не освоили концепцию коллекций?
Офлайн
0
К сожалению, я немного учу, по мере необходимости.
Офлайн
0
подскажите, как реализовать или что читать
Офлайн
568
Хорошо, давайте по порядку. Чем “многострочная переменная” отличается от однострочной и почему вообще у вас вдруг возник вопрос. Вы пробовали передавать “многострочную переменную” в функцию? Каков результат был?
Офлайн
0
Пробовал, вот что пишет
/sybase/jenkins_cat/Fabric/python/bin/fab -H 10.1.108.110 'update_war:resin_path=/opt/resin_slave,backup_dir=/opt/backup,local_path=/opt/scripts/P24j,jdbc_new=http://site.ruc:8070/jenkins/job/ADMIN.New_Ukraine_AS/build?delay=0sec http://jenkins.p24.it.loc:8070/jenkins/job/ADMIN.New_Ukraine_AS/build?delay=0sec http://jenkins.p24.it.loc:8070/jenkins/job/ADMIN.New_Ukraine_AS/build?delay=0sec http://jenkins.p24.it.loc:8070/jenkins/job/ADMIN.New_Ukraine_AS/build?delay=0sec'
Traceback (most recent call last):
File “/sybase/jenkins_cat/Fabric/python/lib/python2.7/site-packages/fabric/main.py”, line 700, in main
commands_to_run = parse_arguments(arguments)
File “/sybase/jenkins_cat/Fabric/python/lib/python2.7/site-packages/fabric/main.py”, line 536, in parse_arguments
k, v = result
ValueError: too many values to unpack
Офлайн
568
показывайте весь код
Офлайн
0
@task #@parallel(pool_size=2) def update_war(resin_path,backup_dir,local_path,jdbc_new): """ - Update war file on instance. fab -R [ plateg | vipiski | vip | msb | all ] update_war:Path to resin, Path to backup folder, Path to local war file """ run('mkdir -p '+ backup_dir) local('ssh test@'+ env.host +' "'+ resin_path +'/init-resin stop"') arch_name = os.path.basename(resin_path) try: run('tar -cvzf '+ backup_dir +'/'+ arch_name +'_$(date +%Y-%m-%d_%H-%M-%S).tar.gz -C '+ resin_path +'/conf jdbc.properties -C '+ resin_path +'/deploy-cb 22.war') except: print red("""\n\n=============== ATTENTION ==============\n\tBackup file doesn\'t create\n\n""",bold=True) try: run('rm -r '+ resin_path +'/deploy-cb/*') except: print red("""\n\n=============== ATTENTION ==============\n\tNot delete files in deploy-cb\n\n""",bold=True); if jdbc_new.strip() == '': print yellow('jdbc.properties not use. It is normal =)') else: run('echo -E '+ jdbc_new +' >> '+ resin_path +'/conf/jdbc.properties') put(local_path +'/22.war',resin_path +'/deploy-cb/',mode=0644) if jdbc_new.strip() == '': print yellow('jdbc.properties not use. It is normal =)') else: jdbc = open(resin_path +'/conf/jdbc.properties', 'a') print jdbc jdbc.write(jdbc_new) jdbc.close # run('echo -e "'+ jdbc_new +'" >> '+ resin_path +'/conf/jdbc.properties')
Отредактировано darksmoke (Дек. 1, 2015 17:32:25)
Офлайн
568
И где в этом коде вы передаёте в функцию многострочную переменную? Не могу найти.
Офлайн
0
def update_war(resin_path,backup_dir,local_path,jdbc_new):переменная jdbc_new
Офлайн