Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							564408eb3f 
							
						 
					 
					
						
						
							
							tests: qubespolicy tests  
						
						... 
						
						
						
						Fixes  QubesOS/qubes-issues#2460  
					
						2017-04-06 15:43:17 +02:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							1c836531c7 
							
						 
					 
					
						
						
							
							vm/appvm: add dispvm_allowed property  
						
						... 
						
						
						
						Speciffy whether DispVM can be created from this AppVM
Fixes  QubesOS/qubes-issues#2075  
						
					 
					
						2017-04-06 15:43:01 +02:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							e4e92b06af 
							
						 
					 
					
						
						
							
							dispvm: don't load separate Qubes() instance when handling DispVM  
						
						... 
						
						
						
						This will not work in qubesd, where there is one and only Qubes()
instance. 
						
					 
					
						2017-04-06 15:43:01 +02:00 
						 
				 
			
				
					
						
							
							
								Wojtek Porczyk 
							
						 
					 
					
						
						
						
						
							
						
						
							3bc4ec1e98 
							
						 
					 
					
						
						
							
							add mock libvirtaio module + pylint fixes  
						
						
						
					 
					
						2017-04-05 17:06:45 +02:00 
						 
				 
			
				
					
						
							
							
								Wojtek Porczyk 
							
						 
					 
					
						
						
						
						
							
						
						
							64d358562b 
							
						 
					 
					
						
						
							
							qubes: revert async def, use @asyncio.coroutine  
						
						... 
						
						
						
						Current pylint (any released version) stumbles on async def'ined
functions. Let's use @asyncio.coroutines for now.
Seems like python-3.5 is not that mature yet.
QubesOS/qubes-issues#2622 
QubesOS/qubes-issues#2738 
PyCQA/pylint#1126  
						
					 
					
						2017-04-05 17:05:52 +02:00 
						 
				 
			
				
					
						
							
							
								Wojtek Porczyk 
							
						 
					 
					
						
						
						
						
							
						
						
							78693c265c 
							
						 
					 
					
						
						
							
							qubes/vm/qubesvm: rework QubesVM.run*() methods  
						
						... 
						
						
						
						0) All those methods are now awaitable rather than synchronous.
1) The base method is run_service(). The method run() was rewritten
   using run_service('qubes.VMShell', input=...). There is no provision
   for running plain commands.
2) Get rid of passio*= arguments. If you'd like to get another return
   value, use another method. It's as simple as that.
   See:
      - run_service_for_stdio()
      - run_for_stdio()
   Also gone are wait= and localcmd= arguments. They are of no use
   inside qubesd.
3) The qvm-run tool and tests are left behind for now and will be fixed
   later. This is because they also need event loop, which is not
   implemented yet.
fixes  QubesOS/qubes-issues#1900 
QubesOS/qubes-issues#2622  
						
					 
					
						2017-04-05 17:05:22 +02:00 
						 
				 
			
				
					
						
							
							
								Wojtek Porczyk 
							
						 
					 
					
						
						
						
						
							
						
						
							a520e8d768 
							
						 
					 
					
						
						
							
							qubes/mgmt: add missing events for permission for lifecycle  
						
						... 
						
						
						
						Thanks @marmarek for spotting this.
QubesOS/qubes-issues#2622  
						
					 
					
						2017-04-05 16:36:54 +02:00 
						 
				 
			
				
					
						
							
							
								Wojtek Porczyk 
							
						 
					 
					
						
						
						
						
							
						
						
							c437f40284 
							
						 
					 
					
						
						
							
							qubes/mgmt: lifecycle and class listing  
						
						... 
						
						
						
						- mgmt.vmclass.List
- mgmt.vm.Start
- mgmt.vm.Shutdown
- mgmt.vm.Pause
- mgmt.vm.Unpause
- mgmt.vm.Kill
QubesOS/qubes-issues#2622  
						
					 
					
						2017-04-03 21:55:01 +02:00 
						 
				 
			
				
					
						
							
							
								Wojtek Porczyk 
							
						 
					 
					
						
						
						
						
							
						
						
							c4ef02c377 
							
						 
					 
					
						
						
							
							qubes/mgmt: explicit method decorator and misc improvements  
						
						... 
						
						
						
						- Get rid of @not_in_api, exchange for explicit @api() decorator.
