|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 6144 (0x1800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Do_Backup, seg_0127f7
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Daemon;
with Io;
with Log;
with Message;
with Profile;
with Scheduler;
with System_Backup;
with Time_Utilities;
procedure Do_Backup (Variety : System_Backup.Kind := System_Backup.Full;
Starting_At : String := "") is
Delay_For : Duration;
Warning : Duration;
Start_Message : Boolean;
Finish_Message : Boolean;
Got_Snapshot_Info : Boolean := False;
Got_Scheduler_Info : Boolean := False;
Memory_Scheduling : Integer;
Memory_Scheduling_String : constant String := "Memory_Scheduling";
procedure Backup_Finishing (Was_Successful : Boolean) is
begin
if Got_Snapshot_Info then
-- Restore snapshot warning to previous setting
Got_Snapshot_Info := False;
Daemon.Snapshot_Warning_Message (Interval => Warning);
Daemon.Snapshot_Start_Message (Start_Message);
Daemon.Snapshot_Finish_Message (Finish_Message);
end if;
if Got_Scheduler_Info then
-- Restore scheduler settings
Got_Scheduler_Info := False;
Scheduler.Set (Memory_Scheduling_String, Memory_Scheduling);
end if;
end Backup_Finishing;
procedure Backup_Starting (Is_Full : Boolean) is
begin
-- Warn users that backup is starting
if Is_Full then
Message.Send_All ("Starting full system backup");
else
Message.Send_All ("Starting incremental system backup);");
end if;
-- Save current scheduler settings
Memory_Scheduling := Scheduler.Get (Memory_Scheduling_String);
Got_Scheduler_Info := True;
Scheduler.Set (Memory_Scheduling_String, 0); -- turn off scheduling
-- Save current snapshot settings and turn off snapshot warnings.
Daemon.Get_Snapshot_Settings (Warning, Start_Message, Finish_Message);
Got_Snapshot_Info := True;
Daemon.Snapshot_Warning_Message (Interval => 0.0);
Daemon.Snapshot_Start_Message;
end Backup_Starting;
procedure Backup is new System_Backup.Backup_Generic
(Backup_Starting, Backup_Finishing);
begin
if Starting_At'Length > 0 then
begin
Delay_For := Time_Utilities.Duration_Until
(Time_Utilities.Value (Starting_At));
exception
when others =>
Log.Put_Line ("Invalid starting time value given.",
Kind => Profile.Error_Msg);
return;
end;
end if;
-- Do the backup
Backup (Variety => Variety, Wait_Until => Starting_At);
-- Take snapshot to make full backups official; i.e. allow differentials
Daemon.Run ("Snapshot");
exception
when others =>
Io.Put_Line (Io.Current_Error,
"Backup failed with an unhandled exception.");
Backup_Finishing (False);
end Do_Backup;
nblk1=5
nid=0
hdr6=a
[0x00] rec0=1f rec1=00 rec2=01 rec3=044
[0x01] rec0=1b rec1=00 rec2=05 rec3=032
[0x02] rec0=01 rec1=00 rec2=02 rec3=044
[0x03] rec0=1e rec1=00 rec2=03 rec3=06e
[0x04] rec0=03 rec1=00 rec2=04 rec3=000
tail 0x2170e4de882b080821326 0x42a00088462065003