[pve-devel] [PATCH container 0/9] lxc pending changes

Fabian Grünbichler f.gruenbichler at proxmox.com
Wed Sep 11 09:41:24 CEST 2019


On September 5, 2019 4:11 pm, Oguz Bektas wrote:
> this series makes it possible to add/revert/delete pending changes in
> the backend.
> 
> it depends on my previous patch for pve-guest-common, for enabling
> inheritance of pending changes related methods into PVE::LXC::Config

thanks for these patches! this functionality is a long-time overdue..

detailed comments/questions on individual patches (it's a lot, but I am 
also on vacation next week so you have plenty of time to prepare a v2 ;)).

the big picture already looks mostly good (there are some refactoring 
choices that I would do differently), but with such functionality the 
devil is always in the details/edge cases.

please test your v2 thoroughly, in particular regarding

- mountpoint handling
- backup/restore
- custom lxc.foo options
- clones
- migration
- various ways to restart containers (from within, stop/start, 
  systemctl, ..)

also, please think about which parts can be unit-tested and write tests for 
them!

if you find stuff about the interface or semantics from Qemu that is 
sub-optimal / unclear, don't just copy it, but try to understand and 
improve it.. duplicate or very similar code is already bad enough, 
two or three forks of BAD code is even worse ;) I haven't checked for 
everything whether particular lines are originally from you, or based on 
qemu-server - some / a lot of my comments might apply to qemu-server's 
implementation as well..

> 
> some notes or to-be-fixed-soon-after-review points:
>     [1]. gui patches are coming soon
>     [2]. right now pending changes are applied __only__ at vm_start.
>     [3]. --delete $opt --force is not implemented (is in schema, but has no effect atm)

unless you plan to implement this in this series, I'd drop it from the 
schema/API at least.

>     [4]. clones will __keep__ pending changes in config (for now)
>     [5]. there are a couple TODO/FIXME's inside, since they were extra
> features or unrelated bugs (which i think should be fixed in separate
> commits later since they don't directly affect pending changes functionality)

for small, well-understood stuff it often makes sense to fix it in 
separate commits up front. who knows when the next person takes a 
closer look at that particular code - a fix done now is done, a FIXME 
added now might be ignored forever.

> 
> comments:
> 
> [2]: i thought it was best to keep it like this for the first version,
> until we decide what's the best way to go about it.
> 
> [3]: it seemed quite tricky to implement live force-delete of mounpoints
> because of a few reasons, like unmount not being allowed or mp being on
> network storage etc.
> 
> [4]: will fix this in v2 after the first review
> 
> [5]: one bug, where if swap option is deleted while ct is running,
> memory.memsw.limit_in_bytes is set to infinite instead of zero. the
> other one is the --force implementation.

backup is also missing pending changes skipping. some more stuff in the 
review itself..

> Oguz Bektas (9):
>   add pending section to lxc config parser/writer
>   adapt config GET call for taking pending changes
>   adapt config PUT to use 'revert' and 'force' parameters
>   remove trailing whitespace
>   add 'pending' API method to LXC
>   add 'pct pending' command
>   add vmconfig_hotplug_pending and vmconfig_apply_pending
>   rework update_pct_config to write and apply pending changes
>   apply pending changes when container is started
> 
>  src/PVE/API2/LXC.pm        |  90 +++++-
>  src/PVE/API2/LXC/Config.pm |  88 +++---
>  src/PVE/CLI/pct.pm         |  27 ++
>  src/PVE/LXC.pm             |   7 +
>  src/PVE/LXC/Config.pm      | 549 ++++++++++++++++++++++++-------------
>  5 files changed, 520 insertions(+), 241 deletions(-)
> 
> -- 
> 2.20.1
> 
> _______________________________________________
> pve-devel mailing list
> pve-devel at pve.proxmox.com
> https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
> 
> 




More information about the pve-devel mailing list