mirror of
https://github.com/virt-manager/virt-manager.git
synced 2024-10-27 01:55:20 +03:00
e8531b1f40
This adds initial UI for managing snapshots: list, run/revert, delete, add, and redefining (for changing <description>) supported, but currently only for internal snapshots. The UI is mostly in its final form except for some bells and whistles. The real remaining question is what do we want to advertise and support. Internal (qcow2) snapshots are by far the simplest to manage, very mature, and already have the semantics we want. However most recent libvirt and qemu work has been to facilitate external snapshots, which are more extensible and can be performed live, and with qemu-ga coordination for extra safety. However they make things much harder for virt-manager at the moment. Until we have a plan, this work should be considered experimental and not be relied upon.
475 lines
24 KiB
XML
475 lines
24 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<interface>
|
|
<!-- interface-requires gtk+ 3.6 -->
|
|
<object class="GtkDialog" id="snapshot-new">
|
|
<property name="can_focus">False</property>
|
|
<property name="border_width">5</property>
|
|
<property name="title" translatable="yes">Create snapshot</property>
|
|
<property name="type_hint">dialog</property>
|
|
<signal name="delete-event" handler="on_snapshot_new_delete_event" swapped="no"/>
|
|
<child internal-child="vbox">
|
|
<object class="GtkBox" id="dialog-vbox1">
|
|
<property name="can_focus">False</property>
|
|
<property name="orientation">vertical</property>
|
|
<property name="spacing">2</property>
|
|
<child internal-child="action_area">
|
|
<object class="GtkButtonBox" id="dialog-action_area1">
|
|
<property name="can_focus">False</property>
|
|
<property name="layout_style">end</property>
|
|
<child>
|
|
<object class="GtkButton" id="snapshot-new-cancel">
|
|
<property name="label">gtk-cancel</property>
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="receives_default">True</property>
|
|
<property name="use_stock">True</property>
|
|
<signal name="clicked" handler="on_snapshot_new_cancel_clicked" swapped="no"/>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkButton" id="snapshot-new-ok">
|
|
<property name="label" translatable="yes">Finish</property>
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="receives_default">True</property>
|
|
<property name="use_underline">True</property>
|
|
<signal name="clicked" handler="on_snapshot_new_ok_clicked" swapped="no"/>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="pack_type">end</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox" id="box1">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="spacing">6</property>
|
|
<child>
|
|
<object class="GtkLabel" id="label1">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="xalign">0</property>
|
|
<property name="label" translatable="yes">Name:</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkEntry" id="snapshot-new-name">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="invisible_char">●</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
<action-widgets>
|
|
<action-widget response="0">snapshot-new-cancel</action-widget>
|
|
<action-widget response="0">snapshot-new-ok</action-widget>
|
|
</action-widgets>
|
|
</object>
|
|
<object class="GtkWindow" id="snapshot-top-window">
|
|
<property name="can_focus">False</property>
|
|
<child>
|
|
<object class="GtkBox" id="snapshot-top-box">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="border_width">12</property>
|
|
<property name="orientation">vertical</property>
|
|
<property name="spacing">6</property>
|
|
<child>
|
|
<object class="GtkPaned" id="spaned1">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="position">200</property>
|
|
<property name="position_set">True</property>
|
|
<child>
|
|
<object class="GtkScrolledWindow" id="scrolledwindow7">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="shadow_type">in</property>
|
|
<child>
|
|
<object class="GtkTreeView" id="snapshot-list">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="headers_visible">False</property>
|
|
<child internal-child="selection">
|
|
<object class="GtkTreeSelection" id="treeview-selection"/>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="resize">False</property>
|
|
<property name="shrink">True</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkNotebook" id="snapshot-notebook">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<child>
|
|
<object class="GtkBox" id="sbox3">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="orientation">vertical</property>
|
|
<property name="spacing">12</property>
|
|
<child>
|
|
<object class="GtkAlignment" id="salignment12">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="top_padding">3</property>
|
|
<property name="left_padding">5</property>
|
|
<child>
|
|
<object class="GtkGrid" id="sgrid1">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="row_spacing">6</property>
|
|
<property name="column_spacing">6</property>
|
|
<child>
|
|
<object class="GtkLabel" id="slabel94">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="xalign">0</property>
|
|
<property name="yalign">0</property>
|
|
<property name="label" translatable="yes">Description:</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left_attach">0</property>
|
|
<property name="top_attach">3</property>
|
|
<property name="width">1</property>
|
|
<property name="height">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkScrolledWindow" id="scrolledwindow8">
|
|
<property name="height_request">80</property>
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="hexpand">True</property>
|
|
<property name="shadow_type">in</property>
|
|
<child>
|
|
<object class="GtkTextView" id="snapshot-description">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="left_attach">1</property>
|
|
<property name="top_attach">3</property>
|
|
<property name="width">1</property>
|
|
<property name="height">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel" id="label92">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="xalign">0</property>
|
|
<property name="label" translatable="yes">Status:</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left_attach">0</property>
|
|
<property name="top_attach">2</property>
|
|
<property name="width">1</property>
|
|
<property name="height">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkHBox" id="hbox3">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="spacing">3</property>
|
|
<child>
|
|
<object class="GtkImage" id="snapshot-status-icon">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="stock">gtk-cancel</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel" id="snapshot-status-text">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="xalign">0</property>
|
|
<property name="label">Shut down</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="left_attach">1</property>
|
|
<property name="top_attach">2</property>
|
|
<property name="width">1</property>
|
|
<property name="height">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel" id="label93">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="xalign">0</property>
|
|
<property name="label" translatable="yes">Timestamp:</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left_attach">0</property>
|
|
<property name="top_attach">1</property>
|
|
<property name="width">1</property>
|
|
<property name="height">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel" id="snapshot-timestamp">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="xalign">0</property>
|
|
<property name="label">label</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left_attach">1</property>
|
|
<property name="top_attach">1</property>
|
|
<property name="width">1</property>
|
|
<property name="height">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel" id="snapshot-title">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="xalign">0</property>
|
|
<property name="label"><b>snapshot 'foo' (current)</b></property>
|
|
<property name="use_markup">True</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left_attach">0</property>
|
|
<property name="top_attach">0</property>
|
|
<property name="width">2</property>
|
|
<property name="height">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<placeholder/>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
<child type="tab">
|
|
<object class="GtkLabel" id="label89">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="label">details</property>
|
|
</object>
|
|
<packing>
|
|
<property name="tab_fill">False</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel" id="snapshot-error-label">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="label">error label</property>
|
|
</object>
|
|
<packing>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
<child type="tab">
|
|
<object class="GtkLabel" id="label90">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="label">empty</property>
|
|
</object>
|
|
<packing>
|
|
<property name="position">1</property>
|
|
<property name="tab_fill">False</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="resize">True</property>
|
|
<property name="shrink">True</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox" id="box2">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="spacing">6</property>
|
|
<child>
|
|
<object class="GtkHBox" id="hbox10">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<child>
|
|
<object class="GtkButton" id="snapshot-add">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="receives_default">True</property>
|
|
<property name="has_tooltip">True</property>
|
|
<property name="tooltip_markup" translatable="yes">Create new snapshot</property>
|
|
<property name="tooltip_text" translatable="yes">Create new snapshot</property>
|
|
<signal name="clicked" handler="on_snapshot_add_clicked" swapped="no"/>
|
|
<child>
|
|
<object class="GtkImage" id="image1">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="stock">gtk-add</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">False</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkButton" id="snapshot-start">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="receives_default">True</property>
|
|
<property name="has_tooltip">True</property>
|
|
<property name="tooltip_markup" translatable="yes">Revert guest to selected snapshot</property>
|
|
<property name="tooltip_text" translatable="yes">Revert guest to selected snapshot</property>
|
|
<signal name="clicked" handler="on_snapshot_start_clicked" swapped="no"/>
|
|
<child>
|
|
<object class="GtkImage" id="someicon">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="stock">gtk-media-play</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">False</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkButton" id="snapshot-delete">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="receives_default">True</property>
|
|
<property name="has_tooltip">True</property>
|
|
<property name="tooltip_markup" translatable="yes">Delete selected snapshot</property>
|
|
<property name="tooltip_text" translatable="yes">Delete selected snapshot</property>
|
|
<signal name="clicked" handler="on_snapshot_delete_clicked" swapped="no"/>
|
|
<child>
|
|
<object class="GtkImage" id="image11">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="stock">gtk-delete</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">False</property>
|
|
<property name="position">2</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkButtonBox" id="buttonbox1">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="spacing">6</property>
|
|
<property name="layout_style">end</property>
|
|
<child>
|
|
<object class="GtkButton" id="snapshot-apply">
|
|
<property name="label">gtk-apply</property>
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="receives_default">True</property>
|
|
<property name="has_tooltip">True</property>
|
|
<property name="tooltip_markup" translatable="yes">Save updated snapshot metadata</property>
|
|
<property name="tooltip_text" translatable="yes">Save updated snapshot metadata</property>
|
|
<property name="use_stock">True</property>
|
|
<signal name="clicked" handler="on_snapshot_apply_clicked" swapped="no"/>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</interface>
|