Lingobot CLI verification

From Lingoport Wiki
Revision as of 21:01, 9 August 2018 by Rdaly (talk | contribs) (Client Install Distribution)
Jump to: navigation, search

Overview

Lingobot CLI (Command Line Interface) is an extension of Lingobot that allows similar commands to be processed without the use of a collaboration utility like Slack or Flowdock. The commands can be run directly from a command line, or can be launched with user-friendly prompts from an IDE (integrated development environment) like Eclipse. In either case, they allow developers direct access to some of the many powerful Lingoport i18n features.

Verifying Lingobot CLI on the server

Lingobot CLI is installed and configured when Lingobot is installed. If the lingobot service is not running on the server, then the CLI cannot be used. To check if the service is running, run the following as a user with root access:

sudo systemctl status lingoport-lingobot.service

It should return with text that says: active (running). If that is not visible, then Lingobot is not running and the installation steps should be revisited before moving forward.

If the command shows that it is up and running, test lingobot-cli on the server.

> cd /var/lib/jenkins/lingoport/lingbot-<x.y.z>

> ls
app.properties  imports  lingobot-cli.jar  README.md

> java -jar lingobot-cli.jar "list projects"
List of all active projects:
```
 Name                  | Type
-----------------------|-----------------|--------
 CET.CitySmart         | Gyzr Lite       | Parent
 CET.National          | Gyzr Lite       | Parent
 CET.NOAAWeather       | LRM / Gyzr Lite | Parent
 CET.Smoke             | LRM             | Parent
 CET.WorldWindExplorer | LRM / Gyzr Lite | Parent
```

This list of projects should match the projects under your Jenkins Automation tab.

Jenkins automation.png

Server Setup

Once Lingobot and the Lingbot service has been set up, there are only a few additional settings that can be made on the server side. These can be found within the lingobot_config.sh (/var/lib/jenkins/lingoport/lingobot-<x.y>/config/lingobot_config.sh) file in the Lingobot installation. The settings are listed below:

# API TOKENS FOR ADAPTERS
export HUBOT_FLOWDOCK_API_TOKEN=
export HUBOT_SLACK_TOKEN=xoxb-261328978756-CLBkOlekDXMoFiQSXVWcTNP6
export CISCOSPARK_ACCESS_TOKEN=
export CISCOSPARK_SECRET=
export LINGOBOT_API_TOKEN=ZDIwY2IyMWU4M2RlNDhhZjIxZjY0Y2NhODdh

# OPTIONAL CONFIGS FOR LINGOBOT API
export LINGOBOT_API_STATUS_INTERVAL_SECONDS_ARRAY=0,10,20,30 # example: 15,30,60,150,300 (note: the last interval will continue to be used until the timeout is reached
export LINGOBOT_API_STATUS_TIMEOUT_MINUTES= # identifies how long a JVM request will wait for a response. example: 60
LINGOBOT_API_STATUS_MINUTES_TO_KEEP_MAXIMUM = # identifies the maximum number of minutes a response message will be retained on the server

LINGOBOT_API_TOKEN

If your Lingobot service has been started successfully, then this value will be populated. Leave it alone and move to the next variable. This value must be set to a unique value, preferably a 36-character GUID such as can be created here https://www.guidgenerator.com/. The value set here will also be used in the Client Install Preparation below.

LINGOBOT_API_STATUS_INTERVAL_SECONDS_ARRAY

When a Lingobot command has been processed, but the server is unable to respond immediately, this comma-delimited grouping of numbers identifies how many seconds until the client next checks the status. If the variable is not set, the default is "15,30,60,60,60,180,300", meaning the client will check for the command completion after 15 seconds, then 30 seconds, then 60 seconds, etc. The final number in the list will continue to be used indefinitely until a timeout is reached.

If the first digit is 0, it will check the timeout value immediately. If you don't wish the system to check the status, set the first value to zero.

export LINGOBOT_API_STATUS_INTERVAL_SECONDS_ARRAY=0,10,20,30

LINGOBOT_API_STATUS_TIMEOUT_MINUTES

This value defaults to 2 minutes if it is not set, and identifies how long JVM clients will continue to check with the server for completion before a timeout is reached. Since a single JVM may use 50mb or more of memory, keeping this value low helps manage memory on client machines, particularly when multiple commands may be issued in a short period of time. If it is set to zero, then the command will timeout immediately, giving back the command line to run other commands.

export LINGOBOT_API_STATUS_TIMEOUT_MINUTES=2

LINGOBOT_API_STATUS_MINUTES_TO_KEEP_MAXIMUM

This value identifies the maximum number of minutes the server will remember the result of any particular command. The value default to 500; however, the retrieval and distribution to the client of a command result also eliminates the tracking of that command. Thus, it is rare that any particular command will be tracked this long.

export LINGOBOT_API_STATUS_MINUTES_TO_KEEP_MAXIMUM =

Updating changes to these variables

If the Lingobot CLI settings need to be changed after the lingobot service has been started, stop the service, make the changes and restart the service.

> sudo systemctl stop lingoport-lingobot.service
> <make changes to lingobot_config.sh file>
> sudo systemctl start lingoport-lingobot.service


Client Install Preparation

The Lingobot installation includes a zip file containing the files needed to run Lingobot CLI from a client machine, and integrate the calls into the IDE. However, the following values should be verified in the app.properties (/var/lib/jenkins/lingoport/lingobot-cli-<x.y.z>/app.properties) file of the zip file before it is distributed to developers. If the machine has been installed with the Stack Installer, these values should have been automatically filled in correctly.

lingobot_domain=http://acme.company.com
lingobot_port=5001
lingobot_api_token=ZDIwY2IyMWU4M2RlNDhhZjIxZjY0Y2NhODdh

lingobot_domain

This value should be updated with the URL of the Lingobot server to be called.

lingobot_port

This value should be updated for the Port at which Lingobot server is to be called. Normally this will be 5001, unless it has been changed from that default value in lingobot_config.sh (Port property).

lingobot_api_token

The lingobot_api_token should match the LINGOBOT_API_TOKEN in /var/lib/jenkins/lingoport/lingobot-<x.y>/config/lingobot_config.sh

In addition to the app.properties settings mentioned above, it may be helpful to update the ReadMe file with any custom information that may be helpful to developers.

Client Install Distribution

Lingobot installation creates a lingobot-cli-<x.y.z>.zip file in /var/lib/jenkins/lingoport on the server. If app.properties have not changed, and in most cases it shouldn't have, this zip file can be made available to their own developers. This is often done through the System Administrator, and may involved distributing the necessary file through the company's own website or software distribution portal.