darksmoke
Ноя. 4, 2014 16:09:17
Почему так происходит? как это исправить?
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
darksmoke
Ноя. 4, 2014 17:39:36
А как переменнуэ вставить?
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 +"""
}
}"""
alexsis
Ноя. 4, 2014 18:39:48
Похоже, что rabbitmq_user - функция. Попробуйте ее вызвать.
darksmoke
Ноя. 5, 2014 09:27:45
В продолжение темы. Подскажите в чем бок?
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.
dimy44
Ноя. 5, 2014 09:46:27
Написано же- вы к строке хотите функцию присоединить. Вам нужна не сама функция, а то, что она возвращает, для этого ее нужно вызвать - дописать скобочки () в конце имени функции (с аргументами или без, в зависимости от требований самой функции)
darksmoke
Ноя. 5, 2014 09:54:26
dimy44
Спасибо большое, доступно и понятно.