Air Commands
Air Commands
air commands are a set of shell commands that allow Technical Repository administrators
and others to create, manage, annotate, back up, and promote technical repositories. Some
shell commands have user-interface equivalents in Ab Initio client applications such as the
Technical Repository Management Console and the GDE.
o Command groups
o Running commands in batch mode
o Deprecated or disabled commands
o Commands with repeatable arguments
export AB_AIR_HOME=/usr/local/abinitio-V-3-1-6
This is often done by specifying this path in your Korn shell .profile script.
Requirement for running air commands
To run an air command you must set the path to the technical repository you are acting on.
You can set the path in the environment before running an air command using the
configuration variable AB_AIR_ROOT. All commands run in this way will act on the
repository set in the environment. You can also set the path on a per-command basis using
the -root root argument to the air utility. The -root argument has precedence over a setting
made in the environment. For more information, see “-root”.
Syntax
All air commands have the following command-line syntax:
Note that tag-name can be the name of a tag or an rtag (an old-style tag).
All air commands can include the optional arguments -root and -version.
-root
-root root specifies the path to the root of the technical repository. In most cases you should
use an absolute pathname — for example, /disk3/data/repo.
export AB_AIR_ROOT=/disk3/data/my_eme
air ls -l
Alternatively, you can specify the repository name on the command line. For example:
The technical repository root can be the URL of a remote file — for
example, //host/projects/warehouse/eme. A remote host can be specified if the repository
and the Co>Operating System are installed on that host and your environment is configured
to allow access to that host by way of the Co>Operating System.
-version
-version version, -version tag-name, and -version date specify the technical repository
version number, tag, or date to be used by the air command.
NOTA:
Do not use -version for commands that write to the technical repository, because versions
of the repository older than the current version are read-only, and the command will fail.
You can also specify the version by setting the AB_AIR_VERSION configuration variable.
For example, to show version 125 of account.dml, type at the command line:
export AB_AIR_VERSION=125
air object cat /Projects/warehouse/dml/account.dml
Assuming that version 125 has been labeled QA-ready, you could alternatively specify the
preceding command as:
If you specify a version number that does not exist for a particular object, the object is
shown as it existed at that version number. For example, assume a given object has three
versions — 5, 12, and 20. You run air cat on that object and specify the version number
as -version 15. Since the contents of the object did not change between versions 12 and 15,
you will see the object as it was checked in at version 12:
If the object is in the tag, the object is accessed at the version specified in the tag.
If the object is not in the tag, the object is accessed at the version at which the tag
was last modified.
For example, the following figure shows mytag. It contains two objects — obj1, tagged at
version 20, and obj2, tagged at version 27. The object obj3 is not included in mytag.
Running air -version mytag object cat obj1 shows the contents of obj1 at version 20, the
version at which it was tagged. However, running the same command on obj3 will show the
contents of obj3 at version 30, the version at which the tag was last modified.
date
The version can be specified as a date and time at which an air command is to access the
technical repository. The version of the repository as of the specified date and time is used.
If there are multiple versions at this date and time, the latest version is used by
the air command you issue.
For example, to see details about graph.mp as of 1:03 p.m. and 5 seconds on May 11, 2016,
type:
For example, assume that the name of the main branch has been changed to dev_eme and
has two child branches: branch1 and branch2 — as shown in the following figure:
With AB_AIR_ROOT set to dev_eme, you can run a command (such as air ls) on any
branch without changing the repository location setting. You need only specify -
branch followed by a branch name:
You can also specify the branch by setting the AB_AIR_BRANCH configuration variable.
To set the branch to branch1, for example, before you run an air command, type at the
command line:
export AB_AIR_BRANCH=branch1
Shortcut
You can specify a branch name in the path argument of any air command by
entering @@ (double at sign) characters followed by the branch name. The @@ notation is
position-independent; you can place it anywhere after the air command. This shortcut can
be useful when performing dependency analysis or a repository unload — for example:
For more detailed information about branching, see “Creating and managing release
branches” in the Technical Repository Guide to Version Control. For a table of branch-
specific commands, see “Commands that are branch-specific or repository-wide”.
-search-index
-search-index runs the air command on the search index technical repository that is
associated with the repository pointed to by AB_AIR_ROOT. You do not need to know the
actual name of the search index. For example, instead of:
-remote
-remote specifies that the air utility should start the Technical Repository server remotely
even if a direct connection is possible. Alternatively, you can obtain this behavior by setting
the AB_AIR_USE_LOCAL_STORAGE configuration variable to false.
-user
-user user-name specifies the name of the user running the command. Only the Technical
Repository administrator can use this option. Alternatively, you can obtain this behavior by
setting the AB_AIR_USER configuration variable.
Commands
This topic describes the following:
Command groups
Running commands in batch mode
Deprecated or disabled commands
Commands with repeatable arguments
Command groups
The air utility commands consist of these main groups:
However, when a single command in the batch fails, most of the time the entire batch
operation terminates, rolling back the commands that were written to the temporary file.
The only exceptions are air commands that affect locks, users, groups, and permissions;
these commands take effect immediately, even if the batch operation fails.
Enabling and disabling batch mode
To enable the batch mode execution of air commands, set the value
of AB_AIR_BATCH to true in the environment (not in a configuration file).
To begin accumulating air commands, specify air batch begin. Then include within the
batch sequence the commands you want to run in batch mode. Finally, specify air batch
end, which begins execution of the batched commands and produces output and errors, if
any. See “air batch commands”.
Note that the air commands executed when air batch end is run are collected in a temporary
file called .air-batch-commands in the current working directory. To specify a filename
other than the default, set AB_AIR_BATCH_FILE rather than AB_AIR_BATCH.
Set AB_AIR_BATCH_FILE in the environment, specifying the filename of your choice.
export AB_AIR_BATCH=true
air batch begin
air rm /Projects/myproj/mp/graph1.mp
air rm /Projects/myproj/mp/graph2.mp
air batch end
Be sure to disable batch mode when the batch operation is done by doing one of the
following:
Certain commands, like air project import, cannot be batched. They run and commit,
regardless of whether they run in batch mode. Also, you cannot batch any commands that
take their arguments from standard input. See “Commands with repeatable arguments”.
Deprecated or disabled commands
Some commands and arguments have been deprecated, removed, or disabled. Deprecated
commands and arguments are obsolete and have been retained for backward compatibility
with older versions of the air utility. For a list of deprecated and removed commands and
arguments, see the Release Notes for the repository version you are running.
Commands with repeatable arguments
Although many air commands require you to supply the name of an object as an argument
(see “Specifying object names as arguments”), some air object and air project commands
have repeatable arguments that specify filenames, full technical repository paths, graphs,
and so on. These commands can take those arguments from the shell’s standard input rather
than from the command line. This strategy overcomes the platform-dependent limitations
on command length.
For each of these commands you can specify the repeatable argument (such as -files), then
a single hyphen. The values for that argument are read from the shell’s standard input. The
format of the standard input file is a list of names, one per line.
If the assignment values are in a separate file, follow the hyphen by a left angle bracket (<)
and then the name of the file with the input data. For example, instead of listing at the
command line all the files to be imported by air project import, place the filenames
in import-list.txt:
NOTA:
You cannot use this feature within batch sequences starting with air begin batch.
Related topics
Command groups
Running commands in batch mode
Deprecated or disabled commands
/ (slash)
/~abinitio (slash, tilde, and abinitio)
@ (at sign)
Rarely, name conflicts can arise for which you must specify a disambiguating
prefix between path elements.
Example 1
/Projects/project1/mp/mygraph.mp
Example 2
The name of the FILTER BY EXPRESSION component within mygraph can be accessed as:
/Projects/project1/mp/mygraph.mp/'Filter by Expression'
Note that quotes are required for embedded spaces within a pathname. Wildcards are not
supported in pathnames.
Pathnames that begin with /~abinitio
A pathname can begin with /~abinitio (a slash, a tilde (~), and abinitio). abinitio is the home
directory for Co>Operating System objects.
NOTA:
Example
/~abinitio/2.14.7/Projects/root/components/Transform/Filter_by_Expression.mpc
Variable Description
domain- A unique number automatically assigned to a domain by the technical
number repository. To find an object’s domain number, run the air dump details or air
object ls -ld command.
The root directory of the technical repository has the OID of @1.1.0 (or just @1.1). To
specify version 30 of common-customers.dml in project1, you can specify the OID relative
to the repository root plus the path to the object:
@1.1.30/Projects/project1/dml/common-customers.dml
Shortcut
A shortcut to the full OID specification of an object is one of these formats:
@30/Projects/project1/dml/common-customers.dml
If you want to see which version of an object is in a certain tag, use the @tag / object-
path specification.
@tag1/Projects/project1/dml/common-customers.dml
/Projects/project1/mp/mygraph.mp/'Filter by Expression'
/~abinitio/2.14.7/Projects/root/components/Transform/Filter_by_Expression.mpc
@74.7.0
@8.7.0/Transform/Filter by Expression
Prefix Description
!name Annotation
d!name Element of a directory
f!name Flow in a graph
l!name Layout in a graph
m!name Metadata (record format) in a graph
v!name Component (also called vertex) in a graph
legend!number Legend in a graph
p!name Port of a component
e!name Element of a package
f!name Field of a record
Example 1
/d!Projects/d!myeme/d!mp/d!graph.mp
Example 2
/foo/bar/Mitzi/ann!email_info/ann!home_email
Example 3
The following table identifies which air commands operate on a single branch or across the
technical repository:
Command(s) Behavior
air annotation group Branch-specific
air batch group Not applicable; use air batch commands only
with branch-specific commands
air branch group Branch-specific except for air branch creators
air branch creators Repository-wide; adminstrators only
air category group Branch-specific
air display group Branch-specific
air dump annotations Branch-specific
Transfer significant amounts of data (for example, when loading a large save file).
Make several trips to and back from the technical repository (for example, when
unloading a large category such as a graph).
The connection between the technical repository client and server is slow or has
high latency.
The following table identifies which air commands require a local technical repository:
Command(s) Location
air repository access-mode Local or remote
Command(s) Location
air repository backup Local or remote (if remote, the backup file is written
locally)
air repository check referential- Local or remote
integrity
air repository chmod Local or remote
air repository compress-diffs Local or remote
air repository convert-storage- Local
format
air repository create Local
air repository create-image Local
air repository destroy Local
air repository load-from-image Local
air repository online-backup cancel Local
Status
Meaning
code
0 The command succeeded
1 The command returned an error
2 The command returned a non-fatal warning
Task Command
Add data files to a technical repository air repository add-data-file
Back up a technical repository while it is active air repository online-backup
start
Back up a technical repository while it is shut down air repository backup
Change permissions on the technical repository air repository chmod
Copy a project to another technical repository air object save followed by air
(called promotion) object load
Rename a project air object mv
Move a technical repository to a different host air repository create-
image followed by air
repository load-from-image
Create a technical repository air repository create
Create a tag on a technical repository air repository tag
Create users and groups for a technical repository air system user create, air
system group create
Delete (purge) all repository objects as of a particular air purge repository
version
Delete (purge) individual repository objects at all versions air purge object
Enable or disable repository-based user authentication, file air repository options
Task Command
permissions, and auditing of air commands
Purge old, unwanted objects from the entire technical air purge repository
repository
Purge all versions of specific objects air purge object
Purge unwanted jobs from the technical repository air purge jobs
Reset a user’s lock air lock reset
Set a lock in the technical repository (object is not editable air lock set
in the sandbox)
Show whether file permissions, user authentication, and air repository options
auditing are enabled.
Show list of domains, their paths and sizes air dump domain-sizes
Show contents of a given domain air dump domain
Show information about the technical repository, including air repository show
the number of domains, connections, and branches; the
technical repository version and storage format
Show information about the current Technical Repository air repository show-server
server or all servers on the current machine
Developer and project leader tasks
The following table lists developer and project leader tasks and the relevant air commands:
Task Command
Add files to a project’s list of files air project add
Create a tag on a project air project import (during
checkin)
Create a tag on one or more objects air tag create
Check a sandbox or one of its files into a technical repository air project import
Check a project, graph, or file out from a sandbox air project export
Change the permission on an object in the technical repository air object chmod (or air
chmod)
Change the ownership of an object in the technical repository air object chown (or air
chown)
Delete the current version of an object from the directory but air object rm (or air rm)
leave it in the technical repository
Modify or reset a project’s attributes — for example, air project modify, air
extension list or common-project list project default
Set a lock in the sandbox (locked object is editable; air sandbox lock
permissions are modified in the sandbox)
Set an object’s MIME type air project set-type
Show directory contents air object ls (or air ls)
Show a project’s common projects air project show-common
Task Command
Show the state, path, MIME type and version of sandbox and air project files
project files
Show the files an object in a project depends on air project get-required-files
Show the files that are referenced by files in a sandbox air sandbox get-required-
files
Show a project’s attributes (for example, parameters, air project show
extension list, base directory)
Show all domains that have changed after a particular version air object changed
Show version numbers (and tags) of a given object air object versions (or air
versions)
Show internal details about an object, including its domain air dump details (or air
number and all its relationships details)
Show all objects that use a particular target object air object referencing-files
Show a list of objects in a given domain air dump objects
Show state of objects in a sandbox air sandbox status
Show top-level directory of a sandbox air sandbox find
Validate that a continuous graph will run correctly air sandbox validate-graph
Command Description
air annotation See air dump annotations.
dump
air annotation Runs an element-descriptor against an object and returns the path to the
eval values described by the view-descriptor on the object.
air annotation eval
Returns the path to the values described by a view-descriptor on an object. This command
is branch-specific. For information about the arguments common to all air commands,
see “Command-line syntax of air commands”.
Syntax
air annotation eval rpath element-descriptor
Argument Description
rpath Path to a repository object. The object must be a member of a category.
element- Specifies a view-element’s element-descriptor that is associated with the
descriptor object specified by rpath.
Usage
An element-descriptor is the portion of the view element that describes the values
associated with category members.
To test the above view-element, run air annotation eval against a member of the Data
Files category — for example, the customers data file — and specify the view descriptor
beginning with the walk action:
Note that the walk action begins from the category on which the view is being defined.
The command should return /sg/Eric Smith.
The commands that are run in batch must all operate on the same repository and branch.
For information about the arguments common to all air commands, see “Command-line
syntax of air commands”.
Syntax
air batch begin
Usage
To enable batch mode, you must either set AB_AIR_BATCH to true or
set AB_AIR_BATCH_FILE to name a file to be used for collecting air commands.
export AB_AIR_BATCH=true
air batch begin
air mkdir /lesson
...
more air commands
...
air batch end
The commands that are run in batch must all operate on the same repository and branch.
For information about the arguments common to all air commands, see “Command-line
syntax of air commands”.
Syntax
air batch echo arg ...
Argument Description
arg ... One or more strings that you want to be displayed during the batch run.
Alias
The alias for this command is air echo.
air batch end
Runs all accumulated air utility commands in batch mode and produces output of any
errors.
The commands that are run in batch must all operate on the same repository and branch.
For information about the arguments common to all air commands, see “Command-line
syntax of air commands”.
Syntax
air batch end -trace
Argument Description
-trace If specified, the queued-up commands are displayed as they are executed.
Alias
The alias for this command is air end-batch.
Command Description
air branch create Creates a new branch.
air branch creators Adds, displays, or removes users and groups from the permissions list
that controls the ability of non-administrator users to create branches.
air branch delete Permanently deletes objects on a branch.
air branch freeze Freezes or unfreezes a branch or displays the status of a frozen branch.
air branch list Displays information about the objects and/or domains in a branch.
air branch modify Changes the name and title of the branch.
Command Description
air branch Changes the access permissions on one or more branches for the
permissions specified users or groups.
air branch show- Displays the access permissions for the specified branch or for all
permissions branches.
air branch create
Creates a new branch with the name new-branch-name from an existing branch (its parent
branch). For information about the arguments common to all air commands,
see “Command-line syntax of air commands”.
Syntax
air branch create new-branch-name
-from-branch parent-branch-name
[ -from-version parent-branch-version | tag ]
[ -title title] [ -quiet ]
Argument Description
new-branch-name Name of the new branch.
-from-branch parent-branch- Specifies the parent branch of the new branch new-branch-
name name. If omitted, creates a branch from main (the main
branch).
-from-version parent-branch If specified, the new branch is created from the specified
-version | tag version or tag. If omitted, the new branch is created from the
current version of the technical repository. See “Usage”
(next).
-title title If specified, gives a brief description (string) of the purpose
of the branch.
-quiet If specified, suppresses information about the newly created
branch.
Usage
You must have Technical Repository administrator privileges to run this command.
A valid branch name is limited to 50 characters. The name must contain alphanumeric
characters (a-z, A-Z, 0-9), hyphens, periods, and underscores; cannot consist of only digits;
and must be unique in the technical repository.
You may specify the versions of the objects from the parent branch in several ways:
The value of -title is limited to 150 bytes, which might be fewer than 150 characters,
depending on the character encoding you use. The title is visible in the GDE.
If the new branch is created from a tag, it contains all the objects at the tag version, with the
exception that the tagged objects exist in the new branch at the version specified in the tag.
For example, suppose you create a tag foo at version 100 of the technical repository. The
tag specifies version 80 of the bar.mp graph and version 90 of abc.dml. Then you create a
branch at tag foo. The new branch contains all the objects in the repository at version 100,
except for bar.mp and abc.dml, which will be at version 80 and version 90, respectively.
Example
To create a branch called mybranch off the latest version of the main branch and title
it Branch for Patch Release 3.3.2.14, enter the following:
export AB_AIR_ROOT=dev_eme
air branch create mybranch -title “Branch for Patch Release 3.3.2.14”
NOTA:
This command requires technical repository storage format 18 or higher. You must have
Technical Repository administrator privileges to run this command.
Syntax
air branch creators
{[-add | -remove ] user-list } ...
[-quiet ]
[-show ]
Argument Description
-add | -remove Adds or removes the users or groups specified by user-list to the
access control list — thereby granting or denying the ability to
create branches. You can omit -add if it is the first argument, and
supply only the username.
user-list | group A list of users or groups for which you want to add or remove the
=group-name ability to create branches. Separate multiple users with a space.
Specify groups as group=group-name.
-quiet Does not display the list of creators after the command executes.
-show Displays the list of creators after the command executes. The
default.
Usage
You cannot add or remove a Technical Repository administrator from this list. Once you
have added a user or group to the access control list, you can refine their access permissions
on objects on the branch by using the air branch permissions command.
Example
The following command adds two users, user_sue and user_ravi, and the group lead-
developers to the access list — thereby granting them permission to create branches. The
example also removes user_pete from the list. This example illustrates that the -
add argument can be omitted if the first value (in this case, user_sue) is intended as an add:
Related topics
NOTA:
To run this command, you must have Technical Repository administrator privileges or —
for storage format 18 and higher — control access on the branch that you want to delete.
Syntax
air branch delete branch-name ... [-no-confirm]
Argument Description
branch-name Name of the branch to be removed. You can enter multiple branch names
separated by a space.
-no-confirm If this argument is specified, the command is executed without prompting
for confirmation.
Usage
Co>Operating System Version 3.0.5 and later support multiple branch deletion. To
delete multiple branches simultaneously, separate the branch names by a space.
Co>Operating System Version 3.3.2 and later support user deletion of branches as
appropriate.
You cannot delete the main branch of development or a branch that has child
branches.
This command allows you to reclaim the disk space and the branch ID number.
NOTA:
To run this command, you must have Technical Repository administrator privileges or —
for storage format 18 and higher — control access on the branch that you want to freeze.
Syntax
air branch freeze branch-name
{-freeze|-unfreeze|-admin |-status}
Argument Description
branch-name Name of the branch to be frozen or unfrozen. You can
enter multiple branch names separated by a space.
Usage
A frozen branch is one that is read-only. A branch can be frozen to all users, to all users
except the Technical Repository administrator, or to some users as indicated through the
control access list created with the air branch creators command.
air branch list
Displays information about the objects and/or domains in the specified branch or all
branches, either in a one-line record for each branch or in a DML-parsable format. For
information about the arguments common to all air commands, see “Command-line syntax
of air commands”.
Syntax
air branch list
[branch-name]
[-tabular | -record | -dml]
[-domains-versions]
[-children]
Argument Description
branch-name Optional. Name of the branch that you want to view information
about. If omitted, displays information for all branches, one
branch per line.
-tabular | -record | -dml Optional. If specified, describes the format of the output. Choose
one of these:
Be aware that the -domains-versions option may generate millions of pairs of numbers if
full tags were used and cover large portions of the technical repository. It may also take
many minutes to process.
The value in the FROM_VERSION column is the value of the -from-version argument
when air branch create was executed. The value in the CREATION_TIME column is the
time when the version number in the CREATED column was created.
NOTA:
To run this command, you must have Technical Repository administrator privileges or —
for storage format 18 and higher — control access on the branch that you want to modify.
Syntax
air branch modify
branch-name
[-title title]
[-name name]
[-owner owner]
Argument Description
branch-name Name of an existing branch that you want to modify.
-title title Supplies a new title (a brief description of the branch’s purpose).
-name name Specifies a new name for the branch. See Usage information below.
-owner owner Specifies the owner of the branch. The branch owner can modify or delete a
branch, as well as change its access permissions. To use this argument, the
technical repository must be at storage format 18 or higher.
Usage
The value of -title is limited to 150 bytes, which might be fewer than 150 characters,
depending on the character encoding you use.
If you change the branch name, any sandboxes attached to this branch must be detached
and then checked out again using the new branch name. For this reason, we do not
recommend changing the names of branches.
air branch permissions
Changes the access permissions on one or more branches for the specified users or groups.
For information about the arguments common to all air commands, see “Command-line
syntax of air commands”.
NOTA:
This command requires storage format 18 and higher. To run this command, you must have
Technical Repository administrator privileges or control access to the branch whose
permissions you want to modify.
Syntax
air branch permissions {[-branch] branch-name ...
{permissions user-list} ... }
[-quiet]
Argument Description
-branch branch-name Specifies the name of one or more branches whose access
permissions you want to modify. To enter multiple branch names,
you must precede each name by the -branch argument. You do not
need to enter the -branch argument for the first branch name value
that you specify.
permissions Specifies whether the user or group can read, write, or modify
objects on the branch, as follows:
This example removes control permissions on the branch dev-branch1 from the user test-
user, and removes write access from the user user2 on the branch dev-branch12, as follows:
air branch permissions dev-branch1 -control test-user -branch dev-branch12 -write user2
The user user2 will now have no access to the branch dev-branch12. If you want them to
have read access instead, you must specifically grant it.
Related topics
NOTA:
To run this command, you must have Technical Repository administrator privileges or —
for storage format 18 and higher — control access on the branch that you want to delete.
Syntax
air branch show-permissions {branch-name ... | -all}
Argument Description
branch-name ... Specifies the name of the branch whose permissions you want to show.
You can enter multiple branch names separated by a space.
-all Specifies that you want to show permissions on all of the branches. This is
the default.
Example
This example displays the permissions for the branches release-4-0-2 and release-4-1-1, as
follows:
air branch show-permissions release-4-0-2 release-4-1-1
Related topics
The following table summarizes the air category commands. For information about
command syntax, see “Command-line syntax of air commands”.
Command Description
air category dump See air dump category.
air category list- Displays the members of a given category.
members
air category dump
This command is an alias for air dump category.
air category list-members
Displays the members of the specified category. This command is branch-specific. For
information about the arguments that are common to all air commands, see “Command-line
syntax of air commands”.
Syntax
air category list-members [-m] category [filter-rpath ...]
Argument Description
-m Writes the command output in new-line delimited machine-readable format to
standard output. The output does not include indentation or any header and
trailer information, such as the total number of members shown.
category Name of an existing category.
filter- Lists only members that are contained within the specified repository locations.
rpath ...
Examples
To see a list of members in the package category, type:
/Projects/program_datasets/dml/format.dml
/Projects/pr14567/run/output_file.dml
/Projects/pr14567/dml/purchases.dml
/Projects/pr14567/dml/output_file.dml
/abinitio/categories/package has 4 members.
The following example uses the -m argument to print the members of the package category
in machine-readable form. It does not contain indentations nor the summary line that are
shown in the previous example.
The following example shows machine-readable output for the package category that is
limited to only the /Projects/error_arch/dml repository location:
Command Description
air dump Displays all annotation rules and values (if any) for a category
annotations member.
air dump arule Displays information about the specified annotation rule.
air dump category Displays information about the specified category.
air dump details Displays a single repository object.
air dump domain Display the contents of a given domain, optionally, as of a specific
version.
air dump domain- Displays a list of domains and their paths in the technical repository,
sizes sorted by size.
air dump domains Reports storage usage per domain.
air dump files Lists storage usage per data file.
air dump internal Displays the technical repository contents.
Command Description
air dump objects Prints a listing of objects in a domain.
air dump annotations
Displays all annotation rules and values (if any) for a member object of a category. This
command is branch-specific. For information about the arguments common to
all air commands, see “Command-line syntax of air commands”.
NOTA:
Syntax
air dump annotations [-reverse] rpath [-as_xml [-complete] ] [-category
category]
Argument Description
-reverse Displays all the objects that have the specified object, rpath, as
an annotation value.
rpath Path to a repository object whose annotation rules and values you
want to display.
-as_xml [-complete] Formats the object specified by rpath as XML. When the
optional -complete is specified, also displays in XML all the
objects that reference rpath or are referenced by rpath.
-category category Retrieves the annotation rules and values for category.
Usage
The output displays “permission denied” if you do not have permission to view an
annotation rule.
Because you can set annotation rule permissions on an individual category, specifying
different values of category may allow you to view different information about an object.
You can control the display of the date and time values by setting
the AB_ARULE_USE_LOCAL_TIME configuration variable.
The -category category optional argument has no effect on the set of objects returned when
you specify -as_xml -complete.
For information about annotations rules and annotation values, see “Technical Repository
schema reference” in the Technical Repository Administrator’s Guide.
Alias
The alias for this command is air annotation dump.
Example
To display the annotation rules and values for graph1, type the following:
If graph1 is a member of the Application category and if Application is based on the built-
in graph category, this command displays all the rules and values for graph1 and then all
the rules and values for Application.
For example, you might see the following output. These annotation rules are single-valued.
If no value follows the name of the annotation rule name, as in the version rule, the value is
unset:
graph: -----------------------------------
oid: 0232.1.0
name: /Projects/myproject/mp/graph.mp
comment:
description: Accounts Receivable App
display_name: My Graph
CreatedBy: S Finkel
CreationDate: 3/1/2016 16:19:10
ModifiedBy: S Finkel
ModifiedDate: 5/2/2016 14:20:07
categoryOID: 0052.1.1
path: /Projects/myproject/mp/graph1.mp
author: Ab Initio Software Corp
version:
Application : ----------------------------
business_area: Finance
steward:
For choice rules, the output also displays the rule’s choice list, whether values can be added
to the choice list, and whether users must choose values from a predefined list.
For reference rules, the output also displays the name of the rule’s target category.
For information about annotations rules and annotation values, see “Technical Repository
schema reference” in the Technical Repository Administrator’s Guide.
Alias
The alias for this command is air arule dump.
Examples
Displaying information about the abbreviation rule
To display information about the abbreviation rule, type the following:
The following output shows that abbreviation is a string rule, has no default value, can be
edited, but cannot take multiple concurrent values:
/abinitio/annotation rules/abbreviation
string rule ------------------
display name: abbreviation
default value:
datatype: STRING
can edit: 1
multi-value: 0
revert-on-edit: 0
The following output shows that Approval_Status is a choice rule whose name is displayed
as Approval Status. It has no default value, can be edited, and can take only one value
chosen from a predefined list (approved, pending, initial load, and defaulted). Users cannot
add choices to the list.
/abinitio/annotation rules/ApprovalStatus
choice rule ------------------
display name: ApprovalStatus
default value:
datatype: STRING
can edit: 1
multi-value: 0
revert-on-edit: 0
in_list: 1
add_choice: 0
choices: Pending
Approved
Other
/abinitio/categories/graph
Parent category -------------------:
object (base category)
Member locations ------------------:
Inherit via rule------------------:
usedAsComponentByOID
Inherited Annotation Rules --------:
oid (via object)
path (via object)
name (via object)
comment (via object)
description (via object)
display_name (via object)
created_by (via object)
creation_date (via object)
modified_by (via object)
modification_date (via object)
projectOID (via object)
categoryOID (via object)
DOCOID (via object)
Annotation Rules ------------------:
author: not required, don't inherit values
version: not required, don't inherit values
datasetsReadOID: not required, don't inherit values
datasetsWrittenOID: not required, don't inherit values
usedAsComponentByOID: not required, don't inherit values
Annotation Rules Referencing ‘graph’ ---:
graph.usedAsComponentByOID
vertex.graphOID
flow.graphOID
job.graphOID
job.versionedGraphOID
SFD Application.prototypeGraphOID
Views -----------------------------:'details' [bin-style
: none, icon : ''] elements:
Project: (simple) /|graph/.projectOID/>
+index -display-contents -vertical-
layout -no-wrap -hide-label
Comment: (simple) /|graph/.comment/>
+index -display-contents -vertical-
layout -no-wrap -hide-label
Last Modified On: (simple) /|graph/.modification_date/>
+index -display-contents -vertical-
layout -no-wrap -hide-label
Last Modified By: (simple) /|graph/.modified_by/>
+index -display-contents -vertical-
layout -no-wrap -hide-label
Components: (view) /<vertex/.graphOID/| list
-index -auto-show +can-toggle
Jobs: (view) /<job/.graphOID/| list
-index -auto-show +can-toggle
Lookups Used: (view) /<vertex/.graphOID/|/|vertex/
.lookupsUsedOID/> list
-index -auto-show +can-toggle
Datasets Read: (view) /|graph/.datasetsReadOID/> read-list
-index +auto-show +can-toggle
Datasets Written: (view) /|graph/.datasetsWrittenOID/> written-list
-index +auto-show +can-toggle
Tags: (view) inv_walk("taggedObjectsOID", "tag") list
-index -auto-show +can-toggle
'list' [bin-style : none, icon : ''] elements:
Name: (simple) /|graph/.name/>
+index -display-contents -vertical-layout
-no-wrap -hide-label
Project: (simple) /|graph/.projectOID/>
+index -display-contents -vertical-layout
-no-wrap -hide-label
Description: (simple) /|graph/.description/>
+index -display-contents -vertical-layout
-no-wrap -hide-label
Parent category displays the name of the category from which graph is derived
— object.
Member locations displays the technical repository location of the objects that are
members of graph.
Inherited Annotation Rules displays those rules inherited from the parent categories.
Annotation Rules displays those rules that are local to the dumped category, graph.
Annotation Rules Reference category displays the annotation rules of other
categories that refer to this category.
Views displays the names and definitions (view-elements) of the views defined
on graph.
You can use the DML record format in a graph to analyze domains you are interested in.
For example, you can write a graph that uses the object name or domain number to
compare a technical repository at three different points in time: this week, last week, and
two weeks ago. The graph could return information on the domains that grew the most or
ones that were removed.
Examples
Displaying the sizes of all domains
Here is an excerpt of output of air dump domain-sizes:
record
decimal(' ') domain;
decimal(' ') total_size;
decimal(' ') current_size;
decimal(' ') storage_size;
decimal(' ') num_versions;
string(' ') class_name;
string('\n') path;
end
Syntax
air dump domains
air dump files
Displays a listing of the storage usage for each data file. This command is repository-wide.
For information about the arguments common to all air commands, see “Command-line
syntax of air commands”.
Syntax
air dump files
Example
Running air dump files on the mart project yields the following output:
Command Description
air env create-env- Creates, in advance, empty environment operations log files for a
logs specified number of months.
air env manage- Lists or deletes sandbox log files to assist with archiving or reclaiming
logs disk space.
air env create-env-logs
Creates, in advance, empty environment operations log files in $
{AI_ENV_LOG_HOME} for the number of months that you specify. The files are
named environment_operations_YYYY_MM.log, and will later be populated with
administrative, source control, job start, and job end events. This command is branch-
specific.
Syntax
air env create-env-logs [-months num_months]
Argument Description
-months num_months Specifies the number of months to create empty log files for, starting
with the current month. The default is 3; that is, the current month
plus two additional months.
Usage
By default, monthly environment logs are automatically created and owned by the user who
creates the first job each month. For some installations this can cause permissions problems
for other users who try to view the files. To avoid that issue, use this command to create
logs in advance for a specified number of months in the future — those log files will then
be owned by the appropriate user account (usually an Ab Initio Environment
administrator).
If a file already exists, the command ignores it. For example, if it is February 2015 and the
value of num_months is 2, and environment_operations_2015_02.log file already exists, the
command will create only environment_operations_2015_03.log. It will not attempt to
create environment_operations_2015_02.log because that file already exists.
There is no limit on the number of months that you can enter. If you do not reissue this
command when the number of chronological months specified is reached, log generation
reverts to the default behavior — that is, the log file is created and owned by the user who
first runs a job in a given month.
air env manage-logs
Lists or deletes sandbox log files to assist with archiving or reclaiming disk space.
Technical repository administrators can use this command to identify and then archive or
remove log files that accumulate in the AI_ADMIN directory or one of its subdirectories. It
can also be used by graph developers to archive or remove logs in one or more sandboxes.
You can use pattern matching or dates, including date ranges, to locate log files.
YYYY-MM-DD
NOTA:
NOTA:
graphname_filedate_processID
The -files-below argument creates a list of files — for display or deletion — based on the
project parameter pattern. The list includes the following file extensions:
The -proj, -sand-root, and default arguments create a list of files based on the project
parameter pattern. The list includes these file locations and extensions:
NOTA:
Archiving files
The -list argument displays full absolute filenames to stdout. You can use grep, pipe, or
other standard input commands with tar or gzip to archive the actual files.
Command Description
air help Displays online documentation for air commands.
air help
Displays documentation for commands.
Syntax
air help [command]
Argument Description
command Optional. The name of a group of commands or a specific
command.
Top-level help command
Typing air help without command produces output that explains the options that apply to
all air commands. For information about these options, see “Command-line syntax of air
commands”.
Using air help on a group of commands
The air help command allows you to drill down into groups of related commands. Specify a
group name, like object or project, as command.
Example
To see all the commands in the air object group, type:
You see a description of air object and a list of all object commands and their parameters:
Notes
To copy a directory, consider using air object save and air object load
with the -relocate option.
Deprecated arguments
-R was deprecated in Version 2.14.
The following table summarizes the air lock group of commands. For information about
command syntax, see “Command-line syntax of air commands”.
Command Description
air lock break Breaks a lock.
air lock release Releases a lock.
air lock reset Resets a broken lock.
air lock set Sets or modifies a lock.
air lock show Displays a listing of all locks.
The following diagram illustrates all the actions you or other users can take to lock and
unlock objects or break locks:
NOTA:
We recommend using the GDE rather than the lock commands to perform these locking
operations. These commands are intended for administering locks when intervention is
required. For information on basic sandbox locking, see “air sandbox lock”.
Normally any user can break a lock. The user whose lock was broken does not own a
working lock anymore. If you break your own lock, the command releases (removes) the
lock, just as if you had run air lock release.
If a lock was created in unbreakable mode — that is, with the -unbreakable option to air
lock set — only the Technical Repository administrator or the lock owner can break it.
Note that when a lock owner runs air lock break on an unbreakable lock, this command
actually releases the lock.
air lock release
Unlocks a lock on a single object, on all objects in a project, or on all objects in all projects
within a technical repository. This command is branch-specific. For information about the
arguments common to all air commands, see “Command-line syntax of air commands”.
NOTA:
This command does not affect broken locks. To remove broken locks, use air lock reset.
Syntax
air lock release
[-user username...]
{[-object object] ... | [-project project] ... | [-all] }
[-quiet]
Argument Description
-user username Releases all locks belonging to specified user.
Valid only for the Technical Repository
administrator.
Argument Description
-object object | -project project | -all You must choose one of the following:
NOTA:
This command only affects broken locks. To remove locks, use air lock release. To break
locks, use air lock break.
Syntax
air lock reset
[-user username |-everyone]
{ [-object object] ... | [-project project] ... | [-all] }
[-quiet]
Argument Description
-user username Removes a broken lock belonging to user username or to all users
| -everyone (-everyone). Default is the current user.
-object object ... Required. You must choose one or more of the following. Default is -
| -projectproject ...| - all.
all
-object object is the path to or OID of the object whose lock
you want to reset. See “Specifying object names as
arguments”. To specify multiple objects, repeat the -
object clause.
-project project is the path to the project whose locks you
want to reset. To specify multiple projects, repeat
the -project clause.
-all resets all locks in the technical repository to which you
have access.
NOTA:
NOTA:
If you omit both the -object and -project options, the default behavior
is -all.
-quiet Suppresses the printing of a count of locks reset.
Usage
You must specify at least one option. You can specify -object and -project at the same time.
The -object, -project, and -all options generate a list of locks from which
the -user or -everyone options determine which locks to reset.
Broken locks provide a record that the lock was broken by a different user than the owner.
Examples
Following are examples for administrators and non-administrators.
Removing all broken locks for a user
You are a Technical Repository Administrator. To remove all broken locks owned by
user dave_rb, type the following:
Related topics
NOTA:
-modify attribute ... Modifies the breakability and release attributes of an existing
lock. attribute can be -breakable or -unbreakable, and -auto-
release or -manual-release. For example, to make an existing
breakable lock unbreakable, specify -modify unbreakable.
See “Deprecated arguments” (below).
-object object ... The path to or ID of the object for which you want to set a
lock. See “Specifying object names as arguments”. To specify
multiple sets of objects, repeat the -object clause.
Deprecated arguments
These arguments are deprecated in Version 2.15:
Usage
You must be the Technical Repository Administrator or the lock owner to modify a lock.
You can use this command to refresh a lock that was previously set.
Example
Setting persistent locks
Persistent locks can only be broken by the Technical Repository Administrator or the lock
owner. To set locks that persist after checkin on
the JoinCustomers and LoadJoinedCustomers graphs in the lesson project:
Usage
The display lists the path, username, time, and status of the lock — such as locked, broken,
manual release, and unbreakable. The path can be a typical repository path or an object ID
beginning with @ (for a description, see “Pathnames that begin with @”).
The display is ordered according to the arguments you specify. For example, if you specify
two users and a project argument, the display lists all the locks owned by the first user, then
all the locks owned by the second user, and finally all the locks in the project.
Example
To display all the locks in the technical repository, type the following:
The following table summarizes the air object commands. For information about command
syntax, see “Command-line syntax of air commands”.
Command Description
air object access Tests whether you can read, write, execute, or see the existence of a
particular object.
air object cat Writes an object to stdout (standard output).
air object changed Identifies which objects have changed.
Command Description
air object chmod Changes the permissions of a repository object.
air object chown Changes the ownership of a repository object.
air object cp Copies an object.
air object dataset Sets various properties of an EME dataset in the technical
repository, and removes orphaned datasets.
air object dataset- Returns objects and their dataset associations.
associations
air object This command has been deprecated. Use air purge object or air
delete (deprecated) object rm instead.
air object field- Outputs a text description of field lineage for a graph or for the
lineage graph instance associated with an input pset.
air object info Displays information about directory objects, objects without names,
and the root of the technical repository.
air object This command has been deprecated.
ln (deprecated)
air object load Loads objects from a portable interchange format file into a
technical repository.
air object ls Displays information about the objects in a technical repository
directory.
air object mkdir Creates a directory.
air object mv Renames an object.
air object poll-for- Monitors the technical repository for changes to a specified set of
change objects that are under source control. When changes to those objects
are detected during a polling interval, executes a user-specified
script or command.
air object referencing- Displays the paths to all objects that use a target object.
files
air object requires Creates a list of additional files that will be promoted when you load
a save file created through air object save.
air object revert This command is no longer available. Use air object save and air
object load instead.
air object rm Removes a directory entry.
air object rollback Makes the specified version the current version in the technical
repository or restores a removed object.
air object rollback- Identifies objects that were modified at a specified version, finds
version their prior versions and stores those at the current version.
air object save Saves repository objects to a save file in portable-interchange-
format.
air object search grep Searches a technical repository for files containing the specified
search string.
air object search Searches one or more technical repository paths for a given
parameter parameter name.
Command Description
air object set-acl Sets or modifies the ACL (access control list) permissions on one or
more specified objects. Use to provide a finer level of control on
objects and directories than Unix or users and groups permissions
provide.
air object show-acl Displays the ACL permissions for one or more specified objects.
air object show- Displays permissions for objects in a technical repository.
permissions
air object uses This command has been renamed to air object referencing-files.
(The former name is still supported.)
air object versions Lists all version numbers for a given object.
If the object cannot be accessed for any reason, the command returns 0.
Alias
The alias for this command is air access.
air object cat
Writes the literal contents of a repository object to standard output. This command
is branch-specific. For information about the arguments common to all air commands,
see “Command-line syntax of air commands”.
Syntax
air object cat rpath
Argument Description
rpath Path to a repository object, or object ID. See “Specifying object names as
arguments”.
Usage
Use this command for binary objects as well as objects with a text representation — such as
MIME objects, text files, and .dml and .xfr files. The command fails if rpath’s target cannot
be converted to text or does not exist. Compare with air display internal.
Example
To see the record format in a-customers.dml, type:
record
decimal(8) custid;
string(10) fname;
string(12) lname, place;
decimal(5) building_num;
decimal(1) preferred;
end("\n")
Alias
The alias for this command is air cat.
-ignore-param-order Valid with -diff and for graphs only. Does not display
differences in the order of graph or component
parameters.
-text Valid with -diff. Forces text differencing, regardless of
the type of the files.
Argument Description
-ignore-dep-analysis Valid for graphs only. Does not show differences in
parameters that are used only for dependency analysis;
for example, it ignores
the eme_dataset_location parameter,
the doc_transform parameter, and the technical repository
value for any parameter dependent
on AB_PARAMETER_ENV.
-original-format Valid with -diff and for graphs and plans only. Shows
changes due to differences in the graph or plan’s file
format. For example, this argument can be useful in rare
cases when you want to compare two graphs that were
saved to a different format by using the GDE Save
As menu item.
-files-with-diff Reports only files that have associated differencing text.
You can specify either the -terse argument or
the -verbose argument with -files-with-diff.
You can use this argument to filter out changes that you
are not interested in. For an example, see “Comparing the
latest versions of a project on two different branches in
the same technical repository”.
-m Writes the command’s output in machine-readable format
to standard output. You can process the output in a graph
using the record format produced by the -dml option.
-dml Displays the record format of the command's output with
the -diff and -m options, and exits without running. This
option is useful if you want to pass command output to a
graph for processing.
Usage
This command reports the changes only in objects that are checked in to and out of
projects. In particular, it does not report changes in objects such as datasets.
Output
The command outputs the list of files that have been added, removed, or changed between
the source and target as follows:
Code
Description
(meaning)
A (Added) The file exists in the target but not in the source.
R (Removed) The file exists in the source but not in the target.
M (Modified) The file is different in the source and the target.
S (Same) The file is the same in the source and the target.
Code
Description
(meaning)
U (Unknown) The difference could not be determined. Occurs due to permission errors
or when an object cannot be checked out.
N (No object) The specified object does not exist in either the source or the target.
For a description of the output when you specify the -diff argument, see “Output” of air
sandbox diff.
Interaction of rpath and -version arguments
When you specify a tag to the -version arguments, the behavior of this command changes,
depending on whether you specify objects to compare. See the following two cases.
Case 1 If you specify a tag to the -version argument, but you do not specify objects to
compare, the command compares only the objects in the tag. If an object is not in the
source tag but is in the target tag, it is considered “added,” even if it existed in the technical
repository at the time that the source tag was created. Conversely, if the object is in the
source tag but is not in the target tag, it is considered “removed,” even if it existed in the
repository at the time that the target tag was created.
If you do not specify -tagged-only, the tag is used to determine the version of the
object to compare (see “-version” for a description of how object versions are
determined from a tag). In this case, the object is considered “added” or “removed”
only if it was actually added or removed from the technical repository between the
times at which the tags were last modified.
If you specify -tagged-only, the command behaves as in Case 1: objects are
considered added or removed solely based on whether they exist in both tags.
Examples
Comparing a specific technical repository version with the
latest version from the same repository and branch:
The following command determines the differences between technical repository
version 4849 and the latest version of the same repository and branch:
A dml/records.dml
S xfr/transform.xfr
S mp/mygraph.mp
M .air-project-parameters
To identify the changes in different versions of the project parameters file, you must
specify the path to the project as rpath or specify the name of a tag that has been
applied to a project or graph.
To see the actual changes that have occurred in a modified file — for example, the
project parameters file — specify the -diff argument.
Since the repository versions were not specified, they are assumed to be the value
of AB_AIR_ROOT. Since the versions were not specified, they are assumed to be the
current version.
If, in the example above, the only change in a graph process_data.mp was a moved
component, you can use the -files-with-diff argument to filter out that component — for
example:
Alias
The alias for this command is air changed.
Only the Technical Repository administrator or the owner of the specified object can
execute air object chmod.
The permissions argument must be specified in octal notation, using standard Unix
conventions. For information about using octal numbers for permissions, see “Setting
technical repository permissions on objects” in the Technical Repository Administrator’s
Guide.
To display current permissions for particular objects, use air object ls.
You can combine keywords and octal representation at the command line.
Example
To make the JoinCustomers.mp file readable by all users and writable by you alone, enter
the following (this results in a permissions setting of -rw-r--r--):
Alias
The alias for this command is air chmod.
Alias
The alias for this command is air chown.
air object cp
Creates a copy of the object known as rpath1 in a location within the technical repository.
This command is branch-specific. For information about the arguments common to
all air commands, see “Command-line syntax of air commands”.
Syntax
air object cp rpath1 rpath2
Argument Description
rpath1 Path to the repository object to be copied. See “Specifying object names as
arguments”.
Argument Description
rpath2 New technical repository path for the copied object.
Deprecated arguments
-R was deprecated in Version 2.14.
Usage
Files with the same name will be overwritten.
Alias
The alias for this command is air cp.
air object dataset
Changes various properties of an EME dataset in the technical repository, as follows:
Sets the user-managed property for an analysis-only dataset, such that dependency
analysis cannot update the dataset’s metadata.
Registers an EME dataset in the dataset registry.
Removes orphaned EME datasets. An orphaned EME dataset is one that has no
associations: no graphs read data from it or write data to it. As part of your regular
technical repository maintenance tasks, we recommend removing orphaned datasets
periodically.
-register Enters the specified dataset into the dataset registry. Useful for setting up
cross-project lineage for table datasets.
-remove- Removes orphaned datasets from the specified rpath. Orphaned datasets are
orphans those that have no associations; that is, no graphs read from or write to
them. If a dataset is user-managed, this command does not remove it.
(Reusable datasets are user-managed; therefore, this command does not
remove them.)
-dry-run Lists the orphaned datasets found at the specified rpath but makes no
changes to the technical repository.
Usage
Dependency analysis normally updates an EME dataset with the record format it finds in
the graph. When you specify -user-managed, dependency analysis does not change the
record format or any other aspect of the dataset.
The setting on the dataset overrides the setting on a graph component, which is controlled
through the Create/update EME dataset during dependency analysis checkbox in the
GDE.
For more information about the -register option and the dataset registry, see “Linaje para
conjuntos de datos de tabla” in the Co>Operating System Guía para desarrolladores de
grafos.
Related topics
/Projects/tutorial/mp/b-join.mp
reads /Projects/tutorial/data/serial/main/b-customers.dat from becket_customers:read
/Projects/tutorial/mp/mailing-list-improved.mp reads /Projects/tutorial/data/serial/main/b-
customers.dat
from becket_customers:read
/Projects/tutorial/mp/customers_b.pset reads /Projects/tutorial/data/serial/main/b-customers.dat
from Input_File:read
The output tells you which graph reads (or writes) the dataset, and from which component
and port. The first line indicates that the graph b-join.mp reads the current dataset from
the read port of the component becket_customers.
The following command reports the datasets associated with the indicated graph:
Related topics
vertex/varinfo:port[:field]
vertex identifies a component (by its label in the GDE, if it has one, or by
its name), and port identifies a component port by name. To limit the
output to a particular field, specify the field. If you do not specify a field
name, then dependencies for all fields through the port are shown.
SUGERENCIA:
Use air object field-lineage rpath -vars to display a list of all possible
values for var in the graph.
-upstream | - Use with the -dep argument. Specifies the direction of the analysis. If you
downstream do not specify the direction, lineage for both directions is shown.
-statements, - Use with the -dep argument. Filters the output to show only the
ports, -datasets statements, ports, or datasets. (The default output shows all of these.) You
can use these options in combination.
-wizard The command output by default does not display the DML associated
with any transforms that are determined to affect field lineage. Use this
flag to add the text of the DML statement to the command output.
-m Produces DML-described (machine-readable) output. The record format
is in $AB_HOME/include/field-lineage.dml.
-cross-graph de Displays information about field lineage across any graph in the
pth repository that uses a common source or target dataset. For example, if
the graph specified by rpath writes Dataset A, then field lineage for any
graph that reads Dataset A is shown.
The depth argument specifies across how many graphs the analysis should
extend. The default depth is 1 (current graph only). A value of -
1 indicates no limit — the entire repository is included in the analysis.
-all-outputs Displays the upstream dependencies for all fields in the graph’s output
datasets.
-all-inputs Displays the downstream dependencies for all fields in the graph’s input
datasets.
-outputs-to- For every output field in the graph, lists all the input fields that have data
inputs dependencies on that output field.
-inputs-to- For every input field in the graph, lists all the output fields that have data
outputs dependencies on that input field.
-datasets Lists the datasets read or written by the graph.
-vars Lists all the analysis variables (essentially, component ports) in the graph.
This output is helpful in determining the appropriate value for var before
Argument Description
you run air object field-lineage with the -dep var argument.
Usage
This command analyzes a graph or graph instance (identified by an input pset) in the
technical repository. The object to be analyzed must be checked in. To analyze a graph that
is not checked in, use air sandbox field-lineage.
NOTA:
This command does not display dependency analysis warnings. Check for warnings by
running air project analyze-dependencies before using this command.
Examples
The following command displays the field lineage for the pending_interest field through
the read port of a dataset component called Pending_Interest:
The following command displays the upstream dependencies for all the fields in the graph’s
output dataset:
The following command adds cross-graph lineage (with a scope of the entire technical
repository) to the previous example:
The following command lists the datasets read or written by the graph:
Related topics
Linaje de campos
air sandbox field-lineage
air project analyze-dependencies
The nonversioned bit is indicated in the executable (X) field of the Other
group, as follows:
- means the entry is versioned and is not executable by the Other group.
x means the entry is versioned and is executable by the Other group.
n means the entry is nonversioned and is not executable by the Other
group.
N means the entry is nonversioned and is executable by the Other
group.
The command also loads the save promotion history associated with the save file, records a
history of the load promotion in the target repository, and saves a promotion history file for
subsequent loading into the source repository. The command can load either compressed or
uncompressed save files.
NOTA:
We recommend using air promote load, except when promoting business metadata for
Express>It. The air promote load command has fewer arguments and is easier to use. It is
similar to running air object load -history-file -analyze.
Syntax
air object load [-table-of-contents] filename
[-history-file history-filename]
[-relocate source-path target-path] ...
[-no-since-verify]
[-no-tag | -tag tagname]
[-comment comment]
[-quiet]
[-load-permissions]
[-analyze | -no-analyze]
Argument Description
-table-of-contents Displays a listing of filename’s contents, including the explicitly
saved objects, saved referenced objects, and tag information. No
loading occurs. For more information on the listing,
see “Understanding the contents”. For an example, see “Viewing
the contents of the save file”.
filename Standard Unix filename of the file storing the objects you want to
load. If filename is -, the data is read from standard input.
-history-file history-file Path to a history file to create. After the load operation is done,
name you should load this file into the source technical repository, even
if the load operation failed.
-relocate source-path Causes the objects in the save file to be loaded to different
target-path locations. All paths beginning with source-path are loaded
at target-path.
If not specified, the objects are loaded into the location specified
by source-path.
Usage
The save file must have been created by air object save or air promote save. If the -exact-
tag or -from-tag options were used with either command, a promotion history is also
created. For more information, see “Promotion history”.
You can also use air object load to load purged jobs back into the technical repository from
which they were purged. The archive file containing the purged jobs is created by air purge
jobs. air object load will fail if the objects referred to in the archive file have been removed
from the repository.
When using air object save, make sure that AB_AIR_ROOT points to the target repository,
or use the -root option (see -root) to specify the repository root explicitly.
The repository resolves external references in the saved file by pointing to the latest version
of all external references. Therefore, it is possible for version conflicts to occur in the
destination repository when you load common projects.
When a tag was created using the air tag create -exact option (which includes only objects
specified in its path and no dependent objects), air object load treats migrated tags the same
way.
air object load can handle both gzip-compressed data as well as data compressed by
the compress utility.
Progress messages are written to standard output. To change the default behavior,
set AB_AIR_SAVE_LOAD_LOG_TO_STDERR to true.
Understanding the contents
When you use air object load with the -table-of-contents argument, it displays a listing of
the specified filename’s contents so that you can view the file’s contents before you
actually load it in a separate step. The following are the fields that the output might include:
For sample output, see “Viewing the contents of the save file”.
Promotion history
If the Technical Repository administrator has enabled the Require Promotion History
option (air repository options +require-promotion-history), any errors encountered while
creating the promotion history will cause the load operation to fail.
The promotion history file created by air object load contains the history of a load
promotion into the target technical repository. It includes information about the options
used while loading as well as any errors or warnings encountered.
We strongly recommend that you specify a load promotion history file. After the load
operation is done, run air promote load-history-file history-filename to load that file into the
source technical repository, even if the load operation failed. This guarantees that the
record of promotion histories in the source and target repositories are synchronized. Note
that history-filename is not the same as the randomly assigned name written to the target
repository; rather it is a name you assign to the file.
Examples
Resolving common project references
In this example, you save version 100 of a project and the same version of its associated
common project common_proj. Meanwhile, another user loads the project at version 120,
which also includes the same common project common_proj at version 120. When you try
to load version 100 of common project common_proj, the Technical Repository software
resolves the reference to common project common_proj to version 120 in the destination
repository.
Viewing the contents of the save file
To see which files will be loaded in the target repository, enter:
The output shows the explicitly saved project (/proj) and the objects saved as a result of
saving the project. Also note the tag information. The file was created through the tag tag1,
which will be created automatically in the target repository unless you specify -no-tag to air
object load.
Objects:
/proj
/proj/.air-project-parameters
/proj/.project-end.ksh
/proj/.project-start.ksh
/proj/.repository-state
/proj/db
/proj/dml
/proj/dml/cust_01.dml
/proj/dml/cust_02.dml
/proj/mp
/proj/mp/customers.mp
/proj/mp/billing.mp
/proj/plan
/proj/pset
/proj/resource
/proj/run
/proj/xfr
Exported objects:
/proj
Miscellaneous information:
From tag "tag1"
Create tag "tag1"
Deprecated arguments
-force has been deprecated in Version 2.15.
Alias
The alias for this command is air load.
air object ls
Displays a listing of a technical repository directory. The default listing format has a header
line plus one line per element of the directory. Each line ends with the object’s class and
name. This command is branch-specific. For information about the arguments common to
all air commands, see “Command-line syntax of air commands”.
Syntax
air object ls [-RlguAdcafC] rpath
Parameter Description
-R If specified, produces a recursive listing of the directory and its subdirectories.
-l Produces a long listing in which each line includes special information
(see “Usage”), permissions, owner, size, object class, and name.
Parameter Description
In the long listing, the nonversioned bit is indicated in the executable (X) field of the Other
group, as follows:
- means the entry is versioned and is not executable by the Other group.
x means the entry is versioned and is executable by the Other group.
n means the entry is nonversioned and is not executable by the Other group.
N means the entry is nonversioned and is executable by the Other group.
NOTA:
If there is an ACL on the object, permissions show ACL instead of owner and group
permissions. For example:
When you add a file to a directory with a sticky bit, the file takes on the permissions of the
parent. For information about permissions and changing permissions, see air object chmod.
This command does not display information about objects that have been removed by air
object rm or deleted by the deprecated air object delete command.
For more information, see “Displaying permissions, ownership, and related information”.
Object types
The following table lists common object classes that you might see after issuing the air
object ls command; it is not an exhaustive list:
The following display shows that the graph is in domain 134 and is currently at version 9.
The owner and the group can read and write the file:
Alias
The alias for this command is air ls.
air object mkdir
Creates a technical repository directory and if it is within a project, adds it to the project
files list. Parent directories are created as necessary. This command is branch-specific. For
information about the arguments common to all air commands, see “Command-line syntax
of air commands”.
Syntax
air object mkdir [-q] [-no-project-add] rpath
Argument Description
-q Suppresses error if rpath exists.
-no-project-add If the new directory is in a project, the directory is not added to the
containing project's file list.
rpath Path of the directory you want to create.
Usage
The command fails if rpath exists.
Alias
The alias for this command is air mkdir.
air object mv
Renames the object rpath to rpath_mv. This command is branch-specific. For information
about the arguments common to all air commands, see “Command-line syntax of air
commands”.
Syntax
air object mv rpath rpath_mv
Argument Description
rpath Path to the repository object you want to rename. See “Specifying object names
as arguments”.
rpath_mv New name for the object rpath.
Usage
This command fails if rpath does not exist or if rpath_mv exists.
Both rpath and rpath_mv must refer to directories or files in directories, such as record
format (.dml) files or projects.
You can use this command to rename — in essence, relocate — entire projects.
Parameterized references to the original project will resolve properly to the renamed
project.
The older tagged versions of a renamed object remain intact at the original location;
existing tags continue to point to the original name (location) of the object.
Alias
The alias for this command is air mv.
To use this command, you must have repository format version 15 or higher.
To use the -tags option, you must have repository format version 17 or higher.
Syntax
air object poll-for-change -cmd script
[ -state-file filename ]
[ -poll-interval t ]
[ -poll-limit n ]
[ -watch-list paths ] | [ -watch-file filename ]
[ -tags ]
[ -keep-connection ]
[ -exit-on-change ]
[ -batch ]
[ -verbose ]
Argument Description
-cmd script Specifies a command file. The file must be a script or other program that
expects arguments in the form of one or more space-delimited version
numbers. For more information, see “Usage” and “Examples”.
-state-file filenam Specifies a file that contains the start time of the polling. When this
e argument is specified, the state file is updated by the command program.
This means that, for example, you can monitor a repository for a day
Argument Description
and then stop. When you resume monitoring again, the state file will
contain date and time information from your previous session so that
you can resume where you left off.
If you specify a file that is not present, the command will create it.
Usage
The script or program that is passed with the -cmd argument must take an input argument in
the form of “repository_version_number ” — for example, 303 followed by a space.
The optional state file should specify the start date and time in this format: YYYY-MM-DD
HH24:MM:SS — for example, 2017-06-05 13:50:29.
If you specify an object to monitor that isn’t under source control, this air command will
generate an error similar to the following:
---------------------------------------------------------------
path (or contents): Object is not under source code control
The immediate usefulness of any output that the command generates depends on the
program that you pass to the -cmd argument. The resulting output can be highly descriptive
and complete, or it may provide only the version numbers for changes, which you can then
use to obtain more information or share with others. The choice will depend on your
environment and application requirements. For examples, see “Generating useful output”.
If you run air object poll-for-change -cmd with the -tags argument and also specify a file
that is under source control using -watch-list path, for example, script will run if either tags
or objects change. You do not need to have a change to both a tag and an object
for script to run — either one invokes the script.
Examples
Following are a series of examples that illustrate how to use the repository object polling
feature. Unless stated otherwise, these examples use a command file, poll-cmd.ksh, which
contains a repository version number as an argument. The file contents are the following
(note that there is a required space after the version number parameter $1):
#! /bin/ksh
air version-info $1 > for_mailing
mail -f for_mailing -u team_admin
While the command was polling the project, two new objects were checked in. The
contents of the command’s resulting output file are the following:
cat poll-output.txt
changes in 2 versions detected.
9 2017-06-05 15:54:51 main ktomlinsoni
1 Command(s):
air:project:import air project import /Projects/proj1/dml/a1.txt -basedir
/u/mkatz/sandbox/dml
1 Object(s):
A /Projects/proj1/dml/a1.txt
10 2017-06-05 15:54:57 main ktomlinsoni
1 Command(s):
air:project:import air project import /Projects/proj1/dml/b1.txt -basedir
/u/mkatz/sandbox/dml
1 Object(s):
A /Projects/proj1/dml/b1.txt
Polling loop 1 completed.
Polling loop 2 completed.
Polling loop 3 completed.
...
Polling loop 20 completed.
In this example, two DML files were checked in representing repository versions 9 and 10.
Messages for each successful polling interval are shown when you use the verbose mode.
The output file for this command shows that there were four changes made to the
monitored project /Projects/proj1. Versions 24 and 25 were passed as a batch to the
command script batch-cmd.ksh, as follows:
cat poll-output.txt
changes in 4 versions detected.
./batch-cmd.ksh 24 25
Polling loop 1 completed.
Polling loop 2 completed.
...
Polling loop 8 completed.
Polling loop 9 completed.
changes in 1 versions detected.
./batch-cmd.ksh 33
Polling loop 10 completed.
Polling loop 11 completed.
...
Polling loop 19 completed.
Polling loop 20 completed.
[1] + Done air poll-for-change -cmd batch-cmd.ksh -state-file temp_state_file -batch -
watch-
list /Projects/proj1 -poll-limit 20 -verbose > poll-output.txt
host$ cat temp_echo.ksh
#! /bin/ksh
echo $0 $1 $2
The contents of the input file watch-file are /Projects/proj1 and /Projects/proj3, each on a
separate line, as follows:
/Projects/proj1
/Projects/proj3
While the command was polling, the following changes were made to the specified
projects:
The versions displayed with the air repository version-info command show the following
changes:
(The checkin to the /Projects/proj3 project, which was also being monitored, occurred
outside of the polling period shown.)
Specifying a branch
To establish monitoring on a branch, you can use the -branch argument that is available to
all air commands. In the following example, the command monitors changes on branch2 for
a series of projects that are listed in my-watch-file:
#! /bin/ksh
air version-info $1
Within the script, the parameter $1, which will hold the version number, is followed by a
space, as the air command requires. The air poll-for-change command passes to the script
the version number at which a change was detected for an object being monitored. The
script then runs the air repository version-info command with the version number that was
passed to it. The air repository version-info command provides robust output information
about the repository changes. The following sample output shows that while the script was
running, several checkins occurred:
#! /bin/ksh
echo $0 $1 $2
The air poll-for-change command passes as parameters to the script, one, two, or three
version numbers at which changes were detected. The script then prints the output to
standard IO. In this case, each time the script is run, the command appears in the output
with the version number used, as follows:
! /bin/ksh
air version-info \$1 -all-objects
Within the script, the parameter $1, which will hold the version number, is followed by a
space, as the air command requires. The air poll-for-change command passes to the script
the version number at which a change was detected for an object being monitored. The
script then runs the “air repository version-info” command with the version number that
was passed to it.
The following sample output shows the results for polling when the -tags argument is used.
The output shows that while the script was running, a change in 1 version was found:
NOTA:
This command was formerly called air object uses, and it still works as an alias.
Syntax
air object referencing-files rpath
[ -top-level ]
[ -single-column ]
Argument Description
rpath Path to the target repository object.
-top-level Displays a single-column list of only the top-level objects that use
the target object. If omitted, the display shows subobjects as well.
-single-column Displays the full paths to all objects that use the target object rpath.
The display is a single column. If omitted, the display is two
columns.
Usage
Before running this command you must successfully run dependency analysis on all objects
that use rpath (the target object). Before analysis, the information required by this
command is not stored in the technical repository. See “Análisis de dependencias” in the
Co>Operating System Guía para desarrolladores de grafos.
By default, the output display is two tab-separated columns: the top-level source object,
followed by the using subobject (for example, a port within a graph). If there is no
subobject, the second column is empty.
Alias
The alias for (and former name of) this command is air object uses.
air object requires
Creates, modifies, or clears a list of additional files that are considered required by the
graph and will be promoted with the graph when you load a save file created through air
object save. For information about the arguments common to all air commands,
see “Command-line syntax of air commands”.
Syntax
air object requires rpath
{ -add rpath ...[ -force ] | -remove rpath ... | -clear } [
-show ]
Argument Description
rpath Full path to a graph that requires other files to be promoted
with it. If the graph is in a project, the path should be
parameterized so that it is valid in both the filesystem and the
technical repository. Note that you must place single quotes
around rpath to avoid having the parameterized expression
interpreted by the shell.
-add rpath ... [-force] Choose one of the following:
| -remove rpath ... | -clear
-add rpath — adds one or more files to the list of
additional files required by the graph. If the file does
not exist, use the -force option.
-show Displays the list of additional required files after you have
added or removed files.
Usage
Ordinarily, when you promote (air promote save or air object save), check in (air project
import), or check out (air project export) a graph or plan, the system automatically
determines which files need to be transferred with the graph or plan for it to run. However,
there are times where you must manually inform the system about other files that should be
promoted or checked in and out with the graph or plan. For example, the start script for a
graph might reference a shell script, which means that the shell script must be promoted
into production along with the graph itself.
The air object requires command creates a required_files parameter for the graph and sets
its value to the list of required files created by the command. To see the parameter in the
GDE, check out the graph. You can also edit this parameter in the GDE to change the list of
required files. Alternatively, you can create a required_files parameter directly in the GDE
and specify one or more required files. To specify multiple files, separate them with a
newline.
Before promoting or checking a graph or plan in or out, run air project get-required-files to
display the list of files that will be transferred along with it. If the list is incomplete or
incorrect, run the air object requires command to add files to or remove files from the list of
required files.
Example
To promote a shell script referenced in the start script for the JoinCustomers graph and
display the list of explicitly added files, type:
Alias
The alias for this command is air requires.
air object rm
Marks the specified object as removed from the current version of the technical repository.
It also removes objects from projects. This command is branch-specific. For information
about the arguments common to all air commands, see “Command-line syntax of air
commands”.
Syntax
air object rm [-f] [-r] [-no-project-remove] rpath
Argument Description
-f Suppresses error if rpath does not exist.
-r Recursively removes the subdirectories of rpath.
-no-project- Removes the object without removing it from source code control.
remove
rpath Path to the directory entry, or object ID, you want to remove.
See “Specifying object names as arguments”.
Usage
This command removes the specified object from the directory at the current version, but
older versions of the object remain in the technical repository. For example, running air
ls on the object shows that the object is not present at the current version.
Nonversioned objects, such as jobs, are removed completely, and their space is recovered.
You can access an object that has been removed by air object rm through commands that
specify a version of the repository in which the object did exist. At earlier versions of the
repository the specified object and its relationships are still present. For example,
running air ls with the -version option will show the object at the specified version.
To eliminate older versions of a removed object, run air purge object, specifying the
domain number of the object. air object purge deletes all versions of an object.
Alias
The alias for this command is air rm.
To roll back multiple rpaths, you must specify the -to-version argument, as follows:
Identifying versions
In some cases, you may not want to replace a removed object just prior to the removed one.
You can use the air object versions command or the Technical Repository Management
Console (TRMC) Versions tab to identify the desired version number. For example, you
can use the tab to browse for the repository path of the directory that contains the deletion.
Alternatively, if the user who deleted the object is known, you can filter the view by
specifying the username and then search those versions.
To roll back to a previously removed object, enter the following syntax for the value
of rpath:
In the syntax above, @1.1 denotes domain 1 (which is the root directory) and object 1.
From this starting position, the command uses version-number and rpath to identify the
correct object. For an example, see “Restoring a removed object” in the Examples.
Identifying domain numbers
To identify a domain number if needed, run the following command. The domain number
will appear in the output:
Once you have the domain number, you can enter the following:
Using the -ignore-missing argument overrides the error and proceeds with the rollback
despite the missing files. Because this argument removes files, before using this command,
investigate whether removing the files will cause a problem.
NOTA:
This command works on versions or promotion tags only. This command rolls back the
version at which the tag was created; it does not roll back the actual checkin.
Example
This example uses the /Projects/Provolone sandbox as an illustration of the air object
rollback-version command. :
This example of a dry run tests a rollback to version 1543 erroneous checkins made to the
repository at version 1544. In doing so, the test run uncovers the fact that a user checked in
the vendor-xform.xfr file after the erroneous version 1544. This creates a potential file
conflict that should be investigated. If appropriate, as shown in this example, the file can be
exclude from the rollback:
Usage
This command is used with air object load to:
When using air object save, make sure that AB_AIR_ROOT points to the source repository,
or use the -root option (see -root) to specify the repository root explicitly.
Unlike air promote save, air object save does not compress the contents of the save file.
This is for compatibility reasons.
NOTA:
To back out changes to the current version of a technical repository by restoring earlier
versions of modified or removed objects, use air object rollback. For more information, see
that command in this Reference and “Restoring an earlier version” the Technical
Repository Guide to Version Control.
Other files associated with a graph — for example, scripts invoked by start and end scripts
— are not ordinarily saved. You must specify these files in
the -include rpath or -external erpath clause.
Common project record formats are referenced by graph parameters; there is no physical
link from graphs to record formats in common projects. As a result, the command does not
consider these external references (and does not show them in the output). The only
exception is when the command saves a dataset that points to a record format in a common
project. (In versions lower than Version 2.14 common project record formats were stored as
relations; air object save saved these as external references, which were shown in the
output.)
Using the -exact tag and -from-tag options
As of Version 2.15, we recommend using the -exact-tag argument, as this functionality is
consistent with that of the Technical Repository Management Console.
You can use both the -from-tag and rpath arguments in the same specification. You can
specify only one -from-tag option at the command line. Note that if you specify -from-
tag tag, the project parameters will not be saved even if the tag includes the parameters file.
We recommend that you use -exact tag tag instead.
Creating and displaying the promotion history
If you use the -exact-tag or the -from-tag options, this command creates a promotion
history. To display the promotion history created by air object save, run air promote list.
If the Technical Repository administrator has enabled the Require Promotion History
option (air repository options +require-promotion-history), any errors encountered while
creating the promotion history will cause the save operation to fail.
Interobject references
The -include and -external options determine how interobject references are handled, such
as those between a graph and its .dml or .xfr file. You can either include the referenced
objects in filename using the -include option, or create an external reference to the
referenced object using the -external option. The external reference is resolved
when filename is loaded.
-exclude has a higher precedence than -include and -external. Thus, if an object is both
excluded and included, it is excluded from the save file. The -settings option is independent
of these other three.
Promoting modifications
Once you have promoted a project, use air tag create and air save to promote only those
objects that have changed since you last tagged and saved them; you do not need to keep
track of which objects have changed. First retag the modified project (assume it’s
called myproject and today’s date is December 15, 2016):
Next save the project in a save file, but this time use the -from-tag or -exact-tag arguments
with the -since tag option to save only those objects that have changed since you checked in
your modifications and tagged the project as myproject-2016-12-02-release:
Alias
The alias for this command is air save.
Searches are faster when you filter the files by name or MIME type, because fewer object
contents must be examined.
Examples
In the following example, the air command searches for the java_release_handle function in
all objects found under the /Projects/hadoop repository project path:
The following example uses the MIME type argument to search for
the java_release_handle function in all transform files and graphs found in
the /Projects/hadoop repository project path:
air object search grep /Projects/hadoop java_release_handle -mime-type xfr -mime-type graph
Related topics
-required Also searches for matches in all files that are required by respository-
path. This argument is equivalent to the air sandbox get-required-
files path command.
-m Displays any results in a concise, machine-readable format without
headers.
Usage
When you run the air object search parameter command, note the following:
Matching is case-sensitive for both the parameter name and the optional pset.
If no matches are found, the command generates a warning that no matches were
found.
If the repository-path specifies a directory and the command finds no matching
graphs, plans, psets, and so on, then the command issues a warning that no objects
were found.
Examples
In the following example, the air command searches for the FOO parameter in all objects
under the /Projects/hadoop project:
In the following example, the air command searches for the FOO parameter in a single
graph:
In the following example, the air command searches the specified project and all required
files for references to the BAR parameter that are declared in .project.pset:
Related topics
NOTA:
This feature requires Co>Operating System Version 3.3.3 or later and technical repository
format 19 or higher. Some earlier versions of the Co>Operating System offered a group of
undocumented and unsupported air acl commands. These have been removed.
Syntax
air object set-acl [ -R ] path [ -exact ] [ -readonly ]
[ -remove-all | { permission user-list ... } ... ]
Parameter Description
-R Sets the ACL for the rpath object that follows. If that object is a directory,
recursively sets the ACLs on any objects contained in that directory.
path Specifies the repository path to an object or directory in the repository.
Parameter Description
-exact By default, all changes to ACLs modify the existing permissions. When
specified, the ACL permissions will conform to the exact specifications that
you supply to the command.
-readonly Removes write permissions from the specified object. Users or groups who
have write access lose write access and gain read access.
-remove-all Removes all ACLs from the object, restoring the normal Unix-style
permissions.
permission Specifies the ACL permissions to apply to the specified objects. You can enter
the following:
+read — The user or group can view the value of the specified object.
-read — The user or group cannot view the value of the specified
object.
+write — The user or group can edit the values of the specified object.
-write — The user or group cannot edit the value of the specified
object.
NOTA:
SUGERENCIA:
Usage
Permissions are additive. Users and groups are given the maximum permissions
assigned to them.
You cannot use the -exact argument with -read or -write. In this case, the command
ignores the permissions values because you cannot perform a subtractive override.
To view ACLs, use the air object show-acl command, the Technical Repository
Management Console, or the Technical Repository Web Interface.
To remove all permissions on an object, rendering it inaccessible, enter the
following command without specifying any permissions:
When you remove ACLs on an object using the -remove-all option, the object
reverts to Unix-style permissions. You must then use air object chmod if you want
to set special permissions on the object.
If an object has a sticky bit set and you add ACL permissions, the ACL permissions
will be inherited. If you add a new object to a directory, it will inherit the ACL
permissions.
If you run the air object chmod command against an object that has ACL
permissions, the command will work. However, the Co>Operating System ignores
the bits affected by the chmod command when ACLs are present.
Examples
These examples show some useful applications for the air object set-acl command.
Applying ACLs recursively on a directory and adding a user
This example applies ACL permissions to a directory and applies the ACLs recursively to
the objects that the directory contains. The /Projects/proj4CT/dml directory is restricted to
read-write access for the owner, cotesti. The following command adds the
user ktomlinsoni and grants her write permissions; air object show-acl confirms the change:
After you use the air set-acl command with the -remove-all argument, the air show-
acl command shows the original Unix-like permissions. The message from mode bits in the
output indicates that the permissions shown are no longer ACL permissions:
1. Starting permissions
At the start of this example, the two projects have owner read and write permissions, and
group read and write permissions, while the group other (world) has only read permissions.
The following air object show-acl command illustrates this:
The (from mode bits) message in the command output indicates that these permissions
are not ACL permissions.
Next, we add ACL permissions to /Project/proj0 and /Project/proj1. The first command
assigns ACLs to two users, cfordi and jfilreiso, for the project /Project/proj0.
The second command assigns the same ACLs to the one of the users of the
project /Project/proj1. However, this command includes the -exact argument, which applies
the permissions literally, rather than modifying the prior Unix-style permissions:
In the -exact argument example, the -write argument was not included for the user jfilreiso.
This is because subtractive arguments can’t be used with the -exact argument. Had the
subtractive argument been provided, the command would have simply ignored it.
3. Resulting permissions
Looking again at the resulting ACL permissions shows that the first command just
modified the existing permissions, while the command with the -
exact argument removed the existing staff and world group permissions because they were
not specified in the air command, as follows:
NOTA:
This feature requires Co>Operating System Version 3.3.3 or higher and technical
repository format 19 or higher.
Syntax
air object show-acl [ -R ] path ...
Parameter Description
-R Displays the ACL permissions for the specified rpath object. If that object is a
directory, recursively displays the ACLs on any objects contained in that
directory.
path Specifies the repository path to an object or directory in the repository.
Separate multiple paths with a space.
SUGERENCIA:
Usage
The output of this command is formatted so that it matches the syntax expected by the air
object set-acl command. It is possible to pass this command’s output to air object set-acl if
you want.
If you run this command against an object that uses Unix-style permissions — rather than
ACL permissions — the permission list will be preceded by the text (from mode bits).
If the ACL access on an object prohibits access to all users, the command will display (no
access).
Example
This example shows that the transform /Projects/proj4CT/xfr/shift-40.xfr has write ACL
permissions. This permission is available to all users in the group staff and to the
user cotesti, as follows:
Related topics
air object ls
“Displaying permissions, ownership, and related information”
Example
To see the permissions on all the objects contained within /Data, type:
air object show-permissions -R /Data
NOTA:
To get the most use out of this command, we recommend that you use it with the -versions-
only argument to pass output to the air repository version-info command. For an example,
see “Version numbers output to air repository command” (below) and the air
repository documentation. This argument requires a storage format 15 or higher technical
repository.
Syntax
air object versions
[-quiet | [-no-tags] | [-checkins | -internal]]
[-descending | -ascending]
[-user username [-user username ...]]
[-branch branch [-branch branch ...]]
[-rtags-only]
[-m]
[-versions-only]
[-show-branches]
[rpath] | [-rpath-filter filter ...]
[version-range]
Argument Description
-quiet | -no-tags | -checkins | - You can specify one of the following:
internal
-quiet lists only versions that are tagged or have
associated comments. If omitted, displays all
versions and tags for the object rpath or, if rpath is
omitted, for the entire technical repository.
-no-tags lists all distinct versions of rpath but no
tag information.
-checkins lists only those versions at which the file
was checked into a project. Changes that do not
affect the source code are not listed, for example,
changes made by dependency analysis. This is the
default behavior if rpath or -rpath-filter specifies an
object under source control.
version first.
-ascending (default) sorts the display with the
earliest version first.
-user username You can specify one or more technical repository user IDs
to limit the output of this command. If the user ID is not in
the technical repository or the currently connected branch,
the command issues a User “username” not
found message.
-branch branch You can specify one or more branches to limit the output
of this command. If the branch is not in the technical
repository or the currently connected branch, the command
issues a Branch not found, branch name given
was branch message. When connected to a branch, you
can specify main as the value of branch to retrieve parent
information in the repository’s hierarchy. If the returned
result for a specific branch is empty, it means the branch
contains no new checked in objects.
NOTA:
NOTA:
NOTA:
If the object that you specify by rpath is under source control or you specify -rpath-
filter, by default this command displays source control-only versions and omits
internal versions such as those created by dependency analysis.
If the object that you specify by rpath is not under source control, by default, this
command displays internal versions.
If you do not specify rpath or -rpath-filter, then this command displays versions for
all objects in the repository — including internal versions.
If the current version of the object that you specify by rpath was removed, this
command displays information for the versions prior to its removal.
The output might look like the following, showing the untagged versions 737 and 747 also:
Removed object
If the object specified by rpath has been removed, this command displays the historical
information associated with the object and a note stating that the object has been removed,
as follows:
air versions /dir1/A
Versions of @1.1.18/dir1/A [NOTE - Object has been removed]
Version Date User Tag Comment
16 2014-12-02 14:11:42 rsmith
17 2014-12-02 14:11:50 rsmith
18 2014-12-02 14:11:56 rsmith
19 2014-12-02 14:14:48 rsmith
The output might look like the following. Note that when -quiet is specified, the command
displays only tagged versions of the graph. You see version 738 three times, because it has
three different tags at that version.
The output shows the date, users, tag, and comment for that version:
air project import /Projects/foo -basedir foo-sand -auto-add -comment "check in changes to
/Projects/foo" # version 20
air project import /Projects/bar -basedir bar-sand -auto-add -comment "check in changes to
/Projects/bar" # version 21
air mv /Projects/bar/mp/agraph.mp /Projects/foo/agraph.mp # version 22
air object versions -rpath-filter /Projects/foo -from 20
Checkins
Version Date User Tag Comment
20 2017-10-10 13:29:54 bob checked in changes to /Projects/foo
22 2017-10-13 10:15:43 bob
The output of the command air versions -rpath-filter /Projects/foo -from 20 shows
versions 20 and 22, the versions that had changes to objects underneath the
path /Projects/foo from version 20 onward.
Alias
The alias for this command is air versions.
The following table summarizes the air project commands. For information about command
syntax, see “Command-line syntax of air commands”.
Command Description
air project add Explicitly adds a file to a project.
air project Performs dependency analysis on the specified graphs or all graphs in a
analyze- project.
Command Description
dependencies
air project clone Copies settings of a project to a new project.
air project Converts a project to Format 3. See also the air sandbox
convert convert command.
air project create Creates a technical repository project.
(deprecated)
This command has been deprecated. Use the create-project script instead
of this command.
air project Sets a project setting to its default value.
default
air project eval Evaluates the value of the specified project parameter.
air project Updates a sandbox from the technical repository; this process is
export called checkout.
air project files Displays file types and timestamps.
air project find Finds objects within a project.
air project find- Searches for the specified text in graphs, plans, psets, text and other files
text in a project.
air project get- Finds files that are used by another file.
required-files
air project Updates the technical repository from the filesystem.
import
air project Manages the contents of the repository-wide project extensions list.
manage-
extensions
air project map- Shows the result of URL mapping.
url
air project mkdir Creates a new directory in the specified project.
remove” instead.
air project reset Clears a project setting.
air project Resolves sandbox/repository conflicts.
resolve-conflicts
air project revert This command is no longer available. Use air project export and air
project import instead.
air project set- Ensures that file will be marked executable when it is exported.
executable
air project set- Sets an object's MIME type.
type
air project show Displays project settings.
air project show- Displays the specified project’s common projects.
common
air project Updates the project’s extension list to include all the current built-in
update- extensions.
extensions
air project Computes the repository version for object moves and removes that were
update-files made using software versions prior to Co>Operating System Version
3.3.2, and stores that repository version as an entry in the project files list.
Use to improve save file creation and promotion performance.
The MIME type for each object is determined by the project’s extension list. Run air
project show to see the current extension list. If the file you’ve added does not have a
recognized MIME type, run air project set-type to modify the extension list.
The extensions must reside in the current project (or any of its
common projects) at the path /xfr/vld/filename.xfr. Only extensions
identified with the eme keyword in the activation file
(/xfr/vld/activation-file.act) are run. For more information,
see “Complementos de validación y validación de grafos” in
the Guía para desarrolladores de grafos.
If you want to process error messages programmatically, the DML record format for the
output of the -parsable-errors option can be found
at $AB_HOME/include/analysis_warning.dml.
If the command succeeds with nonfatal errors (warnings), the command exits with status
code 2.
A graph that cannot be analyzed (either due to errors or due to the setting of the analysis
level) reports a complexity of 0.
For more information about graph complexity, see “Evaluar la complejidad de grafos” in
the Co>Operating System Guía para desarrolladores de grafos.
Example
To determine the complexity of all graphs in the ws-con-up project.
An excerpt of the output (below) shows, for example, that the overall complexity of the
first graph is 9, while the topological complexity (relating to graph layout and flows) is 1.
The integers following the graph’s components — NORMALIZE and ROLLUP — indicate
the component’s inherent complexity (ROLLUP is inherently more complex
than NORMALIZE) and the complexity of its transformation, respectively:
/Projects/ws-con-up/comp/UpdateableTransactionsByNameLogic.mp 9 Topological:
1
Normalize 1 0
Rollup 3 0
/Projects/ws-con-up/comp/UpdateableTransactionsLogic.mp 9 Topological:
1
Normalize 1 0
Rollup 3 0
Shortcut
The shortcut for this command is air analyze.
air project clone
Copies the settings, but not the content, of the specified project to a new project. Settings
include the project parameters, the extension list, common projects, and the start and end
scripts. This command is branch-specific. For information about the arguments common to
all air commands, see “Command-line syntax of air commands”.
Syntax
air project clone source-project dest-project
Argument Description
source- Path to the project whose settings you want to copy — for
project example, /Projects/lesson.
dest-project Path to the project into which you want to copy the settings — for
example, /Projects/myproject.
Usage
You may be planning to build several projects that are very similar to one another; for
example, they will all use the same project parameters. Rather than create each project
separately, we recommend that you set up a project template containing your preferred
settings and then use air project clone to create new, skeletal projects from this single
template.
Example
To copy the settings of the lesson project into a new project called myproject, type:
PRECAUCIÓN:
The air sandbox convert command is preferred. It allows you to test your applications after
converting them but before committing the changes to the technical repository. For advice
about converting large numbers of projects, please contact Departamento de soporte técnico
de Ab Initio.
Syntax
air project convert {project-name | -all} [-dry-run]
Argument Description
project-name | -all Choose one of the following:
-dry-run Reports the results of the specified conversion but does not actually
perform the conversion. The technical repository remains unchanged.
Related topics
Creates a new project and specifies various project attributes, including its location
parameter name, a project parameter prefix, included common projects, and additional
entries in the extension list. This command is branch-specific. For information about the
arguments common to all air commands, see “Command-line syntax of air commands”.
PRECAUCIÓN:
This air command creates projects that are unrelated to an Entorno de Ab Initio. As a best
practice, use the create-project script or create the project in the GDE. These methods
create a new project in an Entorno de Ab Initio.
Syntax
air project create project-name
[-location location]
[-formatn]
[-prefix prefix]
[-common [ parm-name] common-path [parm-name] common-
path ...]
[-extension pattern type [pattern type] ...]
[-nodefault]
Argument Description
project-name Name of the project to be created, for
example, /Projects/warehouse.
-location location Name of the project parameter that specifies the location
of the project. The default is PROJECT_DIR.
If you need to change any project attributes after you have created the project, run air
project modify.
Example
To create a project called test that has a location parameter of PROJECT_DIR, prefixes all
parameters with AI_, and contains a common project, type:
-location location Name of the project parameter that specifies the location of
the project — for example: -location PROJECT_DIR.
-prefix prefix Specifies a prefix for the set of predefined project
parameters — for example, -prefix COMMON_.
Usage
The extensions argument restores the default extension list for a specific project only. To
reset the extensions system-wide use air project manage-extensions with
the reset argument.
Example
To restore the lesson project’s default extension list but not the project parameters, type:
NOTA:
To evaluate the Layout parameter for a ROLLUP component found in a graph with an input
pset, enter the following:
Related topics
NOTA:
NOTA:
-exclude project Excludes the specified project from export. This option is
valid only for multiproject exports (described
in “Usage” below). You can specify multiple -
exclude clauses.
-published-eme published- Specifies the name of a "published" technical repository to
name associate with the sandbox specified by -base-dir root-dir.
(To be published, a technical repository must be specified as
one of the values of
the AB_EME_REPOSITORIES configuration variable.)
-config config-pset Configures a Format 3 sandbox to use the configuration
parameter set config-pset. The value is stored
in .sandbox.pset.
NOTA:
Create a new sandbox from scratch or to update an existing sandbox with files from
the technical repository.
Merge files that have been modified in both the repository and the sandbox. For
example, this command is useful when one developer modifies and checks in a file
that was previously locked and modified by another developer. For more
information, see “Merge”.
NOTA:
To back out changes to the current version of a technical repository by restoring earlier
versions of modified or removed objects, use air object rollback. For more information, see
the description of that command in this Technical Repository Web Interface and
review “Restoring an earlier version” in the Technical Repository Guide to Version
Control.
Multiproject export
By default a single project is copied to a sandbox. In addition, the air project
export command supports multiproject export. You export multiple projects by
specifying project-path as a directory tree or by specifying the -export-commons option.
With multiproject export, the command identifies the location for a sandbox through either
(1) a combination of project-name and -basedir sandbox-root-dir or (2)
the -common clause. In either case you specify a repository directory tree or a filesystem
(sandbox) directory tree. So any project repository-tree/project-name in the directory tree
will have a possible sandbox location at sandbox/project-name.
When project-name and the -common clause specify conflicting locations for a sandbox,
the command chooses the more specific location of the two. This might occur
when project-name specifies a specific project and the -common clause specifies a
directory containing the specific project — or, conversely, when project-name specifies a
directory tree and the -common clause specifies a specific location.
In the above example, the -common clause applies to the entire /Projects tree in which
the bar project resides, whereas the -basedir clause applies only to a single
project /Projects/foo/bar. Since the -basedir clause is more specific, the command chooses
the value of the -basedir clause as the sandbox location for /Projects/foo/bar.
Common projects
Common projects must be exported before or with their client projects. For example, the
following generates an error if the commonA and commonB projects have not already been
exported:
The preceding command would have succeeded if -export-commons had been specified, as
shown below. The command below exports the common projects (-export-commons) and
sets up links between the client sandbox and the common sandboxes:
When you check out a project hierarchy, each project should be checked out only once.
When you use the -common argument, the air project export command performs a full walk
over both the project hierarchy and the sandbox hierarchy that you specified with the -
common argument. This full walk ensures that the command checks out each project only
once. The walk process can involve projects that you did not specify to be checked out.
Therefore, an air project export command (or an equivalent TRMC checkout) can fail and
generate an error message for a project that you did not specify — if that project includes
the project that you were trying to check out. To illustrate this, a user tries to check out her
company project /Projects/company/company_pub. For convenience she includes the -
common argument to export other associated common sandboxes. Because of the
argument, the command examines all projects under /Projects and determines their sandbox
path. A project that is not being checked out, but that includes a project being checked out,
can result in an error. In the following example, /Projects/company/bi/bi_pub is such a
project:
To resolve this error, explicitly specify the common project using multiple or more specific
values for the -common argument as highlighted in the following example:
You can use the -common clause to override the location of a sandbox. For example, to
check out all projects under the /Projects directory tree into a personal sandbox
(/u/disk1/mysandbox) but force stdenv to be checked out into a different shared location:
Examples
These examples show how to use the air project export command with several of it most
popular arguments.
Checking out a project to a new sandbox
To check out the lesson project to a new sandbox and create all necessary subdirectories:
Note that all the files specified by -files and -find-required-files must exist in the tag. If not,
the checkout fails.
Checking out a project with a choice parameter
This example assumes that the lesson project has a choice parameter called STAGE that
has Production as one of the allowed values:
Related topics
For an easy way to display the objects that have changed in your
sandbox, see “Shortcut” (below).
-all | -files filename You may choose one of the following:
...
-all shows information about all files in the project, including
those that have been removed, are marked as Ignore, or are
missing but are in a NULL state.
-files filename ... shows information about the specified file(s)
in the project.
The project files list keeps track of every file in a project under source control. For more
information about the project files list, see “Project files list” in the Technical Repository
Guide to Version Control.
File states
If -basedir is specified, one of these states is also listed:
State Description
Current The technical repository and the sandbox are in sync. Current is
displayed only if -all is specified.
Stale The technical repository contains changes that are not present in the
sandbox.
Modified The sandbox contains changes that are not present in the technical
repository.
Conflict The sandbox and the technical repository have both changed.
Unresolved Sandbox contains a conflict file, indicating an unresolved conflict.
Ignore File is not subject to source code control. Ignore is displayed only if -
all is specified.
Removed File is marked for removal from the technical repository but has not yet
been removed from the sandbox.
Error Status information cannot be obtained, due to some system or
permissions error.
Null Information about the file is known to the project, but the file is present
in neither the project nor the filesystem. This situation can occur when,
for example, you have run air project set-type on a file but then failed to
State Description
import the file into the project.
New File exists in the sandbox but has never been checked in.
PendingRemove File has been removed from the sandbox and will be removed from the
technical repository at checkin time. This state derives from running air
sandbox remove.
PendingAdd File has been added to the sandbox and will be checked into the technical
repository at checkin time. This state derives from running air sandbox
add.
For information about the states of files in the technical repository and sandbox,
see “Iconos de estado de la Vista de sandbox” in the Co>Operating System Guía para
desarrolladores de grafos.
Timestamps
If -verbose is specified, the versions of the file in the sandbox and technical repository are
displayed. Viewing this display can be helpful in diagnosing problems with the source code
control system. There are five types of timestamp entries:
The technical repository uses timestamps to identify checkin and checkout conflicts:
If the R and RS timestamps differ, the file has changed in the technical repository
since the last checkout, and is marked stale.
If the F and the FS timestamps differ, the file has changed in the filesystem since
the last checkout, and is marked modified.
If a file is both Modified and Stale, there is a conflict on that file.
Due to the possibility of its having been “touched” inadvertently, a file is not considered to
have changed in the filesystem if only the timestamp has changed; either the CRC or the
size must also be different for the file to be considered changed.
If a file is merely “touched” in the filesystem, air project files may mistakenly determine
that the file has been truly changed, leading to a spurious state of Modified or Conflict.
Executable attribute
Use the -verbose option to verify whether a specific file is marked as executable. You will
see the executable attribute following the timestamp information, as in:
Shortcut
To display the objects that have changed in your sandbox, you can enter air sandbox files.
This command is a shortcut for the air project files project -basedir sandbox command.
Example
To list all transform files, type one of the following:
xfr/JoinCustomers-A-Aggregate.xfr
xfr/JoinCustomers-A-Join.xfr xfr/JoinCustomers-B-Aggregate.xfr xfr/
JoinCustomers-B-Join.xfr xfr/JoinCustomers-C-Reformat.xfr xfr/
JoinCustomers-Final-Join.xfr
NOTA:
If you want to search and replace text in a sandbox, use the air sandbox find-text command.
Syntax
air project find-text
[ -regex | [ -exact] [ -ignore-case ] ]
[ -file-limit limit ] [ -result-limit limit ]
[[ -object-type type ] ... ]
[[ -attribute attribute ] ... ]
[[ -task-type type ] ... ]
[[ -path-filter filter ] ... ]
[[ -component-type type ] ... ]
[[ -component-label label ] ... ]
[[ -task-label label ] ... ] [ -param name ]
[ -all-file-types ] [ -linked [ -all-linked ] ]
[ -external ] [ -m ]
query path [ path ... ]
Argument Description
query The text that you want to search for.
For more information, as well as how to search for values that contain
hyphens, see “Usage”.
path The repository path to an object or directory that you want to search
for. If the path is a directory, the command recursively searches any
subdirectories. You can search subobjects in graphs or plans, such as a
subgraph within a top-level graph or a task within a plan.
NOTA:
You must use an actual path to specify a pathname. The air command
cannot resolve project variables.
For more information, as well as how to search for values that contain
hyphens, see “Usage”.
-regex | -exact - The -regex argument specifies that query is a regular expression. You
ignore-case cannot combine it with either of the following arguments.
The -exact argument specifies that query must match the entire text field in
the repository. The text field can be a graph legend, a parameter
expression, the contents of an entire text file, and so on.
The -ignore-case argument specifies that the command treats the value
of query as case-insensitive when matching it against the repository.
-file-limit limit Limits the number of files that the command will search. If the value
of limit is reached, the command displays a message.
-result-limit limit Specifies how many results to return. If the value of limit is reached,
the command stops and displays a message.
-object-type type By default, searches all object types. If you specify -object-type and
are searching only graphs and plans, use this argument to limit the
search to the specified type. The type can be one of the following:
If you specify the -linked argument, the command searches graphs and
recurses into saved instances of linked subgraphs.
-all-linked Use with the -linked argument. Recurses into linked subgraphs even if
they aren’t viewable in the GDE. That is, the command recurses into a
linked subgraph even when the Permit View property is disabled on
the Description tab of the subgraph’s Properties dialog.
-external By default, searches attributes or parameters that you can edit directly.
Examples of things that can’t be edited directly include the names and
default values for parameters in components, and input parameters on
linked subgraph instances. By default, searches only user-defined
comments for components, not their built-in or source comments
(displayed on the Description tab in the Properties dialog).
Parameters Editor for the current objects. Use this argument to search
values in component or subgraph prototypes. If there is no user-
defined comment at the subgraph, component, or task instance, the
command searches in the component’s built-in or source text
(displayed on the Description tab in the Properties dialog).
-m Writes the command output in machine-readable format to standard
output. The DML record format for the output is located
at $AB_HOME/include/air-find-text.dml.
Usage
To search for a subobject in a graph or plan, use the following pattern for path:
path/object
For example, if you want to search the subgraph My_Subgraph that is located in the
graph my_graph, specify the path as follows:
host/disk1/sand/my_graph.mp/My_Subgraph
If the value of query or path starts with a hyphen (-), then you must place two
hyphens surrounded by a leading and a trailing space (that is, " -- ") after the last
argument and before query. For example, to identify -region as the query value and
not a command argument that starts with a hyphen, enter the following:
Note, however, that this command does not search inside the graph or subgraph’s
contents. For example, suppose that you have a graph graph.mp, which contains an
embedded subgraph My Subgraph. The subgraph, in turn, contains an INPUT
FILE component My Input File. If you run the following command with a value
of My for the -graph argument, the command will return the result of the display
name My Subgraph. It will not return a result for the My Input File component that
the subgraph contains:
The command’s results substitute a space for new lines found in the matched
content. For example, if the output from a match would normally appear as the
number one followed by a newline, then the number two, the command results
would show the number one, a space, and then the number two. The source data is
untouched.
Examples
To search for the string west-region in the graph client-services.mp, enter the following in a
shell session:
To search for exact matches of void(1) in the embedded record formats of the read ports
of INPUT FILE components in all graphs located in the project my_project, enter the
following:
Normally, if an error is encountered during analysis (for example, if a required file cannot
be found or a URL contains an invalid parameter), the command aborts with a diagnostic
error message. Specifying -force overrides this behavior.
If the set of required files is incomplete for other reasons — for example, a required file is
not automatically detected by the system — you can manually add files by running air
object requires.
Example
To find out what files the graph Unload-B-Tables depends on, type:
/Projects/lesson db/B-database/transactions.cfg
/Projects/lesson db/B-database/customers.cfg
/Projects/common xfr/cust_trans_join.xfr
By default, the command performs dependency analysis (including dataset creation and
update) and leaves the imported files unlocked, in a read-only state. The command
maintains existing file permissions. Various parameters are available to disable the
command’s default behaviors.
The command holds a lock on the project when it performs dependency analysis. You can
choose to have the command wait until it can obtain the lock before starting analysis, or
you can choose to have the command fail if it does not obtain the lock immediately.
Make sure the files that you want to check in are not locked by another user. The command
will not import such files.
If you want to make sure that new files in your sandbox are automatically checked in to the
technical repository, run air sandbox add on these files before running air project import.
The command will assign them a state of PendingAdd and place them on a list of files
awaiting addition. Running air project import will then check them in without your having
to explicitly specify these files.
Conversely, if you want to have files automatically removed from the technical repository
at checkin, then run air sandbox remove before running air project import. The command
will assign these files a state of PendingRemove and place them on a list of files awaiting
removal from the repository.
NOTA:
We recommend that you run the command with the -dry-run flag before doing the actual
import in order to validate the operation you are about to perform.
Scans the current sandbox or directory tree for files to bring into the technical
repository project. It matches each file against a filename pattern in the extension
list. If a file’s value in the extension list is not ignore, it imports the file.
Uses the project parameters to determine the correct repository location for each file
that it decides to import.
Synchronizes the filesystem and repository versions of the imported application so
that the repository can be refreshed from the filesystem, and vice versa.
PRECAUCIÓN:
Use care when using the -force option on a sandbox. It causes everything in your sandbox
to be checked in, thereby overwriting everything in the technical repository whether or not
the files in your sandbox have changed.
By default, the import operation fails if it would overwrite objects that have been changed
in the repository since the last time the import command was invoked.
Input of multiple files
This command accepts -files - instead of relative-rpath to read multiple paths from standard
input. See “Commands with repeatable arguments”.
Processing error messages
If you want to process error messages programmatically, the DML record format for the
output of the -parsable-errors option can be found
at $AB_HOME/include/analysis_warning.dml.
Status code
If the command succeeds with nonfatal errors (warnings), the command returns status
code 2.
Command failure
If you tag a sandbox during checkin (using -tag-exact, -tag-project, or -tag-all) and that
sandbox contains a stale file, the checkin fails. Update the sandbox and run air project
import again.
Conflicts
For information on dealing with file conflicts, see air sandbox resolve.
Examples
Checking in all sandbox files to a new project
You want to check in all sandbox files into a new technical repository project, lesson:
The -force option sets an appropriate MIME type for the file — text/x-abinitio-dml for a
record format file.
Syntax
air project manage-extensions
[-reset| -show |-from-system]
[-add pattern type ...]
[-remove pattern type ...]
[-file extension-file ...]
Argument Description
-reset | -show | - These arguments work as follows:
from-system
reset — Clears the repository-wide extension list and replaces
it with the extension list from the Co>Operating System used
to run this command. For more information, see “Usage”.
show — Prints a list of the current extensions and their MIME
mappings. The default.
from-system — Adds to the current list all the built-in system
extensions from the Co>Operating System used to run this
command. For more information, see “Usage”.
-add pattern type Adds the specified pattern and MIME type pair to the repository-wide
extension list
Argument Description
-remove pattern Removes the specified pattern and MIME type pair from the
type repository-wide extension list
-file extension-file . Specifies the path to a file containing instructions for adding or
.. removing extension patterns and their MIME types. For the file
syntax, see “Usage” and “Examples”.
Usage
If you do not supply any arguments, the command prints the list of current extensions.
The -reset argument works system-wide. To reset the extensions for a specific project only,
use air project default with the -extensions argument.
The -from-system argument lets older clients use newer features. For example,
Co>Operating System Version 3.1.6 introduces a new transform extension *.tdml, and the
Version 3.1.5 client can support the transform, but doesn’t recognize the extension. You
can use the -from-system argument to add the extension and its MIME type mapping from
the Version 3.1.6 Co>Operating System. To do so, $AB_HOME must point to Version 3.1.6
when you run the air command.
Search order
The search order that a project uses to match an object and its MIME type during check in
is as follows:
Extension-file syntax
Format the contents of the extension file as follows:
If the pattern contains spaces, you must enclose them in double-quotation marks.
You can use empty lines to format the contents of this file; the command will ignore
empty lines.
You can enter in-file comments by prefacing each comment line with the pound
character (#).
Examples
Adding and removing extensions
To add a specific file whose path contains spaces and map it to the text/plain MIME type,
enter the following:
To remove the video/mpeg MIME type that is mapped to the *.mpg pattern, enter the
following:
# Remove extensions
*.mpg
/Projects/myeme/dml/a-transactions.dml
Syntax
air project modify project-name
[-location location-parameter]
[-common [parameter] common-path [[parameter]common-path
] ...]
[-extension pattern type [pattern type ...]
[-remove clause ...]
[-require-user-managed-datasets { true | false } ]
Argument Description
project-name Name of the project you want to modify — for
example, Projects/warehouse.
-location location-parameter Name of the project parameter that specifies the
location of the project — for example, -location
PROJECT_DIR. For more information,
see “Parámetros por defecto de sandbox” in the
Co>Operating System Guía para desarrolladores de
grafos.
Argument Description
-common parameter common- Adds the parameter reference parameter to an existing
path ... common project common-path from the specified
project project-name. You can specify multiple pairs of
common project parameters and common project paths.
If parameter is not specified, the command
automatically generates it. When you use this argument
with -remove, you can specify
either parameter or common-path.
-extension pattern type [pattern Adds or edits an entry in the extension list, which
type] ... associates the file-extension pattern pattern with a
MIME type. Express pattern as a string.
To remove all entries from the common project list or extension list, use air project reset.
To find out whether the project currently requires user-managed datasets, use the air project
show command.
Example
To add an entry to the extension list of *.txt and remove a common project from the client
project lesson:
Use case
This command prevents the tagging of files, and therefore indirectly, it can also affect
promotion. You can use air project notag in a development technical repository to mark and
exclude test code that you do not want to migrate to your production repository. You can
also use this option to include the objects in a save file at a later time if desired — say, to
share with another developer or with support. See “Examples”.
-add — places an object in the no tag list, thereby excluding it from the
save file.
Argument Description
-remove — deletes an object from the no tag list, thereby reincluding it
in the save file.
object-path Relative path to the object you want to add or remove from the no tag list.
See “Details and exceptions” (below) for important information.
-show Displays the contents of the no tag list.
Usage
This command comes into use only when you are creating or updating a tag. The exclude or
include information is ignored for other repository actions. Additionally, there is no
enforced correspondence between other repository actions and the .no-tag-list file. For
example, if a directory is in the no tag file and you use air sandbox remove to delete the
directory from the repository, its path will still remain in the no tag file. You must remove
it from the list by separately issuing the air project nontag -remove command.
Run air project notag to include or exclude one or more objects from tagging.
Run air tag or use the TRMC to tag the objects or update their tags. The contents of
the no tag list file determine what gets tagged.
(Optional) Run air promote save or use the TRMC promotion feature to create a
save file based on the previously established tag.
If a primary object is tagged, but its required objects have notag set, then the required
objects will not be tagged.
If a primary object is tagged, but its required objects have notag set and are also primary
objects themselves, then they will be tagged. However, their secondary objects will not be
tagged. If you want to tag those objects, you must specify them in this command. The
following TRMC Tags tab screen capture shows subDir, which is both a secondary object
to myDir and a primary object to secondaryObj:
If subDir has no tag set, it will still be tagged because its primary object (myDir) is tagged,
and because subDir is itself a primary object. However, secondaryObj will not be tagged
unless you explicitly specify it.
Do not use the -from-tag argument with the deprecated air object save command. This
argument (compatible with older promotion implementations) ignores the notag feature.
Instead use the -exact-tag argument.
No tag list
All objects marked for exclusion are stored in the project-path/.no-tag-list file. You can
use air project notag or the View Contents feature of the TRMC Repository Explorer tab
to display the contents of this file. See “Viewing .no-tag-list contents”. Do not modify this
file manually. Use only this air command to add or remove objects.
Viewing .no-tag-list contents
To view the contents of the .no-tag-list file:
Examples
Excluding a directory from a project
In this example, a project’s sandbox contains a subdirectory mp/tools containing a
developer’s private utility scripts:
air ls proj/mp/tools
directory /proj/mp/tools/: 2 elements
mimeobj: cleanup.ksh
mimeobj: setup.ksh
To exclude this directory from tagging, run the air notag command with the -add argument.
The directory (and by default, its contents) will be added to the no tag list:
To confirm that the object was added to the no tag list, enter:
air project notag proj -show
mp/added_both.mp
.project.pset
mp/tools
The output shows that the mp/tools directory and its files were not included in the save file.
Including an object that otherwise would be excluded
In the “Excluding a directory from a project” example, the mp\tools directory was excluded
from tagging and therefore from a save file intended for production. However, the
production environment could benefit from a new script production-alert.ksh that is in
the mp\tools directory. To include the useful script while still excluding its parent directory
and the other files, specifically add the tag to the script (as is shown by the second -
add argument):
Using the air lag ls command (or the TRMC) shows that the production-alert.ksh script was
tagged:
The save file will now pickup the tagged file with the rest of the project, by-passing the
behavior specified in project-path/.no-tag-list.txt:
Related topics
Removes one or more files in a project from the technical repository, marking them
as removed. When the project is subsequently checked out, files marked removed are
deleted from the sandbox. This command is branch-specific. For information about the
arguments common to all air commands, see “Command-line syntax of air commands”.
Syntax
air project remove [-q] [-r] project-path rpath ...
Argument Description
-q Suppresses error if rpath does not exist.
-r Specifies that the contents of directories be recursively removed. If this is not
specified, only empty directories can be removed.
Argument Description
project- Path to the project from which you want to remove a file.
path
rpath ... Path to one or more files you want to remove.
air project reset
Removes all entries from the list of common projects and the extension list, as well as all
project parameters, except the location parameter. This command is branch-specific. For
information about the arguments common to all air commands, see “Command-line syntax
of air commands”.
Syntax
air project reset project-path
[-common]
[-extensions]
[-parameters]
[-all]
Argument Description
project-path Path to the project you want to reset.
-common Removes all references to common projects.
-extensions Removes all entries from the extension list.
-parameters Removes all project parameters.
-all Removes all entries from the common projects list and the extension list, as
well as all project parameters.
air project resolve-conflicts
Resolves technical repository conflicts by adjusting timestamps and removing conflict files.
This command is branch-specific. For information about the arguments common to
all air commands, see “Command-line syntax of air commands”.
Syntax
air project resolve-conflicts project-path
[-basedir basedir]
{-keep-repository | -keep-sandbox}
[-unconflicted]
{-all | -files file ...}
Argument Description
project-path Path to the project.
-basedir Specifies the base directory of the sandbox. If specified,
temporarily overrides the normal root directory.
Argument Description
-keep-repository | -keep- Choose one of the following:
sandbox
-keep-repository resolves the conflict in favor of the
technical repository.
-keep-sandbox resolves the conflict in favor of the
sandbox.
-unconflicted Specifies that files that do not have a conflict are also affected.
This has the effect of discarding changes in the technical
repository or sandbox.
-all | -files file ... Choose one of the following.
Usage
This command copies the timestamp from the .conflict file to the .sandbox-state file.
If you specify -keep-sandbox, the command removes the .conflict file. If you specify -keep-
repository, the command renames the .conflict file to the source file. If you specify -all, all
files in the project will be processed. Otherwise, only the explicitly named files are
processed.
This operation adjusts timestamps only in the sandbox. To make the adjustments
permanent, follow this command with air project import.
This command accepts -files - instead of -file file to read multiple files from standard
input. See “Commands with repeatable arguments”.
To verify that the file has been marked executable, run air project files with
the -verbose option.
air project set-type
Overrides the MIME type assigned to a single repository object. This command is branch-
specific. For information about the arguments common to all air commands,
see “Command-line syntax of air commands”.
Syntax
air project set-type project-path [-force] relative-path MIME-type
Argument Description
project-path Path to the project in which the object resides.
-force By default, you cannot set the type to an “internal" type, such as removed.
Use -force to override this restriction.
relative- Relative path to the object whose MIME type you want to change.
path
MIME-type Valid MIME type.
Usage
Setting the MIME type of a file to ignore causes the file to be ignored during import
(checkin) or export (checkout) processing. For a list of provided MIME types, see “Sample
extension list” in the Technical Repository Guide to Version Control.
Example
To ensure that both checkin and checkout ignore a specific file — for
example, /run/config.ksh in the test project — set the file’s MIME type to ignore:
Parameters :
PROJECT_DIR :
Environment :
PREFIX : AI
AI_BIN : $PROJECT_DIR/bin
AI_DML : $PROJECT_DIR/dml
AI_XFR : $PROJECT_DIR/xfr
AI_DB : $PROJECT_DIR/db
AI_SQL : $PROJECT_DIR/sql
AI_MP : $PROJECT_DIR/mp
AI_PLAN : $PROJECT_DIR/plan
AI_PSET : $PROJECT_DIR/pset
...
File Types :
#* = ignore
*~ = ignore
*ProxyDir = ignore
*ProxyFile* = ignore
AB-Proxy-*“ = ignore
*.rec = ignore
*.job = ignore
*.o = ignore
*.obj = ignore
...
*.dml = text/x-abinitio-dml
*.xfr = text/x-abinitio-xfr
*.mpc = text/x-abinitio-mpc
*.mdc = text/x-abinitio-mdc
*.cfg = text/x-abinitio-db-cfg
*.dbc = text/x-abinitio-db-dbc
*.ctl = text/x-abinitio-db-ctl
*.act = text/x-abinitio-activation
*.mp = application/x-abinitio-graph
...
*.cpp = text/plain
*.c = text/plain
*.h = text/plain
.project_names = text/plain
.project_names.local = ignore
...
*.wsdl = application/xml
.WORK = ignore
.WORK-serial = ignore
.WORK-parallel = ignore
*.config = text/x-abinitio-configuration
*.cat = text/x-abinitio-catalog
*.apptempl = application/x-abinitio-application-template
*.jobdef = application/x-abinitio-job-definition
*.cal = application/x-abinitio-calendar
...
.snapshot = ignore
*.csv = text/csv
*.ini = text/plain
.air-batch-commands = ignore
.*.swp = ignore
Common projects are listed in dependency order; projects later in the list may depend on
projects earlier in the list. This order reflects the order in which each project would need to
be loaded by air object load, for example.
air project update-extensions
Upgrades the project extension list to include all the current built-in and custom extensions.
Built-in extensions are the extensions known to the Co>Operating System version used to
issue the command. This command is branch-specific. For information about the arguments
common to all air commands, see “Command-line syntax of air commands”.
Syntax
air project update-extensions [-reset | -override] project-path
Argument Description
-reset Removes the current contents of the extension list and replaces it with the
built-in extensions from the current Co>Operating System.
-override If an extension already exists in the project, replaces it with the built-in list’s
extension with the same pattern.
project- Specifies the path to the project that you want to update.
path
Usage
Run this command to update the list of file extensions recognized by the Technical
Repository. Typically you would run this command to update a project after installing a
new version of the Co>Operating System. Less commonly, you would run it to undo the
current file extensions list and restore the Co>Operating System version.
You must run this command on each project where you want to add the extensions. For
example, if you want to use the validate extensions feature introduced in Version 3.1.1
(which requires the .act extension), you must issue this command once for each project. For
more information on the validate extensions feature, see “Validación de grafos” in the
Co>Operating System Guía para desarrolladores de grafos.
For more information, see “Extension list” in the Technical Repository Guide to Version
Control.
Examples
To reset the extension list associated with /Projects/myproj, enter the following:
To override the extension list associated with /Projects/myproj, enter the following:
The following table summarizes the air promote commands. For information about
command syntax, see “Convenciones de la documentación”.
Command Description
air promote list Lists summary information about some or all promotion histories.
air promote load Loads objects from a save file into a target technical repository and
creates a promotion history.
air promote load- Loads a promotion history file.
history-file
air promote make- Searches for fixed issues in comments for object versions and then
comment aggregates the information on all fixed issues that are found.
air promote Removes a promotion history from the specified technical repository.
remove-history
air promote save Saves repository objects to a save file and records a history of the
promotion.
air promote show Displays information about the specified promotion history.
air promote show- Displays information about a save file.
Command Description
save-info
air promote list
Displays summary information about some or all promotion histories. This command
is branch-specific. For information about the arguments common to all air commands,
see “Command-line syntax of air commands”.
Syntax
air promote list
[-load-only | -save-only]
[-from version-or-date]
[-to date]
[-last num]
[name]
[-tag tag]
[-user user]
[-tagged-object rpath]
[-full-search rpath]
Argument Description
-load-only | -save If omitted, the command displays both load and save promotion histories.
-only You can choose one:
-from version- Displays histories of promotions that occurred on or after the specified
or-date date. Specify the date in the format "YYYY-MM-DD HH:MM:SS" or
"YYYY-MM-DD".
-to date Displays histories of promotions that occurred on or before the specified
date. Specify the date in the format "YYYY-MM-DD HH:MM:SS" or
"YYYY-MM-DD".
-last num Integer. Displays only the num most recent promotion histories.
name Displays only the promotion histories of name name. Note that the name
was automatically generated during the promotion. Wildcards such as *
and ? are supported.
-tag tag Displays only the promotion histories of tag tag.
-user user Displays only the promotion histories created by user user.
-tagged-object rp Displays only the promotion histories that include the tagged object
ath specified by rpath. The object must exist in the current technical
repository.
Argument Description
-full-search rpat Searches all promotion histories for any that include the object specified
h by rpath. You can also specify a path that does not exist in the current
technical repository.
Usage
Use the command arguments to restrict the output. If no arguments are specified, the
command displays all promotion histories.
Shortcut
The shortcut for this command is air promote ls.
air promote load
Loads objects from a save file into a target technical repository, loads the save promotion
history from the source repository, records a load promotion history, and saves a promotion
history file with the name that you specify. By default, the command analyzes the files and
loads them to the same location as in the source repository. The command can load either
compressed or uncompressed save files. This command simplifies the promotion of
applications when compared to the air object load command. It is equivalent to running the
command air object load -history-file -analyze. Objects that you promote in a repository use
rules that are similar to Unix filesystem rules. Newly created objects are owned by the user
who created them. Modified objects retain their original ownership. To run this command,
the user must have write permission for the /abinitio/promotions/load location in the
technical repository.
NOTA:
To generate the promotion history, the save file must have been created by air promote
save or air object save with either the -exact-tag or the -from-tag options.
-relocate path-in-source Causes the objects in the save file to be loaded to different
path-in-target locations. All paths beginning with path-in-source are loaded
at path-in-target. You can specify multiple -relocate clauses.
-dry-run Reports diagnostics on the effect of running the command, but
does not actually perform the promotion.
Usage
The save file that you load must have been created by air promote save or air object
save with either the -exact-tag or the -from-tag options.
If the Technical Repository administrator has enabled the Require Promotion History
option (air repository options +require-promotion-history), any errors encountered while
creating the promotion history will cause the load operation to fail.
The promotion history file created by the air promote load command contains the history of
a load promotion into the target repository. It includes information about the options used
while loading, as well as any errors or warnings encountered.
The new load promotion history is assigned a random name and is written
to /abinitio/promotions/load. To find the name, run air promote list.
After the load operation is done, run the air promote load-history-file history-
filename command to load that file into the source repository, even if the load operation
failed. This guarantees that the promotion histories in the source and target repositories are
synchronized. Note that history-filename is not the same as the randomly assigned name
written to the target repository.
Example
To load the save file graph1.save and create the promotion history file history-graph1, enter
the following:
This information can later be extracted (via air tag list-fixes) into the DML-described
format, as defined in $AB_HOME/include/fixes-info.dml, and used to trigger state
transitions in workflow systems.
For details on the manner in which tag checkin versions are determined,
see the -since tag-or-version argument for air tag object-versions.
-dry-run Prints the results of the specified command but does not actually run the
command. The technical repository remains unchanged.
-no-header Does not prefix the comment with a header that describes the contents of
the aggregated comment. See the section “Examples” for an example of a
header.
-fixes-only Print only a newline-separated list of the issue IDs found. Implies -dry-
run.
Usage
air purge commands
The air purge commands purge and archive old versions of objects in a technical repository.
For more information about purging, see “Managing the size of a technical repository” in
the Technical Repository Administrator’s Guide.
The following table summarizes the air purge group of commands. For information about
command syntax, see “Convenciones de la documentación”.
Command Description
air purge cancel Terminates a currently running purge operation.
air purge jobs Permanently removes repository jobs.
air purge monitor Monitors a running purge, displaying the state of the purge and its
progress.
air purge object Permanently removes specific objects from a technical repository.
air purge Removes objects in a technical repository older than the specified
repository version, tag or date/time.
air purge cancel
Cancels a purge currently in progress. This command is repository-wide. For information
about the arguments common to all air commands, see “Command-line syntax of air
commands”.
Syntax
air purge cancel
Usage
Only a Technical Repository Administrator can use this command.
Note that there is a point of no return, after which a purge cannot be canceled.
air purge jobs
Permanently removes and optionally archives repository jobs. This command is branch-
specific. For information about the arguments common to all air commands,
see “Command-line syntax of air commands”.
Syntax
air purge jobs {version-specifier | -number number | version-specifier -
number number}
{rpath ... | -all}
[-archive archive-file]
[-quiet]
[-force]
[-background]
[-dry-run]
Argument Description
version-specifier Purges jobs created before a particular version or date, specified as:
After you have run air object rm, which removes only the current version of an object, you
can run air purge object to remove the remaining versions. When you run air purge object,
specify rpath as the object’s domain number.
To run this command from the Execute Command dialog (F8) of the TRMC, you must
specify -force; Execute Command does not support interactive operation.
Examples
Purging all versions of a graph
To purge all versions of the graph length-test.mp and run the command in the background,
type:
Note that the job associated with this graph, if any, will also be purged.
Purging the domain of a graph
To purge the entire domain of graph length-test.mp, thereby purging all versions of all
objects associated with the graph, specify the graph’s domain number. (You can identify
the domain by running air object ls with the -ld arguments against the graph.) For example:
-no-remove-jobs Does not remove jobs whose last change occurred below the
purge boundary.
-no-remove-tags Does not remove tags between the requested purge boundary
and the actual purge boundary.
-quiet Turns off the display of information about the progress of the
purge.
-force Turns off the prompt for confirmation of the purge.
NOTA:
You must specify -force when you run this command from
the Execute Command dialog (F8) of the TRMC; Execute
Command does not support interactive operation.
-background Starts the purge, exits, and runs the purge in the background
Argument Description
on the Technical Repository server. The purge can be
monitored with air purge monitor or canceled with air purge
cancel.
Usage
Only a Technical Repository Administrator can run this command.
For more information, see “Running the air purge repository command” in the Technical
Repository Administrator’s Guide.
Purge boundary
The purge boundary is the version below which objects can be removed from the technical
repository. For example, if the purge boundary is version 50, all objects at version 49 and
lower can be removed.
In general, versions of an object will be removed if they are below the purge boundary and
there is a newer version of the object. Conversely, an object below the purge boundary
will not be removed if it is the latest version of an object. Rather, its version is updated to
that of the purge boundary.
The command computes the purge boundary based on the version, tag, or date/time you
specify. However, it may lower the purge boundary if you choose to keep tags and/or jobs.
For more information, see “How the purge boundary controls which objects are removed”.
Tags
By default, this command purges all versions of objects that are referenced by tags if the
objects are below the specified purge boundary and the object version is not the latest
version, even if those versions are referenced by tags. If an object version referenced by a
tag is purged, the tag itself is also purged.
If you do want to automatically purge tags, use the -no-remove-tags option. The associated
graphs will not be purged, and all objects that are at the same version as the graphs will be
kept. This option has the effect of lowering the purge boundary to the version of the graph.
Therefore, all objects between the requested purge boundary and the actual purge boundary
are kept.
Tags make purging less effective. For this reason, we recommend that you remove old tags.
For more information, see “How tags affect the purge boundary”.
Jobs
Jobs can reference older versions of graphs. By default, if a graph is purged, the
corresponding job is also removed. Also, by default, all jobs older than the requested purge
boundary are removed, regardless of the actual purge boundary computed by preservation
of tags.
If you do want to automatically purge jobs, use the -no-remove-jobs option. The associated
graphs will not be purged, and all objects that are at the same version as the graphs will be
kept. This option has the effect of lowering the purge boundary to the version of the graph.
Therefore, all objects between the requested purge boundary and the actual purge boundary
are kept.
However, if you specify the -archive archive-file argument, the Technical Repository server
writes the purged data to an archive file on the machine where the purge operation is
actually running, regardless of where you issued the command.
The archive file is a snapshot of the technical repository as of the purge boundary. It is a
repository image file that you can load using air repository load-from-image to re-create the
repository as it existed at the purge boundary. This may be useful if you later need to access
objects that were purged.
These commands have been deprecated. Refer to each command description for the
replacement command(s) to use.
Command Description
air reposit dataset file Deprecated. Use the following instead: air sandbox dataset file.
(deprecated)
air reposit dbc Deprecated. Use the following instead: air sandbox dataset file to create a
(deprecated) file in the sandbox and then air sandbox import to check in the file.
air reposit dml Deprecated. Use the following instead: air sandbox dataset file to
(deprecated) create a file in the sandbox and then air sandbox import to check in
the file.
air reposit html Deprecated. Use the following instead: air sandbox dataset file to
(deprecated) create a file in the sandbox and then air sandbox import to check in
Command Description
the file.
air reposit mime Deprecated. Use the following instead: air sandbox dataset file to
(deprecated) create a file in the sandbox and then air sandbox import to check in
the file.
air reposit text Deprecated. Use the following instead: air sandbox dataset file to
(deprecated) create a file in the sandbox and then air sandbox import to check in
the file.
air reposit dataset file (deprecated)
Creates an analysis-only file dataset in the technical repository. This command is branch-
specific. For information about the arguments common to all air commands,
see “Command-line syntax of air commands”.
Syntax
air reposit dataset file url rpath type-location [-expand] [-eme] [-discover
| -user-managed]
Argument Description
url Documentation property that you can specify with a file
location. url can be "", an empty string.
rpath Location in the technical repository where the dataset should be
created.
type-location Name of the dataset’s type in the filesystem — for example, an
imported .dml file. The type-location argument might also be a
file containing the record format for that dataset. If -eme is also
specified, type-location must be a technical repository path.
-expand Expands the metadata, creating an internal representation of the
record format (for example, to create dataelement instances).
-eme If specified, type-location must be a technical repository path.
-discover | -user-managed Controls whether dependency analysis will update the dataset’s
metadata. You can specify one of the following:
Usage
This command has been deprecated. Use the air sandbox dataset file command instead.
You can reposit a dataset under /Projects when it needs to be under source-code control or
when it is part of the project. Otherwise, you can reposit the dataset under /Metadata.
PRECAUCIÓN:
The database configuration file will be reposited under the db subdirectory of the specified
project with the same filename. If the file already exists at this location, it is replaced.
We recommend that you use air project import to get files into the technical repository.
air reposit dml (deprecated)
Checks in one or more record format (.dml) files to the technical repository and adds them
to the project. This command is branch-specific. For information about the arguments
common to all air commands, see “Command-line syntax of air commands”.
Syntax
air reposit dml [-no-add] repository-location
[-basedir sandbox-location]
[-xfr filename ...] [-dml filename ...]
[-pkg filename ...] [-dir dir-name ...]
Argument Description
-no-add Specifies that files are not to be added to the project. If omitted,
files are added to the project only if the technical repository
location resides within a project.
repository-location Specifies the location in the technical repository to which the
files are copied.
-basedir sandbox-location Specifies the sandbox location. Default is the current working
Argument Description
directory.
-xfr filename ... Specifies one or more files containing either transforms or a
mixture of type and transform definitions.
-dml filename... Specifies one or more files containing DML type definitions.
-pkg filename... A synonym for -xfr -filename....
-dir dir-name... Specifies one or more directories to be recursively searched
for .xfr and .dml files to be imported.
Usage
This command has been deprecated. Use the following instead: air sandbox dataset file to
create a file in the sandbox and then air sandbox import to check in the file.
NOTA:
If you are repositing a record format file into a project, use air project import instead.
NOTA:
If you are repositing an HTML file into a project, use air project import instead.
Syntax
air reposit html [-no-add] ilename rpath
Argument Description
-no-add Optional. Specifies that the files are not to be added to the project. If omitted,
the file is added to the project only if the technical repository location resides
within a project.
filename URL of the text file to be checked in to the technical repository.
Argument Description
rpath Path to the technical repository location where you want the files to be copied.
Usage
This command has been deprecated. Use the following instead: air sandbox dataset file to
create a file in the sandbox and then air sandbox import to check in the file.
air reposit mime (deprecated)
Copies a file to a technical repository, stores its contents as a MIME object having a
specified type, and adds the file to the project. This command is branch-specific. For
information about the arguments common to all air commands, see “Command-line syntax
of air commands”.
NOTA:
If you are repositing a MIME object into a project, use air project import instead.
Syntax
air reposit mime [-no-add] MIME-type pathname rpath
Argument Description
-no-add Specifies that the files are not to be added to the project. If omitted, the file is
added to the project only if the technical repository location is within a project.
MIME- MIME type associated with the object. For information about MIME types,
type see “Sample extension list” in the Technical Repository Administrator’s Guide.
pathname Path to the file to be checked in to the technical repository.
rpath Path to the technical repository location where you want the file to be checked
in.
Usage
This command has been deprecated. Use the following instead: air sandbox dataset file to
create a file in the sandbox and then air sandbox import to check in the file.
air reposit text (deprecated)
Copies a text file or one or more text strings to a technical repository, assigns the item the
MIME type text/plain, and adds the item to the project. This command is branch-specific.
For information about the arguments common to all air commands, see “Command-line
syntax of air commands”.
Syntax
air reposit text [-no-add] {-string string [-string string] ... |
pathname} rpath
Argument Description
-no-add Specifies that the files are not to be added to the project. If
omitted, the file is added to the project only if the technical
repository location resides within a project.
-string string | pathname Choose one of the following:
rpath Path to the technical repository location where you want the file
or strings to be copied.
Usage
This command has been deprecated. Use the following instead: air sandbox dataset file to
create a file in the sandbox and then air sandbox import to check in the file.
This command is often used to put enterprise metadata into the technical repository —
specifically, non-built-in objects that you want to add to categories.
NOTA:
If you are repositing a text file into a project, use air project import instead.
The following table summarizes the air repository commands. For information about
command syntax, see “Command-line syntax of air commands”.
Command Description
air repository access- Controls the access of non-administrators to a technical
mode repository.
air repository add-data- Adds a new data file to a technical repository.
file
air repository backup Launches a backup program, first locking the technical
repository.
air repository check Inspects the repository disk data allocation and displays
allocation diagnostics.
air repository check data Inspects the data structures that describe a domain and displays
Command Description
diagnostics if the data allocation is corrupted.
air repository check Inspects the data structures that describe a domain and displays
domain diagnostics.
air repository check Checks referential integrity within a technical repository.
referential-integrity
air repository chmod Changes technical repository file permissions.
air repository chown Changes ownership of a technical repository.
air repository compress- Compresses differences in a repository after converting to storage
diffs format 16.
air repository Displays information about technical repository connections.
connections
air repository convert- Converts a technical repository from an older storage version
storage-format (format) to a newer storage version.
air repository create Creates an empty technical repository.
air repository create- Saves a technical repository in a portable text-based format.
image
air repository destroy Destroys a technical repository.
air repository load-from- Re-creates a technical repository from a saved image file.
image
air repository online- Cancels the currently running online-backup process.
backup cancel
air repository online- Displays internal information about an online-backup process.
backup dump
air repository online- Extracts one or more files from the specified set of online-backup
backup extract files.
air repository online- Displays status information about an in-progress online-backup
backup monitor process or about the last completed or failed online backup.
air repository online- Creates a technical repository from the specified set of online-
backup restore backup files.
air repository online- Schedules and manages automated online-backups.
backup schedule
air repository online- Starts an online-backup process on the machine hosting the
backup start technical repository.
air repository online- Does an integrity check on the specified set of backup files and
backup verify reports errors.
air repository options Turns technical repository user authentication on and off.
air repository rename Renames all the files in a technical repository.
air repository restart Shuts down and restarts the Technical Repository server process.
air repository revert Reverts to a previous version of a technical repository.
air repository show Displays information about the technical repository.
air repository show- Displays information about the Technical Repository server.
Command Description
server
air repository shutdown Shuts down the Technical Repository server process.
air repository start Starts the Technical Repository server process.
air repository tag Assigns a name to a technical repository version.
air repository trigger Creates, enables, and maintains trigger objects in a technical
commands repository.
air repository version- Prints, sets, or appends a comment for a specified repository
comment version.
air repository version- Displays detailed information about technical repository versions.
info
air repository version- Displays information on issues marked as fixed in the specified
list-fixes versions as described in the comment field.
air repository access-mode
Controls or displays the access of non-administrators to a technical repository. This
command is repository-wide. For information about the arguments common to
all air commands, see “Command-line syntax of air commands”.
Syntax
air repository access-mode {-normal | -readonly | -deny | -status} [-
force]
Argument Description
-normal | -readonly | -deny | -status You must choose one of these:
NOTA:
When you run this command you must be in the top-level directory of the technical
repository that you want to back up.
Syntax
air repository backup [-file filename] [-abspath] {-backup-file filename
[-compress] | program args}
Argument Description
-file filename Specifies the path to the file in which to store the
names of all files to be backed up, one file per line.
-abspath Displays the absolute paths of the technical repository
files. If omitted, the filenames without their
containing directory are displayed.
Argument Description
-backup-file filename [-compress] Specify one of the following:
| program args
-backup-file filename specifies the file in
which to write a backup in tar format.
Optionally -compress compresses (gzips) the
backup file.
program args specifies the name of the
backup program and the arguments to that
program. If '{}' is specified, the names of all
technical repository files are substituted for {}
when the backup program is invoked.
Usage
You must run this command on the machine the technical repository resides on. In addition,
the Technical Repository client and the Technical Repository server process must be at the
same version.
We strongly recommend that you keep the repository shut down for short periods of time.
This means that using a tar command to mount a tape from within air repository backup, for
example, would not be optimal. Instead, use air repository backup to archive the repository
to one big file. Then, after the backup is done, run a separate command to back up the file
to tape.
Before the command begins the backup, it disconnects all currently connected clients.
The tar program does not work on all platforms with files larger than 2 GB. If your file will
be larger than this limit, use the -backup-file option or use Xtar, which is shipped with the
Co>Operating System.
Compare this command with air repository online-backup start, which backs up the
technical repository while it is active.
Examples
To create a new tar file named eme-backup.tar and display the name of each technical
repository file, type:
If you run this command automatically from a script, you must add the -force argument. If
you do not, the script will wait for confirmation at the shutdown prompt. This is
particularly true for scripts created prior to Version 3.1.6 (when this feature was
introduced) because these will stop running until you add the -force argument.
Diagnostic messages
If diagnostic messages are reported, contact Departamento de soporte técnico de Ab Initio
at +1 781-301-2100 or [email protected].
air repository check data
Inspects the data structures that describe a domain and displays diagnostics if the data in the
physical repository files is corrupted. This command is repository-wide. For information
about the arguments common to all air commands, see “Command-line syntax of air
commands”.
Syntax
air repository check data [ -force ] domain ...
Argument Description
-force Shuts down the technical repository server process without first prompting for
confirmation.
domain ... Specifies one or more domains to be checked. If you do not specify a domain,
the command checks all domains in the repository. You can specify a domain as
a path or as an objectID (OID). See “Specifying object names as arguments”.
Usage
This command shuts down the Technical Repository server and can only be run on the
machine that the technical repository resides on.
Run this command when you suspect that repository files may be corrupted. This can
happen, for example, when a repository is moved from one host to another by manually
copying the files, instead of using the proper online backup and image creation commands.
If this command displays diagnostic messages after you run it, it is likely that repository
files are corrupt and you will need to restore them from a repository backup. For assistance,
contact Departamento de soporte técnico de Ab Initio at [email protected] or +1 781-
301-2100.
Example
The following example checks a technical repository and reports that it found no data file
errors:
Syntax
air repository check domain domain ...
Argument Description
domain ... Specifies one or more domains to be checked. You can specify a domain as a
path or as an OID. See “Specifying object names as arguments”.
Usage
This command shuts down the Technical Repository server and can only be run on the
machine that the technical repository resides on.
Run this command when you suspect that a domain may be corrupted — for example, you
have trouble accessing a specific domain.
air repository check referential-integrity
Checks referential integrity within the specified domains and displays a report of its
findings. You can check either the current versions of all domains or all versions of one or
more domains. Optionally, this command repairs the errors it finds in the current version.
This command is branch-specific. For information about the arguments common to
all air commands, see “Command-line syntax of air commands”.
Syntax
air repository check referential-integrity
[-quiet|-verbose]
[-R]
[-all]
[-repair-missing]
location...
Argument Description
-quiet | -verbose By default, the command displays a progress report (percentage
complete) and errors.
Usage
This process is likely to take a long time if -R is specified. If you are checking many
domains, use the -all option; the command is relatively fast.
Referential integrity errors in past versions of the technical repository can be detected but
not repaired. These errors will NOT affect use of the repository at the current version.
Alias
The alias for this command is air repository check-ri.
air repository chmod
Changes permissions on a technical repository. Fails if you do not own the repository. This
command is repository-wide. For information about the arguments common to
all air commands, see “Command-line syntax of air commands”.
Syntax
air repository chmod permissions
Argument Description
permissions Permissions to be set expressed numerically — for example, 640.
Usage
For more information about changing permissions, see “Setting technical repository
permissions on objects” in the Technical Repository Administrator’s Guide.
Example
To make the technical repository readable by all users and writable only by you (the
administrator), type the following:
Storage format 16 introduces more compact version differencing on files that you check in.
For example, if you have a large DML file and change a single line in it, technical
repository storage formats 15 and earlier reposited the entire DML file. As of storage
format 16 and higher, the repository stores only the modified line. This command increases
the disk space that the repository uses; however, most of it is free space that is available for
reuse — potentially as much as 20–50 percent. To reclaim this space, use air repository
create-image followed by air repository load-from-image (see “Usage”).
NOTA:
The repository must be offline during this operation, which shuts down and compacts the
repository.
1. To convert to storage format 16, restart your technical repository, and run air
repository compress-diffs.
For procedure details, see “Restart the server and convert the storage format” in the
Technical Repository Release Notes.
1. After running the air repository compress-diffs command, save the contents of the
technical repository to an image file:
NOTA:
This command shuts down the repository, so perform this procedure during a time
when the repository can be offline.
Connection ID
Technical repository username
Server and middle tier or air command process IDs
Middle tier or air command client hostname
Connection start time
Command line or client information
When the -verbose argument is used, the command displays the following additional fields:
Remote procedure call count, repository branch, client process ID, username,
hostname, and software version
Middle tier or air command client software version and server name
Technical Repository server air-server process ID and its software version
Examples
The following example uses the command short cut to display basic information about a
repository:
air connections
ID User Name Server PID MT PID MT Host Start Time Client Application
-- --------- ---------- ------ ------- ---------- ------------------
22 rhaddlet 11626 11626 linux-l 2015-06-24 16:05:00.325 AIR
/disk1/sand/rhad/Xthick-air connections
The following example uses the command to display verbose information about the same
repository:
air connections -verbose
ID: 23 RPC count: 44 Start: 2015-06-24
16:05:18.125 Branch: Command: /disk1/sand/rhad/Xthick-air
connections -verbose
Client - PID: 11637 User: rhaddlet Version: 3.2.4.r21.0 Host: rhaddleton-l Application:
AIR MT - PID: 11637 Host: linux-l Version: MTS Name: Server
- PID: 11637 User: rhaddlet Version: 3.2.4.r21.0
Alias
The alias for this command is air connections.
You must run this command on the machine the technical repository resides on. In addition,
the Technical Repository client and the Technical Repository server process must be at the
same version. This operation is irreversible.
Example
To identify the current format without actually converting the technical repository, type:
The screen displays information about the current format, the newest format, and the
recommended format:
Current format: 15, Latest: 17, Recommended: 16, Chosen New Format: 16
dry run completed
If you then run the command without the new-format option (which lets the repository
choose the recommended version), the output would look something like this:
If you instead run the command and specify 17 as the new-format option, the output would
look something like this:
Related topics
Argument Description
repository- Filesystem pathname of the technical repository to be created. If not
path specified, defaults to the value of the AB_AIR_ROOT configuration variable
or the -root argument (see -root).
-files nfiles Number of data files to be created. The default value is 2. See “Usage
information” (below).
Usage
You need to create a directory in a filesystem having at least 50 GB of free disk space. By
default, the command automatically schedules online backups. These backups do not stop
the server; by default, the repository creates automatic backups on Wednesday at 2:00 AM.
To change the default values, see “air repository online-backup schedule”. To disable the
automatic backup feature, use air repository online-backup schedule -disable.
Failure to heed the following warnings may result in irrecoverable data loss.
ADVERTENCIA:
ADVERTENCIA:
For a repository storing vital data, choose a reliable disk system, such as a mirrored/RAID
disk array.
ADVERTENCIA:
It is essential that you back up your technical repository using air repository online-backup
start or air repository backup.
There is an operating-system-dependent limit on how much data can be stored in each file.
The limit depends on how much of a process’s address space is available for memory-
mapped files. Half a gigabyte is a conservative estimate of this limit for most operating
systems. Thus, a technical repository built with the default of 64 data files should be
capable of growing to 32 GB.
When you create a repository, it contains a built-in group called eme-root. All users in this
group are recognized as Technical Repository administrators.
You must run air repository create on the same machine as the repository. In addition, the
Technical Repository client and the Technical Repository server process must be at the
same version. The command fails if the repository already exists or if you do not have
permission to create the required files.
Examples
To create a new technical repository called neweme that contains
the Projects and Users directories and other system objects, type:
Alternatively, type:
export AB_AIR_ROOT=/disk1/data/neweme
air repository create
Alias
The alias for this command is air create-image.
air repository destroy
Destroys the technical repository, first prompting you for confirmation. This command
is repository-wide. For information about the arguments common to all air commands,
see “Command-line syntax of air commands”.
ADVERTENCIA:
Syntax
air repository destroy [-force]
Argument Description
-force Specifies not to prompt for confirmation before destroying the technical
repository.
Usage
The technical repository name is determined by the setting of
the AB_AIR_ROOT configuration variable or the -root option to the air utility. (For more
information, see -root.)
Only the owner can destroy a repository. The command fails if you do not own the
repository or if you do not confirm the action when prompted.
Also, before you can remove a repository, you must close the GDE if your repository
settings point to that repository and you must log out of the Technical Repository Web
Interface.
You must run this command on the machine the repository resides on. However, the
Technical Repository client and the Technical Repository server process do not have to be
at the same version.
air repository load-from-image
Creates a technical repository from a saved image file previously created by air repository
create-image. This command is repository-wide. For information about the arguments
common to all air commands, see “Command-line syntax of air commands”.
Syntax
air repository load-from-image repository
filename
[-no-convert]
[-files nfiles]
[-parallel n-ways]
[-progress]
[-no-install-schema]
Argument Description
repository Path to the root of the technical repository to be created; the value
Argument Description
of AB_AIR_ROOT.
filename Name of the file storing the saved image of the technical repository.
See “Usage”.
-no-convert Specifies that the created technical repository should not be converted to the
latest repository storage.
-files nfiles Number of data files to be created. Default value is 2. See “Usage” for air
repository create.
-parallel n - When loading from versions lower than 2.14 to Version 2.14 (and higher),
ways allows the storage-level conversion to run n ways parallel on Unix and
Linux systems. n-ways must be an integer greater than 1.
-progress Displays information about the progress of the load operation, if available.
-no-install- If this argument is specified, the current object schema is not installed after
schema the load. (See air system install schema.)
Usage
If filename is specified as “-” (hyphen), the saved data is read from standard input. This is
useful for getting the data from some source other than an immediate file. For example, you
can use the following (from a shell) to restore from a compressed image file:
export AB_AIR_ROOT=full-path-to-repository-to-be-created
zcat filename.Z | air repository load-from-image $AB_AIR_ROOT "-"
The value of n-ways depends on the size of your technical repository, the number of CPUs
available, the load you want to place on your machine, and other related factors. A value of
4 to 8 seems reasonable for most repositories.
You must run air repository load-from-image on the same machine as the repository resides
on. In addition, the Technical Repository client and the Technical Repository server process
must be at the same version.
SUGERENCIA:
To determine the amount of free space in a technical repository, run air repository
show with the -files option.
We recommend that you use the air repository online-backup commands for backup
purposes rather than air repository create-image.
Alias
The alias for this command is air load-from-image.
air repository online-backup cancel
Cancels a running online-backup process started by air repository online-backup start. This
command is repository-wide. For information about the arguments common to
all air commands, see “Command-line syntax of air commands”.
Syntax
air repository online-backup cancel
Usage
You must be a Technical Repository Administrator to cancel a backup.
Alias
The alias for this command is air backup-cancel.
Syntax
air repository online-backup restore backup-name eme-root [ -quiet ] [
-no-start ]
Argument Description
backup- Absolute or relative path to the backup file(s). Backup files are named in the
name format backup-name.sequence-number.emeback, where sequence-
number starts at 1. You can specify either the full name of the backup (for
example, backup-name.sequence-number.emeback) or the backup-name.
eme-root Specifies the name of the new technical repository to be created from the
backup. eme-root must not already exist.
-quiet Does not display status messages during the process.
-no-start Does not start the Technical Repository server after the process has finished.
Usage
The new technical repository must be on a machine with the same architecture as the source
of the backup.
The command does not restore the contents of .audit, .audbak, .eme.errlog, and .errlog files.
The files exist in the new repository, but they are empty. To look at these files, use air
repository online-backup extract.
Alias
The alias for this command is air backup-restore.
air repository online-backup schedule
Schedules and manages automated online backups. Use this command to schedule an
online backup at a specified time and to enable or disable backups without having to stop
the Technical Repository server. This command is repository-wide. For information about
the arguments common to all air commands, see “Command-line syntax of air commands”.
Syntax
air repository online-backup schedule
[-enable | -disable] [-name backup-name]
[[day@] HH:MM...]
Argument Description
[-enable | -disable] Enables or disables the specified automatic backup.
[-name backup- Provides the base name of the backup file. When the backup is created,
name] the command appends the date and time to the file name.
[ [day@]HH:MM .. Specifies the day and time for the backup to start. You can
.] specify day as a numeric or string as follows:
The time specifier uses the 24-hour format. You can specify multiple
times. If you do not specify any day or time information, the command
schedules the backup for Wednesday at 02:00 AM.
To display the current schedule, enter the command without any arguments, as follows:
To create a daily schedule at a specific time, enter the command without specifying a day,
as follows:
Examples
To schedule a daily backup at 3:00 AM, enter the following:
Alias
The alias for this command is air backup-schedule.
The Technical Repository Administrator will need to restart the Technical Repository
server after any of these events:
For more information about the Technical Repository server process, see “Starting and
shutting down technical repository access” in the Technical Repository Administrator’s
Guide.
air repository revert
Reverts a technical repository and all the objects it contains to an older version. Shuts down
the repository before reverting it, and later restarts it. This command is repository-wide. For
information about the arguments common to all air commands, see “Command-line syntax
of air commands”.
PRECAUCIÓN:
Syntax
air repository revert [-force] version
Argument Description
-force Shuts down the Technical Repository server process before the reversion
without prompting you for confirmation.
version Number (integer) or tag (string) of the version to which you want to revert the
technical repository. See “Usage”.
Usage
If you specify a tag as version, it must be a repository-wide tag representing the state of the
entire technical repository as of a particular version. This tag, known as an rtag, must have
been created by air repository tag. Note that rtags have been largely replaced by tags
(vtags), which allow you to assign a tag to specific versions of specific objects. The
versions can be different for each object.
The command fails if you do not confirm the action when prompted or if you are not the
owner of the repository (that is, the Unix owner of the operating system files making up the
repository).
This command does not revert nonversioned objects; nor does it revert usernames,
permissions, and other nonversioned control information.
air repository rename
Renames all files that make up a technical repository, such as the .errlog and the .ixd files.
This command is repository-wide. For information about the arguments common to
all air commands, see “Command-line syntax of air commands”.
Syntax
air repository rename -force new-name
Argument Description
-force Shuts down the Technical Repository server process without prompting you for
confirmation.
new-name The new root name of the technical repository.
Usage
You must be the Technical Repository Administrator to run this command.
You must run this command on the machine that the technical repository resides on. In
addition, the Technical Repository client and the Technical Repository server process must
be at the same version. You cannot rename a repository across devices.
A side effect of renaming a project is that sandboxes that are checked out from the project
need to be detached from the project (air sandbox detach) and checked out from the
renamed project.
NOTA:
You should use a fully-qualified path for the value of the new-name argument. If you do
not, the renamed repository in the example above would be renamed to $PWD/oureme.
air repository restart
Shuts down and restarts the Technical Repository server process. This command
is repository-wide. For information about the arguments common to all air commands,
see “Command-line syntax of air commands”.
Syntax
air repository restart
Usage
You must run air repository restart on the same machine as the technical repository.
However, the Technical Repository client and the Technical Repository server process do
not have to be at the same version. You must be a Technical Repository Administrator to
run this command.
The Technical Repository Administrator will need to restart the Technical Repository
server after any of these events:
For more information about the Technical Repository server process, see “Starting and
shutting down technical repository access” in the Technical Repository Administrator’s
Guide.
PRECAUCIÓN:
Syntax
air repository revert [-force] version
Argument Description
-force Shuts down the Technical Repository server process before the reversion
Argument Description
without prompting you for confirmation.
version Number (integer) or tag (string) of the version to which you want to revert the
technical repository. See “Usage”.
Usage
If you specify a tag as version, it must be a repository-wide tag representing the state of the
entire technical repository as of a particular version. This tag, known as an rtag, must have
been created by air repository tag. Note that rtags have been largely replaced by tags
(vtags), which allow you to assign a tag to specific versions of specific objects. The
versions can be different for each object.
The command fails if you do not confirm the action when prompted or if you are not the
owner of the repository (that is, the Unix owner of the operating system files making up the
repository).
This command does not revert nonversioned objects; nor does it revert usernames,
permissions, and other nonversioned control information.
air repository show
Displays one or more specific pieces of information about the technical repository. If no
arguments are specified, the command displays all the information. This command
is repository-wide. For information about the arguments common to all air commands,
see “Command-line syntax of air commands”.
Syntax
air repository show
[-num-domains]
[-repository-version]
[-num-branches]
[-am-admin ]
[-num-connections]
[-storage-format]
[-files]
Argument Description
-num-domains Displays the number of domains in the technical repository.
-repository-version Displays the current repository-wide version number.
-num-branches Displays the number of branches in the repository.
-am-admin Displays whether the current user is a Technical Repository
administrator.
-num-connections Displays the number of open connections.
Argument Description
-storage-format Displays the storage format version of the repository.
-files Shows information about the size of and free space in the repository
files.
If only one option is specified, the output is not labeled. If more than one is specified, each
value is labeled. For example, if you do not specify any arguments, the list of output values
might look like this:
Domains: 1900
Versions: 16
Branches: 1
Admin.dat" [New File]
Connections: 1
Storage Architecture: 17
File Use% File Size Available
---- ----- --------- ---------
0 97 8306688 288768
1 100 75882496 8192
Related topics
If this argument is omitted, the command displays information about the current
repository only.
Usage
When the Technical Repository server starts, it writes an entry to a file in AB_WORK_DIR.
The air repository show-server command queries that file to determine the list of running
Technical Repository servers. Note that if you change the value of AB_WORK_DIR, you
will not get the information you expect, as the command will list only the Technical
Repository servers started with the current setting of AB_WORK_DIR.
The command returns a non-zero exit status when the Technical Repository server is not
running. It does not start the Technical Repository server.
If you specify -local, the output shows the following about each Technical Repository
server on this machine:
If you omit -local, the output shows the following information about the current technical
repository:
If the server software detects that another repository server is running, this command does
not start the Technical Repository server. We recommend determining whether another
server is already accessing this repository using the air repository show-server command.
ADVERTENCIA:
Running more than one EME server on a repository will result in severe, unrecoverable
corruption of the repository. Do not override the startup by running air repository start with
the -override-running-server-check option unless you are certain that no other machine has
an EME server accessing the repository.
The Technical Repository Administrator must start the Technical Repository server
process, because the process must run as the Technical Repository Administrator. Also, the
startup process can take a significant amount of time for large repositories, as it performs
some recovery operations and consistency checks. Therefore, having the Technical
Repository administrator start this process can avoid unexpected timeouts by client
operations.
You must run this command on the machine the repository resides on. However, the
Technical Repository client and the Technical Repository server process do not have to be
at the same version.
For more information about the Technical Repository server process, see “Starting and
shutting down technical repository access” in the Technical Repository Administrator’s
Guide.
air repository tag
Assigns a tag (symbolic name) and optionally a comment to a given version of the entire
technical repository. You can use this command to assign a tag to a repository version and
then create a branch based on that tagged version. This command is repository-wide. For
information about the arguments common to all air commands, see “Command-line syntax
of air commands”.
Syntax
air repository tag [-version version] tag [comment]
Argument Description
-version version Version number (integer) of the technical repository you want to tag.
Default is the current version.
tag Name, expressed as a string, of the technical repository version.
comment Brief description, expressed as a string, of the version you are tagging.
Usage
This command creates an rtag, a repository-wide tag representing the state of the entire
repository as of a particular version. The versions can be different for each object to which
the tag is applied.
You can see the tag and optional comment in the Technical Repository Web Interface.
When you display the repository, select the Versions checkbox. Click the Info button to
open a window displaying the tag, comment, username, and date. Also run air object
versions to see tagged versions of the repository.
Alias
The alias for this command is air rtag.
A trigger is an object in the Technical Repository that contains firing criteria (an object
path, user, and branch or a tag) and a trigger script. The trigger script fires when a change
— a checkin or a tag — meets the firing criteria.
The following table summarizes the air repository trigger group of commands. For
information about command syntax, see “Command-line syntax of air commands”.
Command Description
air repository trigger create Creates and configures a trigger.
air repository trigger list Lists the triggers in a specified trigger group.
air repository trigger Updates the configuration of a trigger.
modify
air repository trigger Removes a trigger.
remove
air repository trigger show Displays the settings of a trigger.
air repository trigger start Starts the trigger associated with a trigger group.
air repository trigger status Displays a list of running trigger daemons on the current host.
air repository trigger stop Stops the trigger daemon process associated with a trigger
group.
air repository trigger create
Creates and configures a trigger.
A trigger daemon monitors the technical repository, checking the firing criteria of each of
its triggers against technical repository changes to determine if any trigger scripts need to
fire. Each change has the following attributes associated with it: objects, users, groups,
branches, and tags. These attributes are compared against the firing criteria. If the attributes
of a repository change meet all specified criteria, the trigger fires. This command
is repository-wide.
For information about the arguments common to all air commands, see “Using the Jira
issue integration solutions”.
Syntax
air repository trigger create trigger_id
[ -enable | -disable ]
[ -path rpath ... ]
[ -user user-name ... ]
[ -group usergroup-name ... ]
[ -branch branch-name ... ]
[ -tag tag-regex ... ]
[ -script script-contents ]
[ -script-file file-name ]
Argument Description
trigger_id Specifies the trigger name and trigger group for the trigger that you
want to create. The format of the trigger ID is group-name/trigger-
name. If group-name is not specified, the trigger is created in
the default group.
-path rpath Specifies one or more objects as trigger-firing criteria. You can specify
an asterisk (*) for multiple objects.
If rpath is a directory, all objects under source control under rpath are
monitored.
Argument Description
NOTA:
When the trigger fires, the trigger daemon executes the script.
-script-file file- Specifies the name of a script file to store as part of the trigger.
name
The script file must begin with the interpreter directive #! followed by
the script interpreter, such as #! /bin/ksh.
NOTA:
The script file is stored as part of the trigger when you issue the air
repository trigger create command. If you later change the script file,
you must update the trigger definition by using the air repository
trigger modify command.
You can use certain trigger script variables in the script. For more
Argument Description
When the trigger fires, the trigger daemon executes the script.
Usage
Each trigger belongs to a trigger group. Each trigger group is associated with one trigger
daemon instance.
NOTA:
In large repositories, you may want to have more than one trigger daemon so that you can
use different permissions or alternate trigger IDs. For more information, see air repository
trigger create in the air Command Reference.
NOTA:
Do not include a statement in your trigger script that would itself cause the trigger to fire,
such as a checkin in a directory that the trigger is monitoring.
The trigger daemon sets the following trigger script variables when it executes the trigger
script:
You can use these variables in the trigger script that you specified with the -script or -
script-file argument. The trigger daemon will use these variables to convey information to
the running script.
If the name of an object that a trigger daemon is monitoring changes, the object continues
to be monitored; it is the same object internally, but with a new name.
If you want a trigger to fire for changes by users to objects in a specific path or for changes
by users to objects with a specific tag, create two triggers: one trigger that specifies the path
and another trigger that specifies the tag. In the following example, the
trigger AllProjectAChanges will fire for all changes in the dev branch by cforde in the
repository path /Projects/ProjectA. The trigger PatchTags monitors the same user and
branch firing criteria, but for a family of similarly named tags instead of a path.
air repository trigger create AllProjectAChanges -enable -path /Projects/ProjectA -user -cforde -
branch dev
air repository trigger create PatchTags -enable -user -cforde -branch dev -tag patchProjectA*
SUGERENCIA:
You can update the definition of a trigger by using air repository trigger modify.
NOTA:
There are several ways for you to access the trigger objects in a repository:
To see a list of all trigger groups defined in a repository, use the following command:
air ls /abinitio/triggers
Each trigger is in a trigger group. The following example shows two trigger
groups, default and test_group:
air ls /abinitio/triggers
directory /abinitio/triggers/: 2 elements
directory: default
directory: test_group
air ls /abinitio/triggers/test_group
directory /abinitio/triggers/test_group/: 2 elements
mimeobj: .state
mimeobj: test_trigger
Alias
The alias for this command is air trigger create.
Example
The following command creates and enables a trigger named test_trigger in the trigger
group called test_group. A trigger daemon monitors all objects under source control in
the /Projects/test_parameters directory:
Related topics
Alias
The alias for this command is air trigger list.
Example
The following command lists the triggers in the group called test_group. It is not enabled
and therefore won’t fire:
Related topics
If you do not specify a group, the command uses the default group.
-enable | -disable Enter one of the following:
NOTA:
An object needs to be under source control (that is, checked in) for
a trigger daemon to monitor it. It is not sufficient that an object be
in a directory that a trigger daemon is monitoring.
-remove-path rpath Specifies an object to remove from the list of objects as trigger-
firing criteria.
-add-user user-name Specifies a user to add to the list of users as trigger-firing criteria.
-remove-user user- Specifies a user to remove from the list of users as trigger-firing
name criteria.
-add-group usergroup- Specifies a group of users to add to the list of user groups as
name trigger-firing criteria.
-remove-group usergro Specifies a group of users to remove from the list of user groups as
up-name trigger-firing criteria.
-add-branch branch- Specifies a branch to add to the list of branches as trigger-firing
name criteria.
-remove-branch branc Specifies a branch to remove from the list of branches as trigger-
h-name firing criteria.
-add-tag tag-regex Specifies a tag expression to add to the list of tags as trigger-firing
criteria. You can use a regular expression in tag-regex.
-remove-tag tag-regex Specifies a tag expression to remove from the list of tags as
trigger-firing criteria. You can use a regular expression in tag-
regex.
-script script-contents Specifies the contents of a script to store as part of a trigger.
Typically, you use this argument when the script is simple and can
be typed directly in to the command. If the script is more
complicated, save it in a file and specify it with the -script-
file argument.
When the trigger fires, the trigger daemon executes the contents of
the script.
-script-file file-name Specifies the name of a script file to store as part of a trigger.
When the trigger fires, the trigger daemon executes the script.
The script file must begin with the interpreter directive !# followed
by the script interpreter, such as #! /bin/ksh.
Argument Description
You can use certain trigger script variables in the script. For more
information, see “Usage” in “air repository trigger create”.
When the trigger fires, the trigger daemon executes the script.
-comment comment- Specifies a comment to associate with the trigger.
string
Usage
NOTA:
Do not include a statement in your trigger script that would itself cause the trigger to fire,
such as a checkin in a directory that the trigger is monitoring.
PRECAUCIÓN:
After updating a trigger that is running, you must stop its trigger daemon and then restart
the trigger daemon to pick up the changes. The trigger daemon maintains its state, so you
won’t lose any activity.
Alias
The alias for this command is air trigger modify.
Example
The following command adds the objects in Projects/test_project to the list of objects
that test_trigger monitors:
Related topics
If you do not specify any arguments, the command displays the current version of the
object. To run this command with the -update or -set arguments, you must have write
permissions on the graph or plan. Therefore, you may need to lock the object before
running these commands.
NOTA:
For the -set argument, you specify the value of the version by using the version point
syntax that the m_env -v command normally produces — for example, -set 3.2.1.
Examples
This example uses the command’s default behavior to show the Co>Operating System
version (AB_COMPATIBILITY setting) that is associated with the createPDF.mp graph:
This example sets the compatibility version of the createPDF.mp graph to an earlier
Co>Operating System version, Version 3.1.4. The second command confirms that the
change was made. The -show argument is optional:
air sandbox ab-compatibility $PROJECT_DIR/mp/createPDF.mp -set 3.1.4
air sandbox ab-compatibility $PROJECT_DIR/mp/createPDF.mp -show
3.1.4
This example updates the compatibility version of the createPDF.mp graph to the current
Co>Operating System version, Version 3.2.4; and confirms that the change was made:
The command assigns the file a state of PendingAdd. The file is then automatically added
to the repository the next time you check in the sandbox.
For a sample list of MIME types, see “Viewing the extension list”.
This command automatically sets the value of AB_AIR_ROOT based on the repository that
the sandbox is attached to. This means that you can run the command without the -
root argument or without having previously set the value of AB_AIR_ROOT.
To cancel a pending addition, run air sandbox revert on the file. The state of the file is
cleared, and the file will not be checked in the next time you run air project import or air
sandbox import.
air sandbox analysis-level
Displays or sets the level of dependency analysis used for a graph or an input pset (.pset)
file in a sandbox. For information about the arguments common to all air commands,
see “Command-line syntax of air commands”.
Syntax
air sandbox analysis-level path
{-show | -set level}
Argument Description
path Specifies a filesystem path to an input pset (.pset) file or graph.
Related topics
This command is useful when you change the location of the repository. In this case, run air
sandbox detach to disassociate the sandbox from the current repository, and then run air
sandbox attach to associate the sandbox with the repository at its new location.
For information about the arguments common to all air commands, see “Command-line
syntax of air commands”.
Syntax
air sandbox convert path
Argument Description
path Path to the sandbox to be converted.
Usage
This command converts a sandbox in the filesystem to Format 3. After conversion, we
recommend that you test the sandbox applications before checking in the changes.
When you check in the sandbox for the first time after conversion, the corresponding
technical repository project is converted to Format 3. Therefore, you should convert only
one sandbox for a particular project. Other sandboxes attached to the project will pick up
the changes subsequently, via checkout.
Related topics
PRECAUCIÓN:
This air command creates a sandbox that is not associated with an Entorno de Ab Initio As
a best practice, use the create-project script with the -sand-root argument or create the
sandbox in the GDE. These methods create the sandbox in an Entorno de Ab Initio.
Syntax
air sandbox create path
[-template path | -type {public | private}]
[-prefix prefix]
[-replace s1 s2]
[-location location]
[-nodirectories]
Argument Description
path Specifies a filesystem directory. If it does not
exist it is created.
-template path | -type {public | private} You may specify one of the following:
NOTA:
Running this command is equivalent to creating an empty project and exporting it. The
command creates built-in sandbox directories (for example, dml and mp) and a parameters
file (.sandbox.pset).
If you specify -type with public or private, you can create a sandbox in accordance with the
Ab Initio Environment.
The command fails if it finds that the path will create nested sandboxes. If path is already a
sandbox, the parameters are merged.
With this command you should also run air project update-extensions. You need to run
these commands on projects that will contain reusable datasets. However, you do not need
to update projects that include such projects.
For more information about reusable datasets, see “Conjuntos de datos reutilizables” in the
Co>Operating System Guía para desarrolladores de grafos.
Example
air sandbox dataset prepare /disk1/sand/my_sandbox/my_common_project
db:/db-name/schema-name/table-name
To reassociate a detached sandbox with its project, run air project import on the sandbox, or
check it in through the GDE.
The sandbox’s .air-sandbox-state file is retained to enable reattaching to the same technical
repository in a possible new location.
air sandbox diff
Displays the differences between two graphs, two plans, two text files, or two sandboxes.
For information about the arguments common to all air commands, see “Command-line
syntax of air commands”.
Syntax
air sandbox diff
{ path | path1 path2 | -version version path | -version
version1 -version version2 path }
[ -terse| -verbose ]
[ -ignore-param-order ]
[ -external-files ]
[ -ignore-dep-analysis ]
[ -text ]
[ -all [-no-diff] [-same ] ]
[ -original-format ]
[ -dml ]
[ -m ]
Argument Description
path Path to a file in the filesystem. Usually the file is in a sandbox, but it
isn’t required unless one of the files being compared is from the
technical repository.
-version version path Specifies the version of the object path to be used in the
comparison. version can be expressed as a version number, as a tag,
or as current (the current version of the technical repository). If you
omit this argument, the command compares object path against the
repository version from which the object was checked out.
-terse | -verbose Valid for graphs and plans. By default, the command shows all
changes that might affect execution, as well as such differences as
changes to comments and legends. To override the default, you can
choose one of the following:
-ignore-param-order Valid for graphs and plans. Does not show differences in the order of
graph, plan, task, or component parameters.
-external-files Valid for graphs or plans only. If specified, also shows differences in
Argument Description
files referred to by graphs or plans, such as record format (.dml) and
transform (.xfr) files.
-ignore-dep-analysis Valid for graphs only. Does not show differences in parameters that
are used only for dependency analysis. See “Usage” (below).
-text Forces the two files to be treated as text, regardless of their actual
types.
-all [-no-diff] [-same] Compares all objects in the sandbox. By default, -all lists the files
as Modified, Added, or Removed (see “Output”), and includes the
comparison output of the pairs of files. By default, Same (up-to-
date) files are not displayed, nor are files marked ignore. However,
if -verbose is specified with -all, Same files and files
marked ignore are listed as well.
If the files are not found to be either graphs or text, or the types of the files do not match,
differencing does not occur. To force differencing (and have the files treated as text), use
the -text option.
The -ignore-dep-analysis argument does not show differences in parameters that are used
solely for dependency analysis:
The output format, described in “Output”, is subject to change. So do not write tools that
parse it into reports; they might not work in a subsequent version.
Examples
Comparing two graphs in the filesystem
To compare two graphs in the filesystem, specify the path to each graph. For example:
In this example, the -all argument shows the differences between a development
sandbox, Client1, and a common sandbox, Common1. The command found that parameters
within the .project.pset file changed.
Output
The command returns nothing if there are no differences to report. Otherwise, it returns
output that describes the type of difference — that is, an addition, modification, or deletion
— and the modified lines. The exact output depends upon whether the objects are graphs
and plans or text files. For more information, see “Graphs and plans” and “Text files”.
For comparisons of single objects, only differences are shown. Modified, added, or deleted
objects are displayed, with the amount of indentation indicating the level of nesting within
the larger object. When the command is executed on graphs or plans, the default is to show
all differences that might affect execution, as well as changes to comments and legends.
The first lines of the output show the pathnames to the two files being compared. The
output also shows the version number of each file when the comparison is between
different versions of the same file.
air sandbox diff can compare a sandbox and a technical repository, where the sandbox is
the source and the repository is the target. Or it can compare two versions of a repository or
two sandboxes, where the first specified is the source and the second is the target.
If -all is specified, the output is similar to that of air object changed; the command outputs
codes and a list of those files that exist only in the repository, exist only in the sandbox, or
have been modified. The following table describes each code:
Code
Description
(meaning)
N (New) The file exists in the target but not in the source.
D (Deleted) The file exists in the source but not in the target.
M (Modified) The file is different in the source and the target.
U (Unknown) The difference cannot be determined. Occurs due to permission errors or
when an object cannot be checked out.
A (Added) The file exists in the sandbox and has been marked for addition to the
repository at the next checkin, for example, by air sandbox add. (The file’s
state is PendingAdd.)
A appears only when the source is a sandbox and the target is a repository.
R (Removed) The file exists in the sandbox and has been marked for removal from the
sandbox and the repository at the next checkin, for example, by air sandbox
remove. (The file’s state is PendingRemove.)
R appears only when the source is a sandbox and the target is a repository.
S (Same) The file is the same in the source and the target. S appears only
when -version is specified with -all.
I (Ignore) The file exists under source control but is marked ignore. I appears only
when -version is specified with -all.
Graphs and plans
For graphs for plans, each difference is labeled with the object type (for example, graph)
and whether it is an addition, deletion, or change. Differences are denoted as follows:
For an addition, the lines showing the value of the added object are prefixed with >.
For a deletion, the lines showing the value of a deleted object are prefixed with <.
For a change:
o The lines showing the value of the changed object in the first file are
prefixed with <.
o The lines showing the value of the changed object in the second file are
prefixed with >.
o The two groups of lines are separated by a dashed line.
The amount of indentation indicates the level of nesting within the larger object.
Text files
For text files, each difference is a block of one or more lines. The position of the difference
within the text file is denoted by a compact label consisting of a number range, a single
letter, and another number range, as follows:
The first number range shows the affected line numbers in the first file specified.
The letter is c, d, or a, depending on whether the differences are changed lines,
deleted lines, or added lines, respectively.
The second number range shows the affected line numbers in the second file
specified.
For example, if you compare graph a.mp to graph b.mp, the output might show that the
value of the key parameter is {foo} in graph a.mp and {bar} in graph b.mp:
The following excerpted output shows that the SORT component has been deleted
from a.mp. Note that, for the sake of brevity, only some attributes and parameters are
displayed for added or deleted components. In this example only max-core is displayed for
the deleted SORT component, since it has a value different from the default value for this
parameter.
record
decimal(10) account_no = 0;
string("\307") firstname;
string("\307") lastname;
string("\307") address = "";
string("\307") city = "";
string(2) state;
decimal(5) zipcode;
decimal(8) ann_sal;
end
record
decimal(10) account_no = 0;
string("\307") full_name = "";
string("\307") address = "";
string("\307") city = "";
string(2) state;
decimal(5) zipcode;
string(10) home_phone;
string(10) work_phone;
decimal(8) ann_sal;
end
Diffing...
/Projects/main/dml/demographic.dml
temp-main/dml/demographic.dml
3,4c3
< string("\307") firstname;
< string("\307") lastname;
---
> string("\307") full_name = "";
8a9,10
string(10) home_phone;
string(10) work_phone;
3,4c3 means lines 3 through 4 of the first file have been changed to line 3 of the
second file.
8a9,10 means that an addition appears after line 8 of the first file, and that lines 9
through 10 of the second file are the two new phone number lines.
NOTA:
When you specify the optional -position argument, the command evaluates the expression
as though it was located at the supplied position in the specified pset. The command then
returns its value based on that proposed position. A parameter’s position within a .pset file
indicates its scope. Parameters that are defined lower in the pset can reference parameters
that are defined higher in the same pset, as well as parameters defined in the parent and any
common projects. You must keep parameter scope in mind when using the -
position argument. For example, in a .pset, the MY_DATA_DIR parameter is defined prior
to the MY_DATA_FILE parameter. In the following example, the command evaluates
the MY_DATA_DIR parameter’s value as if it was located at the position of
the MY_DATA_FILE parameter. Due to scope, this command will succeed and return a
value because MY_DATA_DIR is defined first:
Examples
The following examples show how to use the air sandbox eval parameter.
Sandbox parameter evaluation
To evaluate the parameter MFS in the mysand sandbox, enter the following text:
air sandbox eval /u/disk1/mysand MFS
To evaluate the Layout parameter for a ROLLUP component found in a graph with an input
pset, enter the following:
Related topics
This command takes all the same arguments as air project export, with the exception
of -basedir and project-path. See the air project export command for more information.
Syntax
air sandbox export sandbox-path [arguments]
Argument Description
sandbox-path Specifies the path to the sandbox.
arguments All the arguments to air project export apply, except -basedir and project-
path.
Usage
The sandbox must be attached to a technical repository.
This command is more convenient to use than air project export, because it is not necessary
to specify the project, the repository, or the branch.
Related topics
vertex/varinfo:port[:field]
vertex identifies a component (by its label in the GDE, if it has one, or by
its name), and port identifies a component port by name. To limit the
output to a particular field, specify the field. If you do not specify a field
name, then dependencies for all fields through the port are shown.
SUGERENCIA:
Use air sandbox field-lineage path -vars to display a list of all possible
values for var in the graph.
-upstream | - Use with the -dep argument. Specifies the direction of the analysis. If you
downstream do not specify the direction, lineage for both directions is shown.
-statements | - Use with the -dep argument. Filters the output to show only the statements
ports or ports. (The default output shows both.)
-wizard The command output by default does not display the DML associated
with any transforms that are determined to affect field lineage. Use this
flag to add the text of the DML statement to the command output.
-m Produces DML-described (machine-readable) output. The record format is
in $AB_HOME/include/field-lineage.dml.
-all-outputs Displays the upstream dependencies for all fields in the graph’s output
datasets.
-all-inputs Displays the downstream dependencies for all fields in the graph’s input
datasets.
-outputs-to- For every output field in the graph, lists all the input fields that have data
inputs dependencies on that output field.
-inputs-to- For every input field in the graph, lists all the output fields that have data
outputs dependencies on that input field.
-datasets Lists the datasets read or written by the graph.
-vars Lists all the analysis variables (essentially, component ports) in the graph.
This output is helpful in determining the appropriate value for var before
you run air sandbox field-lineage with the -dep var argument.
Usage
This command analyzes a graph or graph instance (identified by an input pset) in a
sandbox. Neither the sandbox nor the graph are required to be checked in. For example, you
can use this command to understand a graph’s field-level dependencies before checking it
in.
NOTA:
This command does not display dependency analysis warnings. Check for warnings by
running dependency analysis in the sandbox before using this command.
Examples
The following command displays the field lineage for the pending_interest field through
the read port of a dataset component called Pending_Interest:
The following command displays the upstream dependencies for all the fields in the graph’s
output dataset:
The following command lists the datasets read or written by the graph:
Related topics
Linaje de campos
air object field-lineage
air project analyze-dependencies
This command is more convenient than the air project files project-path -
basedir sandbox command, because it is not necessary for you to specify the project, the
repository, or the branch.
-up — (the default) Searches path and its containing directories for
the root directory of a sandbox. If found, displays the path of the
sandbox root directory.
-down — Specifies a recursive downward search of the directory
specified by path and its subdirectories. Prints the paths for all
sandboxes found.
-relative Displays the relative path from the sandbox directory to path. This
argument works only if the command is searching up.
-project Displays the repository project the sandbox is associated with. This
argument works only if the command is searching up.
Usage
When invoked with -down, this command is similar to the Unix find command:
find path -name '.project.pset'
When invoked with -project, this command returns a blank for the project if it finds a
sandbox that is not attached to a project.
For an example of a script you can run to examine a large number of sandboxes located in
the current directory, see “Unattached sandbox” in the Technical Repository FAQs.
Examples
These examples assume that the current directory is /tmp/sand/mp. The search starts in
the mp directory.
Current directory
If you run the command without any arguments, it returns the current directory if it is a
sandbox. For example, the following command run in /tmp/sand/mp:
returns:
/tmp/sand
Relative path
Running the command with only -relative:
mp
returns:
mp
/proj
NOTA:
The -exact argument specifies that query must match the entire text field
in the sandbox. The text field can be a graph legend, a parameter
expression, the contents of an entire text file, and so on.
You can specify multiple types. For more information on using this
argument, see “Usage”.
-attribute attribute By default, searches all attributes. If you specify the -
attribute argument, the command searches for the following object
attributes, as specified:
path/object
For example, if you want to search the subgraph My_Subgraph that is located in the
graph my_graph, specify the path as follows:
/disk1/sand/mp/my_graph.mp/My_Subgraph
If the value of query or path starts with a hyphen (-), then you must place two
hyphens surrounded by a leading and a trailing space (that is, " -- ") after the last
argument and before query. For example, to identify -region as the query value and
not a command argument that starts with a hyphen, enter the following:
The -object-type argument provides you another level of granularity for searching
with the air sandbox find-text command. For example, if you want to search for a
string in all graphs, use *.mp as the value of path. If you want to search for the
fields of a graph or a subgraph object (such as their display names), use the -object-
type argument with a value of graph.
Note, however, that this command does not search inside the graph or subgraph’s
contents. For example, suppose that you have a graph graph.mp, which contains an
embedded subgraph My Subgraph. The subgraph, in turn, contains an INPUT
FILE component My Input File. If you run the following command with a value
of My for the -graph argument, the command will return the result of the display
name My Subgraph. It will not return a result for the My Input File component that
the subgraph contains:
The command’s results substitute a space for new lines found in the matched
content. For example, if the output from a match would normally appear as the
number one followed by a newline, then the number two, the command results
would show the number one, a space, and then the number two. The source data is
untouched.
NOTA:
This command takes all the same arguments as air project import, with the exception
of -basedir and project-path. For more information, see the air project import command.
Syntax
air sandbox import sandbox-path
[-dry-run] [-fast-dry-run]
[-force] [-lock]
[-auto-add] [-add-files file ...]
[-no-read-only]
[-noanalysis] [-nodiscover-datasets]
[-files relative-rpath ...]
[-find-required-files]
[-tag tag-name [-move-tag] {-tag-all |-tag-project|-tag-exact}]
[-comment comment]
[-published-eme published-name]
[-rollup-errors | -individual-rollup-errors | -parsable errors]
[-max-warnings [all | num-warnings]]
[-import-commons] [-quiet]
Argument Description
sandbox-path Specifies the path to the sandbox.
-dry-run Generates diagnostics but does not change the sandbox or
technical repository.
-fast-dry-run Determines the files to be checked in but does no further
error checking. It makes no changes to the sandbox or
technical repository.
-force Does not check for technical repository conflicts. The
command succeeds even if changes made in the repository
are overwritten. It also forces the checkout of removed or
ignored files specified by -files. You can also use this
argument to force checkin and tagging, even on out-of-
date sandboxes.
This command is more convenient to use than air project import, because it is not necessary
to specify the project, the repository, or the branch.
If you want to process error messages programmatically, the DML record format for the
output of the -parsable-errors argument can be found
at $AB_HOME/include/analysis_warning.dml.
If a checkin validation is activated for a project and you are checking an object into that
project, your checkin must meet the commit policy of the checkin validation or it fails. For
example, if a checkin does not have a comment but the commit policy specifies that all
checkins must have one, the checkin fails. For more information, see “Managing commit
policies and automated actions” in the DevOps Guide.
If you run regular tests on graphs in your sandbox, you can use these commands to identify
only the graphs or required files that have changed. Knowing which graphs and required or
referencing files have changed allows you to streamline your testing efforts. You can also
use the air sandbox index commands to identify which files, required files, or referencing
files have changed so that you can run validation and analysis on only those files.
The following table summarizes the air sandbox index group of commands. For more
information about command syntax, see “Command-line syntax of air commands”.
Command Description
air sandbox index Adds the specified paths to the list of paths that the sandbox index
add file is watching.
air sandbox index Lists the call sites in a graph, transform, or parameter for the
call-sites specified DML function.
air sandbox index Creates a sandbox index that you can use to determine whether files
create in a particular sandbox, along with any required or referencing files,
are current or stale.
air sandbox index Lists all the function calls found under the indexed path that are made
function-calls by the specified DML function.
air sandbox index Lists all files that reference the specified file.
referencing-files
air sandbox index Removes the specified paths from the list of watched paths for the
remove sandbox index.
air sandbox index Lists all files that the specified file requires.
required-files
air sandbox index Prints information about the specified sandbox index file — in
show particular, its associated sandbox paths.
air sandbox index Indicates that the sandbox is out of date by listing files that have
show-stale changed or for which required or referenced files have changed.
air sandbox index Resets the time stamps and the list of the currently required and
update referenced files that the index stores.
air sandbox index Reports the validation status of the specified path.
validation-status
NOTA:
When set, the AB_SANDBOX_INDEX environment variable controls the default directory
where the sandbox index is created and maintained.
NOTA:
This command does not index the files in the new paths that you specify. To index new
files in the paths that you are adding, use the air sandbox index update command.
Syntax
air sandbox index add
[ -index index ] path [ path ... ]
Command Description
-index inde Specifies the path to an existing sandbox index file. If you do not specify a
x value, defaults to the value of the AB_SANDBOX_INDEX configuration
variable.
path ... Specifies one or more file or directory paths to start indexing. Separate
multiple paths with a space.
Usage
After running the air sandbox index add command, you must run the air sandbox index
update command to index the new files found in the added paths.
To remove a path from the sandbox index, use the air sandbox index remove command.
Example
This example shows how to add an additional
path, /disk1/sand/ktomlinsoni/testing/sandbox2, to the index file proj004-idx. First, the air
sandbox index show command lists the watched paths and time that the sandbox index file
was created or updated:
The air sandbox index add command is used to add the additional
path, /disk1/sand/ktomlinsoni/testing/sandbox2. Running the air sandbox index
show command again, shows that the task was successful, as follows:
You can set a default sandbox index path for this command using
the AB_SANDBOX_INDEX configuration variable.
Specifying function names
Function names can be unqualified, or you can qualify them by the name of the file or of
the parameter and its vertex in which they are defined.
You specify an unqualified function name as follows:
my_function
/path/transform.xfr:my_function
If a function is embedded in a parameter and its vertex, you specify the function name as
follows:
/path/my_graph.mp/vertex.parameter:my_function
For readability, the sample output format that follows is divided into three lines
representing each type of information — one section per line. In actuality, these sections
are separated in the single-line output by a space where the continuation character (\) is
shown:
object-path-where-function-is-called \
full-path-of-the-object/vertex.parameter:line-number \
statement-with-call-site
Examples
The following example returns all call sites for a function func2 that the command finds in
the paths specified in the sandbox index file. You do not need to specify the -
index argument because the configuration variable AB_SANDBOX_INDEX was
previously set to the path to the file:
air sandbox index call-sites func2
/disk1/sand/test-sand/mp/customer-lists.mp Reformat.transform0
/disk1/sand/test-sand/mp/customer-lists.mp/Reformat.transform0:3 out.num :: func2(in.num)
/disk1/sand/test-sand/mp/customer-lists.mp Join.transform /disk1/sand/test-sand/xfr/foo.xfr:10
out.num :: func2(in.num)
In this example, the air sandbox index call-sites command found the function func2 in
a REFORMAT component. The line of code at which the function was found in the
transform transform0 was line 3. The command also found a call site for the function in a
transform in a JOIN component. However, the match was actually external to the customer-
lists.mp graph — it was found at line 10 in the transform file foo.xfr (that is, foo.xfr:10).
Note that when the path is a file, as it is here, the vertex.parameter syntax doesn’t apply.
This next example uses a fully qualified path to return only call sites to the
function func2 which is defined in the REFORMAT component transform, as follows:
Related topics
As a best practice, we recommend that you use a naming convention to indicate that
this file is a sandbox index file. For example, you could name your index as
follows: sandbox-name-index.
When you run this command to create an index file, all the files in the specified
sandbox paths are considered new files.
If you specify only an index name and not a full path, this air command writes the
index file to the directory with the current focus.
You cannot edit an index file. To see its contents, use the air sandbox index
show or air sandbox index show-stale commands. For additional commands for
managing an index file, see “air sandbox index commands”.
To delete an index if it is no longer needed, use the Unix rm command.
If this command process seems to run too slowly or uses too many cores, you can
use the AB_SANDBOX_INDEX_PARALLEL configuration variable to adjust the
number of subprocesses that the command creates.
Example
This example shows how you can create a sandbox index and then use the air sandbox
index show-stale command to identify and generate a list of stale files from the information
that the index stores. You can then use the DML-described output to control automated
testing by retesting only the graphs, referencing files, or referred files that have actually
changed since the last test.
The following command example creates an index file called proj004-index for the
sandbox /disk1/sand/testing-suite/sandbox1:
You can confirm that the index was created for the path that you intended by entering the
following command:
air sandbox index show -index proj004-index
Index is configured to check the following paths:
/disk1/sand/testing-suite/sandbox1
/disk1/sand/testing-suite/sandbox2
You can run the air sandbox index show-stale command on the sandboxes that you added to
the index when you created it. This command reports whether any objects have changed
since the index was created (or since it was last updated). Using the -m argument with
the air sandbox index show-stale command allows you to capture DML-described output
that you can use to control your automated testing suite.
Related topics
You can set a default sandbox index path for this command using
the AB_SANDBOX_INDEX configuration variable.
Specifying function names
Function names can be unqualified, or you can qualify them by the name of the file or of
the parameter and its vertex in which they are defined.
my_function
/path/transform.xfr:my_function
If a function is embedded in a parameter and its vertex, you specify the function name as
follows:
/path/my_graph.mp/vertex.paramter:my_function
object-path-where-function-appears \
full-path-of-the-object/vertex.parameter:line-number \
statement-with-function
Examples
The following example returns all function calls for a function func2 that the command
finds in the paths specified in the sandbox index file. You do not need to specify the -
index argument because the configuration variable AB_SANDBOX_INDEX was
previously set to the path to the file:
In this example, the air sandbox index function-calls command found the function func2 in
the transform transform0 in a REFORMAT component. The lines of code at which the
function was found were lines 15 and 16. The command also found a matching function
call in a transform in a JOIN component. However, the match was actually external to
the customer-lists.mp graph — it was found at line 11 in the transform file foo.xfr (that
is, foo.xfr:11). Note that when the path is a file, as it is here, the vertex.parameter syntax
doesn’t apply.
This next example uses a fully qualified path to return only function calls for the
function func2 that are found in the REFORMAT component transform, as follows:
Related topics
This air command requires that you have previously run the air sandbox index
create command to set up a sandbox index.
The results shown in the output for this command will be accurate as of the last
update of the index.
To determine when the index was last updated, enter the air sandbox index
show command.
Example
This example command and its output lists all the files that require the DML
file /sandbox1/dml/Multi_Sftp_Regional_Sales.dml, as follows:
Related topics
As a best practice, we recommend that you use a naming convention to indicate that
this file is a sandbox index file. For example, you could name your index as
follows: sandbox-name-index.
When you run this command to create an index file, all the files in the specified
sandbox paths are considered new files.
If you specify only an index name and not a full path, this air command writes the
index file to the directory with the current focus.
You cannot edit an index file. To see its contents, use the air sandbox index
show or air sandbox index show-stale commands. For additional commands for
managing an index file, see “air sandbox index commands”.
To delete an index if it is no longer needed, use the Unix rm command.
If this command process seems to run too slowly or uses too many cores, you can
use the AB_SANDBOX_INDEX_PARALLEL configuration variable to adjust the
number of subprocesses that the command creates.
Example
This example shows how you can create a sandbox index and then use the air sandbox
index show-stale command to identify and generate a list of stale files from the information
that the index stores. You can then use the DML-described output to control automated
testing by retesting only the graphs, referencing files, or referred files that have actually
changed since the last test.
The following command example creates an index file called proj004-index for the
sandbox /disk1/sand/testing-suite/sandbox1:
You can confirm that the index was created for the path that you intended by entering the
following command:
You can run the air sandbox index show-stale command on the sandboxes that you added to
the index when you created it. This command reports whether any objects have changed
since the index was created (or since it was last updated). Using the -m argument with
the air sandbox index show-stale command allows you to capture DML-described output
that you can use to control your automated testing suite.
Related topics
Related topics
This air command requires that you have previously run the air sandbox index
create command to set up a sandbox index.
The results shown in the output will be accurate as of the last update of the index.
To determine when the index was last updated, enter the air sandbox index
show command.
Example
This example shows all the files that are required by the graph Multi_SFTP.mp found
within sandbox1.
Related topics
Related topics
This air command requires that you have previously run the air sandbox index
create command to set up a sandbox index.
The command only reports on files and required files found in the specified sandbox
index path.
The command determines that a file or a required file has changed if it was added,
modified, or deleted since the index was last updated.
To determine when the index was last updated, use the air sandbox index
show command.
Example
The following example lists files that have changed since the last time that the air sandbox
index update command or the -update argument were run. The output shows that several
files — including .plan and .pset files — were added, and a required
file Multi_Sftp_Regional_Sales.dml was modified:
You can use this command with the -m argument to generate DML-described output. You
can use the command output to streamline and control automatic testing, so that you test
only files that have changed.
Related topics
Command Description
-index inde Specifies the path to the sandbox index. If you do not specify a value, the
x command defaults to the value of the AB_SANDBOX_INDEX configuration
variable.
Usage
This air command requires that you have previously used the air sandbox index
create command to set up a sandbox index.
This command only reports files as stale if they or their required or referencing files
changed since you last ran this command. A file that is in a changed state has been added,
modified, or deleted.
Run this command after adding new watched paths to an index by using the air sandbox
index add command. Doing so initially indexes the objects found in the new watched paths.
If this command process seems to run too slowly or uses too many cores, you can use
the AB_SANDBOX_INDEX_PARALLEL configuration variable to adjust the number of
subprocesses that the command creates.
Example
The following examples first list files that have changed since the last time that the air
sandbox index update command or the air sandbox index show-stale -update command
argument were run. Next, the example uses the air sandbox index update command to reset
the index. This command clears the information that the index stores, thereby removing the
files that are currently flagged as stale. Any changes that you make to the sandbox after you
run this command will now appear as stale.
The following command output shows that several files changed since the last time that the
index proj005-idx was updated. The changes include a required file, the DML
record Multi_Sftp_Regional_Sales.dml:
The following update command recomputes the timestamp and other information in the
specified index:
After the update command is run, the air sandbox index show-stale command indicates by
its lack of output that the index contents have been reset — as follows:
Related topics
For information about the arguments common to all air commands, see “Command-line
syntax of air commands”.
Syntax
air sandbox index validation-status
[ -index index ] [ -m ] path ...
Argument Description
-index inde Specifies the path to the sandbox index file that you want to pull the validation
x status from. If you do not specify a value, defaults to the value of
the AB_SANDBOX_INDEX configuration variable.
-m Prints verbose results in a DML-described form that is defined
in $AB_HOME/include/stale-files.dml.
path ... Path to a sandbox file or directory to report the validation status for. If you
specify multiple paths, this argument behaves like the air sandbox validation-
graph command with the - flag specified reading in paths from stdin.
Usage
The following usage details apply:
This air command requires that you have previously used the air sandbox index
create command to set up a sandbox index.
This air command does not return any output if you specify a file that does not exist.
Specify $PWD as the path if you want to specify the directory that you are in.
0 — Validation succeeded.
1 — Validation failed.
2 — validation succeeds but errors or warnings were found.
Validation can fail if the specified path does not have an index. If you specify the -
m argument, errors are sent to stdout instead of stderr, and the command always returns 0.
If this command returns errors for a graph or pset, the graph won’t run. You must correct
any errors identified in the error messages. For example, if you use an INPUT
FILE component instead of a valid subscriber to input data into a continuous graph, the
command displays an error message identifying the invalid component that you must
replace.
Example
The following example shows output generated from running the command on the
sandbox index proj004-index in the current directory, index-test.
The command reports an error with the application-test-004-beta.mp and also lists objects
that it does not validate.
/u/cforde/index-test/mp/application-test-004.mp
/u/cforde/index-test/proj004-index
Object at "/u/cforde/index-test/proj004-index" is not a graph or a graph instance.
Related topics
ir sandbox info
Displays information about a sandbox or files within it. For information about the
arguments common to all air commands, see “Command-line syntax of air commands”.
Syntax
air sandbox info [ -basic ] path ...
Argument Description
-basic Displays a subset of information — including the sandbox object’s full path,
full path to the repository root, branch name, any published repository name,
and its project name.
The sandbox information lists the object’s full path; object’s size; author; time of
creation, modification, and access; the latest version in the sandbox; and file
permissions.
The technical repository information lists the published technical repository name,
the full path to the repository root, the branch name, and the project name.
If path is a file, the information lists the MIME type and size, the latest version in
the repository, the current file state (for example, current or modified), the tag (if
any) recorded in the sandbox for the last checkin or checkout, and the lock state. If
the file is locked, the display shows the lock owner and timestamp information.
NOTA:
Tag information is recorded on files only, not on directories. The sandbox directory
itself does not have tag information.
Example
The following example displays information about the specified sandbox — in this case,
the value indicated by the $PROJECT_DIR environment variable:
air sandbox info $PROJECT_DIR
Filesystem:
Path: /disk1/sand/ktomlinsoni/Providence
Size: 4096
Owner: ktomlinsoni
Modified: 2017-01-26 15:23:01
Permissions: drwxr-xr-x
EME Technical Repository:
Repository: file://docloc64/disk1/EME/docloceme
Branch: main
Published Name: docloceme_kt
Project: /Projects/PRs/Providence
The following example uses the optional -basic argument to display a subset of information
about same sandbox that was used in the previous example. This command can be used
without having to actually connect to the repository:
NOTA:
Some files cannot be automatically merged — such as, MS Word documents, Express>It
templates, AppConf objects, and rulesets. You must manually merge these types of files.
Unresolved conflicts
If unresolved conflicts occur during the merge attempt, the integration writes specific files
in the sandbox based on the type of unresolved conflict that it encounters. The contents and
names of the files are dictated by the type of conflict that was found and its relationship to
the source or base files. The purpose of writing these files to the sandbox is to provide you
with easy access to information to help you determine how to manually resolve the
conflicts. For example, you can use the air commands or the GDE or TRMC client-based
viewing and differencing features to learn more about the contents of these files and how a
specific decision to merge them might affect them. The possible scenarios and their
resultant file are the following:
NOTA:
The Project > Integration main menu item in the GDE implements a subset of
this air command. The Integration Wizard is also available in the TRMC. For more
information, see “El Asistente para integraciones”.
Examples
The command in this example integrates the latest changes found on the
branch my_branch (the source) into the specified sandbox customer_tickets04 (the target).
The command automatically computes the base for the two branches whose objects are to
be integrated, as follows:
For an example workflow, see “Integration workflow and task examples using air
commands” in the Technical Repository Guide to Version Control.
In this example, the source is a remote repository. The command integrates the tip changes
in the source with the (current) repository since the tag base-version-tag was created. The
value of AB_AIR_ROOT for the source repository
is //remote-server/remote/repository/eme/eme:
After running the air command, if there are any conflicts, you must use the GDE to resolve
them. For more information, see “Resolver archivos sin resolver con el software del
GDE” and “Integration workflow and task examples using air commands” in the Technical
Repository Guide to Version Control.
Related topics
Argument Description
base Specifies the common ancestor for the merge.
You specify the path to a file, such as a graph, followed by one of the
following:
-eme — The file path for the repository, which is the same
value as AB_AIR_ROOT.
-eme=eme root — The file path to use as the repository root.
You specify the path to a file, such as a graph, followed by one of the
following:
-eme — The file path for the repository, which is the same
value as AB_AIR_ROOT.
Argument Description
-eme=eme root — The file path to use as the repository root.
You specify the path to a file, such as a graph, followed by one of the
following:
-eme — The file path for the repository, which is the same
value as AB_AIR_ROOT.
-eme=eme root — The file path to use as the repository root.
-nolegend | -ignore- Controls merge options for summarizing conflicts in graphs or plans
ws and ignoring whitespace in text files or parameters.
-diffs | -mdiff | - Controls merge debugging print options. Specify one of the following:
rdiff
-diffs — Prints the differences from base to source and
from base to target.
-mdiff — Prints the difference after combining the differences
among base, source, and target.
Argument Description
-rdiff — Prints the differences after applying conflict
resolution.
Usage
Use this command when you want to do your own custom merge or if you want to use
merge with a third-party SCM.
You do not need to specify a filename in the resolutions file for air sandbox merge.
NOTA:
If there are text conflicts, air sandbox merge inserts markers into the merged file (see
the example below).
If there are structural conflicts, air sandbox merge puts the target change in the specified
merged file. A structural conflict is a conflict for which air sandbox merge cannot add a
marker in the file; for example, a conflict that arises from changing a component and then
deleting a component.
NOTA:
If running air sandbox merge generated conflict warnings, the merged .mp file will contain
a list of merge conflicts. You can view and address the merge conflicts in the GDE. The
GDE will prompt you to address any conflict notices, which you must do manually. For
detailed instructions, see “Resolver archivos sin resolver con el software del GDE” in the
Co>Operating System Graph Developer’s Guide.
Example
The following figure shows four versions of a file. The file starts as a common base file in
the technical repository. A developer changes the base file and checks it into the technical
repository, where it now resides as a source file. Another developer, Matty, changes the
base file and saves it to his sandbox, where it is now a target file. He runs the air sandbox
merge command, which combines the changes to the source and target files to produce a
merged file that resides in Matty’s sandbox.
The following example merges three graph files into one merged file, /tmp/x.mp.
In the resulting command output, the merge attempt reveals that there are four text
conflicts:
Conflicts detected:
0:
Reformat.transform0:
<<<<<<< Source
out.aa:: in.aa;
out.b :: in.b;
||||||| Base
out.a :: in.a;
out.b :: in.b;
=======
out.aaa:: in.aaa;
out.bb:: in.bb;
>>>>>>> Target
1:
Reformat.transform0:
<<<<<<< Source
out.d:: in.d+1;
||||||| Base
out.d :: in.d;
=======
out.d:: in.d+2;
>>>>>>> Target
2:
Reformat:
Base->Source
'transform0' changed:
interpretation:
< constant
---
> dollar_curly_substitution
flags:
< INTERP_literal
---
> INTERP_dollar_curly_substitution
expression:
3c3
< out.a :: in.a;
---
> out.aa:: in.aa;
6c6
< out.d :: in.d;
---
> out.d:: in.d+1;
Base->Target
'transform0' changed:
interpretation:
< constant
---
> pdl
flags:
< INTERP_literal
---
>
expression:
3,4c3,4
< out.a :: in.a;
< out.b :: in.b;
---
> out.aaa:: in.aaa;
> out.bb:: in.bb;
6c6
< out.d :: in.d;
---
> out.d:: in.d+2;
3:
Input_File.read_metadata:
<<<<<<< Source
int aa;
int b;
||||||| Base
int a;
int b;
=======
int aaa;
int bb;
>>>>>>> Target
Section 2: in the preceding example uses text object difference indicators to mark conflicts.
For information about how to interpret text object difference indicators, see “For text
objects” in the Technical Repository Administrator’s Guide.
The developer can write a resolutions file x.resolution, with the following contents, which
specifies how to handle each conflict:
0: source
1: base
2: target
3: target
The developer can then run air sandbox merge again, but this time specify that the
resolutions file x.mp contains explicit instructions on how to resolve each conflict. This is
done with the -resolutions argument as follows:
Alternatively, the developer could run air sandbox merge with one of the -t, -b, or -
s arguments to -resolutions and resolve all conflicts by specifying that the command should
take the target version, base version, or source version, respectively, of a conflicting
change.
Related topics
This command automatically sets the value of AB_AIR_ROOT based on the repository that
the sandbox is attached to. This means that you can run the command without the -
root argument or without having previously set the value of AB_AIR_ROOT.
To undo a pending removal or pending add of a file, run air sandbox revert. Running that
command clears the file state and restores the removed file from the repository.
Example
To rename a graph from acc-procc.mp to account-processing.mp, enter the following:
Also declares or deletes a graph, plan, or project parameter. For information about the
arguments common to all air commands, see “Command-line syntax of air commands”.
Syntax
The syntax of air sandbox parameter takes one of these forms:
NOTA:
Default is -pdl.
-locator or -not-locator
NOTA:
choice-parameter -choice choice ... Creates a choice parameter and its list of possible
choices.
dependent-parameter -dependent c Creates a dependent parameter that depends on the
hoice-parameter specified choice parameter.
dependent-parameter -case choice Sets the string value for the specified case
[interpretation] dependent-value (current choice) of a dependent parameter.
See interpretation above.
common-project-parameter -comm Creates or modifies the common sandbox parameter,
on common-sbox-path [ -relative- and sets its value to the path to the common sandbox.
common ]
If the -relative-common argument is also specified,
sets the relative path to the common sandbox. Storing
relative paths to common sandboxes allows you to
move a set of sandboxes to a new location without
needing to change the common sandbox references.
NOTA:
Usage
In Co>Operating System Version 3.2.5, the -eval argument was deprecated. Use the air
sandbox eval command instead to display the value of a sandbox, graph, plan, dependent
parameter, or expression.
In Co>Operating System Version 3.2.7, the -eval-expression argument was deprecated. Use
the air sandbox eval command instead to display the value of an expression.
The flag values -input and -local correspond to the GDE input and local settings,
respectively, of the parameter Input attribute. Input parameters receive their values as input
from users of the object that the parameters appear in. Local parameters contain values
determined by internal mechanisms or specified by developers; they are not accessible to
users. For more information, see “Parámetros de entrada y locales” in the Guía para
desarrolladores de grafos.
Specifying parameter sets and overriding common project
parameters
-path is preferred
We recommend using -path instead of -basedir to explicitly specify the parameter set you
want to modify. However, if you use the -common argument, you must use the -
basedir syntax.
To override a parameter in a common project, use the special @ (at sign) notation to
identify the parameter location:
PARAM@ instructs the software to search from the current project upward through
the chain of included common projects until it encounters a parameter with the
name PARAM in a common project. It applies the override value to that parameter.
PARAM@COMMON_PROJECT_PARAM instructs the software to override the
parameter PARAM in the common project identified by the
parameter COMMON_PROJECT_PARAM.
Examples
These examples show how to use the air sandbox parameter command with several of its
most popular arguments.
Creating an overridable parameter
To create a parameter named COUNT, set its value, and mark it as overridable, type:
Removing a parameter
To remove the COUNT parameter, enter:
Related topics
This command creates and saves the precompiled DML but does not run the graph. (If you
do not use this command, the precompiled DML is instead created and saved the first time
you run a new or changed graph.)
For information about the arguments common to all air commands, see “Command-line
syntax of air commands”.
Syntax
air sandbox precompile-graph pset-path
[-silent|-verbose]
[-ignore-analysis-level]
[positional-input-value ...]
[input-parm-name value] ...
Argument Description
-silent | -verbose Determines the type of error messages displayed, as follows:
Related topics
When using the -print-bases argument to display a parameter set chain, you will find an
input pset’s base file located immediately below it. For example:
In this example, reading from the repository-side or bottom, the bases in the chain are:
For more information about .pset files, see “Archivos pset de entrada” in the Co>Operating
System Guía para desarrolladores de grafos.
Default behavior
If you do not provide any arguments, this command creates an empty file at pset-path.
If pset-path already exists, the command will do nothing.
Fixing an invalid configuration pset chain
A pset chain always starts with .sandbox.pset and must end in .project.pset. By default, the
pset chain is .sandbox/pset->.project.pset, while a configuration pset might look
like .sandbox.pset->config-pset ...->.project.pset. The following is an example of a
configuration pset:
.sandbox.pset
myconfig.pset
.project.pset
The air sandbox pset commands can modify a configuration pset chain. If you accidentally
remove the base with the -remove-base argument, the pset will become invalid. Attempts to
use it with an air sandbox pset command will generate an error similar to the following:
<PWD>/sand/.sandbox.pset
<PWD>/sand/myconfig.pset
You use the air sandbox pset -base argument to fix an invalid configuration pset. There are
various methods that you can use to fix it — two of which are described here. The first
method is to restore the default chain by making the .project.pset the base of
the .sandbox.pset. The second method is to make the .project.pset the base for the
configuration pset. To get back to the default pset chain, use the -base argument as follows
— shown along with the results:
air sandbox pset .sandbox.pset -base .project.pset
air sandbox pset .sandbox.pset -print-bases
.sandbox.pset
.project.pset
To instead make .project.pset the base of the configuration pset, enter the following:
Examples
In this example, reading from the repository-side or bottom, the bases in the chain are:
For more information about .pset files, see “Archivos pset de entrada” in the Co>Operating
System Guía para desarrolladores de grafos.
To create a parameter set chain with three links one.pset, two.pset, three.pset, insert the left-
most parameter values set first, followed by the set that it will be the base to:
Use the -print-bases argument to display the chain you just created:
Enter the following command and print out the results to confirm the substitution:
You are permitted to remove a file when its state is Current. You can also run air sandbox
remove to mark a file you’ve already removed from the sandbox but haven’t yet marked for
removal from the technical repository.
Specify -force to remove a file that has a state of Modified, PendingAdd, or New. For
example, if the specified file has been modified in the sandbox, you must specify -force; if
you do not, the command fails. Another example: if the specified file is only in the sandbox
(and not in the repository), you must specify -force to remove the file.
You can specify -no-delete to remove a file that has a state of New, PendingAdd,
or Modified.
You cannot remove a file that has a state of Conflict, Stale (cannot be locked), or Ignore, or
that is locked by another user.
This command automatically sets the value of AB_AIR_ROOT based on the repository that
the sandbox is attached to. This means that you can run the command without the -
root argument or without having previously set the value of AB_AIR_ROOT.
If you want to cancel a pending removal, run air sandbox revert on the file. The file is
restored to the sandbox and will not be removed from the repository the next time you
check in the sandbox.
To use this command you must have previously converted the linked subgraph to a
dynamic subgraph by using the GDE Convert to Dynamic Subgraph Wizard or a manual
process. For more information, see “Usage”. For information about the arguments common
to all air commands, see “Command-line syntax of air commands”.
PRECAUCIÓN:
Use this command in consultation with Departamento de soporte técnico de Ab Initio. After
running this command, you must test your graphs to ensure that they function as intended.
Syntax
air sandbox replace-subgraph
-graph-path filesystem_path.mp
-path-to-subgraph-source filesystem_path.mp
-implementation-path filesystem_path_impl.mp
[-interface-path filesystem_path.mgi]
[-port-name-change subgraph-port interface-port ...]
[-allow-overrides-of-non-interface-parameters]
[-walk-into-linked-subgraphs]
Argument Description
-graph-path filesystem_path Absolute path to the graph whose linked subgraphs you
want to replace with the specified subgraph.
-path-to-subgraph- Absolute path to the linked subgraph’s source file that you
source filesystem_path.mp want to replace in the sandbox — for
example, $PROJECT_DIR/components/subgr.mp.
-implementation-path filesyste Absolute path to the dynamic subgraph implementation
m_path_impl.mp that you want to use to replace the linked subgraph.
-interface-path filesystem_pat Absolute path to the graph interface that you want to use to
h.mgi replace the linked subgraph. This argument is currently not
necessary to use.
-port-name-change subgraph- Space-separated pairs describing the new current port
port interface-port ... name found in the graph and the existing interface port that
will replace it. For more information, see “Mapping
renamed ports”.
-allow-overrides-of- non- Indicator that preserves any overrides in parameters that do
interface- parameters not exist in the interface. The default is to ignore overrides
of parameters and issue a warning. For more information,
see “Handling subgraph parameters that were not added to
the graph interface”.
Argument Description
-walk-into-linked- subgraphs Indicator that also modifies nested linked subgraphs. This
method does not modify the source file of the subgraph,
and so it is not recommended for any uses other than
testing. For more information and a discussion of best
practices, see “Updating nested subgraphs”.
Usage
You can use the GDE Convert to Dynamic Subgraph Wizard (or a more laborious manual
process) to convert a graph that is used as a linked subgraph to a dynamic subgraph. Doing
so creates the dynamic subgraph and the graph interface. This air command lets you
convert top-level instances of a given linked subgraph that are found in the specified parent
graph to a graph interface instance.
1. Starting with the innermost linked subgraphs, convert the source graphs to graph
interfaces, and continue these conversions as you move up and outward in the graph
hierarchy.
2. Using the GDE or the air sandbox update command, update any graph that contains
the linked subgraph. This command is recursive.
In addition to this procedure, the air sandbox replace-subgraph command has a -walk-into-
linked-subgraphs argument. When this argument is present, the air command searches for
and replaces any nested subgraphs. However, it does not update the source graph.
Therefore, if you use this argument for your replacement effort and the source graph
changes, you risk losing your changes on update. A case where you might want to use this
argument is in a temporary sandbox to test whether the changes that you intend will work
properly. However, for normal development we recommend that you follow the steps
described in “To replace nested linked subgraphs”.
Mapping renamed ports
When you convert a linked subgraph to a dynamic subgraph — either manually or by using
the Configure Ports page of the GDE wizard — you can change a subgraph’s port names.
You use the -port-name-change argument to indicate how to map the renamed ports to the
graph interface ports. This command maps the port names in the graph interface. For
example, say that a linked subgraph had a port in1. When the linked subgraph was
converted to a dynamic subgraph, the port name was changed to in01, which now appears
in the .mgi file. You can use this argument to indicate the change to make in the parent
graph as follows:
If you see this warning message, we recommend that you investigate the original parameter
override. There may have been an important reason that the parameter was hidden that you
might want to respond to.
To preserve the parameter overrides that were found in the original graph, use the -allow-
overrides-of-non-interface-parameters argument.
Example
Following is an example that replaces top-level instances of sg.mp linked subgraphs with
the sg_impl.mp dynamic implementation and its sg.mgi graph interface file:
Related topics
Subgrafos dinámicos
Asistente para subgrafos dinámicos
NOTA:
In contrast to when you work with air commands in a shell session, the GDE sandbox view
hides these four files (conflict, source, target, and base) from view. However, when you use
the Resolve dialog or specify a conflict resolution action, the interface selects the
appropriate file and uses it to resolve the conflict. If you use an editor or the Difference
viewer on a file, you will see the file’s full path name — for example, my-
graph._source_.mp.
In the example that follows, the integrate attempt reveals that transform0 in the source
object found on the repository branch is quite different from the target sandbox version and
the common parent base found in the repository. The sandbox and base version differ only
in the number value that is added to in.balance:
Reformat.transform0:
<<<<<<< Source
out.balance:: in.balance;
||||||| Base
out.balance:: if (in.customer_id=="4484401") in.balance + 200.00 else in.balance;
=======
out.balance:: if (in.customer_id=="4484401") in.balance + 400.00 else in.balance;
>>>>>>> Target
Using an editor, you remove the extraneous informational content of the .conflict. file,
leaving the correct resolutions in place. Using the transform0 example shown above, to
choose the transform version from the target file, you would remove all markers and leave
just the valid transform:
Reformat.transform0:
out.balance:: if (in.customer_id=="4484401") in.balance + 400.00 else in.balance;
After editing the .conflict. file, you rerun air sandbox resolve with the -take-
edited argument.
For more information, see “Resolver archivos sin resolver con el software del GDE” in
the Guía para desarrolladores de grafos.
Resolving conflicts when the .conflict. file has no markers
You can have a .conflict. file in your sandbox that doesn’t contain conflict markers. This is
because although changes to components, DML, and the like can be described in the file
with markers, changes that are related to structural differences (such as labels) cannot be
described with markers. When only structural differences are found, the .conflict. won’t
contain markers.
To see descriptions of these types of conflicts, you must consult the graph or pset file to
determine the manual changes that you want to make. The details are found in graph labels.
You can use air sandbox diff commands or GDE-based differencing tools to see how
choosing the source, target, or base file might affect your checkin. To resolve these types of
conflicts, you can either edit one of the files or use the appropriate air sandbox
resolve argument to indicate whether to use the source, target, or base file.
For more information, see “Resolver archivos sin resolver con el software del GDE” in
the Guía para desarrolladores de grafos.
Testing and validating
After you resolve all conflicts in the sandbox, you must test and validate your results. When
you are confident that your application works properly, you can check in the files.
Example
This command performs a dry run to show you the results of using the previously
edited .conflict. file:
NOTA:
This air command is the equivalent of the GDE Resolve conflicts dialog that is accessible
from the GDE Sandbox View pane.
Related topics
When you revert an added file (one whose state is PendingAdd based on having run air
sandbox add), the file state is cleared. The file itself is untouched.
This command automatically sets the value of AB_AIR_ROOT based on the repository that
the sandbox is attached to. This means that you can run the command without the -
root argument or without having previously set the value of AB_AIR_ROOT.
Because the path that you specify must be valid as of the current version, to roll back to a
previously removed object, enter the following syntax for the value of rpath:
In the syntax above, @1.1 denotes domain 1 (which is the root directory) and object 1.
From this starting position, the command uses version-number and rpath to identify the
correct object.
NOTA:
You can use the Technical Repository Management Console (TRMC) Versions tab to
identify the version number of removed objects. For example, you can use the tab to
browse for the repository path of the directory that contains the deletion, or if the user who
deleted the object is known, you can filter the view on the username and search those
versions.
Overriding a conflict
To override any conflict errors with the graph1.mp file, enter the following:
For information about the arguments common to all air commands, see “Command-line
syntax of air commands”.
Syntax
air sandbox run path
[-resolve-from sandbox]
[-force-job]
[-script-only]
[-force-dynamic]
[-force-fold]
[-help-inputs]
[-yarn-estimate-only]
[positional-input-value ...]
[-input-parm-name value] ...
[plan-recovery-option]
[plan-debugging-options]
[other-plan-options]
Argument Description
path Path to a graph (.mp) file, graph task (.task), plan (.plan), plan recovery file
(.rec) or input pset (.pset) file for a graph, task, or plan.
-resolve-from Runs the pset path as though it was located in the specified sandbox.
sandbox
-force-job By default, does not create a job if the graph has been modified since the
last checkin or checkout. Use -force-job to override this check.
-script-only Dumps the generated Korn shell script to stdout but does not actually run
the graph.
-force-dynamic Uses dynamic script generation even if the graph settings are set to GDE
1.13-compatible script generation.
-force-fold Uses dynamic script generation (in Version 2.14) even if the graph settings
are set to GDE 1.13-compatible script generation. If you specify -force-
fold, dynamic script generation is automatically assumed and the
Co>Operating System component folding feature is enabled. For more
information, see “Agrupación de componentes” in the Co>Operating
System Guía para desarrolladores de grafos.
-help-inputs Displays the names and descriptions (if any) for all graph and project input
parameters but does not actually run the graph. Also displays command
syntax.
-yarn-estimate- Displays information about the YARN containers that will be requested in
only order to run the job under YARN. Does not actually run the job. To use this
argument, AB_CONTAINER_PROVIDER must be set to yarn, and YARN
must be accessible from the current host.
For more information about how YARN container requests are calculated,
see “Integrating with YARN on a Hadoop cluster” in the Co>Operating
System Hadoop Integration Guide.
positional- Value for a graph input parameter that is passed positionally.
Argument Description
input-value
-input-parm- Overrides the default value of parameter input-parm-
name value name with value. Valid only for parameters that have a Kind setting
of Keyword. You can specify multiple pairs of input parameter names and
values.
plan-recovery- Applies only to plans and is limited to one of the following recovery
option means:
plan- Applies only to plans and should be used only if you intend to connect the
debugging- plan debugger to the running plan with the plan-debugger recfile command.
options
path_in_plan specifies any element of a plan, such as a task,
method, subplan, or iteration, where / is the top-level plan.
-break-before path_in_plan stops execution of the element before it
starts.
-break-in path_in_plan stops execution of one of the following: a
method just before it spawns its script or executable; a task before it
starts its perform method; or a plan, subplan, or iteration before it
starts its body.
-break-after path_in_plan stops execution of the element after it
finishes.
-break-on-failure stops execution of every perform method that
fails.
For more information on using these options, see Debugging a plan from
the command line in the Conduct>It Guide and Reference.
other-plan- Miscellaneous parameters for plans. You may specify none or any number
options of these:
You may specify this clause more than once. Express task-name as
a fully qualified name — for example:
/subplan/subsubplan/task-name
Usage
This command is an alternative to running the script deployed from the GDE. The script is
deleted after the graph runs.
See the table below to find help topics relevant to air sandbox run:
Improving performance
If you need to improve performance at graph startup, consider using the air sandbox
precompile-graph command instead.
Example
To see a list of the graph and project input parameters to mygraph.mp, specify -help-inputs:
Obsolete arguments
As of Version 3.0.5, the -rollback-all argument is obsolete.
Alias
The alias for this command is ab-run.
-required Also searches for matches in all files that are required by sandbox-path. This
argument is equivalent to the air sandbox get-required-files path command.
-m Displays any results in a concise machine-readable format without headers.
You can find the DML that describes this output
at $AB_HOME/include/search_parameters.dml.
Usage
When you run the air sandbox search parameter command, note the following:
Matching is case-sensitive for both the parameter name and the optional pset.
If no matches are found, the command generates a warning that no matches were
found.
If the sandbox-path specifies a directory and the command finds no matching
graphs, plans, psets, and so on, then the command issues a warning that no objects
were found.
Examples
In the following example, the air command searches for the FOO parameter in all files
under the /u/disk1/mysand/hadoop sandbox:
In the following example, the air command searches for the FOO parameter in a single
graph:
In the following example, the air command searches for the FOO parameter in a single
graph, as well as in all files that graph requires. It filters the result to show only matches
that are references:
Related topics
If -param is specified with -exact, the common sandbox path is followed by a tab and then
the sandbox’s associated parameter name.
Sandboxes are listed in the order in which they would need to be checked out. Sandboxes
later in the list may depend on sandboxes earlier in the list.
State Description
Current The technical repository and the filesystem are in sync.
Stale The technical repository contains changes that are not present in the filesystem.
Modified The sandbox contains changes that are not present in the technical repository.
Conflict The sandbox and the technical repository have both been changed.
Unresolved The sandbox contains a conflict file, indicating an unresolved conflict.
Ignore The file is not subject to source code control.
Removed The file has been marked for removal but not yet removed from the sandbox.
New The file exists in the sandbox but has not been checked in to the technical
repository.
Error Status information could not be obtained, due to some system or permissions
error.
This command automatically sets the value of AB_AIR_ROOT based on the repository that
the sandbox is attached to. This means that you can run the command without the -
root argument or without having previously set the value of AB_AIR_ROOT.
The actual graphs to be updated can be checked out from a technical repository or can
reside in a sandbox that is not associated with a repository.
ADVERTENCIA:
This command modifies the components in a graph and linked subgraphs. Those changes
may produce significant or unexpected changes. In addition, updates are recursive. We
recommend that you run this command with the -dry-run argument to view any warnings
and errors. Then after updating, test your graphs to ensure they function as intended.
Syntax
air sandbox update
path ...
{ -from component-path... | -all | -user-defined | -top-level-ai-
components-only }
[ -interface ]
[ -no-lock ]
[ -continue ]
[ -force ]
[ -dry-run ]
[ -no-check ]
[ -verbose ]
Argument Description
path ... An absolute or relative path to a graph in a sandbox (for
example, /disk1/sandbox1/mp/graph.mp) or an entire sandbox (for
example, /disk1/sandbox1). If you specify a sandbox, all graphs in
the sandbox are updated.
NOTA:
NOTA:
We recommend that you lock all checked-out graphs. If a graph that needs to be updated
has not been locked and if the command cannot lock the graph or is instructed not to try to
lock it (with the -no-lock argument), the graph is not updated and the command generates
an error.
Recursion example
The following example shows how the command performs recursive updates. Assume that
you have specified three sandboxes.
The following figure shows the graphs and their sandbox sources. graphA is the containing
graph and has three reusable subgraphs: graphB, graphX2, and graphC.
Note that graphX actually occurs three times in graphA; it is the source
of graphX1 in graphB, graphX2 in graphA, and graphX3 in graphC.
Now suppose you modify graphX and want to update all graphs that use graphX, directly or
indirectly. You would invoke the command as follows:
1. Update graphB with the new version of graphX (which has the
name graphX1 inside graphB) and save the new version to the
file /disk1/jdoe/work/sandbox1/mp/graphB.mp
2. Update graphC with the new version of graphX (which has the
name graphX3 inside graphC) and save the new version to the
file /disk1/jdoe/work/sandbox2/mp/graphC.mp
3. Update graphA with the new versions of graphB, graphX2 (based on graphX),
and graphC and save the new version to the
file /disk1/jdoe/work/sandbox1/mp/graphA.mp
Note that even though graphB and graphC were not specified at the command line, they are
updated and written to the filesystem because they use the specified modified graphX.
-no-validation-extensions Overrides the default behavior and doesn’t run the user-
defined validation tests and aggregation routines. For more
information on the default behavior, see “Usage” below.
-report-suppressions Displays to stdout all validation checks that have been
suppressed — including user-defined validation extension
routines. This argument doesn’t perform any validation; it
only returns the names of any suppressed validation checks.
This argument supersedes other validation switches.
Default behavior
By default, this air command runs graph validation against the graph or pset in the sandbox
specified by path. In addition, the default command runs any user-defined validation tests
and aggregation routines. The test file test-file .xfr, which describes the routines in DML,
must be located in a /xfr/vld/ directory placed in either a sandbox or common project.
To work, the user-defined validation routines must previously have been defined in an
activation file ../xfr/vld/activation-file.act. This feature is applied throughout the project
hierarchy.
Examples of simple tests include checking for hardcoded parameters and checking
component order to ensure best practices (for example, do not place
a REPLICATE component after a INPUT FILE component). An example of an aggregation
test is a test that looks for REFORMAT components that serve no purpose and can be
removed.
For more information on how to create and enable custom validation, see “Validación de
grafos” in the Co>Operating System Guía para desarrolladores de grafos.
Output messages
If validation succeeds, the command returns 0. If validation succeeds but errors or warnings
were found, the command returns 2. If validation fails, the command returns 1. For
example, validation can fail if the specified path isn’t a graph. If you specify the -
m argument, errors are sent to stdout instead of stderr, and the command always returns 0.
If this command returns errors for a graph, the graph won’t run. You must correct any
errors identified in the error messages. For example, if you use an INPUT FILE component
instead of a valid subscriber to input data into a continuous graph, the command displays an
error message identifying the invalid component that you must replace.
A graph that returns only warnings still runs, but the warning messages identify potential
difficulties. For example, the command displays a warning message if you set
the commit_level parameter for JMS SUBSCRIBE to non_transactional. This setting may
result in data loss or duplication of records, and you should use it only in nonrecoverable
graphs.
If you want to process error messages programmatically, the DML record format for the
output of the -m argument can be found at $AB_HOME/include/analysis_warning.dml.
The -parsable-errors argument has been deprecated. Use the -m argument instead.
The -strict argument has been deprecated. Improvements to the command make it
unnecessary.
For information about how to create valid continuous graphs, see “Introducción a los grafos
continuos” in the Manual del usuario de Continuous Flows.
Graph complexity
Graph complexity is computed by examining the topology of the graph (the number and
type of flows, the number of inputs and outputs, and the number of possible independent
data flow paths through the graph), the components used, and the complexity of the graph's
DML transform functions. The resulting number is placed on a logarithmic scale.
For more information about graph complexity, see “Evaluar la complejidad de grafos” in
the Co>Operating System Guía para desarrolladores de grafos.
Complexity example
To determine the complexity of wsCalc.mp, run the following command:
An excerpt of the output (below) shows, for example, that the overall complexity of the
first graph is 49, while the topological complexity (relating to graph layout and flows)
is 22. The integers following each graph’s six components indicate the component’s
inherent complexity and the complexity of its transform functions, respectively:
/disk3/sand/mp/wsCalc.mp 49 Topological: 22
Bad_DML_to_RPC_Request 2 7
Gather 0 0
Partition_by_SOAP_Action 1 0
RPC_Publish 5 0
RPC_Subscribe 5 0
SOAP_Operation_add.Business_Logic.Gather 0 0
The following table summarizes the air system commands. For information about command
syntax, see “Command-line syntax of air commands”.
Command Description
air system configure- Configures the technical repository to use the Ab Initio
auth Authorization Gateway to control the assignment of users to
groups.
air system export Copies all technical repository user accounts and groups to a binary
users-and-groups file, for export to another technical repository.
air system group add- Adds a group to another group.
group
air system group add- Adds the specified user to the specified group.
user
Command Description
air system group Changes the name of the specified group.
change-name
air system group create Creates a group with the specified name.
air system group delete Deletes the group with the specified name.
air system group Removes a group from its container group.
remove-group
air system group Removes the specified user from the specified group.
remove-user
air system group show Displays a list of groups, optionally showing their membership.
air system import Creates the user accounts on the target technical repository from
users-and-groups the specified export file.
air system install Builds or rebuilds the built-in categories.
categories
air system install Updates the technical repository’s component definitions.
components
air system install Updates the meta model in the technical repository.
schema
air system show Displays schema differences between the current software version
schema and the schema that is stored in the Technical Repository.
air system show Shows the current schema version used by the client software.
version
air system user Changes the username for the specified user.
change-name
air system user Specifies a new clear password for the user.
change-password
air system user create Creates an account for the specified user.
air system user default- Sets the group to be used when the specified user creates new
group objects.
air system user delete Removes the user from the technical repository.
air system user disable Disables the account of the specified user.
air system user enable Enables the disabled account of the specified user.
air system user show Displays information about the account of a given user or of all
users.
air system user umask Sets the umask for the specified user.
NOTA:
Before using this command, we strongly suggest that you familiarize yourself with the
topic “Using the Authorization Gateway” in the Technical Repository Administrator’s
Guide. It describes shared software terms, best practices, how to migrate an existing
technical repository, and how synchronization happens between the technical repository
and the Authorization Gateway. For more information on the Authorization Gateway,
see ????.
Syntax
air system configure-auth
[-enable | -disable]
[-username AG-user]
[-password AG-password | -prompt-password]
[-url AG-URL]
[-published-eme tr-name]
[-update-interval seconds]
[-update-bulk-interval seconds]
[-show]
Argument Description
-enable | -disable Enables or disables the use of the Authorization Gateway by the
technical repository. Assigns groups to users from mappings entered
in the Authorization Gateway. Enter one of the following:
-url Specifies the URL to the Authorization Gateway that the repository
will use to manage the configuration.
NOTA:
If the Authorization Gateway is enabled, the air system group add-user and air system
group remove-user commands and their TRMC equivalents become disabled. If you try to
issue these air commands, they will display an error message.
For more usage information, see “Using the Authorization Gateway” in the Technical
Repository Administrator’s Guide.
Synchronization
When a repository action is issued (that is, an air command, TRMC action, or Technical
Repository Web Interface log in), the technical repository copies its list of groups and
subgroups to the Authorization Gateway. The repository in turn retrieves and stores
information from the Authorization Gateway about which users are in which groups. This
ensures that the Authorization Gateway groups are synchronized with the technical
repository groups. Specifically, the interface requests and creates a report from the
Authorization Gateway that contains all Authorization Gateway users, their groups for this
technical repository instance, and their roles. If a user is in the report, and thus the
Authorization Gateway, but not in the technical repository, the synchronization process
adds the user and its related group membership. If a user is in the technical repository but
not in the report, then the synchronization removes its repository group membership.
The -update-interval argument regulates how often the Authorization Gateway is accessed
to update an individual user’s roles. For more information on how and when
synchronization is initiated, see “Synchronization between the Technical Repository and
the Authorization Gateway” in the Technical Repository Administrator’s Guide.
Additionally, you can issue just the -urlargument if the Authorization Gateway path has
changed but you want to keep the other configuration settings.
Update interval arguments
When a user connects to the Authorization Gateway, the interface first checks that single
user against the Authorization Gateway using the -update-interval setting and the last stored
update time. The interface next performs the bulk check using the -update-bulk-
interval setting. Every user in the Authorization Gateway can have an update interval value;
however, there is only one update interval value for the bulk option. We recommend setting
the -update-bulk-interval argument value higher than -update-interval so that the command
doesn’t perform its bulk Authorization Gateway operation too often.
If a user connects to the Authorization Gateway who does not have a user record in the
technical repository, the Authorization Gateway processes the request immediately, without
waiting for the time interval set by the -update-interval argument.
Examples
This example enables a connection to an Authorization Gateway found on the
machine mhub-linux1
The following example shows the output of the -show argument, whose use on the
command line is optional. Previous to running it, an error had been generated. This
argument displays any prior errors in the output for informational purposes:
Related topics
Users in child-group are granted the permissions of parent-group, and they retain the
permissions of child-group. For more information on group permissions, see “Users and
groups” in the Technical Repository Administrator’s Guide.
Example
To add the Dev group to the Employees group, type:
NOTA:
This air command is disabled if the Authorization Gateway is used for managing the
assignment of users to groups. In this case, you must use the Authorization Gateway to add
users to groups. For more information, see “Using the Authorization Gateway” in
the Technical Repository Administrator’s Guide.
Syntax
air system group add-user [-q] username group-name
Argument Description
-q Suppresses any errors if the user already exists in the group.
username Valid username.
group-name Name of an existing group.
Usage
The new group member is granted the access permissions of the group.
Example
To add user mkatz to the Managers group, type:
air system group add-user mkatz Managers
Related topics
NOTA:
This air command is disabled if the Authorization Gateway is used for managing the
assignment of users to groups. In this case, you must use the Authorization Gateway to add
users to groups. For more information, see “Using the Authorization Gateway” in
the Technical Repository Administrator’s Guide.
Syntax
air system group remove-user [-q] username group-name
Argument Description
-q Suppresses any errors if the user is not in the group.
username Name of the account of the user to remove.
group-name Name of an existing group.
Usage
This command does not remove or disable the user’s account; it just removes the
permissions granted to the user by virtue of former membership in the specified group.
Related topics
NOTA:
group
-----
animals
contains: cats dogs
cats
is in: animals
contains: felix tabitha sheba
dogs
is in: animals
contains: fido lassie cleo
By default, if a given user ID is already taken, a new user ID is created. However, if the -
keep-ids option is specified, the technical repository issues a warning and does not create
the user or group.
Related topics
For information about the arguments common to all air commands, see “Command-line
syntax of air commands”.
Syntax
air system install components
If the output indicates that there are entries missing from the technical repository, Ab Initio
recommends that you run air system install schema.
Examples
This example output shows that there are no differences between the current software
version and the schema:
This example output shows that there are differences between the current software version
and the schema that is stored in the technical repository. To resolve the differences issue,
run air system install schema.
The EME schema has objects that the software version doesn't:
2035065001 XXGbzlookup_results_bzvarset
XXGbzconfig
XXGbzlookup
2035015007 XXGbzlookup_results_bzvarset
XXGbzconfig
XXGbzlookup
2035009002 XXGbzlookup_results_bzvarset
XXGbzconfig
XXGbzlookup
Diff completed
Other attributes of the user account, including password and permissions, are not modified,
nor is object ownership.
NOTA:
Since the search index entries may contain the old username, you should rebuild the search
index after executing this command.
-insecure-encryption For namespace authentication, allows you to override the more secure
default SHA-256 cryptographic hash function and use the less secure DES
instead. SHA-256 is the default for Co>Operating System Version 3.2.5 and
higher.
NOTA:
NOTA:
umask As in Unix, the umask option sets the default permissions that files have
when a particular user create them. A umask is represented as a three-digit octal
number.
The umask (unmask) works by turning off read, write, and/or execute permission
for the owner, group, and other. For example, if you specify 246 as the value
of octal-umask, the 2 denies write permission to the owner of a newly created file,
the 4 denies read permission to the group associated with a newly created file, and
the 6 denies read and write permission to all other users.
If you omit -umask, the default permissions for new files created by this user are
those defined for his or her umask in the operating system.
After creating the user account, you can change the default permissions by
running air system user umask.
This command applies only to existing users. For new users you can set the default group
when you create the user account. Specify the -group argument to air system user create.
To change the group to which an existing object is assigned, run air object chown.
air system user delete
Deletes the user from the technical repository. This command is repository-wide. For
information about the arguments common to all air commands, see “Command-line syntax
of air commands”.
Syntax
air system user delete [-q] username
Argumen
Description
t
-q Suppresses error if the specified user does not exist.
username Valid username.
Usage
The uid (user ID) remains unassociated with any name. It removes the specified user from
all groups.
air system user disable
Disables the account of the specified user. This command is repository-wide. For
information about the arguments common to all air commands, see “Command-line syntax
of air commands”.
Syntax
air system user disable username
Argumen
Description
t
username Valid username. Enclose the name in quotes.
Example
To disable the active user account of JaneDoe, type:
NOTA:
Examples
The following command displays all users:
In the resulting sample output, JaneDoe and JohnDeer are direct members of the child
group dev. The group staff is a parent group to dev.
The following command displays the direct groups for all users:
In the resulting sample output, JaneDoe and JohnDeer are direct members of the group dev.
Unlike the previous example, staff is not in the output because it is the parent group of dev.
For information about umasks, see the “Usage” for air system user create.
NOTA:
This command applies only to existing users. You can also set the umask when you create a
new user account. Specify the -umask argument to air system user create.
Example
To deny all users — except the owner (JaneDoe) — read and write permission on files that
will be created by JaneDoe, type:
NOTA:
66 is equivalent to 066.
Command Description
air tag change-version Changes the versions of the objects in a tag.
air tag combine Combines contents of one or more tags under a single tag.
air tag create Creates or modifies a tag.
air tag default-version Sets or displays the default version of a tag.
air tag delete Deletes a tag.
air tag diff Lists the differences between two tags.
air tag duplicate Creates a new tag from an existing tag.
air tag freeze Freezes a tag.
air tag import- Reads and checks in a configuration file.
configuration
air tag list Lists tags.
air tag list-fixes Displays information about issues marked as fixed in the comments
associated with the specified tags.
air tag ls Alias for air tag list.
air tag object-versions Lists the last checked in version for the specified tag.
air tag remove Removes an object from a tag.
air tag rename Renames a tag.
air tag save This command has been deprecated. Use air object save.
air tag tag- Tags objects specified by a configuration file.
configuration
-version version The new version to which the specified objects or all primary
objects are to be changed.
PRECAUCIÓN:
Omit this option at your own risk. It may result in a tag that
contains objects at different versions, which may not have been
tested together.
-exclude rpath ... If the -exact argument is not specified, the command ignores
the specified objects or objects contained in the specified
directories when it recomputes which secondary objects to tag.
Example
To update the dup2 tag on the test project to the current version of the technical repository
and have the secondary objects recomputed as well, type:
Alias
The alias for this command is air tag cv.
air tag combine
Combines the objects tagged by one or more tags under a single tag. This command
is branch-specific. For information about the arguments common to all air commands,
see “Command-line syntax of air commands”.
Syntax
air tag combine [-dry-run] [-create new-tag]
{[-latest] | [-list-order]}
tag1 tag2 ...
Argument Description
-dry-run Reports any errors that would occur if the operation were tried, but does
not actually perform the operation. We strongly recommend that you use
this option before using the -latest or -list-order arguments. For more
information, see those arguments.
-create new-tag Creates a tag called new-tag and tags all the specified objects with it.
If this argument is not specified, the objects specified by tag1 tag2 ... are
combined under tag1.
-latest | -list- Specifies how to resolve any version conflicts when two versions of the
order same object are specified in the tag list. To use either option listed below,
you must use the -create argument to create a new tag.
-latest — Use the object with the latest version number found
among the supplied tags to resolve any conflicts.
-list-order — Use the version of the object found in the left-most
tag in the list of tags to resolve any conflicts.
PRECAUCIÓN:
Before using one of these options, we recommend that you first run this
command with the -dry-run argument. It is important that you understand
what conflicts exist and what is the best way to resolve them, and that
you are confident that solving conflicts automatically is safe.
tag1 tag2 ... Tags specifying the objects that are to be combined under a new tag (or,
if -create was omitted, under tag1).
Usage
If version conflicts are detected among the specified objects, no modifications are made to
any tags. When conflicts arise, you can do one of the following:
Restructure the command to resolve the conflicts and then reissue the air tag
combine command
Use the-latest argument to resolve conflicts for you by taking the most recent
version
Use the -list-order argument to resolve conflicts for you by taking the version in the
specified tag
To create a new tag called prod that has the same contents as an existing tag dev, use the -
create option to create prod and then specify dev as the only tag to “combine”:
If the tag prod 14 contains the latest version of my-graph.mp, it will be used instead of the
object in prod16.
Using a specific tagged version to resolve conflicts
In this example, the command automatically resolves any object conflicts by using the
version of that object found in the left-most tag.:
If my-graph.mp exists in prod14, that tagged version is used even if a more recent version
exists in prod12 or prod16. If my-graph.mp exists in prod12 or prod16 but not in prod14,
the object in prod12 is used because it is the left-most tag in the list.
-comment comment —
Specifies the text of a
comment to be associated
with the tag. Express the
comment as a string.
comment-file comment-
filename — Specifies the
name of a file containing the
text of a comment to be
associated with the tag.
-overwrite-comment with
either -comment comment
or -comment-file comment-fi
lename — Overwrites the
existing comment with the
new comment that you
specify.
Usage
A new tag name must begin with a letter and can be any length. Tag names cannot contain
forward slashes (“/”), NULLs, newlines, or tabs.
If the tag already exists, you can apply it to additional objects (-add). If -move is not
specified for an existing tag, the tag is not changed. Note that the granularity of the objects
to which you have attached a tag determines the granularity of the objects that you can
remove from the tag. In other words, you can only remove (using air tag remove) from a
tag an object that was specified as an object to some prior air tag create command.
By default, the command tags not only the specified object (called the primary object) but
also the objects on which the specified object depends — called the secondary objects. For
example, if you tag a graph (the most commonly tagged primary object), its record format
and transformation files are also tagged by default. To change this behavior,
use -exact or -project-only.
By default, the command does not include objects in /abinitio in the tag. If you need to tag
these objects, you must explicitly include them in the tag.
If modifying a tag requires the inclusion of different versions of an object, an error occurs
and the tag is not changed.
If tag validation is activated for a project that you are tagging, your tag must meet the
commit policies that are specified by the tag validation or tag creation will fail or generate a
warning. For example, if a developer creates a new tag that does not meet the tag naming
convention that a commit policy specifies, tag creation fails. For more information,
see “Managing commit policies and automated actions” in the DevOps Guide.
Examples
Tagging required files
This example adds the prod456_tag tag to the /Projects/production project and all its
required files:
/Projects/test/mp/devo4.mp
/Projects/test/mp/devo5.mp
Deprecated arguments
-move is deprecated in Version 2.15. Use air tag change-version instead.
Rerunning the command with the -show argument confirms that the default version is
now 494:
This command compares the objects and version numbers in a tag — that is, which versions
are tagged — rather than whether tagged objects have changed between the two tags. To
identify which objects changed between two tags, use the air object changed command.
Syntax
air tag diff [-show-all] tag1 tag2
Argumen
Description
t
-show-all Also lists objects for which there are no differences.
tag1 tag2 Names of the two tags whose differences you want to display.
Example
To see the differences between tag-dir1 and tag-dir2, type the following:
The output lists each tagged object where the version differs. The first specified tag (tag-
dir1) is V1, and the second (tag-dir1) is V2. In the output below, b.txt does not exist in tag-
dir1, so V1 is blank.
Object V1 V2
/dir/a.txt 308 310
/dir/b.txt 310
The original comment is not duplicated from the original tag; however, you can specify a
new comment.
A frozen tag cannot be unfrozen, so this command should be used with caution.
The configuration file config-file-fspath is checked for errors, but it is always imported —
whether or not it contains errors. Use -dry-run to identify errors before actually checking in
the configuration file.
Once you copy the configuration file into the technical repository, run air tag tag-
configuration to actually evaluate the configuration.
air tag import-configuration does not place the configuration file under source control. If
you want the file to be checked in to a project, use air project import with the sandbox file
specified to the -files argument.
For information about configuration file format and usage, see “Creating tag
configurations” in the Technical Repository Guide to Version Control.
Example
To copy my_config_file.config into the technical repository at /configs/, type the following:
-from fromtime Restricts the output to all tags modified after the specified time (inclusive).
Can be combined with the -to argument to specify a range. For more
information, see “Examples”.
-to totime Restricts the output to all tags modified before the specified time
(inclusive). Can be combined with the -from argument to specify a range.
For more information, see “Examples”.
-user username Restricts the output to only tags modified by the specified user.
tag | object You may choose one of the following:
You can use -from and -to singly, or in combination to specify a range. The arguments’
values are inclusive when retrieving the tag results.
Examples
The following example restricts the tags to those modified after 30 January 2013:
The following example restricts the tags to those modified after 8:00 PM on 24 April 2011:
Alias
The alias for this command is air tag ls.
The comments associated with the specified tag are searched for two
types of fixes:
Usage
This command can be used to search tags and determine which issues are marked as fixed
in the tag comment. This command extracts the aggregated comment from the tag that air
promote make-comment creates.
For more information about the promotion workflow, see “Conceptual workflow:
Promotion” in the DevOps Guide.
Example
Violet created /Projects/test-proj, exported it to her sandbox test-sand, and fixed bugs. She
checks in test-sand with a comment about the fixes to TEST-1 and TEST-2.
NOTA:
Most commands in this example can also be run from the Checkin Wizard.
She creates a comment on the new tag that aggregates information about the fixes
previously checked in.
air promote make-comment test_release_V1.3
She runs air tag list-fixes to extract the bug fix information from the tag comment and
display it.
Violet notices that one fix, TEST-3, is missing. She runs air tag create with a
comment fixes TEST-3 to add the fix manually to the existing comment on the tag:
She runs air tag list-fixes to confirm that all fixes are part of the project to be promoted.
After promoting test-release-V1.3, Violet can run the same command to see the fixes that
were promoted to production and use that data to run Ab Initio Jira graphs or other
continuous integration software.
air tag ls
This command is an alias for air tag list.
air tag object-versions
On a per-object basis, lists the last checked-in version of objects for the specified tag. The
command displays the checkin timestamp and username for each version that it reports on.
You can change the default display to show all checked-in versions up to the version of the
specified tag or to show all versions since a given tag or version was created. This
command is branch-specific. For information about the arguments common to
all air commands, see “Command-line syntax of air commands”.
Syntax
air tag object-versions tag
[ -since tag-or-version ]
[ -all ]
[ -m ]
[ -versions-only ]
Argument Description
tag Specifies the tag that will determine which objects to report versions for. If
the tag name includes spaces, enclose it in quotations.
-since tag-or- Lists all the checkin versions and their objects from the
version specified tag or version up to the specified tag argument. Both the start and
end bounds are inclusive.
-all Lists all the checkin versions for each object in tag up to the last version
in tag. This argument is the equivalent of entering -since 1.
-m Displays the output in a machine-readable format. The associated DML is
located at $AB_HOME/include/tag_versions.dml.
-versions- Lists only the checkin version numbers associated with the tag and
only suppresses the object names. Use with all arguments except -m to limit the
output shown.
Usage
By default, this command reports only the last checked-in version for an object. To change
this behavior, use the -since argument to specify a range or the -all argument to specify all
versions up to the one specified by tag, inclusive.
This command reports object versions only up to and including the versions that are
indicated by the tag that you specify.
If there are no checkins to report for the specified tag or version number, the command
output shows only the column headers with no data.
Examples
The following air tag object-versions command example shows the default output for
the proj1-release-V2-0-1 tag. The output shows the individual objects and their repository
version numbers as of when the tag was created — in this case, repository version 283:
By contrast, the following example uses the same release tag but the output is restricted by
use of the -versions-only argument. When multiple objects share the same repository
version, that number is shown only once. You can pass this streamlined output to a
program:
The following example displays the objects that were checked in from the time that a beta
tag proj1-release-V2-0-1-beta was created to when the more recent proj1-release-V2-0-
1 tag was created. In this case, the output shows that two files were checked in between
those two release tags: overview.ksh and overview.mp.
The following example uses the -m argument to format the output since version 240 in a
DML-described format that lacks the headers. You can pass this information to a graph, a
utility such as m_dump, or another application, as shown below:
[record
checkin_version "248"
time "2017-11-17 16:16:27"
username "kornstalk"
tagged_version "260"
path "/Projects/proj1/run/overview.ksh"]
Record 2:
[record
checkin_version "248"
time "2017-11-17 16:16:27"
username "kornstalk"
tagged_version "260"
path "/Projects/proj1/mp/overview.mp"]
This command also tags the configuration file itself with tag-name.
As an alternative to copying the configuration file as part of running this command, you can
copy the configuration file into the technical repository using air tag import-
configuration and later run air tag tag-configuration without
the -file config-file-fspath argument to evaluate the configuration.
For information on configuration file format and usage, see “Creating tag
configurations” in the Technical Repository Guide to Version Control.
Example
To copy the filesystem configuration file test_config_file.config to the technical repository
and apply the v2_config_tag, type the following: