[Bug 1319600] [NEW] maas command line client brittle to unexpected inputs

Seth Arnold 1319600 at bugs.launchpad.net
Wed May 14 23:22:00 UTC 2014


Public bug reported:

The maas command line client is brittle to unexpected inputs. On trusty,
I tried to run the 'sudo maas createsuperuser' command that I used on
precise, quantal, and saucy, but it failed. I wanted detailed help, so I
ran 'maas -h', and that dumped a stack trace because the file
/home/ubuntu/.maascli.db was owned by root. I tried running a bare
'maas' to get help, and that gave an error message with instruction to
run a command that isn't actually executable.

I expected the 'createsuperuser' command to be useful -- hints about its
replacement would be welcome.

I expected a simple error message if a database file isn't readable
rather than a stack trace.

I expected some simple help regardless of database ownership.

I expected the advice about getting help to be usable with copy-and-
paste.

Thanks

Here's my full transcript:

ubuntu at server-335f9ebe-bbba-4c94-a356-22adcb7a6a5d:/tmp/qrt-test-django$ sudo maas createsuperuser
usage: /usr/lib/python2.7/dist-packages/maascli/__main__.py [-h] COMMAND ...
/usr/lib/python2.7/dist-packages/maascli/__main__.py: error: argument COMMAND: invalid choice: u'createsuperuser' (choose from u'list', u'login', u'logout', u'refresh')
ubuntu at server-335f9ebe-bbba-4c94-a356-22adcb7a6a5d:/tmp/qrt-test-django$ maas -h
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/usr/lib/python2.7/dist-packages/maascli/__main__.py", line 20, in <module>
    main()
  File "/usr/lib/python2.7/dist-packages/maascli/__init__.py", line 41, in main
    parser = prepare_parser(argv)
  File "/usr/lib/python2.7/dist-packages/maascli/parser.py", line 73, in prepare_parser
    api.register_api_commands(parser)
  File "/usr/lib/python2.7/dist-packages/maascli/api.py", line 493, in register_api_commands
    with ProfileConfig.open() as config:
  File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
    return self.gen.next()
  File "/usr/lib/python2.7/dist-packages/maascli/config.py", line 81, in open
    os.close(os.open(dbpath, os.O_CREAT | os.O_APPEND, 0600))
OSError: [Errno 13] Permission denied: '/home/ubuntu/.maascli.db'
ubuntu at server-335f9ebe-bbba-4c94-a356-22adcb7a6a5d:/tmp/qrt-test-django$ maas
Error: no arguments given.
Run /usr/lib/python2.7/dist-packages/maascli/__main__.py --help for usage details.
ubuntu at server-335f9ebe-bbba-4c94-a356-22adcb7a6a5d:/tmp/qrt-test-django$ /usr/lib/python2.7/dist-packages/maascli/__main__.py --help
-bash: /usr/lib/python2.7/dist-packages/maascli/__main__.py: Permission denied
ubuntu at server-335f9ebe-bbba-4c94-a356-22adcb7a6a5d:/tmp/qrt-test-django$ ls -l /usr/lib/python2.7/dist-packages/maascli/__main__.py
-rw-r--r-- 1 root root 362 Apr 15 16:06 /usr/lib/python2.7/dist-packages/maascli/__main__.py
ubuntu at server-335f9ebe-bbba-4c94-a356-22adcb7a6a5d:/tmp/qrt-test-django$ maas --help
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/usr/lib/python2.7/dist-packages/maascli/__main__.py", line 20, in <module>
    main()
  File "/usr/lib/python2.7/dist-packages/maascli/__init__.py", line 41, in main
    parser = prepare_parser(argv)
  File "/usr/lib/python2.7/dist-packages/maascli/parser.py", line 73, in prepare_parser
    api.register_api_commands(parser)
  File "/usr/lib/python2.7/dist-packages/maascli/api.py", line 493, in register_api_commands
    with ProfileConfig.open() as config:
  File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
    return self.gen.next()
  File "/usr/lib/python2.7/dist-packages/maascli/config.py", line 81, in open
    os.close(os.open(dbpath, os.O_CREAT | os.O_APPEND, 0600))
OSError: [Errno 13] Permission denied: '/home/ubuntu/.maascli.db'
ubuntu at server-335f9ebe-bbba-4c94-a356-22adcb7a6a5d:/tmp/qrt-test-django$ ls -l ~/.maas*
-rw------- 1 root root 3072 May 14 23:11 /home/ubuntu/.maascli.db
ubuntu at server-335f9ebe-bbba-4c94-a356-22adcb7a6a5d:/tmp/qrt-test-django$ sudo maas --help
usage: /usr/lib/python2.7/dist-packages/maascli/__main__.py [-h] COMMAND ...
....

ProblemType: Bug
DistroRelease: Ubuntu 14.04
Package: maas 1.5+bzr2252-0ubuntu1
ProcVersionSignature: User Name 3.13.0-24.46-generic 3.13.9
Uname: Linux 3.13.0-24-generic x86_64
ApportVersion: 2.14.1-0ubuntu3.1
Architecture: amd64
Date: Wed May 14 23:14:12 2014
Ec2AMI: ami-000008a2
Ec2AMIManifest: FIXME
Ec2AvailabilityZone: nova
Ec2InstanceType: m1.large
Ec2Kernel: aki-0000022a
Ec2Ramdisk: ari-0000022a
PackageArchitecture: all
ProcEnviron:
 TERM=rxvt-unicode
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=en_US.UTF-8
 SHELL=/bin/bash
SourcePackage: maas
UpgradeStatus: No upgrade log present (probably fresh install)

** Affects: maas (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug ec2-images third-party-packages trusty

-- 
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to maas in Ubuntu.
https://bugs.launchpad.net/bugs/1319600

Title:
  maas command line client brittle to unexpected inputs

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/maas/+bug/1319600/+subscriptions



More information about the Ubuntu-server-bugs mailing list