PATH_UNKNOWNPATH_FULLPATH_RELATIVEPATH_BARESTATE_DISABLEDSTATE_ENABLED
Gets a new session identifier.
This identifier is a value which uniquely identifies a user
session. Once retrieved by a client, it may be included in any
subsequent requests to notify the iControl portal that a specific
request should be executed in the context of the session associated
with that identifier.
Use of this identifier is completely optional. If it is not
included in an iControl request, the session key defaults to the
user name. Note that this is even true if you have retrieved a
unique session identifier. It is also possible to have more than
one such unique session identifier active at the same time.
However, it is important to understand that each session key,
whether the unique identifier or the default user name represent
distinct sessions. Changing a session variable in one session does
not effect the variable in any other session. On the other hand,
if different clients have the same session key and one changes a
session variable, the others will see it. The important
distinction is not the client being run and not the user running
it, but the session key for each request.
When used, this session identifier must be passed to the iControl
portal via either an HTTP header or a SOAP header element. There
is no preference for which transport is used, as the portal will
pick up either. The client is free to use whichever is easier to
work with in the client's SOAP package. If for some reason,
conflicting values are set in the HTTP header and SOAP header
element, the SOAP header element value will take precedence.
The HTTP header holding the session identifier is named
"X-IControl-Session". If used, its value must be set to the text
representation of the session identifier. Thus in the HTTP
request, the header would look like, e.g., X-iControl-Session: 14.
Most SOAP packages include a straightforward way to add an HTTP
header to the HTTP request, so reference your documentation.
The SOAP header element is named "session". If used, its value
must be a SOAP integer element holding the session identifier. If
this client is intended to work with older versions of iControl, be
aware that the mustUnderstand SOAP header element attribute must be
set to 0. Reference your SOAP package documentation for details
for adding a SOAP header to a request.
Sets the session timeout.
The session timeout is the amount of time for which a user session
has not processed a request before it is marked as eligible for
deletion. For a user session without a session identifier,
re-using an expired session will trigger the creation of a new user
session with the default session values. For a user session with a
session identifier, re-using an expired session will result in an
error.
The session timeout is a global value, so it applies equally to all
user sessions. A zero timeout means that only one request can be
handled per user session, effectively turning off sessions. Only
administrators can set this value.
Gets the session timeout.
Sets the maximum number of concurrent user sessions.
A system could be attacked by creating an inordinate number of
iControl user sessions, eventually bringing the iControl portal (or
the system itself) to a crawl. If iControl is already supporting
this number of user sessions, subsequent attempts to create a new
user sessions are rejected with an error.
If this limit is set to zero, the number of user sessions is
unlimited. Only administrators can set this value.
Gets the maximum number of user sessions.
Sets the state for all future iControl SOAP requests whether or not to
force non-default iControl SOAP sessions to be established before
SOAP requests are processed. This will disable the use of the default
session identifier (the username) and force the use of a system
provided identifier received from a call to get_session_identifier.
This is set to STATE_DISABLED by default. Only
administrators can set this value. This was introduced in
BIG-IP_v12.0.0 to enable enhanced protections against CSRF attacks.
Any attempts to run a command without a session will return a
"Could not find the iControl session for <user> error". Use caution
before turning this feature on as it may break existing SOAP clients,
many of which may not establish sessions before making requests. This
will also set the "iControl.ForceSessions" DB variable to "enable" or
"disable" respectively. If modifying the DB variable directly,
restart httpd to make the changes go into effect.
In order tune iControl SOAP sessions to your needs, see:
get_session_identifier: which will return the session ID for
a given session.
set_session_timeout: which will set the amount of time a session will
be in effect.
set_maximum_sessions: which will set the maximum number of concurrent
user sessions at any given time.
Gets the state for all future iControl SOAP requests that indicates
whether or not to force non-default iControl SOAP sessions to be
established before SOAP requests are processed.
Start an iControl transaction, which combines the effects of a
number of iControl methods into a single atomic transaction.
Once an iControl client calls start_transaction, the handling of
subsequent iControl requests changes until the client submits or
rolls back the transaction, i.e. while the transaction is open. It
is important to understand the characteristics of iControl requests
made in this mode. iControl requests which modify the
configuration are submitted for subsequent execution. The requests
do not affect the configuration at the time they are made.
iControl requests which query the configuration are executed
immediately and do not see the effects of a pending transaction.
iControl modify requests made outside a session with an open
transaction affect the configuration immediately and do not see
effects of any pending transactions.
A transaction remains open until submit_transaction or
rollback_transaction is called or until it is idle for too long.
Reporting errors also differ while a transaction is open. Some
classes of errors (such as invalid arguments) are returned by the
method itself. The context for these errors should thus be as
clear as without a transaction. However, most errors will be
returned by the submit_transaction call. Note that this can make
it difficult to determine which iControl method caused the error.
If an error occurs at any time during a transaction, the
transaction remains open, but is marked as errant. When
submit_transaction is subsequently called, the transaction will
actually be deleted, as if rollback_transaction has been called.
Note that even if an error occurs, submit_transaction or
rollback_transaction still must be called to properly close it.
Not all interfaces and methods support transactions. These methods
are processed per normal, i.e., executed immediately and not as
part of the transaction. The documentation includes a note for
those interfaces and methods which do not.
The contents of pending transaction cannot be queried or modified.
Only one transaction can be open at the same time in a single
user session.
Submit the transaction for execution.
When called, all of the requests submitted since start_transaction
was called are committed to the configuration as a single atomic
transaction. If all of the requests succeed, the configuration is
updated. If any of the requests fail, the transaction as a whole
fails and the configuration remains unchanged.
If an error is signaled, it may be from any of the submitted
requests. Nothing outside the returned error message can indicate
which request triggered the error. If no requests have been queued
in the transaction, nothing is done and no error is signaled. If
no transaction is open, an error is signaled.
Roll back the transaction.
When called, all of the requests submitted since start_transaction
was called are un-done. The configuration will remain unchanged.
If no transaction is open, an error is signaled. If no requests
have been queued in the transaction, nothing is done and no error
is signaled.
Sets the transaction timeout, the amount of time that an open
transaction can be inactive before it is marked for deletion.
This is effectively a lower limit, an inactive open transaction may
be open longer than that, though is effectively unusable after that
point. Expiring transactions are logged. The transaction timeout
is unique for each session.
Gets the transaction timeout.
Sets the active folder.
Most configuration objects reside in folders (see the
Management::Folder interface), but continually specifying the full
path to name an object can be wearing. For ease, an "active
folder" can be specified. When creating or accessing objects and a
full object path is not specified (i.e., the object path does not
begin with a slash (/)), the active folder is prepended to the
object name. Thus if the name for an object to be created is
specified as "repository-a" and the active folder is
/george/server, the full path for the created object is
/george/server/repository-a. Note that relative paths are also
allowed in the object identifier, so that if the active folder is
/george/server and the given object identifier is
virtual/repository-a, then the full object path is
/george/server/virtual/repository-a.
The active folder may be the root folder (/), but that is only
usable when querying.
If for some reason, neither the currently active folder nor the
newly requested active folder exist, the currently active folder
will be set to the user's default folder.
Gets the active folder.
Sets the type of path information returned with object names.
Gets the type of path information returned with object names.
Sets the state to recursively query the contents of the
active folder. As of 11.4.0, this setting applies also to
delete_all_x operations.
If not set, any query will return objects in the active folder
only. If set, any query will return objects in the active folder,
plus objects in any sub-folders under that active folder no matter
how deeply nested.
Note, regarding other recursive operations: when folders
were introduced, the behavior of delete_all_x methods, such
as LocalLB::Pool::delete_all_pools, was unspecified with
respect to folders. (It was unspecified in which folders to
apply the operation). As of 11.4.0, the behavior of
delete_all_x methods is clarified: delete_all_pools and
similar methods operate on objects in the active folder,
and only there. If you would like to delete all pools in
the active folder and folders below it, enable recursive
query using this method. If you would like to delete all
pools in a top-level folder (partition) and below, set the
active folder to the desired folder and turn on recursive
query.
Gets the state to recursively query the contents of the active
folder.
Sets the state for all future iControl SOAP requests whether or not to
process SOAP requests received with Document Type Definitions (DTDs).
This is set to STATE_DISABLED by default. Only administrators can set
this value. This was introduced in BIG-IP_v12.0.0 to conform to SOAP
specifications that disallow DTDs. SOAP requests that use DTDs will
return a "parsing aborted" error and not parse the request. This
will also set the "iControl.DTDParsing" DB variable to "enable" or
"disable" respectively. If modifying the DB variable directly,
restart httpd to make the changes go into effect.
Gets the state for all future iControl SOAP requests whether or not to
process SOAP requests received with Document Type Definitions (DTDs).
Gets the version information for this interface.
Gets a new session identifier.
This identifier is a value which uniquely identifies a user
session. Once retrieved by a client, it may be included in any
subsequent requests to notify the iControl portal that a specific
request should be executed in the context of the session associated
with that identifier.
Use of this identifier is completely optional. If it is not
included in an iControl request, the session key defaults to the
user name. Note that this is even true if you have retrieved a
unique session identifier. It is also possible to have more than
one such unique session identifier active at the same time.
However, it is important to understand that each session key,
whether the unique identifier or the default user name represent
distinct sessions. Changing a session variable in one session does
not effect the variable in any other session. On the other hand,
if different clients have the same session key and one changes a
session variable, the others will see it. The important
distinction is not the client being run and not the user running
it, but the session key for each request.
When used, this session identifier must be passed to the iControl
portal via either an HTTP header or a SOAP header element. There
is no preference for which transport is used, as the portal will
pick up either. The client is free to use whichever is easier to
work with in the client's SOAP package. If for some reason,
conflicting values are set in the HTTP header and SOAP header
element, the SOAP header element value will take precedence.
The HTTP header holding the session identifier is named
"X-IControl-Session". If used, its value must be set to the text
representation of the session identifier. Thus in the HTTP
request, the header would look like, e.g., X-iControl-Session: 14.
Most SOAP packages include a straightforward way to add an HTTP
header to the HTTP request, so reference your documentation.
The SOAP header element is named "session". If used, its value
must be a SOAP integer element holding the session identifier. If
this client is intended to work with older versions of iControl, be
aware that the mustUnderstand SOAP header element attribute must be
set to 0. Reference your SOAP package documentation for details
for adding a SOAP header to a request.
Sets the session timeout.
The session timeout is the amount of time for which a user session
has not processed a request before it is marked as eligible for
deletion. For a user session without a session identifier,
re-using an expired session will trigger the creation of a new user
session with the default session values. For a user session with a
session identifier, re-using an expired session will result in an
error.
The session timeout is a global value, so it applies equally to all
user sessions. A zero timeout means that only one request can be
handled per user session, effectively turning off sessions. Only
administrators can set this value.
Gets the session timeout.
Sets the maximum number of concurrent user sessions.
A system could be attacked by creating an inordinate number of
iControl user sessions, eventually bringing the iControl portal (or
the system itself) to a crawl. If iControl is already supporting
this number of user sessions, subsequent attempts to create a new
user sessions are rejected with an error.
If this limit is set to zero, the number of user sessions is
unlimited. Only administrators can set this value.
Gets the maximum number of user sessions.
Sets the state for all future iControl SOAP requests whether or not to
force non-default iControl SOAP sessions to be established before
SOAP requests are processed. This will disable the use of the default
session identifier (the username) and force the use of a system
provided identifier received from a call to get_session_identifier.
This is set to STATE_DISABLED by default. Only
administrators can set this value. This was introduced in
BIG-IP_v12.0.0 to enable enhanced protections against CSRF attacks.
Any attempts to run a command without a session will return a
"Could not find the iControl session for <user> error". Use caution
before turning this feature on as it may break existing SOAP clients,
many of which may not establish sessions before making requests. This
will also set the "iControl.ForceSessions" DB variable to "enable" or
"disable" respectively. If modifying the DB variable directly,
restart httpd to make the changes go into effect.
In order tune iControl SOAP sessions to your needs, see:
get_session_identifier: which will return the session ID for
a given session.
set_session_timeout: which will set the amount of time a session will
be in effect.
set_maximum_sessions: which will set the maximum number of concurrent
user sessions at any given time.
Gets the state for all future iControl SOAP requests that indicates
whether or not to force non-default iControl SOAP sessions to be
established before SOAP requests are processed.
Start an iControl transaction, which combines the effects of a
number of iControl methods into a single atomic transaction.
Once an iControl client calls start_transaction, the handling of
subsequent iControl requests changes until the client submits or
rolls back the transaction, i.e. while the transaction is open. It
is important to understand the characteristics of iControl requests
made in this mode. iControl requests which modify the
configuration are submitted for subsequent execution. The requests
do not affect the configuration at the time they are made.
iControl requests which query the configuration are executed
immediately and do not see the effects of a pending transaction.
iControl modify requests made outside a session with an open
transaction affect the configuration immediately and do not see
effects of any pending transactions.
A transaction remains open until submit_transaction or
rollback_transaction is called or until it is idle for too long.
Reporting errors also differ while a transaction is open. Some
classes of errors (such as invalid arguments) are returned by the
method itself. The context for these errors should thus be as
clear as without a transaction. However, most errors will be
returned by the submit_transaction call. Note that this can make
it difficult to determine which iControl method caused the error.
If an error occurs at any time during a transaction, the
transaction remains open, but is marked as errant. When
submit_transaction is subsequently called, the transaction will
actually be deleted, as if rollback_transaction has been called.
Note that even if an error occurs, submit_transaction or
rollback_transaction still must be called to properly close it.
Not all interfaces and methods support transactions. These methods
are processed per normal, i.e., executed immediately and not as
part of the transaction. The documentation includes a note for
those interfaces and methods which do not.
The contents of pending transaction cannot be queried or modified.
Only one transaction can be open at the same time in a single
user session.
Submit the transaction for execution.
When called, all of the requests submitted since start_transaction
was called are committed to the configuration as a single atomic
transaction. If all of the requests succeed, the configuration is
updated. If any of the requests fail, the transaction as a whole
fails and the configuration remains unchanged.
If an error is signaled, it may be from any of the submitted
requests. Nothing outside the returned error message can indicate
which request triggered the error. If no requests have been queued
in the transaction, nothing is done and no error is signaled. If
no transaction is open, an error is signaled.
Roll back the transaction.
When called, all of the requests submitted since start_transaction
was called are un-done. The configuration will remain unchanged.
If no transaction is open, an error is signaled. If no requests
have been queued in the transaction, nothing is done and no error
is signaled.
Sets the transaction timeout, the amount of time that an open
transaction can be inactive before it is marked for deletion.
This is effectively a lower limit, an inactive open transaction may
be open longer than that, though is effectively unusable after that
point. Expiring transactions are logged. The transaction timeout
is unique for each session.
Gets the transaction timeout.
Sets the active folder.
Most configuration objects reside in folders (see the
Management::Folder interface), but continually specifying the full
path to name an object can be wearing. For ease, an "active
folder" can be specified. When creating or accessing objects and a
full object path is not specified (i.e., the object path does not
begin with a slash (/)), the active folder is prepended to the
object name. Thus if the name for an object to be created is
specified as "repository-a" and the active folder is
/george/server, the full path for the created object is
/george/server/repository-a. Note that relative paths are also
allowed in the object identifier, so that if the active folder is
/george/server and the given object identifier is
virtual/repository-a, then the full object path is
/george/server/virtual/repository-a.
The active folder may be the root folder (/), but that is only
usable when querying.
If for some reason, neither the currently active folder nor the
newly requested active folder exist, the currently active folder
will be set to the user's default folder.
Gets the active folder.
Sets the type of path information returned with object names.
Gets the type of path information returned with object names.
Sets the state to recursively query the contents of the
active folder. As of 11.4.0, this setting applies also to
delete_all_x operations.
If not set, any query will return objects in the active folder
only. If set, any query will return objects in the active folder,
plus objects in any sub-folders under that active folder no matter
how deeply nested.
Note, regarding other recursive operations: when folders
were introduced, the behavior of delete_all_x methods, such
as LocalLB::Pool::delete_all_pools, was unspecified with
respect to folders. (It was unspecified in which folders to
apply the operation). As of 11.4.0, the behavior of
delete_all_x methods is clarified: delete_all_pools and
similar methods operate on objects in the active folder,
and only there. If you would like to delete all pools in
the active folder and folders below it, enable recursive
query using this method. If you would like to delete all
pools in a top-level folder (partition) and below, set the
active folder to the desired folder and turn on recursive
query.
Gets the state to recursively query the contents of the active
folder.
Sets the state for all future iControl SOAP requests whether or not to
process SOAP requests received with Document Type Definitions (DTDs).
This is set to STATE_DISABLED by default. Only administrators can set
this value. This was introduced in BIG-IP_v12.0.0 to conform to SOAP
specifications that disallow DTDs. SOAP requests that use DTDs will
return a "parsing aborted" error and not parse the request. This
will also set the "iControl.DTDParsing" DB variable to "enable" or
"disable" respectively. If modifying the DB variable directly,
restart httpd to make the changes go into effect.
Gets the state for all future iControl SOAP requests whether or not to
process SOAP requests received with Document Type Definitions (DTDs).
Gets the version information for this interface.
The Session interface allows you to manage iControl sessions.
An iControl session is a set of attributes which can persist across
iControl requests for a specific user. These values currently include
the active folder and the transaction.
By default, a user session is identified by the user's name. However,
finer grained control over user session can be gained via an explicit
session identifier, which can be requested by a user and included in
any subsequent requests which are intended to be included in that
session.
This interface does not support transactions.