Merge lp:~ack/apt-btrfs-snapshot/fix-arg-parser into lp:apt-btrfs-snapshot

Proposed by Alberto Donato
Status: Needs review
Proposed branch: lp:~ack/apt-btrfs-snapshot/fix-arg-parser
Merge into: lp:apt-btrfs-snapshot
Diff against target: 54 lines (+2/-10)
1 file modified
apt-btrfs-snapshot (+2/-10)
To merge this branch: bzr merge lp:~ack/apt-btrfs-snapshot/fix-arg-parser
Reviewer Review Type Date Requested Status
Michael Vogt Approve
Review via email: mp+328776@code.launchpad.net

Description of the change

This fixes the argparse setup not to error if no command is provided:

$ sudo apt-btrfs-snapshot
Traceback (most recent call last):
  File "/usr/bin/apt-btrfs-snapshot", line 98, in <module>
    if args.command == "supported":
AttributeError: 'Namespace' object has no attribute 'command'

by setting the command parameter as required.

To post a comment you must log in.
Revision history for this message
Michael Vogt (mvo) wrote :

Looks great, thanks for working on this!

review: Approve
Revision history for this message
Alberto Donato (ack) wrote :

@mvo can this be merged?

Unmerged revisions

55. By Alberto Donato

Fix ArgumentParser setup.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'apt-btrfs-snapshot'
--- apt-btrfs-snapshot 2015-10-16 09:27:08 +0000
+++ apt-btrfs-snapshot 2017-08-09 14:50:33 +0000
@@ -42,39 +42,33 @@
42 parser = argparse.ArgumentParser(description=description)42 parser = argparse.ArgumentParser(description=description)
43 parser.add_argument("--debug", action="store_true", default=False,43 parser.add_argument("--debug", action="store_true", default=False,
44 help="enable debug output")44 help="enable debug output")
45 subparser = parser.add_subparsers(title="Commands")45 subparser = parser.add_subparsers(dest="command", metavar="command")
46 subparser.required = True
46 # supported47 # supported
47 command = subparser.add_parser(48 command = subparser.add_parser(
48 "supported", help=_("Print if snapshots are supported"))49 "supported", help=_("Print if snapshots are supported"))
49 command.set_defaults(command="supported")
50 # list50 # list
51 command = subparser.add_parser(51 command = subparser.add_parser(
52 "list", help=_("List available snapshots"))52 "list", help=_("List available snapshots"))
53 command.set_defaults(command="list")
54 # snapshot53 # snapshot
55 command = subparser.add_parser(54 command = subparser.add_parser(
56 "snapshot", help=_("Create a new snapshot"))55 "snapshot", help=_("Create a new snapshot"))
57 command.set_defaults(command="snapshot")
58 # set-default56 # set-default
59 command = subparser.add_parser(57 command = subparser.add_parser(
60 "set-default", help=_("Revert to previous snapshot"))58 "set-default", help=_("Revert to previous snapshot"))
61 command.add_argument("snapshot")59 command.add_argument("snapshot")
62 command.set_defaults(command="set-default")
63 # delete60 # delete
64 command = subparser.add_parser(61 command = subparser.add_parser(
65 "delete", help=_("Delete snapshot"))62 "delete", help=_("Delete snapshot"))
66 command.add_argument("snapshot")63 command.add_argument("snapshot")
67 command.set_defaults(command="delete")
68 # list-older-than64 # list-older-than
69 command = subparser.add_parser(65 command = subparser.add_parser(
70 "list-older-than", help=_("Show snapshots older than N days"))66 "list-older-than", help=_("Show snapshots older than N days"))
71 command.add_argument("time")67 command.add_argument("time")
72 command.set_defaults(command="list-older-than")
73 # delete-older-than68 # delete-older-than
74 command = subparser.add_parser(69 command = subparser.add_parser(
75 "delete-older-than", help=_("Delete snapshots older than N days"))70 "delete-older-than", help=_("Delete snapshots older than N days"))
76 command.add_argument("time")71 command.add_argument("time")
77 command.set_defaults(command="delete-older-than")
7872
79 # parse args73 # parse args
80 args = parser.parse_args()74 args = parser.parse_args()
@@ -113,8 +107,6 @@
113 res = apt_btrfs.print_btrfs_root_snapshots_older_than(args.time)107 res = apt_btrfs.print_btrfs_root_snapshots_older_than(args.time)
114 elif args.command == "delete-older-than":108 elif args.command == "delete-older-than":
115 res = apt_btrfs.clean_btrfs_root_snapshots_older_than(args.time)109 res = apt_btrfs.clean_btrfs_root_snapshots_older_than(args.time)
116 else:
117 print(_("ERROR: Unhandled command: '%s'") % args.command)
118110
119 # return the right exit code111 # return the right exit code
120 if res:112 if res:

Subscribers

People subscribed via source and target branches

to all changes: