Class: OsCtld::Commands::Container::LocalTransfer::Rootfs
- Inherits:
-
Base
- Object
- Commands::Base
- Logged
- Base
- OsCtld::Commands::Container::LocalTransfer::Rootfs
show all
- Defined in:
- lib/osctld/commands/container/local_transfer/rootfs.rb
Instance Method Summary
collapse
Methods inherited from Base
#build_dataset_map, #cleanup_target_container!, #clear_failed_state_snapshot, #complete_target!, #destroy_local_transfer_snapshots, #ensure_target_staged_or_complete!, #find, #force_writeout, #operation, #require_local_transfer_log!, #snapshot_datasets, #snapshot_name, #start_target!, #target_ct, #target_pool, #transfer_dataset, #validate_dataset_layout!
Methods inherited from Logged
#base_execute, #find
Instance Method Details
#execute(ct) ⇒ Object
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/osctld/commands/container/local_transfer/rootfs.rb', line 5
def execute(ct)
manipulate(ct) do
log = ct.exclusively do
ret = require_local_transfer_log!(ct)
error!('invalid local transfer sequence') unless ret.can_local_continue?(:base)
ret
end
target_ct(log)
validate_dataset_layout!(ct)
snap = snapshot_name(:base)
snapshot_datasets(log, snap)
ct.exclusively do
ct.local_transfer_log.snapshots << snap
ct.save_config
end
transfer_rootfs_snapshots(log, snap)
ct.exclusively do
ct.local_transfer_log.state = :base
ct.save_config
end
end
ok
end
|
#transfer_rootfs_snapshots(log, base_snap) ⇒ Object
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/osctld/commands/container/local_transfer/rootfs.rb', line 37
def transfer_rootfs_snapshots(log, base_snap)
from_snapshot = log.opts.from_snapshot
log.opts.datasets.each do |pair|
if from_snapshot
transfer_dataset(pair, from_snapshot)
transfer_dataset(pair, base_snap, from_snapshot:)
else
transfer_dataset(pair, base_snap)
end
end
end
|