ilx workspace
ilx workspace(1) BIG-IP TMSH Manual ilx workspace(1)
NAME
workspace - Configures a development workspace for Node.js(tm) iRule
Language Extensions.
MODULE
ilx
SYNTAX
Configure the workspace component within the ilx module using the
syntax shown in the following sections.
CREATE/MODIFY/EDIT
create workspace [name]
options:
archive [name]
extension [name]
file [name]
from-archive [name]
from-plugin [name]
from-uri [uri]
from-workspace [name]
node-version [version]
rule [name]
modify workspace [name]
options:
from-archive [name]
from-plugin [name]
from-uri [uri]
from-workspace [name]
node-version [version]
edit workspace [name]
options:
extension [name]
file [name]
rule [name]
DISPLAY
list workspace
list workspace [ [name] ... ]
show running-config workspace
show running-config workspace [ [name] ... ]
options:
all-files
all-properties
archive [name]
extension [name]
file [name]
node-version
one-line
partition
recursive
rule [name]
staged-directory
version
show workspace
show workspace [name]
options:
all-properties
detail
field-fmt
DELETE
delete workspace [name]
options:
archive [name]
extension [name]
file [name]
rule [name]
DESCRIPTION
An ILX Workspace is an area of the file system used to store
Node.js(tm) and supporting files used to construct an ilx plugin.
Workspaces are stored in /var/ilx/workspaces/...//.
A workspace contains several components.
/var/ilx/workspaces/Common//extensions/...
/var/ilx/workspaces/Common//rules/...
/var/ilx/workspaces/Common//version
The extensions directory contains sub-directories. Each sub-directory
contains files for a specific extension.
/var/ilx/workspaces/Common//extensions//... Each extension directory must contain a package.json file.
This is a standard npm package definition file. For more information
see www.npmjs.org/doc/package.json.html. When an ilx plugin is started
node will look in package.json for a main field that identifies the
main entry point of the plugin. If the main field is not present node
will look for the file index.js.
The rules directory contains zero or more files that contain iRules
(see ltm rule).
/var/ilx/workspaces/Common//rules/.tcl.
ILX iRule commands are used to communicate with a Node.js(tm) process
that is running as part of an ILX Plugin. When a new rule is created
using either of the following commands a sample iRule file is opened
with syntax examples for the ILX iRule commands.
create ilx workspace ilx rule test
edit ilx workspace ilx rule test
When a new extension is created using the following commands a sample
index.js file will be created that contains Node.js(tm) and ILX iRule
examples. The extension directory is also populated with the file
package.json and locally installed Node.js(tm) modules.
tmsh create ilx workspace my_workspace
tmsh create ilx workspace my_workspace extension my_extension
The version file indicates the BIG-IP version used to create the
workspace.
EXAMPLES
create workspace my_workspace
Creates a workspace named my_workspace in
/var/ilx/workspaces/Common/my_workspace (assuming your current working
folder is the default BIG-IP folder /Common).
create workspace my_workspace rule my_rule
Adds the iRule my_rule as the file my_rule.tcl to the workspace
directory named /var/ilx/workspaces/Common/my_workspace/rules/.
edit workspace my_workspace rule my_rule
Adds or modifies the iRule my_rule as the file my_rule.tcl to the
workspace directory named
/var/ilx/workspaces/Common/my_workspace/rules/.
create workspace my_workspace extension my_extension
Adds a new extension directory in
/var/ilx/workspaces/Common/my_workspace/extensions/my_extension and
installs node_modules/f5-nodejs within the directory. my_extension must
be a valid Linux directory name.
edit workspace my_workspace extension my_extension
If the extension does not exist a new extension directory is created in
/var/ilx/workspaces/Common/my_workspace/extensions/my_extension,
installs node_modules/f5-nodejs within the directory and opens the
editor on the file within the directory named index.js. If the
extension already exists the editor will open index.js.
edit workspace my_workspace file extensions/my_extension/my_file.js
If the extension does not exist a new extension directory is created in
/var/ilx/workspaces/Common/my_workspace/extensions/my_extension,
installs node_modules/f5-nodejs within the directory and opens the
editor on my_file.js. If the extension already exists the editor will
open my_file.js.
edit workspace my_workspace file extensions/my_extension/my_file.js
The editor is opened on
/var/ilx/workspaces/Common/my_workspace/extensions/my_extension/my_file.js.
The extension must already exist.
delete workspace my_workspace
Deletes the workspace named my_workspace. This removes all disk files
associated with the workspace and cannot be undone. You will be
prompted to confirm before the workspace is deleted.
delete workspace my_workspace extension my_extension
Deletes the extension named my_extension in my_workspace.
delete workspace my_workspace rule my_rule
Deletes the iRule file named my_rule in my_extension in my_workspace.
delete workspace my_workspace file extensions/my_extension/my_file
Deletes the file named my_file in my_extension in my_workspace.
list workspace my_workspace
List the content of my_workspace
list workspace recursive my_workspace
List all files and directories in my_workspace.
list workspace my_workspace rule
List the rules associated with my_workspace.
list workspace my_workspace rule my_rule
List the text content of the rule my_rule associated with my_workspace
list workspace my_workspace file rules/my_rule.tcl
List the text content of the file rules/my_rule.tcl associated with
my_workspace
list workspace my_workspace extension
List the extensions associated with my_workspace.
list workspace my_workspace extension my_extension
List the content of the my_extension extension directory associated
with my_workspace.
list workspace my_workspace file extensions/my_extension/my_file
List the text content of the file my_file in extension my_extension.
show workspace my_workspace
Show the top level files for the specified workspace. Show the group,
last modify time, owner, permissions and size of the workspace.
show workspace
Show all workspaces.
OPTIONS
archive
Specifies the name of a workspace archive file. See the section
below on archives.
all-files
Recursively list all directory and file names contained in a
workspace.
all-properties
For a show command, show group, last modify time, owner,
permissions, type and size of the file/directory.
detail
For a show command, show all the files in the workspace.
extension
Specifies the name of a workspace extension.
file For the edit and list commands the file option specifies the name
of a file in a workspace to edit or list. For the delete command
the file option specifies the name of a workspace file to delete.
from-archive
Specifies the name of a tar or gzipped tar archive file from which
to create or update a workspace. See the section below on
archives.
from-plugin
Specifies the name of an ilx plugin from which to create or modify
a workspace. The files used to create the plugin are copied into
the workspace.
from-uri
Specifies the name of a URI from which to create or update a
workspace. The URI must refer to a tar or gzipped tar archive
file.
from-workspace
Specifies the name of a workspace from which to create or modify a
workspace. The files used to create the workspace specified by
from-workspace are copied into the new workspace.
node-version
Specifies the version of Node.js that will be used to run an . When an is created or updated from a
workspace the plugin inherits the node-version from the workspace.
The node-version may be specified when an ilx workspace is
created. The node-version may also be changed after the ilx
workspace has been created.
When the node-version of a workspace is changed the workspace is
archived. The following files and directories are replaced: The
file
[workspace name]/extensions/[extension
name]/node_modules/f5-nodejs/package.json
and the content of the directory
[workspace name]/extensions/[extension
name]/node_modules/f5-nodejs/lib.
To update an existing ilx plugin to use the new workspace version
issue the following command:
modify ilx plugin [plugin name] from-workspace [workspace name]
When a node process is started the BigIP sets the NODE_PATH
environment variable. For Node.js version 0.12 plugins the
NODE_PATH is set to /usr/local/node/v0.12/lib/node_modules. For
Node.js version 6 the NODE_PATH is set to
/usr/lib/node_modules:/usr/local/node/v6/lib/node_modules.
one-line
List the content of a workspace on a single line.
recursive
Recursively list all workspaces contained in the current BIG-IP
system folder (see sys folder).
rule Specifies the name of a rule file to create, delete, edit or list.
staged-directory
The directory where the workspace and associated files reside.
This is a read-only property.
name Specifies the name of a workspace. This option is required for the
commands create, delete, edit and modify.
ACCESS CONTROL
Workspaces are stored under file system directory /var/ilx/workspaces.
A user with the role of admin can access all workspaces under
/var/ilx/workspaces.
Users with the role of irule-manager, manager and resource-admin can
manage workspaces under /var/ilx/workspaces/, where
is the name of an existing sys folder that the user
has permission to access, see also help sys folder and help pwd.
As a convenience workspaces are automatically created in the users'
current folder relative to /var/ilx/workspaces. However, workspaces may
be created in file system directories that do not correspond to BIG-IP
system configuration folders. In this case the workspace must be
referred to by full path.
The following creates two workspaces, the first in the file system
location /var/ilx/workspaces/Common/my_workspace and the second in the
filesystem location /var/ilx/workspaces/Common/my_folder/my_workspace.
(tmos)# pwd
/Common
(tmos)# create ilx workspace my_workspace
(tmos)# cd my_folder
(tmos)# pwd
/Common/my_folder
(tmos)# create ilx workspace my_workspace_2
(tmos)# list ilx workspace my_workspace_2
(tmos)# cd ..
(tmos)# pwd
/Common
(tmos)# list ilx workspace my_workspace
Full folder paths may be used to refer to a workspace.
(tmos)# create ilx workspace /Common/my_folder/my_workspace_2
(tmos)# list ilx workspace /Common/my_folder/my_workspace_2
If an auth partition is removed from the BIG-IP configuration the
workspace files remain on disk and can be accessed by a user with the
role of admin. If a sys folder is removed under an auth partition, such
as removing the folder /Common/my_config, all workspaces under the file
system directory /var/ilx/workspaces/Common/my_config remain accessible
to all users that have access to the Common partition.
ARCHIVES
A workspace archive is a gzipped tar file of an existing workspace. The
archive contains all files in the workspace.
There are two ways to refer to an archive: 1) 2) //.
Workspace archives are stored in /var/ilx/workspaces//archive/. The system looks for archives in
/var/ilx/workspaces//archive.
If an auth partition is removed from the BIG-IP configuration, archive
files remain on disk and can be accessed by a user with the role of
admin. A user with the role of admin can also manage archives under
/var/ilx/workspaces in directories that do not correspond to a BIG-IP
auth partition.
create workspace my_workspace archive my_workspace.tgz
Save the workspace as a gzipped tar file. The workspace must have been
previously created.
create workspace my_workspace archive /my_partition/my_workspace.tgz
Save the workspace as a gzipped tar file to the set of archives in
/my_partition. The workspace must have been previously created.
list workspace my_workspace archive
List all archives in the current auth partition.
list workspace my_workspace archive my_workspace.tgz
List file details for the archive my_workspace.tgz.
list workspace my_workspace archive /my_partition/my_workspace.tgz
List file details for the archive my_workspace.tgz that is in
my_partition.
list workspace my_workspace archive /my_partition
List all archives in /my_partition.
delete workspace archive my_archive.tgz
Delete the workspace archive my_archive.tgz.
delete workspace archive /my_partition/my_archive.tgz
Delete the workspace archive my_archive.tgz in /my_partition.
create workspace my_workspace from-archive my_workspace.tgz
Create a new workspace from the archive my_workspace.tgz.
modify workspace my_workspace from-archive my_workspace.tgz
Update my_workspace from the archive my_workspace.tgz.
CONFIGURATION FILES
Workspaces are not stored in system config files.
Workspaces are stored in UCS files and are rolled forward to the next
product release.
In a bladed system workspaces are clustered among blades.
Workspaces are not synced across device groups.
SEE ALSO
auth partition, cm device-group, create, delete, edit, ilx plugin,
list, modify, pwd, sys folder, tmsh
COPYRIGHT
No part of this program may be reproduced or transmitted in any form or
by any means, electronic or mechanical, including photocopying,
recording, or information storage and retrieval systems, for any
purpose other than the purchaser's personal use, without the express
written permission of F5 Networks, Inc.
F5 Networks and BIG-IP (c) Copyright 2008-2015. All rights reserved.
BIG-IP 2017-05-09 ilx workspace(1)