EAI
  • Dark
    Light
  • PDF

EAI

  • Dark
    Light
  • PDF

EAI

The EAI adapter is used to interact with the Ericsson Adaptive Inventory (EAI) platform. It currently integrates with the following:

Entity Operation
card (get, create, update and delete)
container (get, create, update and delete)
equipment (get, create, update and delete)
port (get, create, update and delete)
shelf (get, create, update and delete)
site (get, create, update and delete)
slot (get, create, update and delete)
trail (get, create, update and delete)
generic (get, create, update and delete)

Properties

Use the information in the table below to set the EAI Adapter properties. The host, port, and credentials are used to connect to EAI upon the adapter initially coming up. A connectivity check tells IAP the adapter has loaded successfully. The healthcheck tells IAP that it can reach EAI. The throttle section is all about throttling requests to EAI, and the request section defines properties to help handle requests.

Property Name Type Description
host String Required. The IP or hostname of the EAI server.
port Number Required. The port of the EAI server.
protocol String Optional. Tells the adapter whether to use HTTP or HTTPS (http is the default).
credentials.db_host String Required. The IP or hostname of the database server.
credentials.db_name String Required. The name of the database to connect to.
credentials.token String Required. An authentication token used to authenticate with the EAI server.
stub Boolean Optional. Indicates whether the stub should run instead of making calls to EAI (very useful during basic testing). The default is false, which means connect to EAI.
throttle.throttle_enabled Boolean Optional. Defaults to false and simply states whether the adapter should use throttling or not.
throttle.number_pronghorns Number Optional. Defaults to 1 and states whether the throttling is done in a single IAP instance or whether requests are throttled across multiple IAPs. This is an important property for performance enhancements. Throttling in a single IAP uses an in-memory queue so there is less overhead. Throttling across multiple IAPs requires putting the request and queue information into a shared resource (e.g. database) so that each IAP can determine what is running and what is next to run. This requires additional IO overhead.
throttle.sync_async String Optional. Not used at this time. It is for future expansion of the throttling engine.
throttle.max_in_queue Number Optional. The maximum number of requests that IAP should allow into the queue before rejecting requests. This is not necessarily a limit on what IAP can handle but more about timely responses to the requests. The default is currently 1000.
throttle.concurrent_max Number Optional. Defines the number of request that IAP can send to EAI at one time. The default is 1 meaning each request must be sent to EAI in a serial manner.
throttle.expire_timeout Number Optional. This is a graceful timeout of the request session. After the request has completed, IAP will wait the additional expire timeout time (in milliseconds) prior to sending in the next request. Expire timeout defaults to 0.
throttle.avg_runtime Number Optional. An approximate average of how long it takes EAI to handle each request. This is an important number as it has performance implications. If the number is defined too low, it puts extra burden on IAP CPU and memory as the requests will continually try to see if they can run. If the number is defined too high, requests may wait longer than they need to before running. The number does not need to be exact but your throttling strategy depends heavily on this number being within reason. If averages range from 50 to 250 milliseconds you might pick an average run-time somewhere in the middle so that when EAI performance is exceptional you might be a little slower than you might like, but when it is poor you still run efficiently. The default is 200 milliseconds.
request.number_retries Number Tells IAP how many times to retry a request that has either aborted or taken the limit error before giving up and returning an error.
request.limit_retry_error Number Optional. The HTTP error status number which defines that no capacity was available and, after waiting a short interval, the adapter can retry the request. The default is 0.
request.attempt_timeout Number How long IAP should wait before aborting the attempt. On abort, IAP will back off the requests and run a healthcheck until it re-establishes connectivity to EAI and then it will re-attempt the request that aborted. The attempt timeout is optional and defaults to 5000 milliseconds.
request.archiving Boolean Optional. The default is false. The archiving flag archives the request, the results and various times (wait time, EAI time and overall time) in the eai_results collection in MongoDB. Before enabling this capability think about how much to archive and develop a strategy for cleaning up the collection in the database so that it does not get too large, especially if the responses are large.

Sample Configuration

A sample configuration for the EAI adapter is provided. Be sure to configure the following properties.

  • host
  • port
  • protocol
  • credentials.dbHost
  • credentials.dbName
  • credentials.token
{
  "id": "eai",
  "type": "EAI",
  "properties": {
    "host": "eai.example.com",
    "port": 443,
    "protocol": "https",
    "credentials": {
      "dbHost": "eai.example.com",
      "dbName": "granite",
      "token": "Basic ABCDEFG=="
    },
    "stub": false,
    "throttle": {
      "throttle_enabled": false,
      "number_pronghorns": 1,
      "sync_async": "sync",
      "max_in_queue": 1000,
      "concurrent_max": 1,
      "expire_timeout": 0,
      "avg_runtime": 200
    },
    "request": {
      "number_retries": 3,
      "limit_retry_error": 401,
      "attempt_timeout": 5000,
      "archiving": false
    }
  }
}

What's Next
Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.