Commit Graph

421 Commits

Author SHA1 Message Date
Marek Marczykowski
07d7620f23 dom0/core: major rework of QubesVm.__init__ and serialization
No more manually set attributes, each in different way. Now there is one dict
with attrs, defaults, used also for object serialization to XML.
2012-03-08 11:22:46 +01:00
Marek Marczykowski
9360a18b0c dom0/QubesVm: add include_in_backups property 2012-03-07 19:16:25 +01:00
Marek Marczykowski
f6c222d957 dom0/QubesVm: add include_in_backups property 2012-03-07 19:15:51 +01:00
Marek Marczykowski
7d07bc718b dom0/dispvm: clone QubesVmLabel object for DispVM 2012-03-07 19:04:47 +01:00
Marek Marczykowski
b3d0afc360 dom0/dispvm: clone QubesVmLabel object for DispVM 2012-03-07 18:50:56 +01:00
Marek Marczykowski
e2c62b9424 dom0/dispvm: icons for DispVM
Beautiful icons thanks to Agnieszka Kostrzewa!
2012-03-07 17:13:03 +01:00
Marek Marczykowski
8b29a09986 dom0/dispvm: icons for DispVM
Beautiful icons thanks to Agnieszka Kostrzewa!
2012-03-07 17:04:25 +01:00
Marek Marczykowski
a717b3755e Merge branch 'master' into hvm
Conflicts:
	dom0/qvm-core/qubes.py
2012-03-06 02:21:52 +01:00
Marek Marczykowski
1b1c48666f dom0/qvm-core: network parameters for use in Xen config template 2012-03-06 02:20:12 +01:00
Marek Marczykowski
a5c69af852 dom0/core: netvm_vm -> netvm - HVM-specific 2012-03-04 22:00:41 +01:00
Marek Marczykowski
63b51e41ce dom0/core: change QubesVm.netvm_vm to QubesVm.netvm
To simplify setters and getters.
2012-03-04 22:00:10 +01:00
Marek Marczykowski
7db35b7ce6 dom0/core: change QubesVm.netvm_vm to QubesVm.netvm
To simplify setters and getters.
2012-03-04 21:59:02 +01:00
Marek Marczykowski
c40bb7fd69 Merge branch 'master' into hvm 2012-03-02 16:31:01 +01:00
Marek Marczykowski
b7b5260bd7 dom0/core: preserve MAC setting on clone 2012-03-02 16:29:56 +01:00
Marek Marczykowski
b4b639cbb3 dom0/core: clone support for HVM 2012-03-02 16:28:15 +01:00
Marek Marczykowski
abb9e64e3f Merge branch 'master' into hvm
Conflicts:
	dom0/qvm-core/qubes.py
	dom0/qvm-tools/qvm-prefs