- Old @no_payload decorator becomes an argument (keyword-only).
- Factor out AbstractQubesMgmt class to be a base class for other mgmt
  backends.
- Use async def instead of @asyncio.coroutine.
QubesOS/qubes-issues#2622  
						
					 
					
						2017-04-03 21:55:01 +02:00 
						 
				 
			
				
					
						
							
							
								Wojtek Porczyk 
							
						 
					 
					
						
						
						
						
							
						
						
							1b9479837a 
							
						 
					 
					
						
						
							
							Merge remote-tracking branch 'marmarek/core3-mgmt-methods1' into core3-devel  
						
						... 
						
						
						
						Conflicts:
	qubes/mgmt.py 
						
					 
					
						2017-04-01 18:33:54 +02:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							3388054eae 
							
						 
					 
					
						
						
							
							mgmt: move property value sanitization to property definition  
						
						... 
						
						
						
						This also means we don't check if a VM with given name (in case of
VMProperty) exists in the system, at this stage. But this is ok, lets
not duplicate work of property setter.
QubesOS/qubes-issues#2622  
						
					 
					
						2017-03-31 11:55:24 +02:00 
						 
				 
			
				
					
						
							
							
								Wojtek Porczyk 
							
						 
					 
					
						
						
						
						
							
						
						
							cce809c2cb 
							
						 
					 
					
						
						
							
							qubes/vm/qubesvm: async def start  
						
						... 
						
						
						
						QubesOS/qubes-issues#2622  
					
						2017-03-30 23:04:55 +02:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							ce3bedbf2c 
							
						 
					 
					
						
						
							
							vm: move validate_name to qubes/vm  
						
						... 
						
						
						
						This will be needed by VMProperty class in the next commit.
QubesOS/qubes-issues#2622  
						
					 
					
						2017-03-28 21:04:05 +02:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							ad456a3387 
							
						 
					 
					
						
						
							
							mgmt: minor adjustments  
						
						... 
						
						
						
						per @woju review
QubesOS/qubes-issues#2622  
						
					 
					
						2017-03-28 20:59:55 +02:00 
						 
				 
			
				
					
						
							
							
								Wojtek Porczyk 
							
						 
					 
					
						
						
						
						
							
						
						
							8e3621c4e5 
							
						 
					 
					
						
						
							
							Move libviraio to core-libvirt, may be upstreamed  
						
						... 
						
						
						
						QubesOS/qubes-issues#2622  
					
						2017-03-22 15:30:55 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							2c115bb648 
							
						 
					 
					
						
						
							
							mgmt: allow functions to return None if no data is to be returned  
						
						... 
						
						
						
						Don't force `return ''` everywhere.
QubesOS/qubes-issues#2622  
						
					 
					
						2017-03-17 12:49:28 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							f93674de1a 
							
						 
					 
					
						
						
							
							mgmt: drop ProtocolRepr  
						
						... 
						
						
						
						Since we've added type= argument to property.Get format, it isn't
useful anymore.
QubesOS/qubes-issues#2622  
						
					 
					
						2017-03-16 21:10:06 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							d21f54887d 
							
						 
					 
					
						
						
							
							mgmt: add decorator for method calls not accepting payload  
						
						... 
						
						
						
						Fixes  QubesOS/qubes-issues#2687  
					
						2017-03-16 20:21:11 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							8371ffcd0f 
							
						 
					 
					
						
						
							
							tests: storage and labels  
						
						... 
						
						
						
						QubesOS/qubes-issues#2622  
					
						2017-03-16 20:04:07 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							2a223811a5 
							
						 
					 
					
						
						
							
							tests: add missing import  
						
						
						
					 
					
						2017-03-16 20:04:06 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							f1c8f3220d 
							
						 
					 
					
						
						
							
							tests: deal with events containing dict in kwargs  
						
						... 
						
						
						
						If kwargs contains dict as one of values, it isn't hashable and can't be
used as value in frozenset/tuple. Convert such values into
frozenset(dict.items()). Only one (more) level is supported, but it
should be enough.
Solution from http://stackoverflow.com/a/13264725  
						
					 
					
						2017-03-16 20:04:06 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							beaa0e9348 
							
						 
					 
					
						
						
							
							tests/mgmt: check if argument/payload is rejected when should be  
						
						... 
						
						
						
						Instead of creating such tests for each method separately, use unittest
