|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 3609 (0xe19)
Types: TextFile
Names: »B«
└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13
└─⟦124ff5788⟧ »DATA«
└─⟦this⟧
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
└─⟦129cab021⟧ »DATA«
└─⟦6d381756c⟧
└─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16
└─⟦6f12a12be⟧ »DATA«
└─⟦6d381756c⟧
└─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04
└─⟦d65440be7⟧ »DATA«
└─⟦6d381756c⟧
└─⟦this⟧
└─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16
└─⟦6f12a12be⟧ »DATA«
└─⟦this⟧
with Io;
with Log;
with Profile;
with Program;
with Calendar;
with Debug_Tools;
with Simple_Status;
with Io_Exceptions;
with String_Utilities;
with System_Utilities;
with Remote_Operations;
procedure Run_Cmd (On_Host : String := ""; Id : Integer; Depth : Natural) is
package Su renames String_Utilities;
package Ro renames Remote_Operations;
Max_Seconds : constant := 360;
Context : Ro.Context;
Status : Ro.Error_Status;
function Log_File return String is
begin
return On_Host & '_' & Su.Strip (Integer'Image (Id)) &
'_' & Su.Strip (Natural'Image (Depth));
end Log_File;
function Job_Image return String is
begin
return "Run_Cmd (On_Host => """ & On_Host &
""", Id =>" & Integer'Image (Id) &
", Depth =>" & Natural'Image (Depth - 1) & ')';
end Job_Image;
function Pseudo_Random (Kind : String) return Duration is
A_Number : Long_Integer;
Ignored : Long_Integer;
Result : Long_Integer;
begin
-- Processor_Manager.Get_Time_Info (Time_Since_Ipl => A_Number,
-- Time_Of_Ipl => Ignored,
-- Ticks_Per_Second => Ignored);
A_Number := Long_Integer
(Calendar."-" (Calendar.Clock,
System_Utilities.System_Up_Time));
Result := A_Number mod Max_Seconds;
Log.Put_Line ("Delay for " & Kind & " is" &
Long_Integer'Image (Result) & " seconds",
Kind => Profile.Note_Msg);
Log.Flush;
return Duration (Result);
end Pseudo_Random;
procedure Check (Status : Ro.Error_Status) is
begin
if Simple_Status.Error (Status) then
Log.Put_Condition (Status);
Log.Flush;
raise Profile.Error;
else
Log.Flush;
end if;
end Check;
procedure Spawn_Child is
begin
if Depth > 0 then
Program.Run_Job (S => Job_Image,
After => Pseudo_Random ("job start"));
end if;
end Spawn_Child;
begin
loop
begin
Log.Set_Output (Log_File);
exit;
exception
when Io_Exceptions.Use_Error =>
delay 1.0;
end;
end loop;
Ro.Acquire (A_Context => Context,
Status => Status,
Machine => On_Host,
Instance => "");
Check (Status);
Ro.Execute (Command => "pwd",
In_Context => Context,
Status => Status,
Timeout => Remote_Operations.Wait_Forever);
Check (Status);
Ro.Execute (Command => "ls -alg",
In_Context => Context,
Status => Status,
Timeout => Remote_Operations.Wait_Forever);
Check (Status);
Ro.Execute (Command => "ps -ax",
In_Context => Context,
Status => Status,
Timeout => Remote_Operations.Wait_Forever);
Check (Status);
Ro.Release (A_Context => Context,
Status => Status,
Idle_Timeout => Remote_Operations.Default);
Check (Status);
Spawn_Child;
delay Pseudo_Random ("termination");
exception
when Profile.Error =>
Spawn_Child;
when others =>
Log.Put_Line ("Got unexpected exception " &
Debug_Tools.Get_Exception_Name (Machine_Info => True),
Kind => Profile.Exception_Msg);
end Run_Cmd;