|
|
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 Build_Training_Users, seg_029011
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Archive;
with Debug_Tools;
with Directory_Tools;
with Log;
with Operator;
with Profile;
with String_Utilities;
procedure Build_Training_Users (First_User_Number : in Positive := 1;
Last_User_Number : in Positive;
Username_Prefix : in String := "Pdm";
Response : in String := "<PROFILE>") is
package Naming renames Directory_Tools.Naming;
package Object renames Directory_Tools.Object;
Old_Response_Profile : Profile.Response_Profile := Profile.Get;
Current_Response_Profile : Profile.Response_Profile :=
Profile.Value (Response);
function Capitalize (A_String : String) return String
renames String_Utilities.Capitalize;
procedure Closing_Message_For_Errors is
begin
Log.Put_Line
("[Finished building training users -- Error(s) detected]");
Profile.Set (Old_Response_Profile);
end Closing_Message_For_Errors;
function Current_Library (Of_Object : String) return String is
All_Objects : Object.Iterator := Naming.Resolution (Of_Object);
An_Object : Object.Handle;
begin
An_Object := Object.Value (All_Objects);
return Naming.Unique_Full_Name (An_Object);
end Current_Library;
begin
-- set up the response profile and log the command line
--
Profile.Set (Current_Response_Profile);
Log.Put_Line ("[Build_Training_Users (First_User_Number => " &
String_Utilities.Number_To_String (First_User_Number) &
", Last_User_Number => " &
String_Utilities.Number_To_String (Last_User_Number) &
", Username_Prefix => """ & Username_Prefix &
""", Response => """ & Response & """);]",
Profile.Auxiliary_Msg);
declare
Context : constant String := Capitalize (Current_Library ("$"));
Course : constant String :=
Capitalize (Naming.Simple_Name (Naming.Prefix (Context)));
Master_Full_Pathname : constant String :=
Capitalize ("!Users." & Course & "_Master");
begin
Operator.Enable_Privileges (Enable => True);
if Operator.Privileged_Mode /= True then
Log.Put_Line
("You must have operator capability to create training users",
Profile.Error_Msg);
Closing_Message_For_Errors;
return;
end if;
if First_User_Number > Last_User_Number then
Log.Put_Line
("The First_User_Number must be 'less than' or 'equal to' the Last_User_Number",
Profile.Error_Msg);
Closing_Message_For_Errors;
return;
end if;
for User_Count in First_User_Number .. Last_User_Number loop
declare
User_Number : constant String :=
String_Utilities.Number_To_String (User_Count);
User_Name : constant String :=
Username_Prefix & "_" & User_Number;
Users_Full_Pathname : constant String :=
Capitalize ("!Users." & User_Name);
begin
Operator.Create_User (User => User_Name,
Password => User_Name,
Volume => 0,
Response => "<PROFILE>");
Archive.Restore
(Objects => "?",
Use_Prefix => Users_Full_Pathname,
For_Prefix => Master_Full_Pathname,
Options =>
"R1000, PROMOTE, PRIMARY, BECOME_OWNER, WORLD_ACL=(Network_Public => RWCOD), DEFAULT_ACL=(Network_Public => RW), OBJECT_ACL=(Network_Public => RW)",
Device => Context,
Response => "<PROFILE>");
Log.Put_Line ("Completed building training user " & User_Name,
Profile.Positive_Msg);
end;
end loop;
Log.Put_Line ("[Finished building training users -- Examine the log]");
Profile.Set (Old_Response_Profile);
end;
exception
when others =>
Log.Put_Line ("Encountered an unexpected exception: " &
Debug_Tools.Get_Exception_Name, Profile.Exception_Msg);
Closing_Message_For_Errors;
end Build_Training_Users;
nblk1=5
nid=0
hdr6=a
[0x00] rec0=1e rec1=00 rec2=01 rec3=00a
[0x01] rec0=17 rec1=00 rec2=02 rec3=090
[0x02] rec0=1b rec1=00 rec2=03 rec3=05a
[0x03] rec0=12 rec1=00 rec2=04 rec3=022
[0x04] rec0=11 rec1=00 rec2=05 rec3=000
tail 0x217226d1483c56fa97f63 0x42a00088462060003