On Thu, Jul 12, 2018 at 05:19:19PM +0200, Andrea Bolognani wrote: > Doesn't do much right now, but it's a start :) > > Signed-off-by: Andrea Bolognani <abologna@xxxxxxxxxx> > --- > guests/lcitool | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 69 insertions(+) > create mode 100755 guests/lcitool > > diff --git a/guests/lcitool b/guests/lcitool > new file mode 100755 > index 0000000..1cba8ad > --- /dev/null > +++ b/guests/lcitool > @@ -0,0 +1,69 @@ > +#!/usr/bin/env python > + > +# lcitool - libvirt CI guest management tool > +# Copyright (C) 2017-2018 Andrea Bolognani <abologna@xxxxxxxxxx> > +# > +# This program is free software; you can redistribute it and/or modify it > +# under the terms of the GNU General Public License as published by the > +# Free Software Foundation; either version 2 of the License, or (at your > +# option) any later version. > +# > +# This program is distributed in the hope that it will be useful, but > +# WITHOUT ANY WARRANTY; without even the implied warranty of > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General > +# Public License for more details. > +# > +# You should have received a copy of the GNU General Public License along > +# with this program; if not, write to the Free Software Foundation, Inc., > +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. > + > +import argparse > +import sys > +import textwrap > + > +# This is necessary to maintain Python 2.7 compatibility > +try: > + import configparser > +except ImportError: > + import ConfigParser as configparser This import is unused here. Maybe we can introduce it at the point we actually start using it? > + > +class Error(Exception): > + > + def __init__(self, message): > + self.message = message > + > +class Application: > + > + def __init__(self): > + self._parser = argparse.ArgumentParser( > + conflict_handler = "resolve", > + formatter_class = argparse.RawDescriptionHelpFormatter, > + description = "libvirt CI guest management tool", > + epilog = textwrap.dedent(""" > + supported actions: > + """), > + ) > + self._parser.add_argument( > + "-a", > + metavar = "ACTION", > + required = True, > + help = "action to perform (see below)", > + ) > + > + def run(self): > + cmdline = self._parser.parse_args() > + action = cmdline.a > + > + method = "_action_{}".format(action.replace("-", "_")) > + > + if hasattr(self, method): > + getattr(self, method).__call__() > + else: > + raise Error("Invalid action '{}'".format(action)) > + > +if __name__ == "__main__": > + try: > + Application().run() > + except Error as e: > + sys.stderr.write("{}: {}\n".format(sys.argv[0], e.message)) > + sys.exit(1) > -- > 2.17.1 > > -- > libvir-list mailing list > libvir-list@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/libvir-list I am not very good with python myself, however whenever I am using it I try to follow coding style standards enforced by pep8 (currently renamed pycodestyle). So here is the output of pep8 for this script, feel free to ignore it if you don't agree though I encourage that we enforce pep8 for the python scripts here. $ pycodestyle guests/lcitool guests/lcitool:30:1: E302 expected 2 blank lines, found 1 guests/lcitool:35:1: E302 expected 2 blank lines, found 1 guests/lcitool:39:29: E251 unexpected spaces around keyword / parameter equals guests/lcitool:39:31: E251 unexpected spaces around keyword / parameter equals guests/lcitool:40:28: E251 unexpected spaces around keyword / parameter equals guests/lcitool:40:30: E251 unexpected spaces around keyword / parameter equals guests/lcitool:41:24: E251 unexpected spaces around keyword / parameter equals guests/lcitool:41:26: E251 unexpected spaces around keyword / parameter equals guests/lcitool:42:19: E251 unexpected spaces around keyword / parameter equals guests/lcitool:42:21: E251 unexpected spaces around keyword / parameter equals guests/lcitool:48:20: E251 unexpected spaces around keyword / parameter equals guests/lcitool:48:22: E251 unexpected spaces around keyword / parameter equals guests/lcitool:49:21: E251 unexpected spaces around keyword / parameter equals guests/lcitool:49:23: E251 unexpected spaces around keyword / parameter equals guests/lcitool:50:17: E251 unexpected spaces around keyword / parameter equals guests/lcitool:50:19: E251 unexpected spaces around keyword / parameter equals To actually run the pep8 you don't have to install it globally on your system, but you can create a virtualenv and install it there with "pip install pep8".
Attachment:
signature.asc
Description: PGP signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list