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 - downloadIndex: ┃ S T ┃
Length: 17339 (0x43bb) Types: TextFile Names: »STEPS«
└─⟦bfaa708f6⟧ Bits:30000531 8mm tape, Rational 1000, INSIGHT 1_3_0 └─ ⟦c51948655⟧ »DATA« └─⟦this⟧
INSTALL_INSIGHT => (Do_Step("AUTHORIZATION_CHECK, RELEASE_RESTORE, INSTALL_PRODUCT, RESTORE_NOTES, RECORD_INSTALLATION", "!Machine.Release.Archive.Insight.Release1_3_0.Command_Data.Steps");) AUTHORIZATION_CHECK => ( declare subtype Bogus is Natural range 0 .. 1; package Pp is new Parameter_Parser (Bogus); Iter : Pp.Iterator := Pp.Parse ("CMVC, CMVC.Source_Control,Insight"); Token_Iter : Pp.Iterator := Pp.Parse ("Insight"); Error : Natural := 0; function Product_Name (Iter : Pp.Iterator) return String is begin if String_Utilities.Equal (Pp.Name (Iter), "NAME") then return Pp.Get_Image (Iter); else return Pp.Name (Iter); end if; end Product_Name; begin while not Pp.Done (Iter) loop declare Name : constant String := Product_Name (Iter); begin if "!Implementation".Product_Authorization.Is_Registered (Name) then Log.Put_Line (Name & " is authorized", Profile.Positive_Msg); else Log.Put_Line ("Need to Authorize " & Name, Profile.Error_Msg); Error := Error + 1; end if; end; Pp.Next (Iter); end loop; if Error /= 0 then Log.Put_Line ("Do not proceed until all these products have been authorized", Profile.Error_Msg); Do_Step ("PROMPT=AUTHORIZE_PRODUCT"); end if; if Get_Site /= "" and then not Pp.Done (Token_Iter) then Error := 0; Log.Put_Line ("Checking Token Count"); declare Limit, Current, Buy_Out : Natural; begin while not Pp.Done (Token_Iter) loop "!Machine.Release.Archive.Insight.Release1_3_0.Command_Data". Token_Information (Product_Name (Token_Iter), Limit, Buy_Out, Current); if Limit = 0 then Error := Error + 1; Log.Put_Line ("No tokens (sessions) for " & Product_Name (Token_Iter) & " have been authorized. Do not proceed until you have authorized tokens for this product", Profile.Error_Msg); elsif (Buy_Out /= Current) and Current = Limit then Log.Put_Line ("Tokens (Sessions) have been authorized for " & Product_Name (Token_Iter) & ", but all are in use", Profile.Error_Msg); Log.Put_Line ("Have users which are using these tokens log off (and then back on) before continuing", Profile.Error_Msg); Show_Tokens (Product_Filter => Product_Name (Token_Iter)); else Log.Put_Line (Product_Name (Token_Iter) & " has available tokens", Profile.Positive_Msg); end if; Pp.Next (Token_Iter); end loop; if Error /= 0 then Do_Step ("PROMPT=AUTHORIZE_TOKEN"); end if; end; else Log.Put_Line ("Machine has not been configured for per session pricing (product tokens)." & " Skipping product token check"); end if; end; ) RELEASE_RESTORE => ( Io.Set_Output ("!Machine.Release.Archive.Insight.Release1_3_0.Logs.Restore_Release_Log"); Archive.Restore (Options => "promote replace", Device => "!Machine.Release.Archive.Insight.Release1_3_0.Release"); Io.Reset_Output; Log.Filter_Errors (Log_File => "!Machine.Release.Archive.Insight.Release1_3_0.Logs.Restore_Release_Log", Destination => "!Machine.Release.Archive.Insight.Release1_3_0.Logs.Restore_Release_Log_Summary", Auxiliaries => False, Warnings => False, Exceptions => True); Common.Definition ("!Machine.Release.Archive.Insight.Release1_3_0.Logs.Restore_Release_Log_Summary"); ) INSTALL_PRODUCT => ( Library.Context (To_Be => "!Machine.Release.Insight.Release1_3_0"); System_Utilities.Set_Page_Limit (16_000); Io.Set_Output ("!Machine.Release.Archive.Insight.Release1_3_0.Logs.Install_Product_Log"); "!Machine.Release.Archive.Insight.Release1_3_0.Command_Data".Insight_Buyout; "!Machine.Release.Insight.Release1_3_0".R1000_Install; Io.Reset_Output; Log.Filter_Errors (Log_File => "!Machine.Release.Archive.Insight.Release1_3_0.Logs.Install_Product_Log", Destination => "!Machine.Release.Archive.Insight.Release1_3_0.Logs.Install_Product_Log_Summary", Auxiliaries => False, Warnings => False, Exceptions => True); Common.Definition ("!Machine.Release.Archive.Insight.Release1_3_0.Logs.Install_Product_Log_Summary"); ) CHECK_ENVIRONMENT => ( declare Env_Release : String (1 .. 50); Length : Natural; File_Handle : Text_Io.File_Type; begin Text_Io.Open (File => File_Handle, Mode => Text_Io.In_File, Name => "!Machine.Release.Environment.Current", Form => ""); Text_Io.Get_Line (File => File_Handle, Item => Env_Release, Last => Length); Text_Io.Close (File => File_Handle); if (System_Utilities.System_Boot_Configuration /= Env_Release (Env_Release'First .. Length)) then Text_Io.Create (File => File_Handle, Mode => Text_Io.Out_File, Name => "!Machine.Release.Environment.Current", Form => ""); Text_Io.Put_Line (File_Handle, System_Utilities.System_Boot_Configuration); Text_Io.Close (File_Handle); end if; end; ) ACTIVITY_UPDATE => ( Log.Put_Line ("Updating System Activity for Insight_Commands"); Activity.Create (The_Activity => "!machine.temporary.activity", Source => Activity.Nil, Mode => Activity.Exact_Copy, Response => "<ERRORS>"); Activity.Add (Subsystem => "!Tools.Design.Insight.Insight_Commands", Load_Value => "Code1_3_0", Spec_Value => "Rev1_2_Spec", The_Activity => "!Machine.Temporary.Activity", Mode => Activity.Exact_Copy, Response => "<ERRORS>"); Activity.Merge (Source => "!Machine.Temporary.Activity", Subsystem => "?", Spec_View => "?", Load_View => "?", Mode => Activity.Exact_Copy, Target => "!Machine.Release.Current.Activity", Response => "<ERRORS>"); Lib.Delete (Existing => "!Machine.Temporary.Activity", Limit => "<DIRECTORIES>", Response => "<ERRORS>"); ) RESTORE_NOTES => ( Io.Set_Output ("!Machine.Release.Archive.Insight.Release1_3_0.Logs.Restore_Notes_Log"); Archive.Restore (Options => "Replace", Device => "!Machine.Release.Archive.Insight.Release1_3_0.Release_Notes"); Io.Reset_Output; Log.Filter_Errors (Log_File => "!Machine.Release.Archive.Insight.Release1_3_0.Logs.Restore_Notes_Log", Destination => "!Machine.Release.Archive.Insight.Release1_3_0.Logs.Restore_Notes_Log_Summary", Auxiliaries => False, Warnings => False, Exceptions => True); Common.Definition ("!Machine.Release.Archive.Insight.Release1_3_0.Logs.Restore_Notes_Log_Summary"); ) RESTORE_TESTS => ( Io.Set_Output ("!Machine.Release.Archive.Insight.Release1_3_0.Logs.Restore_Tests_Log"); Archive.Restore (Options => "Promote, Replace", Device => "!Machine.Release.Archive.Insight.Release1_3_0.Tests"); Io.Reset_Output; Log.Filter_Errors (Log_File => "!Machine.Release.Archive.Insight.Release1_3_0.Logs.Restore_Tests_Log", Destination => "!Machine.Release.Archive.Insight.Release1_3_0.Logs.Restore_Tests_Log_Summary", Auxiliaries => False, Warnings => False, Exceptions => True); Common.Definition ("!Machine.Release.Archive.Insight.Release1_3_0.Logs.Restore_Tests_Log_Summary"); ) RECORD_INSTALLATION => ( declare Product : constant String := Directory_Tools.Naming.Simple_Name (Directory_Tools.Naming.Full_Name ("^")); Release : constant String := Directory_Tools.Naming.Simple_Name (Directory_Tools.Naming.Full_Name ("$")); Product_Info : constant String := "(RELEASE => " & Release & ", DATE => (" & Time_Utilities.Image (Time_Utilities.Get_Time, Time_Utilities.Year_Month_Day) & "), USER => " & System_Utilities.User_Name & '.' & System_Utilities.Session_Name & ")"; Product_Filename : constant String := "!Machine.Release.Current.Products"; F : Io.File_Type; begin Log.Put_Line ("Allowing unlimited logins", Profile.Positive_Msg); Operator.Limit_Login; Io.Append (F, Name => Product_Filename); Io.Put_Line (F, Product & " => " & Product_Info); Io.Close (F); Log.Put_Line ("Recording product " & Product & " current release as " & Release, Profile.Positive_Msg); end; ) SHUTDOWN_SYSTEM => ( declare use Editor, Text, Common; Current_Terminal_Type : constant String := System_Utilities.Terminal_Type; begin -- check to see if we are using old or new style initialization if not Directory_Tools.Object.Is_Ok (The_Object => Directory_Tools.Naming.Resolution (("!Machine.Initialization.Rational"))) then if Directory_Tools.Ada_Object."=" (Directory_Tools.Ada_Object.State ("!machine.initialize'body"), Directory_Tools.Ada_Object.Coded) then -- !Machine.initialize'body is coded, let's check keymaps if Directory_Tools.Ada_Object."=" (Directory_Tools.Ada_Object.State ("!machine.editor_data.rational_commands'body"), Directory_Tools.Ada_Object.Coded) or Directory_Tools.Ada_Object."=" (Directory_Tools.Ada_Object.State ("!machine.editor_data.rational_commands'body"), Directory_Tools.Ada_Object.Installed) then -- rational_commands'body is installed or coded if Directory_Tools.Ada_Object."=" (Directory_Tools.Ada_Object.State ("!machine.editor_data.facit_commands'body"), Directory_Tools.Ada_Object.Coded) or Directory_Tools.Ada_Object."=" (Directory_Tools.Ada_Object.State ("!machine.editor_data.facit_commands'body"), Directory_Tools.Ada_Object.Installed) then -- o.k. facit_commands'body is fine, check the current terminal type. if Directory_Tools.Ada_Object."=" (Directory_Tools.Ada_Object.State ("!machine.editor_data." & Current_Terminal_Type & "_commands'body"), Directory_Tools.Ada_Object.Coded) or Directory_Tools.Ada_Object."=" (Directory_Tools.Ada_Object.State ("!machine.editor_data." & Current_Terminal_Type & "_commands'body"), Directory_Tools.Ada_Object.Installed) then -- o.k. current terminal type is fine, let's shutdown in 5 min. Op.Shutdown_Warning (300.0); Op.Shutdown (Reason => "Release", Explanation => "Install RDF Release1_3_0"); else -- Current terminal type is NOT installed or coded Log.Put_Line (Message => "!Machine.Editor_Data." & Current_Terminal_Type & "_Commands'Body " & "is not INSTALLED or CODED.", Kind => Profile.Error_Msg); end if; else -- Facit commands is NOT installed or coded Log.Put_Line (Message => "!Machine.Editor_Data.Facit_Commands'Body " & "is not INSTALLED or CODED.", Kind => Profile.Error_Msg); end if; else -- rational_commands'body is NOT installed or coded Log.Put_Line (Message => "!Machine.Editor_Data.Rational_Commands'Body " & "is not INSTALLED or CODED.", Kind => Profile.Error_Msg); end if; else -- !Machine.initialize'body is not coded, tell 'em. Log.Put_Line (Message => "!Machine.Initialize is NOT coded. Promote " & "to coded and run this step again", Kind => Profile.Error_Msg); end if; else Op.Shutdown_Warning (300.0); Op.Shutdown (Reason => "Release", Explanation => "Install Insight Release1_3_0"); end if; end; ) CLEAN_UP => ( Library.Destroy ("!Machine.Release.Insight.@", Positive'Last); Library.Destroy ("!Machine.Release.Archive.Insight.@", Positive'Last); Library.Expunge ("!Machine.Release.[Insight,Archive.Insight]"); ) CLEANUP => ( Library.Destroy ("!Machine.Release.Insight.@", Positive'Last); Library.Destroy ("!Machine.Release.Archive.Insight.@", Positive'Last); Library.Expunge ("!Machine.Release.[Insight,Archive.Insight]"); ) AUTHORIZE_PRODUCT => ( "!Implementation".Product_Authorization.Register (Product_Name => ">>Product Name<<", Authorization_Code => ">> Code <<"); ) USERS_CHECK => ( declare Iter : System_Utilities.Session_Iterator; Total : Natural := 0; use System_Utilities; begin Operator.Limit_Login (Sessions => 1); Log.Put_Line ("Limited logins to 1 user", Profile.Positive_Msg); Init (Iter); while not Done (Iter) loop if Value (Iter) /= Get_Session then Log.Put_Line ("User " & User_Name (Value (Iter)) & " is still logged in. Have s/he log off before proceeding", Profile.Warning_Msg); end if; Next (Iter); end loop; end; ) AUTHORIZE_TOKEN => ( Common.Create_Command; Editor.Char.Insert_String ("Accept_Tokens;"); Common.complete; Editor.Search.Previous ("begin"); Editor.Line.End_Of; Editor.Line.Insert; Editor.Char.Insert_String ("Operator.Enable_Privileges;"); Editor.Line.Insert; Editor.Char.Insert_String ("if Operator.Privileged_Mode then "); Editor.Search.Next ("end"); Editor.Line.beginning_Of; Editor.Char.Insert_String ("else"); Editor.Line.Insert; Editor.Char.Insert_String (" Log.Put_Line (Message => ""Failed to enable Privileged mode"", Kind => Profile.Error_Msg, Response => ""<PROFILE>"");"); Editor.Line.Insert; Editor.Char.Insert_string ("end if;"); Editor.Line.Insert; Editor.Image.Beginning_Of; Editor.Cursor.Next; Editor.Char.Insert_string ("Insight"); Editor.Cursor.Next; ) INSTALL_TUTORIAL =>( Io.Set_Output ("!Machine.Release.Archive.Insight.Release1_3_0.Logs.Restore_Tutorial_Log"); Archive.Restore (Options => "changed_objects,promote", Device => "!Machine.Release.Archive.Insight.Release1_3_0.Tutorial"); Io.Reset_Output; Log.Filter_Errors (Log_File => "!Machine.Release.Archive.Insight.Release1_3_0.Logs.Restore_Tutorial_Log", Destination => "!Machine.Release.Archive.Insight.Release1_3_0.Logs.Restore_Tutorial_Log_Summary", Auxiliaries => False, Warnings => False, Exceptions => True); Common.Definition ("!Machine.Release.Archive.Insight.Release1_3_0.Logs.Restore_Tutorial_Log_Summary"); ) STEP_CHECK => ( -- This must remain the last step in the step file and is used -- as a first level verification of the step file parse and -- tape load. Log.Put_Line ("Step File parses correctly", Profile.Positive_Msg); )