-
Committer:
James Hunt
-
Date:
2011-10-27 16:33:23 UTC
-
Revision ID:
james.hunt@ubuntu.com-20111027163323-m002vtyafnd1suy7
Introduction of 'log' argument to 'console' stanza allowing
job output to be captured.
* contrib/vim/syntax/upstart.vim: Added 'log' and missing
'none'.
* init/Makefile.am: Added log.c, log.h and test_log.c
* init/job.c: job_new(): Initialize log.
* init/job.h: Add Log pointer to Job.
* init/job_class.c: XXX: behaviour change: Default for 'console'
is now CONSOLE_LOG rather than CONSOLE_NONE.
Rationale is that if a job does produce output, you want to see
it since the chances are it will contain useful error details.
* init/job_class.h: Added CONSOLE_LOG to ConsoleType and updated
documentation for ConsoleType.
* init/job_process.c:
- job_process_run(): Updated to reflect new parameter for
job_process_spawn().
- job_process_spawn(): Now accepts a Job rather than a
JobClass to allow job->log and class->console to be handled
appropriately. Now creates pty master and slave fds for
console logging.
- job_process_error_read(): Added entries for:
- JOB_PROCESS_ERROR_OPENPT_MASTER
- JOB_PROCESS_ERROR_OPENPT_UNLOCKPT
- JOB_PROCESS_ERROR_PTSNAME
- JOB_PROCESS_ERROR_OPENPT_SLAVE
- job_process_log_path(): New function that returns full path to log
file for specified Job.
* init/job_process.h:
- Updated JobProcessErrorType with new entries:
- JOB_PROCESS_ERROR_OPENPT_MASTER
- JOB_PROCESS_ERROR_OPENPT_UNLOCKPT
- JOB_PROCESS_ERROR_PTSNAME
- JOB_PROCESS_ERROR_OPENPT_SLAVE
- job_process_spawn(): Updated prototype.
- job_process_log_path(): Added prototype.
* init/main.c:
- handle_logdir(): New function for overriding log directory.
- Added '--logdir' to options.
* init/man/init.5:
- Update and restructure of section on 'console' stanza.
- Added a FILES section.
* init/man/init.8: Updated with details of new '--logdir' option.
* init/parse_job.c: stanza_console(): Updated for "log".
* init/paths.h: Added defines for JOB_LOGDIR, LOGDIR_ENV, XDG_CACHE_HOME
and USER_JOB_LOGDIR.
* init/session.c: Added missing function headers. New functions:
session_user_home() and session_user_group().
* init/session.h: Added prototypes for session_user_home() and
session_user_group().
* init/system.c: system_setup_console(): Update for CONSOLE_LOG.
* init/test_conf.c:
- TEST_FORCE_WATCH_UPDATE(): Removed debug.
- test_select_job(): Added variable attributes to keep gcc 4.6 happy.
* init/test_event.c: Explicitly set console type to CONSOLE_NONE to
retain behaviour of existing tests.
* init/test_job.c:
- test_job_new(): Ensure log object not created on Job instantiation.
- test_change_state(): Explicitly set console type to CONSOLE_NONE to
retain behaviour of existing tests.
* init/test_job_class.c:
- test_new(): Ensure console type now defaults to CONSOLE_LOG.
- Explicitly set console type to CONSOLE_NONE to retain behaviour of
existing tests.
* init/test_job_process.c:
- child(): New child_tests added for TEST_OUTPUT and TEST_SIGNALS.
- get_available_pty_count(): New function.
- Explicitly set console type to CONSOLE_NONE to retain behaviour of
existing tests.
- test_run(): Added new tests for CONSOLE_LOG.
- test_spawn(): Added new tests for CONSOLE_LOG.
- test_log_path(): New function.
- test_handler(): Added UPSTART_LOGDIR support to
- main():
- Update to allow number of forks to be specified when run as a child
process.
- Added call to test_log_path().
- initialize various subsystems since before, functions run from
main() had to be run in the order specified and exactly as listed
(certain tests relied on previous tests initializing a subsystem
which gives unexpected results and thus confusing behaviour
if the order of tests is changed).
* util/tests/test_user_sessions.sh: Added tests for job logging.