1. 01 Jul, 2013 1 commit
  2. 28 Jun, 2013 1 commit
  3. 27 Jun, 2013 4 commits
  4. 24 Jun, 2013 2 commits
  5. 19 Jun, 2013 1 commit
  6. 18 Jun, 2013 1 commit
  7. 13 Jun, 2013 1 commit
  8. 12 Jun, 2013 2 commits
    • console API improvements · b5159817
      Dwight Engen authored
      Add a higher level console API that opens a tty/console and runs the
      mainloop as well. Rename existing API to console_getfd(). Use these in
      the python binding.
      
      Allow attaching a console peer after container bootup, including if the
      container was launched with -d. This is made possible by allocation of a
      "proxy" pty as the peer when the console is attached to.
      
      Improve handling of SIGWINCH, the pty size will be correctly set at the
      beginning of a session and future changes when using the lxc_console() API
      will be propagated to it as well.
      
      Refactor some common code between lxc_console.c and console.c. The variable
      wait4q (renamed to saw_escape) was static, making the mainloop callback not
      safe across threads. This wasn't a problem when the callback was in the
      non-threaded lxc-console, but now that it is internal to console.c, we have
      to take care of it. This is now contained in a per-tty state structure.
      
      Don't attempt to open /dev/null as the console peer since /dev/null cannot
      be added to the mainloop (epoll_ctl() fails with EPERM). This isn't needed
      to get the console setup (and the log to work) since the case of not having
      a peer at console init time has to be handled to allow for attaching to it
      later.
      
      Move signalfd libc wrapper/replacement to utils.h.
      Signed-off-by: 's avatarDwight Engen <dwight.engen@oracle.com>
      Signed-off-by: 's avatarSerge Hallyn <serge.hallyn@ubuntu.com>
    • lxc-init: continue even if we fail to mount /dev/mqueue · 5d4d3ebb
      Natanael Copa authored
      The 'lxc-init' (a lightweight init process used by lxc-execute in place
      of upstart etc) tries to mount /dev/mqueue during startup. If that fails
      (for instance due to missing support for mqueue in kernel) then it
      aborts execution and returns -1. This is unreasonable as very few
      applications actually need /dev/mqueue.
      
      This similar to what we do with /dev/shm.
      Signed-off-by: 's avatarNatanael Copa <ncopa@alpinelinux.org>
      Signed-off-by: 's avatarSerge Hallyn <serge.hallyn@ubuntu.com>
  9. 11 Jun, 2013 1 commit
  10. 10 Jun, 2013 6 commits
  11. 05 Jun, 2013 2 commits
  12. 03 Jun, 2013 7 commits
  13. 31 May, 2013 4 commits
  14. 29 May, 2013 4 commits
  15. 28 May, 2013 2 commits
  16. 26 May, 2013 1 commit
    • Move container creation fully into the api · 1897e3bc
      Serge Hallyn authored
      1. implement bdev->create:
      
      python and lua: send NULL for bdevtype and bdevspecs.
      They'll want to be updated to pass those in in a way that makes
      sense, but I can't think about that right now.
      
      2. templates: pass --rootfs
      
      If the container is backed by a device which must be mounted (i.e.
      lvm) then pass the actual rootfs mount destination to the
      templates.
      
      Note that the lxc.rootfs can be a mounted block device.  The template
      should actually be installing the rootfs under the path where the
      lxc.rootfs is *mounted*.
      
      Still, some people like to run templates by hand and assume purely
      directory backed containers, so continue to support that use case
      (i.e. if no --rootfs is listed).
      
      Make sure the templates don't re-write lxc.rootfs if it is
      already in the config.  (Most were already checking for that)
      
      3. Replace lxc-create script with lxc_create.c program.
      
      Changelog:
      May 24: when creating a container, create $lxcpath/$name/partial,
      and flock it.  When done, close that file and unlink it.  In
      lxc_container_new() and lxcapi_start(), check for this file.  If
      it is locked, create is ongoing.  If it exists but is not locked,
      create() was killed - remove the container.
      
      May 24: dont disk-lock during lxcapi_create.  The partial lock
      is sufficient.
      Signed-off-by: 's avatarSerge Hallyn <serge.hallyn@ubuntu.com>