Merge lp:~larryprice/libertine/restrict-container-id into lp:libertine

Proposed by Larry Price
Status: Merged
Approved by: Christopher Townsend
Approved revision: 271
Merged at revision: 276
Proposed branch: lp:~larryprice/libertine/restrict-container-id
Merge into: lp:libertine
Diff against target: 51 lines (+9/-7)
2 files modified
tools/libertine-container-manager (+8/-6)
tools/libertine-container-manager.1 (+1/-1)
To merge this branch: bzr merge lp:~larryprice/libertine/restrict-container-id
Reviewer Review Type Date Requested Status
Libertine CI Bot continuous-integration Approve
Christopher Townsend Approve
Review via email: mp+301530@code.launchpad.net

Commit message

Enforce click requirements for container ID.

Description of the change

Enforce click requirements for container ID.

Note that this does not "fix" the bug, but instead prevents this situation from occurring.

To post a comment you must log in.
Revision history for this message
Christopher Townsend (townsend) wrote :

Indeed, it conforms to u-a-l's requirements. +1

review: Approve
Revision history for this message
Libertine CI Bot (libertine-ci-bot) wrote :

PASSED: Continuous integration, rev:271
https://jenkins.canonical.com/libertine/job/lp-libertine-ci/63/
Executed test runs:
    SUCCESS: https://jenkins.canonical.com/libertine/job/build/225
    SUCCESS: https://jenkins.canonical.com/libertine/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=default/183
    SUCCESS: https://jenkins.canonical.com/libertine/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=default/183
    SUCCESS: https://jenkins.canonical.com/libertine/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=default/183
    SUCCESS: https://jenkins.canonical.com/libertine/job/test-0-autopkgtest/label=i386,release=vivid+overlay,testname=default/183
    SUCCESS: https://jenkins.canonical.com/libertine/job/test-0-autopkgtest/label=i386,release=xenial+overlay,testname=default/183
    SUCCESS: https://jenkins.canonical.com/libertine/job/test-0-autopkgtest/label=i386,release=yakkety,testname=default/183
    None: https://jenkins.canonical.com/libertine/job/lp-generic-update-mp/171/console
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-0-fetch/228
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-1-sourcepkg/release=vivid+overlay/213
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-1-sourcepkg/release=xenial+overlay/213
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-1-sourcepkg/release=yakkety/213
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=amd64,release=vivid+overlay/206
        deb: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=amd64,release=vivid+overlay/206/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=amd64,release=xenial+overlay/206
        deb: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=amd64,release=xenial+overlay/206/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=amd64,release=yakkety/206
        deb: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=amd64,release=yakkety/206/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=i386,release=vivid+overlay/206
        deb: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=i386,release=vivid+overlay/206/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=i386,release=xenial+overlay/206
        deb: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=i386,release=xenial+overlay/206/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=i386,release=yakkety/206
        deb: https://jenkins.canonical.com/libertine/job/build-2-binpkg/arch=i386,release=yakkety/206/artifact/output/*zip*/output.zip

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

review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'tools/libertine-container-manager'
2--- tools/libertine-container-manager 2016-07-15 18:39:58 +0000
3+++ tools/libertine-container-manager 2016-07-29 18:00:15 +0000
4@@ -21,6 +21,7 @@
5 import getpass
6 import os
7 import sys
8+import re
9
10 from apt.debfile import DebPackage
11 from libertine import LibertineContainer
12@@ -41,11 +42,12 @@
13 print("Invalid distro %s" % args.distro, file=sys.stderr)
14 sys.exit(1)
15
16- if args.id and self.containers_config.container_exists(args.id):
17- print("Container id \'%s\' is already used." % args.id, file=sys.stderr)
18- sys.exit(1)
19- elif not args.id:
20- args.id = get_unique_container_id(distro)
21+ if self.containers_config.container_exists(args.id):
22+ print("Container id '%s' is already used." % args.id, file=sys.stderr)
23+ sys.exit(1)
24+ elif re.match("^[a-z0-9][a-z0-9+.-]+$", args.id) is None:
25+ print("Container id '%s' invalid. ID must be of form ([a-z0-9][a-z0-9+.-]+)." % args.id, file=sys.stderr)
26+ sys.exit(1)
27
28 if not args.type:
29 container_type = self.host_info.select_container_type_by_kernel()
30@@ -323,7 +325,7 @@
31 parser_create.add_argument(
32 '-i', '--id',
33 required=True,
34- help=("Container identifier. Required."))
35+ help=("Container identifier of form ([a-z0-9][a-z0-9+.-]+). Required."))
36 parser_create.add_argument(
37 '-t', '--type',
38 help=("Type of Libertine container to create. Either 'lxc' or 'chroot'."))
39
40=== modified file 'tools/libertine-container-manager.1'
41--- tools/libertine-container-manager.1 2016-07-12 16:25:52 +0000
42+++ tools/libertine-container-manager.1 2016-07-29 18:00:15 +0000
43@@ -81,7 +81,7 @@
44 .IP
45 .BR \-i " ID, " \-\-id " ID" ""
46 .RS 14
47-Container identifier. Required.
48+Container identifier of form ([a-z0-9][a-z0-9+.-]+). Required.
49 .RE
50 .IP
51 .BR \-t " TYPE, " \-\-type " TYPE" ""

Subscribers

People subscribed via source and target branches