2012-03-02 16:21:48 +01:00
Marek Marczykowski
7c9075d09b dom0/qvm-network: allow to set persistent MAC for VM 2012-03-02 16:07:31 +01:00
Marek Marczykowski
5f87303b69 dom0/core: rework of VM clone mechanism 2012-03-02 16:06:26 +01:00
Marek Marczykowski
5191c64b06 dom0/core: more robust XML attrs generation
Still not ideal...
2012-03-02 16:00:55 +01:00
Marek Marczykowski
4d554fd182 dom0/core: set default memory for HVM to 512MB 2012-03-02 14:28:09 +01:00
Marek Marczykowski
1c2311226e dom0/network: use static MAC for VMs 2012-03-02 13:51:20 +01:00
Marek Marczykowski
e4b23f6670 dom0/network: use static MAC for VMs 2012-03-02 13:49:23 +01:00
Marek Marczykowski
cec197ac8b dom0/core: set *_img to None for HVM instead of removing attr
There are many places that assume existence of this attributes.
2012-03-02 12:04:57 +01:00
Marek Marczykowski
d1bd26ebe0 dom0/core: get stubdom xid also for paused domains
Especially during HVM startup.
2012-03-02 02:38:33 +01:00
Marek Marczykowski
287e9f72fe dom0/core: provide vif name also for paused VMs 2012-03-02 02:28:45 +01:00
Marek Marczykowski
a387393b43 dom0/core: provide vif name also for paused HVMs 2012-03-02 02:27:13 +01:00
Marek Marczykowski
f31422cbb3 dom0/core: provide vif name also for paused VMs 2012-03-02 02:26:37 +01:00
Marek Marczykowski
f06d309a69 dom0/qvm-core: create icon symlink for HVM 2012-03-02 01:56:50 +01:00
Marek Marczykowski
25b57bab88 dom0/appmenus: Create "Start" appmenu for HVM domains 2012-03-02 01:56:50 +01:00
Marek Marczykowski
4749792e70 dom0/qvm-core: force HVM to be updateable 2012-03-02 01:56:50 +01:00
Marek Marczykowski
afecabdc59 dom0/qvm-firewall: provide custom vif name by QubesHVM 2012-03-02 01:56:45 +01:00
Marek Marczykowski
997fec6fd6 dom0/qvm-firewall: provide vif name by QubesVM 2012-03-02 01:22:40 +01:00
Marek Marczykowski
c13c1c920f dom0/qvm-firewall: provide vif name by QubesVM 2012-03-02 01:16:03 +01:00
Marek Marczykowski
370c4952ce Merge branch 'master' into hvm 2012-03-01 23:40:31 +01:00
Marek Marczykowski
dcf6957e85 dom0/core: xvdi is to high for qemu 2012-03-01 11:23:07 +01:00
Marek Marczykowski
45c1c01410 dom0/core: use xvdi as cdrom frontend
When used both xvd* and hd* only xvd* isn't detected.
2012-03-01 11:00:33 +01:00
Marek Marczykowski
dd88e7d72a dom0: fix qvm-grow-private (#459) 2012-02-29 23:12:05 +01:00
Marek Marczykowski
ef6b1ded3e dom0/qvm-backup-restore: fix restore of dom0-home (#451) 2012-02-29 21:26:37 +01:00
Marek Marczykowski
c44032d37a Merge branch 'master' into hvm 2012-02-29 03:58:29 +01:00
Marek Marczykowski
a5ee72c55f dom0/qvm-backup-restore: show original template name 2012-02-29 03:34:57 +01:00
Marek Marczykowski
e10fa6babd dom0/qvm-backup-restore: fixes - custom templates, error handling 2012-02-29 03:33:43 +01:00
Marek Marczykowski
4d739c1909 dom0/qvm-backup-restore: fix restore of StandaloneVM/TemplateVM 2012-02-29 03:17:25 +01:00
Marek Marczykowski
d7caf5cedc dom0/qvm-backup: force correct default exclude_list
Treat "None" also as empty list.
2012-02-29 03:16:31 +01:00
Marek Marczykowski
c013de4747 dom0/qubes-firewall: make protocol selection smart 2012-02-27 15:46:23 +01:00
Marek Marczykowski
c3356296a5 Merge branch 'master' into hvm 2012-02-27 15:14:21 +01:00
Marek Marczykowski
a0e9feef92 dom0/qubes-firewall: typo fix 2012-02-27 15:07:00 +01:00
Joanna Rutkowska
54b08ee0f9 Merge branch 'hvm' of 10.141.1.101:/var/lib/qubes/git/marmarek/core into hvm 2012-02-27 15:00:54 +01:00
Joanna Rutkowska
0e0fe6a3d9 Merge branch 'master' of git://git.qubes-os.org/marmarek/core into hvm 2012-02-27 13:30:14 +01:00
Joanna Rutkowska
859c99da5c Merge branch 'hvm' of 10.141.1.101:/var/lib/qubes/git/marmarek/core 2012-02-27 13:17:48 +01:00
Marek Marczykowski
628458108d dom0/qvm-core: fix kernelopts parsing in case of QubesHVM 2012-02-27 03:30:35 +01:00
Marek Marczykowski
0ca08d48b8 dom0/qubes-firewall: allow to specify protocol, do not assume always tcp 2012-02-27 02:02:42 +01:00
Marek Marczykowski
80e2afa97b dom0/qvm-core: add missing get_xid 2012-02-26 00:58:05 +01:00
Marek Marczykowski
40762c5497 dom0/qvm-core: update icon cache after label change 2012-02-26 00:07:06 +01:00
Marek Marczykowski
40d8ac66a3 dom0/core: introduce QubesHVm class 2012-02-24 04:24:13 +01:00
Marek Marczykowski
85c5074dbe dom0/core: check if object has attr before using it 2012-02-24 04:22:14 +01:00
Marek Marczykowski
8b3a895317 dom0/core: more robust XML attrs generation
Still not ideal...
2012-02-24 04:19:51 +01:00
Marek Marczykowski
db4a96dfea dom0/core: move qrexec start to separate function 2012-02-24 04:18:45 +01:00
Marek Marczykowski
104030b15c dom0/core: more generic way to specify xen config template 2012-02-24 04:17:45 +01:00
Marek Marczykowski
8c4e1e0b09 dom0/qvm-core: fix icon symlink after label change 2012-02-22 15:14:00 +01:00
Marek Marczykowski
277cdd9173 dom0/backup: Allow to exclude dom0 home from backup 2012-02-17 10:05:23 +01:00
Marek Marczykowski
0a0a88650d dom0/qubesutils: typo 2012-02-17 10:01:04 +01:00
Marek Marczykowski
c39fc7f6f1 dom0/qvm-block: fix connecting devices to dom0 2012-02-16 10:25:16 +01:00
Marek Marczykowski
05e89d82fb dom0/qvm-block: automatically choose frontend device (#419) 2012-02-14 20:57:43 +01:00
Marek Marczykowski
1683a0b815 dom0/qvm-block: detect 'connecting' devices as 'connected'
This is needed to not allow connecting the same backend to more than one VMs at
the same time.
2012-02-14 20:55:51 +01:00
Marek Marczykowski
abcdbad209 dom0/qubesutils: move online resize code to QubesVm.resize_private_img() (#421)
This assume that private.img contains ext2/3/4. For now it is true.
2012-02-10 20:47:21 +01:00
Marek Marczykowski
6b59f5c7c8 dom0/qubesutils: move parse_size() from qvm-grow-private to qubesutils (#421) 2012-02-10 20:46:35 +01:00
Marek Marczykowski
7c7bea6a03 dom0/qubesutils: move run() method to QubesVm
It is needed inside of other methods of QubesVm...
2012-02-10 20:44:28 +01:00
Marek Marczykowski
5e5d84adf7 dom0: remove trailing spaces 2012-02-10 20:43:29 +01:00
Marek Marczykowski
1a33746ab4 dom0/qubesutils: move qvm-backup-restore code to qubesutils (#421) 2012-02-10 10:56:03 +01:00
Marek Marczykowski
19a0292897 dom0/qubesutils: move printing functions to the beggining 2012-02-10 10:54:18 +01:00
Marek Marczykowski
c766282d2d dom0: minor get_start_time fix 2012-02-07 23:17:53 +01:00
Marek Marczykowski
5dd17a7305 dom0/qubesutils: minor fixes 2012-02-07 16:51:10 +01:00
Marek Marczykowski
24173989b3 dom0/qvm-tools: move qvm-backup logic to qubesutils (#421) 2012-02-07 16:50:52 +01:00
Marek Marczykowski
3a71716db3 dom0/ClockVM: disable ntpd in ClockVM (#435)
To not conflict with ntpdate (both are using 123/udp port).
2012-02-01 17:51:41 +01:00
Marek Marczykowski
2aedf4567b dom0/qubesutils: additional types of run comand in vm (wait and popen) 2012-02-01 17:09:48 +01:00
Marek Marczykowski
2897a795c4 dom0/vm: set VM timezone same as in dom0 - on VM boot (#413) 2012-01-18 16:59:58 +01:00
Marek Marczykowski
bdfacf9d01 dom0: enable qubes-dvm service when preparing DispVM 2012-01-14 01:34:35 +01:00
Marek Marczykowski
b77e48f688 dom0: do not start gui daemon when preparing DispVM 2011-12-27 15:37:23 +01:00
Marek Marczykowski
4d128dd020 dom0: fix removing "special" VM (eg ClockVM)
Unset collection pointer to some special VMs, when it is removed: ClockVM,
default NetVM, default TemplateVM, UpdateVM
2011-12-23 17:10:32 +01:00
Marek Marczykowski
d84d64716b dom0: start guid only when shm.id present
Eg. not during firstboot
2011-12-11 14:09:46 +01:00
Marek Marczykowski
f03152053b dom0: check if X server is available before starting guid (#377) 2011-12-05 13:42:07 +01:00
Marek Marczykowski
99ffed089c dom0: start guid as soon as possible (#377) 2011-12-05 13:36:13 +01:00
Marek Marczykowski
4a6447f11b dom0/qvm-run: fix tray notify 2011-11-02 00:46:57 +01:00
Marek Marczykowski
c0c64ecdc5 dom0: add VM rename support (#371) 2011-11-02 00:39:23 +01:00
Marek Marczykowski
134af81b3b dom0: move remove_appmenus to separate subroutine 2011-11-01 23:42:13 +01:00
Marek Marczykowski
12b8ff7d17 dom0: store relative paths in qubes.xml when possible 2011-11-01 23:33:20 +01:00
Marek Marczykowski
47ad186926 dom0: set firewall to block-all when setting netvm to none (#370) 2011-11-01 15:50:03 +01:00
Marek Marczykowski
870dea1502 dom0/qvm-run: move run code to qubesutils 2011-10-31 13:31:54 +01:00
Marek Marczykowski
a4e11dedd9 dom0/DispVM: inherit firewall from calling VM (#370) 2011-10-31 01:29:46 +01:00
Marek Marczykowski
99c0356bf2 dom0: set first NetVM as ClockVM 2011-10-17 23:20:21 +02:00
Marek Marczykowski
db3ab9333a dom0/qvm-shutdown: increase timeout to 60s (#373) 2011-10-17 23:14:26 +02:00
Marek Marczykowski
c43a62e0bb dom0/qvm-shutdown: implement --wait in qvm-shutdown 2011-10-17 23:14:19 +02:00
Marek Marczykowski
3063ef35b7 dom0: move NetVM shutdown sanity check code to qvm-core 2011-10-17 22:45:04 +02:00
Marek Marczykowski
abcd6416fc dom0: move shutdown to qvm-core 2011-10-14 11:59:33 +02:00
Marek Marczykowski
ede96353af dom0/qrexec: Add always allow option in qrexec confirmation dialog (#278) 2011-10-12 00:08:28 +02:00
Marek Marczykowski
bc47334d21 dom0: fix cleanup_vif 2011-10-10 17:11:00 +02:00
Marek Marczykowski
e1ccda362c dom0/qvm-core: release lock in VM.start() right before starting qrexec (#344) 2011-10-10 11:23:14 +02:00
Marek Marczykowski
05605f1394 dom0/qvm-core: ignore template_vm=None when loading qubes.xml
This should result in more elegant error message in case of error in qubes.xml.
2011-10-07 21:46:27 +02:00
Marek Marczykowski
98827c7020 dom0/qvm-core: output messages to stderr (#276) 2011-10-07 21:40:29 +02:00
Marek Marczykowski
053944470c dom0: improve vif cleanup
Just remove dead devices from xenstore, there is no point in waiting for its
shutdown (which 'xl' does) as backend domain is dead.
2011-10-03 22:54:45 +02:00
Marek Marczykowski
600877b830 dom0: use default values for values not present in qubes.xml
Do not set them to None. This should improve compatibility with older versions of qubes.xml
2011-10-01 10:33:25 +02:00
Marek Marczykowski
f0038d2ec7 dom0: typo fix in default_fw_netvm saving 2011-10-01 02:55:22 +02:00
Marek Marczykowski
3c7f8b97cd dom0: return datatime value in get_start_time (#315) 2011-10-01 02:54:18 +02:00
Marek Marczykowski
7ae0c52e6d dom0: introduce ClockVM - timesource for dom0 (#361) 2011-10-01 02:54:00 +02:00
Marek Marczykowski
287da572e9 dom0+vm: introduce 'qubes-service' xenstore dir - enable/disable VM services from dom0
This allows control which services are started in VM by dom0. For some
situation vm_type was used, but it isn't enough - i.e. ntpd should be started
in one, selected NetVM.
2011-10-01 02:49:25 +02:00
Marek Marczykowski
aa08f555c3 dom0+vm: minor fixes in qvm-block scripts 2011-09-30 11:20:03 +02:00
Marek Marczykowski
5fc5301cee Merge branch 'master' of ssh://git.qubes-os.org/var/lib/qubes/git/joanna/core 2011-09-30 10:46:04 +02:00
Marek Marczykowski
e3993ca5f9 dom0: qvm-block tool, new qubesutils python module (#226) 2011-09-29 13:56:22 +02:00
Marek Marczykowski
6b885bd361 dom0+vm: expose block devices info in xenstore (#226) 2011-09-29 13:56:06 +02:00
Joanna Rutkowska
59f71f634a dom0: Fix xenstore permissions qubes_netvm_external_ip
We should ensure that the first expression in the permisions list
is nX, where X is the owning domain, and not rX or wX, as otherwise
we would be granting all other VMs read access to the key.

This is explained in more detail here:

http://wiki.xensource.com/xenwiki/XenBus

In practice the perms problem applied only to the qubes_netvm_external_ip key
that is exposed by each NetVM to corresponding Proxy VMs. Before this fix,
the key was readable by any VM in the system, which might not be desired in some
more advanced networking setups, such as with Tor Proxy VM.
2011-09-26 17:24:11 +02:00
Marek Marczykowski
0ce7336cad dom0: Distinguish 'Halting','Crashed' state from simple 'Halted' (#314) 2011-09-13 18:39:09 +02:00
Joanna Rutkowska
f2770e2d03 dom0: Fix create_xenstore_entries in other classes to not require xid argument 2011-09-09 18:49:15 +02:00
Marek Marczykowski
2319083631 dom0: use default kernel opts when custom opts isn't set
This can happen after rpm upgrade.
2011-09-09 14:24:17 +02:00
Joanna Rutkowska
89d532ef11 dom0: qubes.py: do not use pci=nomsi as a default argument for passthrough VM kernels anymore 2011-09-08 14:09:03 +02:00
Marek Marczykowski
5e09af2b46 dom0: limit default swiotlb size for NetVM (#342) 2011-09-08 01:19:25 +02:00
Marek Marczykowski
320847de91 dom0: correctly remove appmenus for ServiceVM (if any) 2011-09-06 01:17:09 +02:00
Marek Marczykowski
77ec31d164 dom0: appmenus templates handling for StandaloneVM (#317)
StandaloneVM also needs apps.templates dir in order to qubes-appmenu-select
works. Also can be helpful for backup/restore.
2011-09-06 01:15:35 +02:00
Marek Marczykowski
c1f0296e66 dom0: automatically determine domain xid in create_xenstore_entries 2011-09-06 01:14:49 +02:00
Marek Marczykowski
f85fcc06aa dom0: replace obsolete swiotlb=force with iommu=soft 2011-09-03 16:15:02 +02:00
Marek Marczykowski
5cb6cd2aa7 dom0: fix uses_default_kernelopts typo 2011-09-03 16:14:51 +02:00
Marek Marczykowski
58985193e7 dom0: move network-attach logic to qubes.py
Main reason is to remove code duplication.
Also fixes #260 and workaround (by sleep...) some race at NetVM restart
(fronted driver does not noticed vif-detach+vif-attach).
2011-09-03 16:13:14 +02:00
Marek Marczykowski
5fe147729d dom0: copy only selected files for StandaloneVM kernel
Especially ignore modules dir - already included in modules.img
2011-09-03 16:04:25 +02:00
Marek Marczykowski
7f24727b2b dom0: fix waiting for vif detach 2011-09-03 16:01:22 +02:00
Marek Marczykowski
11da1633d3 dom0: Copy default template kernel to StandaloneVM dir (#333)
Just prepare kernel for qvm-set -s <vmname> kernel none
2011-09-01 15:01:37 +02:00
Marek Marczykowski
ac917ef1d8 dom0: Set modules.img device R/W for StandaloneVM (#333) 2011-09-01 14:56:23 +02:00
Marek Marczykowski
577dd2b076 dom0: when cleaning up network devices, wait for actual device destroy
Otherwise subsequent network-attach will not be noticed by frontend driver.
2011-09-01 00:01:53 +02:00
Marek Marczykowski
be5e5a98a1 dom0: use full patch for network script
xl (apart from xm) doesn't prefix script with dir.
2011-08-31 22:01:08 +02:00
Marek Marczykowski
3cf1af0321 dom0: implement custom kernelopts (#323) 2011-08-31 20:39:26 +02:00
Marek Marczykowski
fbce32ae1f dom0/qvm-prefs: info when kernel setting is from template 2011-08-31 18:32:37 +02:00
Rafal Wojtczuk
8ecd6134d9 firewall: call iptables-restore once per domain (#311)
qubes.py now places rules for each domain in a separate key under
/local/domain/fw_XID/qubes_iptables_domainrules/
plus the header in /local/domain/fw_XID/qubes_iptables_header.
/local/domain/fw_XID/qubes_iptables is now just a trigger.
So, if iptables-restore fails dues to e.g. error resolving a domain name
in a rules for a domain, then only this domain will not get connectivity,
others will work fine.
2011-07-29 16:50:12 +02:00
Rafal Wojtczuk
6fc358bd20 dispvm: honour current choice of template for dispvm
... when auto-refreshing the dispvm savefile.
While at it, also copy dispvm-prerun.sh script in qvm-clone.
2011-07-26 17:09:59 +02:00
Rafal Wojtczuk
7cfbe1c7d8 qubes.py: postpone qmmeman.close()
There are indications that when parent "xl" process exits, the domain is not
booted completely; and xl actions may interfere with qmemman memory balancing.
Thus, in VM.start(), we delay releasing of qmemman handle until qrexec_daemon
connects successfully.
2011-07-22 15:07:04 +02:00
Marek Marczykowski
342261ff10 dom0: Do not clone config file with template
Not needed any more
2011-07-21 00:49:03 +02:00
Marek Marczykowski
c9ad2314ea dom0: variable names conflict (#290)
uuid is also name of (used here) python module...
2011-07-20 16:12:28 +02:00
Marek Marczykowski
f1153a5413 dom0: initialize vmtype in create_appmenus (#212) 2011-07-20 16:06:22 +02:00
Marek Marczykowski
99dfdd70c3 dom0: Hide some messages from 'xl' tool (#265) 2011-07-17 01:54:27 +02:00
Marek Marczykowski
182e1ccf2b dom0: watch for updates from dom0 (#198)
Additionally synchronize clock every 6h. This is started by xdg-autostart (not
qvm-core) to have running Xorg - needed to prompt user for updates download.
2011-07-17 01:20:13 +02:00
Marek Marczykowski
a68faecc35 dom0: initialize default_kernel parameter 2011-07-15 12:24:27 +02:00
Marek Marczykowski
9f67e5de9d dom0: Regenerate appmenus also for TemplateVM in create_appmenus() 2011-07-10 23:39:48 +02:00
Marek Marczykowski
0813f49186 dom0: Clone whitelisted-apps.list with template clone 2011-07-10 23:37:35 +02:00
Marek Marczykowski
817735fc92 dom0: Do not copy obsolete apps-template.templates dir on template clone 2011-07-10 23:36:50 +02:00
Marek Marczykowski
f6609cb1c4 dom0: minor #252 fix 2011-07-09 20:43:57 +02:00
Marek Marczykowski
7e234a4a8d dom0: store dispid in QubesDisposableVm object and generate proper IP (#247) 2011-07-09 17:52:47 +02:00
Marek Marczykowski
202fb0c676 dom0: fix syntax 2011-07-09 00:36:00 +02:00
Marek Marczykowski
3e6bd65b73 Revert "[REMOVEME] Dom0: Add UGLY sleeps hoping they will temporarily prevent the race condition"
This reverts commit 3bd1c700f6.

Conflicts:

	dom0/qvm-core/qubes.py
2011-07-08 21:38:24 +02:00
Marek Marczykowski
3b3929b6a2 Merge branch 'master' of ssh://git.qubes-os.org/var/lib/qubes/git/joanna/core
Conflicts:
	dom0/qvm-core/qubes.py
2011-07-08 21:37:43 +02:00
Marek Marczykowski
0de378dafc dom0: automatically bind PCI devices to pciback at VM start (#252) 2011-07-05 22:10:45 +02:00
Marek Marczykowski
5f10e408e0 dom0: stores QubesVm.pcidevs as list (#252)
To easier manage pci devices attached to VM
2011-07-05 22:01:28 +02:00
Marek Marczykowski
82bc4bad0b dom0: always set appmenus_templates_dir for QubesVm
If possible - to reasonable value (vm dir for UpdateableVM or template - for
template-based VM).
2011-07-05 21:26:39 +02:00
Marek Marczykowski
b9e00b2189 dom0: Include default whitelisted-appmenus.list in template (#266) 2011-07-05 21:20:43 +02:00