Âncora | ||||
---|---|---|---|---|
|
DIRECTOR - Manual de Integración 1.1.X
Manual de
...
Integración Director Server – Agent
...
Painel | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|
...
Painel | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
|
1. Introducción
1.1 Acerca de este documento
...
Campo | Descripción |
company.id | Id de la compañía, configurada en Director Server. |
store.id | Id de la tienda, configurada en Director Server. |
terminal.id | Id de la terminal, configurada en Director Server. |
device.type | Categoría o tipo de la terminal, configurada en Director Server. |
advserver.url | Direccion URL base (de la forma https//ip:port/) del Director Server |
advserver.status.path | Path relativo al URL base de Director Server, donde el Agente informa status |
advserver.polling.seconds | Período en segundos en que el Agente informa estatus al Director Server |
product.code | Código del Producto STS, configurado en Director Server. |
product.description | Descripción del Producto STS, configurado en Director Server. |
product.version | Versión del Producto STS, configurado en Director Server. |
repository.local.path | Directorio local donde almacenar las actualizaciones descargadas del repositorio |
application.base.path | Directorio de la Solución STS |
application.backup.path | Directorio para resguasdar la Solución previo una acatualización |
application.command.start | Shell script con los comandos necesarios para iniciar la Solución |
application.command.status | Shell script con los comandos para solicitar estado a la Solución |
application.command.stop | Shell script con los comandos para detener la Solución |
application.status.running.text | Texto a buscar por Agente en el comand.status para tomar como app en ejecución |
application.extended.info.command | Shell script para que las aplicaciones informen datos adicionales |
application.extended.info.resultfile | Archivo de texto con informacion adicional a informar en el envió de status |
cancel.install.if.app.running | Flag que con valor 'true' cancela la instalación si la Solución está en ejecución |
application.start.on.agent.start | Flag que con valor 'true' indica iniciar la Solucíon al inicar el Agente |
application.start.after.install | Flag que con valor 'true' indica iniciar la Solucíon luego de instalacióninstalaciónapplication.start.after.install |
sql.server | Direccion ip del servidor de BD Sql |
sql.port | Port del servidor de BD Sql |
sql.db | Nombre de la BD Sql |
sql.user | Usuario de la BD |
sql.pass | Contraseña de la BD (Base 64 del TDES generado con herramienta CipherUtil ) |
sql.bkp.dir | Directorio del backup de la BD (directorio local del server donde reside la BD) |
sql.db.type | Tipo de servidor Sql: 'oracle' o 'mssql' |
sql.oracle.bin.dir | Directorio de binarios de la instalacíon BD Oracle, donde reside la herramienta 'rman' |
sql.oracle.temp.dir | Directorio temporal requerido para la ejecución de la herramienta 'rman' |
scripts.subFolder | Es el path relativo a la carpeta scripts en donde van a estar los scripts a ejecutar. |
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
#codigo identificador de compañia
company.id=$(company)
#codigo identificador de tienda
store.id=$(store)
#codigo identificador de terminal
terminal.id=$(terminal)
#tipo de dispositivo - uso futuro
device.type=$(device)
#URL (ej: http://ip:puerto) donde escucha director server
advserver.url=$(url)
advserver.status.path=director/agent/status
#cada cuantos tiempo (en segundos) se envia un mensaje de status (minimo permitido 60)
advserver.polling.seconds=360
#en caso de error al enviar status, reintenta en este porcentaje de tiempo (en porcentaje)
advserver.polling.retrytime.percentage=20
#codigo de producto que gobierna este agente
product.code=$(product)
#descripcion del producto - solo a modo informativo
product.description=$(product.description)
#version del producto
product.version=$(version)
#directorio local donde se descargaran las actualizaciones de GIT
repository.local.path=$(local.path)
#directorio base de la aplicacion
application.base.path=$(base.path)
#directorio donde se realiza el backup
application.backup.path=$(backup.path)
#carpeta relativa en scripts. Sirve para manejar diferentes configuraciones para el mismo producto.
scripts.subFolder=$(scripts.subFolder)
#comando que inicia la aplicacion
application.command.start=$(cmd.start)
#comando que permite obtener el estado de la aplicacion. Este comando se ejecuta cada advserver.polling.seconds segundos
application.command.status=$(cmd.status)
#texto que se busca en la salida de la ejecucion del comando STATUS
application.status.running.text=successful,running
#comando que se ejecuta para obtener informacion extendida y enviarla al director server
application.extended.info.command=$(cmd.info)
#archivo de propiedades que se espera como salida de la ejecucion del comando indicado por 'application.extended.info.command'
application.extended.info.resultfile=$(cmd.info.result)
#comando que permite detener la aplicacion
application.command.stop=$(cmd.stop)
#indica si se debe cancelar la instalacion cuando la aplicacion esta corriendo
cancel.install.if.app.running=$(cancelIfRunningApp)
#indica si al iniciar el agente, se debe iniciar la aplicacion
application.start.on.agent.start=$(appStartOnAgentStart)
#indica si se debe iniciar la aplicacion luego de realizar una instalacion/actualizacion
application.start.after.install=$(appStartAfterInstall)
|
Nota |
---|
Nota:
|
En caso de que la aplicación utilice base de datos y sea requerido que el agente haga backup y/o realice actualización, se deberá adicionar la siguiente configuración:
...
Colección | Campo | Descripción | |
| companyId | Id de la compañía del retail. Se carga por configuración | |
| listeningPort | Puerto de la terminal donde se encuentra el Agente. Se carga por configuración | |
| date | Fecha y hora de envío. Formato aaaammddHHmmssSUTC, donde S es el símbolo positivo o negativo y UTC es el huso horario en formato hhmm | |
deviceType | Categoría de la terminal. Se carga por configuración | ||
terminalId | Terminal de la tienda de la compañía del retail. Se carga por configuración | ||
| storeId | Id de la tienda de la compañía del retail. Se carga por configuración | |
host | Nombre de la terminal donde se encuentra el Agente | ||
ip | IP de la terminal donde se encuentra el Agente | ||
agentVersion | Indica la versión de software del agente | ||
token | Un token que luego Director Server usará para enviar los comandos hacia el agente. | ||
| tokenExp | Fecha y hora de expiración del token. Formato aaaammddHHmmssSUTC, donde S es el símbolo positivo o negativo y UTC es el huso horario en formato hhmm | |
product | status | Informa el estado de Agente. Ver tabla | |
| detail | Mensaje adicional y detallado de la tarea | |
| appIsRunning | Informa si el Producto STS está en funcionamiento o está detenido. Valores posibles: true/false. El chequeo es según el Producto STS. Ejemplo, chequeo de puerto, control de proceso en ejecución, etc | |
| taskUUID | Identificador de la tarea enviado por Director Server. | |
| taskStatus | Informa el código del estado de la tarea. Ver tabla | |
task | Código de la tarea. Ver tabla | ||
| version | Versión del Producto STS. Si no se efectúo previamente una instalación se envía 0 | |
code | Código del Producto STS. Se carga por configuración | ||
description | Descripción del Producto STS. Se carga por configuración | ||
isAlivePort | Chequeo del puerto para POS. Se encuentra en desuso | ||
| lastInstall | Fecha y hora de la última instalación del Producto STS. Formato aaaammddHHmmssSUTC, donde S es el símbolo positivo o negativo y UTC es el huso horario en formato hhmm. En caso de que nunca se haya instalado una versión, se envía el formato estándar 19700101 | |
| lastUpdate | Fecha y hora de la última sincronización del Producto STS. Formato aaaammddHHmmssSUTC, donde S es el símbolo positivo o negativo y UTC es el huso horario en formato hhmm. En caso de que nunca se haya sincronizado una versión, se envía el formato estándar 19700101 | |
| synchronizedVersion | Informa la última versión sincronizada del Producto STS | |
| free memory | Memoria libre (en Bytes) en la terminal, reportada por la JVM Oracle | |
info | measureunit | Unidad de medida que se informan los valores. Por defecto en Bytes | |
| free disk | Disco libre (en Bytes) en la terminal, de la unidad donde se ejecuta el agente | |
total memory | Capacidad total de memoria (en Bytes) en la terminal, reportada por la JVM Oracle | ||
total disk | Capacidad total del disco (en Bytes) en la terminal, de la unidad donde se ejecuta el agente | ||
| java.version | Versión de Java RuntimeEnvironment | |
java.vendor | Proveedor de Java RuntimeEnvironment | ||
java.arch | Tamaño de la plataforma | ||
os.name | Nombre del sistema operativo | ||
| os.version | Versión del sistema operativo | |
| os.arch | Arquitectura del sistema operativo | |
| Otros valores del tipo "clave-valor" | Estos valores serán procesados por director server e incluidos como información adicional de la terminal. | |
|
|
| |
Detalle del uso del “Status”
...
- Periódicamente cada X cantidad de tiempo para informar el estado del agente, de la aplicación, etc. En este caso y a modo aclaratorio
- “status”, siempre enviar 00, indicando que el agente está disponible.
- “taskUUID”, en blanco porque no hay tarea
- “task”, en blanco porque no hay tarea
- “taskStatus”, en blanco porque no hay tarea
- “detail”, en blanco porque no hay tarea, o bien, una descripción que simplemente se podrá apreciar en el log de DirectorServer
- Cuando el DirectorServer solicitó realizar una acción (sincronizar o actualizar). Cada acción supone la ejecución de una serie de pasos o tareas. Entonces se espera que la ejecución de cada tarea implique enviar un mensaje al servidor para indicar el estado de ejecución de dicha a tarea. Los datos obligatorios en éste caso son:
- “status”, para indicar si está sincronización o actualizando
- “taskUUID”, para indicar el ID de la tarea. Este dato lo envió previamente el server.
- “task”, para indicar que tarea se está realizando. Ej: deteniendo app, haciendo backup, etc
- “taskStatus”, para indicar el estado de ejecución de la tarea antes idnicada.
- “detail”, para dar más detalle de la tarea. Ej: si dio error, entonces indicar una descripción del error. Si no hay error, por ejemplo info de un directorio, de una tarea, etc. En todos los caso, el mismo se mostrará en consola
Parte del mensaje de status
...
Error indicado por agente al instalar
...