subTest functionality to handle all of them at once. 
						
					 
					
						2017-03-16 20:04:06 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							944bb26369 
							
						 
					 
					
						
						
							
							tests/mgmt: VM property related functions  
						
						
						
					 
					
						2017-03-16 20:04:05 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							35d1167893 
							
						 
					 
					
						
						
							
							qubes/vm/net: fix name of argument for property-del event handler  
						
						... 
						
						
						
						Since enforcing keyword arguments for event handlers, it's important now. 
						
					 
					
						2017-03-16 20:04:05 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							32f6bc2cd9 
							
						 
					 
					
						
						
							
							qubes/app: fix notifying about default_netvm change  
						
						... 
						
						
						
						Notify every VM that is affected, not only those providing network
itself. 
						
					 
					
						2017-03-16 20:04:05 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							2c4303efc4 
							
						 
					 
					
						
						
							
							Prefer qubes.exc.QubesValueError over ValueError  
						
						... 
						
						
						
						This provide clearer information for UI. 
						
					 
					
						2017-03-16 20:04:05 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							010d40dc1e 
							
						 
					 
					
						
						
							
							mgmt: add label-related calls  
						
						... 
						
						
						
						QubesOS/qubes-issues#2622  
					
						2017-03-16 20:04:04 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							33f3fedca1 
							
						 
					 
					
						
						
							
							mgmt: save qubes.xml after config-modifying calls  
						
						... 
						
						
						
						In theory any call could modify config (through events), but lets keep
writes to qubes.xml low. In any case, qubes.xml will be eventually
written (either at next config-modifying call, or daemon exit). 
						
					 
					
						2017-03-16 20:04:04 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							868dbeac3e 
							
						 
					 
					
						
						
							
							mgmt: implement mgmt.vm.property.Set  
						
						... 
						
						
						
						Sanitization of input value is tricky here, and also very important at
the same time. If property define value type (and it's something more
specific than 'str'), use that. Otherwise allow only printable ASCII
characters, and let appropriate event and setter handle value.
At this point I've reviewed all QubesVM properties in this category and
added appropriate setters where needed.
QubesOS/qubes-issues#2622  
						
					 
					
						2017-03-16 20:04:03 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							da51e6f032 
							
						 
					 
					
						
						
							
							vm/qubesvm: add validator for default_user property  
						
						... 
						
						
						
						Don't allow characters potentially interfering with qrexec. To be on the
safe side, allow only alphanumeric characters + very few selected
punctuations. 
						
					 
					
						2017-03-16 20:04:03 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							0f8fab088e 
							
						 
					 
					
						
						
							
							vm/qubesvm: remove pool_name property  
						
						... 
						
						
						
						It isn't used anywhere - in core3 each storage volume have pool assigned
- which may be different for each volume. 
						
					 
					
						2017-03-16 20:04:03 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							2d2672ec58 
							
						 
					 
					
						
						
							
							vm/qubesvm: convert firewall_conf into dumb, read-only property  
						
						... 
						
						
						
						Don't allow anything else than firewall.xml. 
						
					 
					
						2017-03-16 20:04:03 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							123feced36 
							
						 
					 
					
						
						
							
							vm/qubesvm: forbid '/' in kernel property  
						
						... 
						
						
						
						It would give VM access to some files outside of
/var/lib/qubes/vm-kernels. 
						
					 
					
						2017-03-16 20:04:02 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							a036e2a8a0 
							
						 
					 
					
						
						
							
							vm/qubesvm: improve name property setter  
						
						... 
						
						
						
						Split it into two functions: validate_name - context-less verification,
and actual _setter_name which perform additional verification in
context of actual VM.
Switch to qubes.exc.* exceptions where appropriate. 
						
					 
					
						2017-03-16 20:04:02 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							dbf2066dfd 
							
						 
					 
					
						
						
							
							mgmt: encode property type in property.Get  
						
						... 
						
						
						
						This also require having property.type public.
QubesOS/qubes-issues#2622  
						
					 
					
						2017-03-16 20:04:02 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							3b36e92b6d 
							
						 
					 
					
						
						
							
							vm/qubesvm: fix few more keyword arguments for events  
						
						
						
					 
					
						2017-03-16 20:04:02 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							772293d0b5 
							
						 
					 
					
						
						
							
							vm/qubesvm: define 'updateable' as qubes.property  
						
						... 
						
						
						
						This will allow property being accessed through management API 
						
					 
					
						2017-03-16 20:04:01 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							f7eabf8eb0 
							
						 
					 
					
						
						
							
							tools/qubesd: do not close connection before sending response  
						
						... 
						
						
						
						eof_received callback should return True, if connection should not be
