• R/O
  • HTTP
  • SSH
  • HTTPS

pysilhouette.git: Commit

メインリポジトリ


Commit MetaInfo

Revisionf117489a7251b0a97c5a7de20387d9051fde1442 (tree)
Time2010-03-18 13:00:49
AuthorTaizo ITO <taizo@kare...>
CommiterKei Funagayama

Log Message



bug#


ticket#


Added job.popen.stdout_limit parameter.



Change Summary

Incremental Difference

--- a/doc/silhouette.conf.example
+++ b/doc/silhouette.conf.example
@@ -61,6 +61,7 @@ scheduler.interval=10
6161 job.popen.env.lang=C
6262 job.popen.timeout=3600
6363 job.popen.waittime=10
64+job.popen.stdout_limit=8192
6465 # 1 or Other
6566 job.whitelist.flag=1
6667 job.whitelist.path=/etc/opt/pysilhouette/whitelist.conf
--- a/pysilhouette/db/model.py
+++ b/pysilhouette/db/model.py
@@ -180,7 +180,7 @@ class Job(Model):
180180 """
181181
182182 #: Maximum number of characters to stdout.
183- STD_OUTPUT_LIMIT = 4096
183+ STDOUT_LIMIT = 8192
184184
185185 def __init__(self, name, order, action_command):
186186 self.name = name
--- a/pysilhouette/prep.py
+++ b/pysilhouette/prep.py
@@ -232,6 +232,13 @@ def chk_conf(cf):
232232 print >>sys.stderr, 'Must be a number. - job.popen.waittime=%s' % (cf["job.popen.waittime"])
233233 return False
234234
235+ try:
236+ if is_int(cf["job.popen.stdout_limit"]) is False:
237+ print >>sys.stderr, 'Must be a number. - job.popen.stdout_limit=%s' % (cf["job.popen.stdout_limit"])
238+ return False
239+ except:
240+ pass
241+
235242 # performer
236243 p_mkfifo = set([cf["performer.mkfifo.start.code"],
237244 cf["performer.mkfifo.ignore.code"],
--- a/pysilhouette/util.py
+++ b/pysilhouette/util.py
@@ -102,7 +102,7 @@ def kill_proc(proc):
102102 except:
103103 return False
104104
105-def popen(cmd, timeout, waittime, lang, limit=4096, job_id=None):
105+def popen(cmd, timeout, waittime, lang, limit=8192, job_id=None):
106106
107107 proc_info = {}
108108
--- a/pysilhouette/worker.py
+++ b/pysilhouette/worker.py
@@ -205,11 +205,15 @@ class SimpleWorker(Worker):
205205 lcmd = split_shell_command(cmd)
206206 if self.chk_whitelist(lcmd[0]):
207207 try:
208+ stdout_limit = int(self._cf['job.popen.stdout_limit'])
209+ except:
210+ stdout_limit = m_job.STDOUT_LIMIT
211+ try:
208212 (proc, proc_info) = popen(lcmd,
209213 self._cf['job.popen.timeout'],
210214 self._cf['job.popen.waittime'],
211215 self._cf['job.popen.env.lang'],
212- m_job.STD_OUTPUT_LIMIT,
216+ stdout_limit,
213217 m_job.id,
214218 )
215219
@@ -265,11 +269,15 @@ class SimpleWorker(Worker):
265269
266270 if self.chk_whitelist(lcmd[0]):
267271 try:
272+ stdout_limit = int(self._cf['job.popen.stdout_limit'])
273+ except:
274+ stdout_limit = m_job.STDOUT_LIMIT
275+ try:
268276 (proc, proc_info) = popen(lcmd,
269277 self._cf['job.popen.timeout'],
270278 self._cf['job.popen.waittime'],
271279 self._cf['job.popen.env.lang'],
272- m_job.STD_OUTPUT_LIMIT,
280+ stdout_limit,
273281 )
274282
275283 self.logger.debug('Of commands executed stdout=%s' % proc_info['stdout'])
Show on old repository browser