Publicado el :

Consulta de trabajos de SAS Workload Orchestrator a través de API

Este código también está disponible en: Deutsch English Español Français
En espera de validación
Attention : Este código requiere privilegios de administrador.
El script utiliza PROC HTTP para autenticarse en SAS© Workload Orchestrator y obtener una cookie de autenticación. Luego, envía una solicitud autenticada a la API de trabajos para recuperar la lista de todos los trabajos no archivados. La respuesta, en formato JSON, se lee utilizando una biblioteca (libname) de tipo JSON. Finalmente, se utiliza un paso PROC SQL para unir las diferentes partes de los datos JSON en una única tabla SAS©, que luego se muestra.
Análisis de datos

Type : EXTERNE


Los datos se recuperan dinámicamente a través de una llamada a la API REST de SAS Workload Orchestrator. El script no depende de archivos de datos preexistentes o de tablas SASHELP.

1 Bloque de código
PROC HTTP
Explicación :
Este bloque define los parámetros de conexión (usuario, contraseña, URL base) e inicializa archivos temporales. Luego, realiza una primera llamada PROC HTTP con el método POST para autenticarse en la interfaz de SAS Grid y recuperar una cookie de autenticación en el archivo temporal 'headout'.
¡Copiado!
1/* Provide connection information. */
2%let username = sas;
3%let pw = password;
4%let baseURL = http://sgmg-master.demo.sas.com:8901;
5 
6/* Initialize temporary files to capture HTTP response body and headers. */
7 
8filename body temp;
9filename headout temp;
10 
11/* Authenticate and get an auth cookie. */
12 
13PROC HTTP URL="&baseURL/sasgrid/index.html" method="post"
14out=body headerout=headout headerout_overwrite
15in="username=&username%nrstr(&password)=&pw";
16headers "ContentType"="application/x-www-form-urlencoded";
17RUN;
2 Bloque de código
PROC HTTP Data
¡Copiado!
1/* Submit an authenticated query against the jobs API */
2/* requesting jobs with a state of "ALL" e.g. any non-archived jobs. */
3 
4PROC HTTP URL="&baseURL/sasgrid/api/jobs?state=ALL"
5out=body headerout=headout headerout_overwrite;
6headers "Accept"="application/vnd.sas.sasgrid.jobs;version=1;charset=utf-8";
7RUN;
3 Bloque de código
LIBNAME Data
¡Copiado!
1/* Deassign the jobinfo libname. */
2LIBNAME jobinfo;
3 
4/* Read in the job info. */
5LIBNAME jobinfo json fileref=body;
4 Bloque de código
PROC SQL Data
¡Copiado!
1/* Create a single table with items of interest. */
2PROC SQL;
3create TABLE jobs as
4 select
5 a.id,
6 b.state, b.queue, b.submitTime, b.startTime,
7 b.endTime, b.processId, b.executionHost, b.exitCode,
8 c.name, c.user, c.cmd
9 from
10 jobinfo.jobs a,
11 jobinfo.jobs_processinginfo b,
12 jobinfo.jobs_request c
13 where
14 a.ordinal_jobs = b.ordinal_jobs and
15 b.ordinal_jobs = c.ordinal_jobs
16 order BY a.id;
17QUIT;
5 Bloque de código
PROC PRINT
¡Copiado!
1/* Print it. */
2PROC PRINT DATA=work.jobs; RUN;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : Author: Greg Wootton Date: 30AUG2019