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: ┃ T V ┃
Length: 22415 (0x578f) Types: TextFile Names: »V«
└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3 └─ ⟦fc9b38f02⟧ »DATA« └─⟦9b46a407a⟧ └─⟦12c68c704⟧ └─⟦this⟧ └─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS └─ ⟦91c658230⟧ »DATA« └─⟦458657fb6⟧ └─⟦220843204⟧ └─⟦this⟧
with Machine; package Archive is procedure Save (Objects : String := "<IMAGE>"; Options : String := "R1000"; Device : String := "MACHINE.DEVICES.TAPE_0"; Response : String := "<PROFILE>"); -- Save a set of objects (files, Ada units, etc.) to a tape or directory -- such that they may be restored to their original form at a later time -- or on another system. -- The Objects parameter specifies the primary objects to be saved. It -- can be any naming expression. By default, the current image is saved -- unless there is a selection on that image, in which case the selected -- object is saved. Normally, the specified object(s) and all contained -- objects are archived; this feature can be disabled. -- The Options parameter specifies the type of tape to be written and -- options to control what is saved. The Options parameter for each of -- the Archive operations is written as a sequence of option -- names separated by spaces or commas. Options with arguments are -- given as an option name followed by an equal sign followed by a -- value. --------------------------------------------------------------------------- -- The save options are: -- -- FORMAT = R1000 | R1000_LONG | ANSI -- R1000 -- Writes an ANSI tape with the data file followed by the index -- file. The images of the objects being saved are written -- directly to the tape. This is the default. -- R1000_LONG -- like R1000 format but the data file is written to one ANSI tape -- and the index file to a second ANSI tape. -- ANSI -- Writes the data to a temporary file and then writes both index -- and data file to a tape using ANSI tape facilities. -- LABEL=(<any balanced string>) -- An identifying string written at the head of the archived data. -- The label parameter allows the user to specify a string that -- will be put at the front of the index file. When a restore is -- done the label specified to the restore procedure will be -- checked against the one on the save tape. -- NONRECURSIVE -- Save only the objects resolved to by the Objects parameter. Do -- not recursively save objects that are inside of other objects. -- The default is to save the objects mentioned in the Objects -- parameter and all objects contained in them. -- To save a world and a subset of its contents one can say: -- Save (Objects => "[!FOO?,~!FOO.ABC?,~!FOO.DEF?]", ..., -- Options => "R1000 NONRECURSIVE"); -- AFTER=<time_expression> -- Only objects changed after the time represented by -- <time_expression> will be archived. The <time_expression> -- should be acceptable to the time_utilities.value function. -- STARTING_AT=<time_expression> -- the archive will delay until the given time -- (after the mount request has been processed). -- EFFORT_ONLY -- The EFFORT_ONLY option causes a list to be printed of the names -- of the units that would be saved if the archive command -- was given with this set of parameters. -- CODE [=load_proc_list] -- The CODE option specifies that code is to be archived for the -- named load procs. If no specification follows the -- CODE option, the Objects parameter specification is used -- instead. -- COMPATIBILITY_DATABASE (CDB) [=<Subsystems>] -- Causes the full compatibility database for each subsystem -- specified to be archived. If no subsystems are specified with -- the option, the Objects parameter specification is used instead. -- When Ada units in a subsystem are archived, the relevant -- portions of the subsystem Compatibility Database is -- automatically archived with them. Therefore, this option is -- required only in special situations, primarily when one needs to -- "sync up" a primary and a secondary subsystem. -- To archive just Compatibility Databases, use -- Save ("Subsystems", "CDB"); -- To archive compatibility databases with other objects, use -- Save ("Other Stuff", "CDB=Subsystems"); -- The "Subsystems" and "Other Stuff" specifications will usually -- describe disjoint sets of objects. -- IGNORE_CDB -- Specifies that no compatibility database information is to be -- saved. -- LINKS [=<worlds>] -- Causes only the link pack for each world specified to be archived. -- If no worlds are specified with the option, the Objects -- parameter specification is used instead. -- PREFIX=<naming pattern> -- A naming pattern that is saved with the archived objects, which -- can be recalled as the For_Prefix when the data is Restored. -- When set to an appropriate value, the restorer need not know -- exactly the names of the archived objects to be able to restore -- them to a new place. If this option is not given, the value -- used is derived from the Objects parameter. -- UNLOAD -- A boolean option. When True (the default), causes the tape to -- be rewound and unloaded after the operation is complete. When -- False, this option causes the tape to be rewound to the beginning -- and to remain online and available for subsequent requests. -- When the tape is left online, subsequent requests send a tape- -- mount request to the operator's console, which must be answered -- before the tape can be accessed. -- For downward compatibility the following options are provided. -- -- DELTA0 -- write a tape which can be read on a delta0 system. -- -- DELTA1 -- write a tape which can be read on a delta1 system. -- -- VERSION=<archive_version_number> -- write a tape that can be read by a version of source -- earlier than the current one. The argument is a three digit -- integer. For example, version=440. -- The Device parameter can be set to the name of a directory. In this -- case the index and data files are written to that directory. The -- tape format option is irrelevant in this case. --------------------------------------------------------------------------- procedure Restore (Objects : String := "?"; Use_Prefix : String := "*"; For_Prefix : String := "*"; Options : String := "R1000"; Device : String := "MACHINE.DEVICES.TAPE_0"; Response : String := "<PROFILE>"); -- Restore an object or a set of objects from an Archive Tape. -- If the archive is on a tape then the tape format option given to -- Restore should be the same as that given during the save. If the -- archive is in a directory then the device parameter on the restore -- should be set to that directory. -- The Objects parameter may be any wildcard pattern specifying the -- objects to be restored. -- -- For example: -- !USERS.FOO.CLI.TEST -- [!USERS.FOO.TESTS.@, !USERS.FOO.LOGS.ABC] -- The pattern in the Objects parameter is compared against the full -- names of the saved objects. The objects whose names match the Objects -- parameter specification are restored. If the name denotes an Ada -- unit all of its parts are restored from the tape. If the name denotes -- a world or directory all of its subcomponents are restored. -- The Use_Prefix and For_Prefix parameters provide a simple means for -- changing the names of the archived objects when they are restored. -- If the Use_Prefix is the special default value, "*", the For_Prefix -- is ignored and the objects are restored using the names they had when -- they were saved. -- If the Use_Prefix is not "*", it must specify the name of an object -- into which the archived objects can be restored. The name for a -- restored object is derived from the name of the archived object by -- replacing the shortest portion of the name matched by the For_Prefix -- with the value of the Use_Prefix. If the For_Prefix is "*" the -- archived objects are restored using the Default_Prefix stored with -- the archived data. -- For example: -- -- Restore (Objects => "!A.B.C.D.E", -- Use_Prefix => "!X.Y", -- For_Prefix => "!A.B.C"); -- -- will restore to !X.Y.D.E. -- The For_Prefix may contain wildcard characters (#, @, ?) and the -- Use_Prefix parameter may contain substitution characters (@ or # only). -- For example: -- -- Restore (Objects => "[!A.B.TEST1, !D.E.F.TEST2]" -- For_Prefix => "?.@" -- Use_Prefix => "!C.D.@"); -- -- will restore to !C.D.TEST1 and !C.D.TEST2 -- If the object named by the prefix of the target name of an object -- being restored doesn't exist, that object will be created as a set of -- nested libraries. So, for example, if the For_Prefix is !A.B and the -- unit being restored is then !A.B.X.Y.Z and ...X.Y hasn't been saved on -- the tape then !A, !A.B, !A.B.X, !A.B.X.Y will be created. --------------------------------------------------------------------------- -- The following options are allowed in the Options parameter: -- -- FORMAT and LABEL -- as in the save option. -- NONRECURSIVE -- prevents subcomponents of libraries and Ada units from being -- implicitly restored. for example: -- Archive.Restore -- (Objects => "[!USERS.FOO, !USERS.FOO.CLI, !USERS.FOO.CLI.@]", -- Options => "R1000 NONRECURSIVE"); -- will restore only the named objects and not their substructure. -- ALL_OBJECTS -- All specified objects are restored. This is the default. -- NEW_OBJECTS -- Only specified objects that don't already exist on the target -- machine are restored. -- UPDATED_OBJECTS -- Only specified objects that already exists on the target are -- restored, but only if the update time of the archived object -- is greater than the update time on the target object. -- CHANGED_OBJECTS -- Restore both new and updated Objects. -- EXISTING_OBJECTS -- Only specified objects that already exists on the target -- are restored. -- DIFFERENT_OBJECTS -- Only specified objects that already exists on the target -- and have a different update time from the archived object are -- restored. -- REPLACE -- Given an object that is being restored that already exists -- on the target, this option will cause the restore operation -- (1) to unfreeze the target object if it is frozen. -- (2) If the target object is an installed or coded Ada unit -- with clients, it is demoted to source using Compilation. -- Demote with the "<ALL_WORLDS>" parameter. -- Any frozen dependents will be unfrozen. -- (3) if the parent library into which an object is being -- restored is frozen, the parent will be unfrozen to restore -- the object then refrozen. -- PROMOTE -- After they are restored, any Ada units will be promoted to the -- state they were in when they were archived. -- REMAKE [=NO_MAINS] -- Like the promote option with the further effect that -- any objects outside the restore set which were demoted -- because the replace option was given will be repromoted. -- If no_mains is specified dependent main programs will not -- be recoded. -- GOAL_STATE = ARCHIVED | SOURCE | INSTALLED | CODED -- Specify that all ada objects restored should (if possible) -- end up in the given state. -- EFFORT_ONLY -- Show what would be restored if restore is run with this -- set of parameters. -- CODE [=load_proc_list>] -- Specifies that just the Code Archive Object for the named -- load_procs are to be restored. This option is needed only when -- it is desired to restore a Code Archive Object from an archive -- that also contains the spec for that load_proc, which is not -- to be restored. -- COMPATIBILITY_DATABASE, (CDB) [=<Subsystems>] -- Specifies that the Compatibility Databases for just the named -- subsystems are to be restored. -- IGNORE_CDB -- Specifies that no compatibility information is to be restored. -- LINKS [=<worlds>] -- specifies that just the link packs for the named worlds are to -- be restored. if no argument is given all link packs of all worlds -- on the tape are restored. -- PRIMARY -- restore the compatibility database as a primary, rather than as a -- secondary (which is the default). -- REVERT_CDB -- allow the compatibility database to be overwritten by the values -- in the restore. -- OBJECT_ACL=<acl_value> -- WORLD_ACL=<acl_value> -- DEFAULT_ACL=<acl_value> -- Specifies the Access Control List for restored objects -- (OBJECT_ACL) and worlds (WORLD_ACL) and the default ACL for -- restored worlds (DEFAULT_ACL). -- The value is either an ACL specification or one of the special -- values RETAIN, ARCHIVED, INHERIT. -- - RETAIN means to set the final acl of an already existing object -- to the value it had before the restore. If the object doesn't -- exist the archived acl value will be used. This is the default. -- - ARCHIVED means to use the ACL archived with the object. -- - INHERIT means to use the standard inheritence rules for new -- versions of objects. -- BECOME_OWNER -- Modify the ACL of all restored objects such that the restorer -- becomes the owner of the restored object. -- TRAILING_BLANKS=integer -- Specifies the number of trailing blanks which are to be -- considered significant when parsing ada units during the -- restore. If a line ends in more than this number of blanks, -- the line break will be preserved in the image of the restored -- ada unit. The default is 2. -- UNCONTROL -- specifies that controlled objects which are checked in -- will be made uncontrolled before being overwritten. -- objects will be recontrolled at the end of the archive. -- only valid if the replace option is also given. -- REQUIRE_PARENTS -- require that the parent context for a unit to be restored -- already exists. default is false. -- VOLUME -- specifies which volume archive is to create worlds on. -- VERBOSE -- Specifies that extra log messages are to be generated describing -- more fully the steps of the restore process. -- UNLOAD -- A boolean option. When True (the default), causes the tape to -- be rewound and unloaded after the operation is complete. When -- False, this option causes the tape to be rewound to the beginning -- and to remain online and available for subsequent requests. -- When the tape is left online, subsequent requests send a tape- -- mount request to the operator's console, which must be answered -- before the tape can be accessed. --------------------------------------------------------------------------- procedure List (Objects : String := "?"; Options : String := "R1000"; Device : String := "MACHINE.DEVICES.TAPE_0"; Response : String := "<PROFILE>"); -- Produce a listing of the names of the objects on an Archive tape. -- The Objects parameter specifies the objects to be listed. Wildcards -- are permitted, so if Objects = "?", the default, then all Objects are -- listed. -- The Options parameters are: -- FORMAT and LABEL -- as in the Save options. -- NONRECURSIVE -- don't list items on tape which are subcomponents of objects -- selected by first paramater. --------------------------------------------------------------------------- procedure Copy (Objects : String := "<IMAGE>"; Use_Prefix : String := "*"; For_Prefix : String := "*"; Options : String := ""; Response : String := "<PROFILE>"); -- Copy objects from one location to another, including between -- machines on the same network. -- The Objects parameter specifies where the objects are to be gotten -- from as in an Archive.Save. -- The Objects and Use_prefix parameters consist of an (optional) -- machine name followed directly by an objects name. -- A machine name has the form !!name. -- Example: -- !!machine1!users.foo -- Another acceptable way to say the same thing is !!machine1.users.foo -- -- The machine name on the objects parameter specifies the source machine. -- The machine name on the use prefix specifies the destination machine. -- If either machine is the one on which the command is being given -- it is not necessary to give the machine name. -- The non-machine name part of the Objects parameter is a name like that -- given to the save operation. -- -- The Use_Prefix/For_Prefix parameters specify where the objects -- are to go as in Archive.Restore. -- If the Use_Prefix parameter is "*" or just a machine name, then the -- source Objects are moved to the same place on the destination machine -- as specified by the source. The For_Prefix parameter is ignored. -- If neither Objects nor Use_Prefix have a machine name then the -- objects are copied from the source to the Use_Prefix on the -- current machine. -- -- If it is desired to transfer the same set of objects to multiple -- targets in the same command a set of target names can be -- specified as the use_prefix in one of the following two ways. -- The use prefix can be of the form: -- [use_prefix1, ..., use_prefixn]<optional_naming_expression> -- examples: -- archive.copy (..., use_prefix => "[m1,m2]", ...); -- archive.copy (..., use_prefix => "[m1,m2,m3]!users.foo", ...); -- -- The use prefix can be of the form: -- _filename<optional_naming_expression_beginning_with_!> -- The filename should contain a list of use_prefix's, one per line. -- examples: -- archive.copy (... use_prefix => "_targets", ...); -- archive.copy (... use_prefix => "_targets!users.foo", ...); -- where targets is a text file containing (e.g) -- m1 -- m2 -- -- In both of the above cases the leading !! in machine names is optional. --------------------------------------------------------------------------- -- The Options parameter has the following options. -- -- AFTER, CODE, CDB, LINKS, IGNORE_CDB -- NONRECURSIVE, EFFORT_ONLY -- as in the save operation. -- -- ALL_OBJECTS, NEW_OBJECTS, UPDATED_OBJECTS, CHANGED_OBJECTS, -- EXISTING_OBJECTS, DIFFERENT_OBJECTS -- PROMOTE, REPLACE, UNCONTROL, REMAKE, GOAL_STATE, -- PRIMARY, REVERT_CDB, REQUIRE_PARENTS, VOLUME -- BECOME_OWNER, OBJECT_ACL, WORLD_ACL, DEFAULT_ACL -- VERBOSE -- as in the restore operation. -- ENABLE_PRIVILEGES -- cause the archive server (and the copy job) to attempt to -- enable_privileges. --------------------------------------------------------------------------- -- Examples of calls: -- -- Copy (Objects => "!USERS.JMK.CLI", -- Use_Prefix => "!!M1"); -- -- will copy the CLI directory in !USERS.JMK on the -- current machine to machine M1 !USERS.JMK.CLI. -- -- Copy (Objects => "!!M2!USERS.OLLIE.CLI"); -- -- will copy !USERS.OLLIE.CLI on M2 to !USERS.OLLIE.CLI on the -- current machine. -- -- Copy (Objects => "!!M3!USERS.JMK.CLI.CMD", -- Use_Prefix => "!USERS.OLLIE", -- For_Prefix => "!USERS.JMK.CLI"); -- -- will copy the file !USERS.JMK.CLI.CMD on M3 to -- !USERS.OLLIE.CMD on the current machine. -- note when repositioning Objects it is necessary to give a -- for_prefix which is a prefix of the Objects part of the -- source parameter. -- -- Copy (Objects => "!!M1!USERS.JMK.ILFORD", -- Use_Prefix => "!!M2!AGFA", -- For_Prefix => "!USERS.JMK"); -- -- will copy !USERS.JMK.ILFORD from machine M1 to -- machine M2 !AGFA!ILFORD -- -- Copy (Objects => "!USERS.JMK.CLI", -- Use_Prefix => "!!M1", -- Options => "REPLACE AFTER=12/25/86"); -- -- will copy those files which have changed since 12/25/86 in -- !USERS.JMK.CLI on the current machine to machine M1 !USERS.JMK.CLI -- Any existing files with the same names will be overwritten. --------------------------------------------------------------------------- procedure Server; -- start the archive server; procedure Status (For_Job : Machine.Job_Id); -- Prints information about the status of the Archive job specified. -- Can be the job number of an Archive Server or of a job running -- Archive.Copy, Archive.Restore, or Archive.Save. pragma Subsystem (Archive); pragma Module_Name (4, 3546); end Archive;