Commit Graph

204 Commits

Author SHA1 Message Date
Wojtek Porczyk
8805db5e5f core3 move: AdminVM class 2015-06-29 17:39:26 +02:00
Wojtek Porczyk
8afba4c5e9 core3 move: storage/* 2015-06-29 17:39:26 +02:00
Jason Mehring
0dbcdb8c0d qubes: pep8 fixes
-------------------------------------------------------------------------------
ISSUES:
-------------------------------------------------------------------------------

- Some auto-corrected code (when line is too long) may still be over-indented.
  It can be manually chaged and it will be left alone, or is it acceptable as
  I am not sure how strict your rule is for under-indented lines for which
  context.  If you want this only indented 4 spaces, I can work on it some more.
  [Also @ ~line:385 in new file]

  For example, __init__.py:382
  OLD:
    def __contains__(self, key):
        return any((key == vm or key == vm.qid or key == vm.name) for vm in self)

  NEW:
    def __contains__(self, key):
        return any((key == vm or key == vm.qid or key == vm.name)
                   for vm in self)

- will not detect if there are more than 2 spaces between function methods

-------------------------------------------------------------------------------
FIXED:
-------------------------------------------------------------------------------
- Now uses the most horizontial space and does not use excessive lines when
  splitting a line

- __init__:489
  - '#' comments being indented for some lines and not others; would like no indent
  - Only happens if line preceeding comment ends in a ':'

E128 - Fix visual indentation
E128 - Fix a badly indented line [Now allows under-indented lines]

E309 - Add missing blank line (after class declaration) [No longer adds it]

E303 - Remove extra blank lines [Now allows 2 blank lines between function defs]
       [TODO: Create definition to enforce this]

Conflicts:
	qubes/__init__.py
2015-06-29 17:39:26 +02:00
Jason Mehring
6504da9524 qubes: changed a test for None from == None to is None
Conflicts:
	qubes/__init__.py
2015-06-29 17:39:26 +02:00
Jason Mehring
be3e888bbe Fixed typos 2015-06-29 17:39:26 +02:00
Wojtek Porczyk
a13a41fbaf qubes/tests: fix testrunner dependency on being run in specific directory 2015-06-29 17:39:26 +02:00
Wojtek Porczyk
e5d2b49fd6 qubes/tests: fix colourful testrunner 2015-06-29 17:39:26 +02:00
Wojtek Porczyk
7e12d0485d add core3 to Makefiles and spec 2015-06-29 17:39:26 +02:00
Wojtek Porczyk
04c221e924 qubes/vm/qubesvm: fix env manipulation on qrexec-daemon start 2015-06-29 17:39:26 +02:00
Wojtek Porczyk
eda2f7cf73 qubes/tests: mark one test as expected failure
This is temporary, to be fixed in the future.
2015-06-29 17:39:26 +02:00
Wojtek Porczyk
af154b53fe qubes: change names of XML generating methods
Methods returning lxml.etree.Elements are called xml_ or lvxml_, meant for
qubes.xml or libvirt respectively.

Acknowledgement:
This commit is a result of core3 review by Marek.
2015-06-29 17:39:26 +02:00
Wojtek Porczyk
92eca8edb9 qubes: Fix comments accross the code
Acknowledgement:
This commit is a result of core3 review by Marek.
2015-06-29 17:39:25 +02:00
Wojtek Porczyk
2e1696cb16 qubes: Fix XML validation test 2015-06-29 17:39:25 +02:00
Wojciech Zygmunt Porczyk
42d8e67556 doc: Add autogenerated qubes.xml documentation 2015-06-29 17:39:25 +02:00
Wojciech Zygmunt Porczyk
118edb6ac4 First RelaxNG schema of qubes.xml
Schema is most likely incomplete.
2015-06-29 17:39:25 +02:00
Wojtek Porczyk
091ffa5444 qubes: Add parser for property docstring
From now, docstrings in properties cannot contain sphinx-specific features,
because there is no sphinx in dom0.
2015-06-29 17:39:25 +02:00
Wojtek Porczyk
0a94762508 doc: Tutorial for qubes.events and fix 2015-06-29 17:39:25 +02:00
Wojtek Porczyk
99edcb56c1 qubes: fix event framework
Two important fixes are in this commit: handlers from decorators are added when
class is defined (and not when class is instantiated); also multiple events can
be specified in the decorator.
2015-06-29 17:39:25 +02:00
Wojtek Porczyk
7971342811 qubes: Make get_props_list a classmethod
Same for get_property_def.
2015-06-29 17:39:25 +02:00
Wojtek Porczyk
c0e3281d04 qubes: fix changing domain name
Changing name of running VM is wrong.

Acknowledgement:
This commit is a result of core3 review by Marek.
2015-06-29 17:39:25 +02:00
Wojtek Porczyk
1deb3221c7 qubes: fix netvm semantics WRT default values
Automatic acquiring default*_netvm, default_template and {clock,update}vm is no
more. This will be moved to firstboot. Advanced users (those, who elect not to
autoconfig their initial VMs) will have to deal with that.

Acknowledgement:
This commit is a result of core3 review by Marek.
2015-06-29 17:39:25 +02:00
Wojtek Porczyk
c2a35c02b4 qubes: Cache QubesHost requests, fix xen-specific members
Acknowledgement:
This commit is a result of core3 review by Marek.
2015-06-29 17:39:25 +02:00
Wojtek Porczyk
2a62780ea2 qubes: add property-del events 2015-06-29 17:39:25 +02:00
Wojtek Porczyk
6ec86ec9f7 qubes: property may be unset by assinging DEFAULT
Introducing qubes.property.DEFAULT special value, which may be assigned to any
property. Result is the same as del'ing a property.
2015-06-29 17:39:25 +02:00
Wojtek Porczyk
713ced8cd2 qubes/tests: add event asserts for qubes module 2015-06-29 17:39:25 +02:00
Wojtek Porczyk
74c3126b80 qubes/tests: add some tests for qubes.property 2015-06-29 17:39:25 +02:00
Wojtek Porczyk
eabc571102 qubes/tests: colourful test runner 2015-06-29 17:39:24 +02:00
Wojtek Porczyk
52c1be49ec qubes/vm: remove unneccessary import 2015-06-29 17:39:24 +02:00
Wojtek Porczyk
de9eb60f61 Developer's documentation for qubes.tests 2015-06-29 17:39:24 +02:00
Wojtek Porczyk
8ace0fa634 qubes/tests: skipping tests outside dom0
New variable and decorator enable skipping tests outside dom0, that is, without
connection to libvirtd.
2015-06-29 17:39:24 +02:00
Wojtek Porczyk
613b03d277 qubes/tests: Common TestEmitter class
qubes.tests.TestEmitter is intended to check whether specific event fired on
given emitter.
2015-06-29 17:39:24 +02:00
Wojtek Porczyk
a82bf7cc54 qubes/tests: Move unit tests inside qubes/, add runner 2015-06-29 17:39:24 +02:00
Wojtek Porczyk
9fa3d60d0b qubes/events: fix event handling order
Events are divided into "pre" and "post" events. "Pre" events fire handlers in
MRO, "post" fire them in reverse.
2015-06-29 17:39:24 +02:00
Wojtek Porczyk
41fef46db2 core3 move: QubesVM
This is a big commit and probably incomplete. Tests will follow.
2015-06-29 17:39:24 +02:00
Wojtek Porczyk
6b7860995b qubes/events.py: Fire events from parent classes too 2015-06-29 17:39:24 +02:00
Wojtek Porczyk
f9658ae338 qubes/vm: remove old event methods that were overlooked 2015-06-29 17:39:24 +02:00
Wojtek Porczyk
f149c7b59b qubes/vm: fixed __repr__ for BaseVM
Previously it could fail with AttributeError when any of the properties was unset.
2015-06-29 17:39:24 +02:00
Wojtek Porczyk
ef4f00dac0 qubes/vm: DeviceManager class for herding devices
collections.defaultdict was not enough, because it cannot pass any arguments to
factory. We need to pass domain object and device class to fire events on attach
and detach.
2015-06-29 17:39:24 +02:00
Wojtek Porczyk
1a032ecf2a core3: basic global events and their documentation 2015-06-29 17:39:24 +02:00
Wojtek Porczyk
855a434879 core3: event framework adjusted for global Qubes object
From now, global events are emitted by qubes.Qubes object and handlers are registered there.
2015-06-29 17:39:24 +02:00
Wojtek Porczyk
b623a71d87 core3 move: QubesVmCollection
This got split to qubes.Qubes and qubes.VMCollection.
From now on, VMCollection is a stupid bag. Some parts went elsewhere.
2015-06-29 17:39:23 +02:00
Wojtek Porczyk
6146c8e466 QubesVmLabel: XML parsing 2015-06-29 17:39:23 +02:00
Wojtek Porczyk
6c68bd062e qubes.dochelpers: Version check for manual pages 2015-06-29 17:39:23 +02:00
Wojtek Porczyk
96bff66546 qubes.dochelpers: Helpers for Sphinx documentation
Currently it is possible to refer to Qubes' tickets via 🎫`#no`
2015-06-29 17:39:23 +02:00
Wojtek Porczyk
87ae0112eb qubes/vm: New XML format loading 2015-06-29 17:39:23 +02:00
Wojtek Porczyk
f3673dd34c core3 move: class QubesVmLabel 2015-06-29 17:39:23 +02:00
Wojtek Porczyk
778571fe8d core3 move: class QubesHost 2015-06-29 17:39:23 +02:00
Wojtek Porczyk
c3dd13c0ab qubes/log: logging routines 2015-06-29 17:39:23 +02:00
Wojtek Porczyk
320cb096f6 qubes: drop dry_run 2015-06-29 17:39:22 +02:00
Wojtek Porczyk
57d35fbc4c qubes: fix qubes.QubesVMMConnection
fix logical error in resetting offline_mode
and drop redundant _common_getter()
2015-06-29 17:39:22 +02:00
Wojtek Porczyk
cec3db993d core3 move: class QubesVMMConnection 2015-06-29 17:39:22 +02:00
Wojtek Porczyk
e1a6fb2859 core3 move: class QubesException 2015-06-29 17:39:22 +02:00
Wojtek Porczyk
65595e3b39 apidoc stub 2015-06-29 17:39:22 +02:00
Wojtek Porczyk
7f27d987cc import framework for core3 2015-06-29 17:39:22 +02:00