Форум сайта python.su
0
Почему так происходит? как это исправить?
if logstash_input_type == 'rabbitmq': config = 'input { rabbitmq { durable => true password => '+ rabbitmq_password +' port => 5672 queue => '+ rabbitmq_queue +' threads => '+ cpu-minus-odin +' user => '+ rabbitmq_user +' } }' run('echo -e "'+ config +'" >'+ install_path +'/logstash/logstash.conf')
config = 'input {
^
SyntaxError: EOL while scanning string literal
Офлайн
9
config = """input { rabbitmq { durable => true password => '+ rabbitmq_password +' port => 5672 queue => '+ rabbitmq_queue +' threads => '+ cpu-minus-odin +' user => '+ rabbitmq_user +' } }"""
Отредактировано alexsis (Ноя. 4, 2014 16:38:48)
Офлайн
0
А как переменнуэ вставить?
Traceback (most recent call last):
File “/usr/local/lib/python2.7/dist-packages/fabric/main.py”, line 743, in main
*args, **kwargs
File “/usr/local/lib/python2.7/dist-packages/fabric/tasks.py”, line 384, in execute
multiprocessing
File “/usr/local/lib/python2.7/dist-packages/fabric/tasks.py”, line 274, in _execute
return task.run(*args, **kwargs)
File “/usr/local/lib/python2.7/dist-packages/fabric/tasks.py”, line 174, in run
return self.wrapped(*args, **kwargs)
File “/home/darksmoke/Soft/fabfile.py”, line 66, in logstashinstall
user => “”“+ rabbitmq_user +”“”
TypeError: cannot concatenate ‘str’ and ‘function’ objects
config = """input { rabbitmq { durable => true password => """+ rabbitmq_password +""" port => 5672 queue => """+ rabbitmq_queue +""" threads => """+ cpu_minus_odin +""" user => """+ rabbitmq_user +""" } }"""
Офлайн
9
Похоже, что rabbitmq_user - функция. Попробуйте ее вызвать.
Офлайн
0
В продолжение темы. Подскажите в чем бок?
def cpu_minus_odin(): c = run("lscpu | grep -E '^CPU\(s\)' | awk '{print $2}'") i = int(c) s = i-1 r = str(s) return r
config = """input { redis { host => """+ redis_host +""" password => """+ redis_password + """ port => 6379 threads => """+ cpu_minus_odin +""" } }"""
Traceback (most recent call last):
File “/usr/local/lib/python2.7/dist-packages/fabric/main.py”, line 743, in main
*args, **kwargs
File “/usr/local/lib/python2.7/dist-packages/fabric/tasks.py”, line 384, in execute
multiprocessing
File “/usr/local/lib/python2.7/dist-packages/fabric/tasks.py”, line 274, in _execute
return task.run(*args, **kwargs)
File “/usr/local/lib/python2.7/dist-packages/fabric/tasks.py”, line 174, in run
return self.wrapped(*args, **kwargs)
File “/home/darksmoke/Soft/fabfile.py”, line 75, in logstashinstall
threads => “”“+ cpu_minus_odin +”“”
TypeError: cannot concatenate ‘str’ and ‘function’ objects
Disconnecting from 10.56.0.5… done.
Офлайн
Написано же- вы к строке хотите функцию присоединить. Вам нужна не сама функция, а то, что она возвращает, для этого ее нужно вызвать - дописать скобочки () в конце имени функции (с аргументами или без, в зависимости от требований самой функции)
Офлайн
0
dimy44
Спасибо большое, доступно и понятно.
Офлайн