Merge lp:~larryprice/libertine/minor-multi-package-fixes into lp:libertine

Proposed by Larry Price
Status: Merged
Approved by: Christopher Townsend
Approved revision: 411
Merged at revision: 448
Proposed branch: lp:~larryprice/libertine/minor-multi-package-fixes
Merge into: lp:libertine
Diff against target: 51 lines (+14/-2)
2 files modified
python/libertine/Libertine.py (+8/-2)
tools/libertine-container-manager (+6/-0)
To merge this branch: bzr merge lp:~larryprice/libertine/minor-multi-package-fixes
Reviewer Review Type Date Requested Status
Christopher Townsend Approve
Libertine CI Bot continuous-integration Approve
Review via email: mp+320820@code.launchpad.net

Commit message

Prevent installing empty package names and appropriately update status for unstopped containers.

Description of the change

Fixes two issues with installing multiple packages:

1) "lcm install-package -p steam " (note the extra space) would add an empty string package to ContainersConfig.json, and mark it as successfully installed.

2) If a container does not stop after installing/removing packages, the status would remain "installing packages" or "removing packages".

To post a comment you must log in.
Revision history for this message
Libertine CI Bot (libertine-ci-bot) wrote :

PASSED: Continuous integration, rev:411
https://jenkins.canonical.com/libertine/job/lp-libertine-ci/489/
Executed test runs:
    SUCCESS: https://jenkins.canonical.com/libertine/job/build/886
    SUCCESS: https://jenkins.canonical.com/libertine/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=default/730
    SUCCESS: https://jenkins.canonical.com/libertine/job/test-0-autopkgtest/label=amd64,release=zesty,testname=default/730
    SUCCESS: https://jenkins.canonical.com/libertine/job/test-0-autopkgtest/label=i386,release=xenial+overlay,testname=default/730
    SUCCESS: https://jenkins.canonical.com/libertine/job/test-0-autopkgtest/label=i386,release=zesty,testname=default/730
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-0-fetch/896
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=amd64,release=xenial+overlay/887
        deb: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=amd64,release=xenial+overlay/887/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=amd64,release=zesty/887
        deb: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=amd64,release=zesty/887/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=i386,release=xenial+overlay/887
        deb: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=i386,release=xenial+overlay/887/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=i386,release=zesty/887
        deb: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=i386,release=zesty/887/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://jenkins.canonical.com/libertine/job/lp-libertine-ci/489/rebuild

review: Approve (continuous-integration)
Revision history for this message
Christopher Townsend (townsend) wrote :

+1

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'python/libertine/Libertine.py'
2--- python/libertine/Libertine.py 2017-03-08 21:26:57 +0000
3+++ python/libertine/Libertine.py 2017-03-23 14:40:48 +0000
4@@ -463,7 +463,10 @@
5 try:
6 with ContainerRunning(self.container):
7 self.containers_config.update_container_install_status(self.container_id, "installing packages")
8- return self.container.install_package(package_name, no_dialog, update_cache)
9+ retval = self.container.install_package(package_name, no_dialog, update_cache)
10+
11+ self.containers_config.update_container_install_status(self.container_id, "running")
12+ return retval
13 except RuntimeError as e:
14 return handle_runtime_error(e)
15
16@@ -479,7 +482,10 @@
17 os.environ['DEBIAN_FRONTEND'] = 'teletype'
18
19 self.containers_config.update_container_install_status(self.container_id, "removing packages")
20- return self.container.remove_package(package_name)
21+ retval = self.container.remove_package(package_name)
22+
23+ self.containers_config.update_container_install_status(self.container_id, "running")
24+ return retval
25 except RuntimeError as e:
26 return handle_runtime_error(e)
27
28
29=== modified file 'tools/libertine-container-manager'
30--- tools/libertine-container-manager 2017-03-14 15:31:27 +0000
31+++ tools/libertine-container-manager 2017-03-23 14:40:48 +0000
32@@ -157,6 +157,9 @@
33
34 with ContainerRunning(container.container):
35 for i, pkg in enumerate(args.package):
36+ if not pkg:
37+ continue
38+
39 is_debian_package = pkg.endswith('.deb')
40
41 if is_debian_package:
42@@ -212,6 +215,9 @@
43
44 with ContainerRunning(container.container):
45 for pkg in args.package:
46+ if not pkg:
47+ continue
48+
49 if self.containers_config.get_package_install_status(container_id, pkg) != 'installed':
50 libertine.utils.get_logger().error("Package \'%s\' is not installed." % pkg)
51 failure = True

Subscribers

People subscribed via source and target branches