automatically closed just after returning from it. 
						
					 
					
						2017-03-16 20:04:01 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							c41585e2f5 
							
						 
					 
					
						
						
							
							Initialize dom0 label  
						
						... 
						
						
						
						It is required property. Additionally, define icon_path to None,
otherwise it tries to access dom0.dir_path, which isn't set. 
						
					 
					
						2017-03-16 20:04:01 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							10a07c8726 
							
						 
					 
					
						
						
							
							mgmt: allow vm.List call to a particular VM  
						
						... 
						
						
						
						This allow getting info about a single VM.
QubesOS/qubes-issues#853  
						
					 
					
						2017-03-16 20:04:01 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							fb7bd6823a 
							
						 
					 
					
						
						
							
							mgmt: implement storage-related methods  
						
						... 
						
						
						
						QubesOS/qubes-issues#2622  
					
						2017-03-16 20:04:01 +01:00 
						 
				 
			
				
					
						
							
							
								Wojtek Porczyk 
							
						 
					 
					
						
						
						
						
							
						
						
							80807fb872 
							
						 
					 
					
						
						
							
							qubes/libvirtaio: document and prepare for upstream  
						
						... 
						
						
						
						QubesOS/qubes-issues#2622  
					
						2017-03-16 15:21:16 +01:00 
						 
				 
			
				
					
						
							
							
								Wojtek Porczyk 
							
						 
					 
					
						
						
						
						
							
						
						
							a5c59a5075 
							
						 
					 
					
						
						
							
							qubes/mgmt: Drop custom repr  
						
						... 
						
						
						
						QubesOS/qubes-issues#2622  
					
						2017-03-13 22:00:15 +01:00 
						 
				 
			
				
					
						
							
							
								Wojtek Porczyk 
							
						 
					 
					
						
						
						
						
							
						
						
							93153da893 
							
						 
					 
					
						
						
							
							Add documentation for mgmt  
						
						... 
						
						
						
						QubesOS/qubes-issues#2622  
					
						2017-03-13 21:51:52 +01:00 
						 
				 
			
				
					
						
							
							
								Wojtek Porczyk 
							
						 
					 
					
						
						
						
						
							
						
						
							417cb6e912 
							
						 
					 
					
						
						
							
							qubes/vm/mix/net: fix event arguments  
						
						... 
						
						
						
						Arguments to events are now keyword-only and require exact names. 
						
					 
					
						2017-03-06 17:20:57 +01:00 
						 
				 
			
				
					
						
							
							
								Wojtek Porczyk 
							
						 
					 
					
						
						
						
						
							
						
						
							4a247b1b1b 
							
						 
					 
					
						
						
							
							Merge remote-tracking branch 'origin/pull/90/head' into core3-devel  
						
						
						
					 
					
						2017-03-02 13:19:57 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							f7d73893d7 
							
						 
					 
					
						
						
							
							qubes/storage: py3k related fixes  
						
						
						
					 
					
						2017-03-01 21:50:06 +01:00 
						 
				 
			
				
					
						
							
							
								Wojtek Porczyk 
							
						 
					 
					
						
						
						
						
							
						
						
							c2a0d34ade 
							
						 
					 
					
						
						
							
							pylint: do not interpret asyncio.ensure_future compat hack  
						
						
						
					 
					
						2017-03-01 18:30:49 +01:00 
						 
				 
			
				
					
						
							
							
								Wojtek Porczyk 
							
						 
					 
					
						
						
						
						
							
						
						
							865ab10a0c 
							
						 
					 
					
						
						
							
							qubesd+mgmt: convert mgmt functions to coroutines  
						
						... 
						
						
						
						QubesOS/qubes-issues#2622  
					
						2017-03-01 17:31:37 +01:00 
						 
				 
			
				
					
						
							
							
								Marek Marczykowski-Górecki 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							3e0f225938 
							
						 
					 
					
						
						
							
							qubes: allow 'property' object comparing with str  
						
						... 
						
						
						
						This will allow checking if a given name is valid property name, using
simple `name in vm.property_list()`.
QubesOS/qubes-issues#853  
						
					 
					
						2017-02-27 21:57:56 +01:00