NICE DCV Guida per gli sviluppatori
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
NICE DCV Guida per gli sviluppatori NICE DCV: Guida per gli sviluppatori Copyright © Amazon Web Services, Inc. and/or its affiliates. All rights reserved. I marchi e il trade dress di Amazon non possono essere utilizzati in relazione ad alcun prodotto o servizio che non sia di Amazon, in alcun modo che possa causare confusione tra i clienti, né in alcun modo che possa denigrare o screditare Amazon. Tutti gli altri marchi non di proprietà di Amazon sono di proprietà delle rispettive aziende, che possono o meno essere associate, collegate o sponsorizzate da Amazon.
NICE DCV Guida per gli sviluppatori Table of Contents Che cos'è Session Manager? ............................................................................................................... 1 Come funziona Session Manager .................................................................................................. 1 Caratteristiche ............................................................................................................................ 2 Nozioni di base .................................................................................................................................. 3 Generazione dell'API client .......................................................................................................... 3 Registra il tuo client API .............................................................................................................. 4 Ottieni un token di accesso e fai una richiesta API .......................................................................... 4 Documentazione di riferimento per l'API ................................................................................................. 7 CloseServers ............................................................................................................................. 7 Parametri della richiesta ...................................................................................................... 4 Parametri di risposta ........................................................................................................... 8 Esempio ............................................................................................................................ 8 CreateSessions .......................................................................................................................... 9 Parametri della richiesta ...................................................................................................... 4 Parametri di risposta ........................................................................................................... 8 Esempio ............................................................................................................................ 8 DescribeServers ....................................................................................................................... 14 Parametri della richiesta ...................................................................................................... 4 Parametri di risposta ........................................................................................................... 8 Esempio ............................................................................................................................ 8 DescribeSessions ...................................................................................................................... 22 Parametri della richiesta ...................................................................................................... 4 Parametri di risposta ........................................................................................................... 8 Esempio ............................................................................................................................ 8 DeleteSessions ......................................................................................................................... 26 Parametri della richiesta ...................................................................................................... 4 Parametri di risposta ........................................................................................................... 8 Esempio ............................................................................................................................ 8 GetSessionConnectionData ........................................................................................................ 28 Parametri della richiesta ...................................................................................................... 4 Parametri di risposta ........................................................................................................... 8 Informazioni aggiuntive ...................................................................................................... 30 Esempio ............................................................................................................................ 8 GetSessionScreenshots ............................................................................................................. 32 Parametri della richiesta ...................................................................................................... 4 Parametri di risposta ........................................................................................................... 8 Esempio ............................................................................................................................ 8 OpenServers ............................................................................................................................ 35 Parametri della richiesta ...................................................................................................... 4 Parametri di risposta ........................................................................................................... 8 Esempio ............................................................................................................................ 8 UpdateSessionPermissions ......................................................................................................... 36 Parametri della richiesta ...................................................................................................... 4 Parametri di risposta ........................................................................................................... 8 Esempio ............................................................................................................................ 8 Note di rilascio e cronologia dei documenti ........................................................................................... 39 Note di rilascio ......................................................................................................................... 39 2022.1-13067— 29 giugno 2022 ......................................................................................... 39 2022.0-1952 — 23 febbraio 2022 ........................................................................................ 39 2021.3-11591— 20 dicembre 2021 ...................................................................................... 40 2021.2-11445— 18 novembre 2021 ..................................................................................... 40 2021.2-11190— 11 ottobre 2021 ......................................................................................... 40 2021.2-11042— 01 settembre 2021 ..................................................................................... 40 2021.1-10557— 31 maggio 2021 ........................................................................................ 41 iii
NICE DCV Guida per gli sviluppatori 2021.0-10242 - 12 aprile 2021 ............................................................................................ 41 2020.2-9662— 4 dicembre 2020 ......................................................................................... 41 ...................................................................................................................................... 41 Cronologia dei documenti ........................................................................................................... 42 ..................................................................................................................................................... xliii iv
NICE DCV Guida per gli sviluppatori Come funziona Session Manager Cos'è NICE DCV Session Manager? NICE DCV Session Manager è un insieme di pacchetti software installabili (un agente e un broker) e un'interfaccia di programmazione delle applicazioni (API) che semplifica la creazione di applicazioni front- end che creano e gestiscono in modo programmatico il ciclo di vita di NICE DCV sessioni su una flotta di server DCV NICE. Questa guida spiega come utilizzare le API di Session Manager per gestire il ciclo di vita delle sessioni NICE DCV. Per ulteriori informazioni su come installare e configurare Session Manager Broker e Agent, consulta la pagina relativa allaGuida per l'amministratore di NICE DCV Session Manager. Prerequisiti Prima di iniziare a lavorare con le API di Session Manager, assicurati di avere familiarità con le sessioni NICE DCV e NICE DCV. Per ulteriori informazioni, consulta la .Guida all'amministratore NICE DCV. Argomenti • Come funziona Session Manager (p. 1) • Caratteristiche (p. 2) Come funziona Session Manager Il diagramma seguente mostra i componenti di alto livello di Session Manager. Broker Il broker è un server Web che ospita ed espone le API di Session Manager. Riceve e elaboraAPIrichieste di gestione delle sessioni NICE DCV dalclientee quindi passa le istruzioni al pertinenteAgenti. Il broker deve essere installato su un host separato dai server NICE DCV, ma deve essere accessibile al client e deve essere in grado di accedere agli agenti. Agente L'agente è installato su ogni server NICE DCV della flotta. Gli agenti ricevono istruzioni dalBrokered eseguirli sui rispettivi server NICE DCV. Gli agenti monitorano inoltre lo stato dei server NICE DCV e inviano aggiornamenti periodici di stato al Broker. API Session Manager espone una serie di interfacce di programmazione delle applicazioni REST (API) che possono essere utilizzate per gestire le sessioni NICE DCV su una flotta di server NICE DCV. Le API 1
NICE DCV Guida per gli sviluppatori Caratteristiche sono ospitate e esposte dalBroker. Gli sviluppatori possono creare una gestione personalizzata delle sessioniclientiche chiamano le API. Client Il client è l'applicazione o il portale front-end sviluppato per chiamare Session ManagerAPIche sono esposti dalBroker. Gli utenti finali utilizzano il client per gestire le sessioni ospitate sui server NICE DCV della flotta. Token di accesso Per effettuare una richiesta API, è necessario fornire un token di accesso. I token possono essere richiesti dal broker o da un server di autorizzazione esterno tramite API client registrate. Per richiedere e accedere al token, l'API client deve fornire credenziali valide. Client API L'API client viene generata dal file YAML di definizione API di Session Manager, utilizzando Swagger Codegen. L'API client viene utilizzata per effettuare richieste API. Sessione DCV NICE È necessario creare una sessione NICE DCV sul server NICE DCV a cui i client possono connettersi. I client possono connettersi a un server DCV NICE solo se c'è una sessione attiva. NICE DCV supporta console e sessioni virtuali. Le API di Session Manager vengono utilizzate per gestire il ciclo di vita delle sessioni NICE DCV. Le sessioni NICE DCV possono essere in uno dei seguenti stati: • CREATINGIl Broker è in fase di creazione della sessione. • READY—la sessione è pronta per accettare le connessioni client. • DELETING: la sessione è in fase di eliminazione. • DELETED: la sessione è stata eliminata. • UNKNOWN—impossibile determinare lo stato della sessione. Il broker e l'agente potrebbero non essere in grado di comunicare. Caratteristiche DCV Session Manager offre le seguenti funzionalità: • Fornisce informazioni sulla sessione NICE DCV—ottenere informazioni sulle sessioni in esecuzione su più server NICE DCV. • Gestisci il ciclo di vita per più sessioni NICE DCV—creare o eliminare più sessioni per più utenti su più server NICE DCV con una richiesta API. • Supporto dei tag—utilizza tag personalizzati per indirizzare un gruppo di server NICE DCV durante la creazione di sessioni. • Gestisce le autorizzazioni per più sessioni NICE DCV—modifica le autorizzazioni utente per più sessioni con una richiesta API. • Fornisce informazioni di connessione—recupera le informazioni sulla connessione client per le sessioni NICE DCV. • Supporti per cloud e on-premise—usa Session Manager suAWS, on premise o con server alternativi basati su cloud. 2
NICE DCV Guida per gli sviluppatori Generazione dell'API client Nozioni di base Nella sezione viene illustrato come iniziare a utilizzare le API di Session Manager. In questa sezione, illustreremo come eseguire questa operazione utilizzandoDescribeSessionsAPI come esempio. Argomenti • Generazione dell'API client (p. 3) • Registra il tuo client API (p. 4) • Ottieni un token di accesso e fai una richiesta API (p. 4) Generazione dell'API client Le API di Session Manager sono definite in un singolo file YAML. Le API sono basate sulla specifica OpenAPI3.0, che definisce un'interfaccia standard e indipendente dalla lingua per le API RESTful. Per ulteriori informazioni, consultaSpecifiche OpenAPI. Utilizzando il file YAML, è possibile generare client API in una delle lingue supportate. A tale scopo, devi utilizzare Swagger Codegen 3.0 o versione successiva. Per ulteriori informazioni sulle lingue supportate, consultarepository swagger-codegen. Per generare un client API 1. Scarica il file YAML API di Session Manager da Session Manager Broker. Il file YAML è disponibile al seguente URL. https://broker_host_ip:port/dcv-session-manager-api.yaml 2. Installa Swagger Codegen. • macOS $ brew install swagger-codegen • Altre piattaforme $ git clone https://github.com/swagger-api/swagger-codegen --branch 3.0.0 $ cd swagger-codegen 3. Genera il client API. • macOS $ swagger-codegen generate -i /path_to/yaml_file -l language -o $output_folder • Altre piattaforme 3
NICE DCV Guida per gli sviluppatori Registra il tuo client API $ mvn clean package $ java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate -i / path_to/yaml_file -l language -o output_folder Registra il tuo client API Per effettuare una richiesta API, devi prima recuperare un token di accesso dal broker. Per ottenere un token di accesso dal Broker, devi fornire al Broker le credenziali per la tua API client. Le credenziali si basano su un ID client e una password client che vengono generati quando il cliente è registrato presso il Broker. Se non disponi di un ID client e di una password client per il tuo cliente, devi richiederli all'amministratore del broker. Per ulteriori informazioni sulla registrazione dell'API client con il broker e l'ottenimento di un ID client e una password, consultaregister-api-client. Ottieni un token di accesso e fai una richiesta API Innanzitutto importiamo i modelli necessari per l'applicazione. Quindi dichiariamo le variabili per l'ID client (__CLIENT_ID), password client (__CLIENT_SECRET) e l'URL del broker, incluso il numero di porta (__PROTOCOL_HOST_PORT). Successivamente, creiamo una funzione chiamatabuild_client_credentialsche genera le credenziali client. Per generare le credenziali client, è necessario innanzitutto concatenare l'ID client e la password del client e separare i valori con due punti (client_ID:client_password), quindi Base64 codifica l'intera stringa. import swagger_client import base64 import requests import json from swagger_client.models.describe_sessions_request_data import DescribeSessionsRequestData from swagger_client.models.key_value_pair import KeyValuePair from swagger_client.models.delete_session_request_data import DeleteSessionRequestData from swagger_client.models.update_session_permissions_request_data import UpdateSessionPermissionsRequestData from swagger_client.models.create_session_request_data import CreateSessionRequestData __CLIENT_ID = '794b2dbb-bd82-4707-a2f7-f3d9899cb386' __CLIENT_SECRET = 'MzcxNzJhN2UtYjEzNS00MjNjLTg2N2YtMjFlZmRlZWNjMDU1' __PROTOCOL_HOST_PORT = 'https://:8443' def build_client_credentials(): client_credentials = '{client_id}:{client_secret}'.format(client_id=__CLIENT_ID, client_secret=__CLIENT_SECRET) return base64.b64encode(client_credentials.encode('utf-8')).decode('utf-8') Ora che abbiamo le credenziali dei nostri clienti, possiamo usarlo per richiedere un token di accesso al Broker. A tale scopo, creiamo una funzione chiamataget_access_token. Devi chiamare unPOSTsul https://Broker_IP:8443/oauth2/token?grant_type=client_credentialse fornire un'intestazione di autorizzazione, che include le credenziali client con codifica di base e un tipo di contenuto diapplication/x-www-form-urlencoded. 4
NICE DCV Guida per gli sviluppatori Ottieni un token di accesso e fai una richiesta API def get_access_token(): client_credentials = build_client_credentials() headers = { 'Authorization': 'Basic {}'.format(client_credentials), 'Content-Type': 'application/x-www-form-urlencoded' } endpoint = __PROTOCOL_HOST_PORT + '/oauth2/token?grant_type=client_credentials' print('Calling', endpoint, 'using headers', headers) res = requests.post(endpoint, headers=headers, verify=True) if res.status_code != 200: print('Cannot get access token:', res.text) return None access_token = json.loads(res.text)['access_token'] print('Access token is', access_token) return access_token Ora creiamo le funzioni necessarie per creare un'istanza di un'API client. Per creare un'istanza di un'API client, è necessario specificare la configurazione del client e le intestazioni da utilizzare per le richieste. Laget_client_configurationfunzione crea un oggetto di configurazione che include l'indirizzo IP e la porta del Broker e il percorso del certificato autofirmato del Broker, che dovresti aver ricevuto dall'amministratore del broker. Laset_request_headersfunction crea un oggetto di intestazione della richiesta che include le credenziali client e il token di accesso. def get_client_configuration(): configuration = swagger_client.Configuration() configuration.host = __PROTOCOL_HOST_PORT configuration.verify_ssl = True # configuration.ssl_ca_cert = cert_file.pem return configuration def set_request_headers(api_client): access_token = get_access_token() api_client.set_default_header(header_name='Authorization', header_value='Bearer {}'.format(access_token)) def get_sessions_api(): api_instance = swagger_client.SessionsApi(swagger_client.ApiClient(get_client_configuration())) set_request_headers(api_instance.api_client) return api_instance Infine, creiamo un metodo principale che chiama ilDescribeSessionsAPI. Per ulteriori informazioni, consultare DescribeSessions (p. 22). def describe_sessions(session_ids=None, next_token=None, tags=None, owner=None): filters = list() if tags: for tag in tags: filter_key_value_pair = KeyValuePair(key='tag:' + tag['Key'], value=tag['Value']) filters.append(filter_key_value_pair) if owner: filter_key_value_pair = KeyValuePair(key='owner', value=owner) filters.append(filter_key_value_pair) request = DescribeSessionsRequestData(session_ids=session_ids, filters=filters, next_token=next_token) print('Describe Sessions Request:', request) api_instance = get_sessions_api() 5
NICE DCV Guida per gli sviluppatori Ottieni un token di accesso e fai una richiesta API api_response = api_instance.describe_sessions(body=request) print('Describe Sessions Response', api_response) def main(): describe_sessions( session_ids=['SessionId1895', 'SessionId1897'], owner='an owner 1890', tags=[{'Key': 'ram', 'Value': '4gb'}]) 6
NICE DCV Guida per gli sviluppatori CloseServers Documentazione di riferimento per l'API In questa sezione vengono fornite descrizioni, sintassi ed esempi d'uso di tutte le operazioni API di Session Manager. Argomenti • CloseServers (p. 7) • CreateSessions (p. 9) • DescribeServers (p. 14) • DescribeSessions (p. 22) • DeleteSessions (p. 26) • GetSessionConnectionData (p. 28) • GetSessionScreenshots (p. 32) • OpenServers (p. 35) • UpdateSessionPermissions (p. 36) CloseServers Chiude uno o più server NICE DCV. Quando si chiude un server NICE DCV, lo si rende non disponibile per il posizionamento della sessione NICE DCV. Non è possibile creare sessioni NICE DCV suchiusoServer. La chiusura di un server garantisce che nessuna sessione sia in esecuzione su di esso e che gli utenti non possano creare nuove sessioni su di esso. Argomenti • Parametri della richiesta (p. 4) • Parametri di risposta (p. 8) • Esempio (p. 8) Parametri della richiesta ServerId L'ID del server da chiudere. Type: Stringa Campo obbligatorio: Sì Force Forza l'operazione di chiusura. Se si specificatrue, il server è chiuso anche se sono presenti sessioni in esecuzione. Le sessioni continueranno a funzionare. Type: Boolean Campo obbligatorio: No 7
NICE DCV Guida per gli sviluppatori Parametri di risposta Parametri di risposta RequestId L'ID univoco della richiesta. SuccessfulList Informazioni sui server NICE DCV che sono stati chiusi correttamente. Questa struttura dati include il seguente parametro di risposta nidificato: ServerId L'ID del server che è stato chiuso correttamente. UnsuccessfulList Informazioni sui server NICE DCV che non è stato possibile chiudere. Questa struttura dati include i seguenti parametri di risposta nidificati: CloseServerRequestData Informazioni sulla richiesta originale non riuscita. Questa struttura dati include il seguente parametro di risposta nidificato: ServerId L'ID del server NICE DCV che non può essere chiuso. Force Il parametro di forza richiesto. FailureCode Il codice dell'errore. FailureReason Il motivo dell'errore. Esempio Python Richiesta L'esempio seguente chiude due server NICE DCV (serverId1eserverId2). ServerserverId2non esiste e si traduce in un fallimento. from swagger_client.models import CloseServerRequestData def get_servers_api(): api_instance = swagger_client.ServersApi(swagger_client.ApiClient(get_client_configuration())) set_request_headers(api_instance.api_client) return api_instance def close_servers(server_ids): request = [CloseServerRequestData(server_id=server_id) for server_id in server_ids] print('Close Servers Request:', request) api_instance = get_servers_api() api_response = api_instance.close_servers(body=request) print('Close Servers Response:', api_response) open_servers(server_ids) 8
NICE DCV Guida per gli sviluppatori CreateSessions def main(): close_servers(["serverId1", "serverId2"]) Risposta Di seguito è riportato un output di esempio. { "RequestId": "4d7839b2-a03c-4b34-a40d-06c8b21099e6", "SuccessfulList": [ { "ServerId": "serverId1" } ], "UnsuccessfulList": [ { "OpenServerRequestData": { "ServerId": "serverId2" }, "FailureCode": "DCV_SERVER_NOT_FOUND", "FailureReason": "Dcv server not found." } ] } CreateSessions Crea una nuova sessione NICE DCV con i dettagli specificati. Operazioni dell'API • Parametri della richiesta (p. 4) • Parametri di risposta (p. 8) • Esempio (p. 8) Parametri della richiesta Name Il nome della sessione. Type: Stringa Campo obbligatorio: Sì Owner Il nome del proprietario della sessione. Deve essere il nome di un utente esistente sul server NICE DCV di destinazione. Type: Stringa Campo obbligatorio: Sì Type Il tipo di sessione. Per ulteriori informazioni sui tipi di sessioni, consultaIntroduzione alle sessioni DCV NICEnellaNICE DCV. 9
NICE DCV Guida per gli sviluppatori Parametri della richiesta Valori validi: CONSOLE | VIRTUAL Type: Stringa Campo obbligatorio: Sì InitFile Supportata con le sessioni virtuali su server NICE DCV Linux. Non è supportato con le sessioni della console su server NICE DCV Windows e Linux. Il percorso dello script personalizzato sul server NICE DCV da eseguire per l'inizializzazione della sessione quando viene creata. Il percorso del file è relativo rispetto alla directory init specificata peragent.init_folderparametro di configurazione dell'agente. Se il file si trova nella directory di init specificata, specificate solo il nome del file. Se il file non si trova nella directory init specificata, specificate il percorso relativo. Per ulteriori informazioni, consulta le.File di configurazione dell'agentenellaGuida per l'amministratore del gestore di sessione NICE. Type: Stringa Campo obbligatorio: No MaxConcurrents Numero massimo di client NICE DCV simultanei. Type: Numero intero Campo obbligatorio: No DcvGlEnabled Indica se la sessione virtuale è configurata per l'utilizzo di OpenGL basato su hardware. Supportato solo con sessioni virtuali. Questo parametro non è supportato con i server NICE DCV Windows. Valori validi: true | false Type: Boolean Campo obbligatorio: No PermissionsFile Il contenuto con codifica Base64 del file di autorizzazioni. Se omesso, tale valore è rappresentato dal server predefinito. Per ulteriori informazioni, consultaConfigurazione dell'NICE DCVnellaNICE DCV. Type: Stringa Campo obbligatorio: No EnqueueRequest Indica se mettere in coda la richiesta se non può essere soddisfatta immediatamente. Type: Boolean Di default: false Campo obbligatorio: No AutorunFile Supportato con le sessioni della console su server NICE DCV Windows e con le sessioni virtuali su server NICE DCV Linux. Non è supportato con le sessioni della console su server NICE DCV Linux. Il percorso di un file sul server host che deve essere eseguito all'interno della sessione. Il percorso del file è relativo rispetto alla directory autorun specificata peragent.autorun_folderparametro 10
NICE DCV Guida per gli sviluppatori Parametri della richiesta di configurazione dell'agente. Se il file si trova nella directory di esecuzione automatica specificata, specificare solo il nome del file. Se il file non si trova nella directory di esecuzione automatica specificata, specificare il percorso relativo. Per ulteriori informazioni, consultaFile di configurazione dell'agentenellaGuida per l'amministratore del gestore di sessione NICE. Il file viene eseguito per conto delOwner. Il proprietario specificato deve disporre dell'autorizzazione per l'esecuzione del file sul server. Sui server DCV Windows NICE, il file viene eseguito quando il proprietario accede alla sessione. Su server NICE DCV Linux, il file viene eseguito quando viene creata la sessione. Type: Stringa Campo obbligatorio: No AutorunFileArguments Supportata con le sessioni virtuali su server NICE DCV Linux. Non è supportato nelle sessioni della console su server NICE DCV Windows e Linux. Argomenti della riga di comando passati aAutorunFilealla sua esecuzione all'interno della sessione. Gli argomenti vengono passati nell'ordine in cui appaiono nell'array dato. È possibile configurare il numero massimo consentito di argomenti e la lunghezza massima consentita per ogni argomento. Per ulteriori informazioni, consultaFile di configurazione del brokernellaGuida per l'amministratore del gestore di sessione NICE. Type: Gamma di stringhe Campo obbligatorio: No DisableRetryOnFailure Indica se non riprovare la richiesta di creazione della sessione dopo che non riesce su un host NICE DCV per qualsiasi motivo. Per ulteriori informazioni sul meccanismo di creazione dei nuovi tentativi della sessione, consultareFile di configurazione del brokernellaGuida per l'amministratore del gestore di sessione NICE. Type: Boolean Di default: false Campo obbligatorio: No Requirements I requisiti che il server deve soddisfare per poter effettuare la sessione. I requisiti possono includere tag server e/o proprietà server, sia i tag server che le proprietà del server vengono recuperati chiamando ilDescribeServersAPI. Espressioni condizioni requisiti: • un ! = btrue se se trueunnon uguale ab • un = btrue se se trueunè uguale ab • un > btrue se se trueunè maggiore dib • un >= btrue se se trueunè maggiore di o uguale ab • un < btrue se se trueunè inferiore dib • un
NICE DCV Guida per gli sviluppatori Parametri della richiesta I tasti tag devono essere preceduti datag:, le proprietà del server devono essere precedute daserver:. Le espressioni dei requisiti supportano le parentesi(). Esempi di requisiti: • tag:color = 'pink' and (server:Host.Os.Family = 'windows' or tag:color := 'red') • "server:Host.Aws.Ec2InstanceType := 't2' and server:Host.CpuInfo.NumberOfCpus >= 2" I valori numerici possono essere specificati utilizzando la notazione esponenziale, ad esempio:"server:Host.Memory.TotalBytes > 1024E6". Le proprietà del server supportate sono: • Id • Hostname • Version • SessionManagerAgentVersion • Host.Os.BuildNumber • Host.Os.Family • Host.Os.KernelVersion • Host.Os.Name • Host.Os.Version • Host.Memory.TotalBytes • Host.Memory.UsedBytes • Host.Swap.TotalBytes • Host.Swap.UsedBytes • Host.CpuLoadAverage.OneMinute • Host.CpuLoadAverage.FiveMinutes • Host.CpuLoadAverage.FifteenMinutes • Host.Aws.Ec2InstanceId • Host.Aws.Ec2InstanceType • Host.Aws.Region • Host.Aws.Ec2ImageId • Host.CpuInfo.Architecture • Host.CpuInfo.ModelName • Host.CpuInfo.NumberOfCpus • Host.CpuInfo.PhysicalCoresPerCpu • Host.CpuInfo.Vendor Type: Stringa Campo obbligatorio: No StorageRoot Specifica il percorso della cartella usato per lo storage della sessione. Per ulteriori informazioni sull'archiviazione di sessioni NICE DCV, vedereAbilitazione dello storage della sessionenellaNICE DCV. Type: Stringa Campo obbligatorio: No 12
NICE DCV Guida per gli sviluppatori Parametri di risposta Parametri di risposta Id L'ID univoco della sessione. Name Il nome della sessione. Owner Proprietario della sessione. Type Tipo di sessione. State Lo stato della sessione. Se la richiesta riesce, la sessione entra nelCREATINGstato. Esempio Python Richiesta L'esempio seguente crea tre sessioni. from swagger_client.models.create_session_request_data import CreateSessionRequestData def get_sessions_api(): api_instance = swagger_client.SessionsApi(swagger_client.ApiClient(get_client_configuration())) set_request_headers(api_instance.api_client) return api_instance def create_sessions(sessions_to_create): create_sessions_request = list() for name, owner, session_type, init_file_path, autorun_file, autorun_file_arguments, max_concurrent_clients,\ dcv_gl_enabled, permissions_file, requirements, storage_root in sessions_to_create: a_request = CreateSessionRequestData( name=name, owner=owner, type=session_type, init_file_path=init_file_path, autorun_file=autorun_file, autorun_file_arguments=autorun_file_arguments, max_concurrent_clients=max_concurrent_clients, dcv_gl_enabled=dcv_gl_enabled, permissions_file=permissions_file, requirements=requirements, storage_root=storage_root) create_sessions_request.append(a_request) api_instance = get_sessions_api() print('Create Sessions Request:', create_sessions_request) api_response = api_instance.create_sessions(body=create_sessions_request) print('Create Sessions Response:', api_response) def main(): create_sessions([ ('session1', 'user1', 'CONSOLE', None, None, None, 1, None, '/dcv/ permissions.file', "tag:os = 'windows' and server:Host.Memory.TotalBytes > 1024", "/ storage/root"), 13
NICE DCV Guida per gli sviluppatori DescribeServers ('session2', 'user1', 'VIRTUAL', None, 'myapp.sh', None, 1, False, None, "tag:os = 'linux'", None), ('session3', 'user1', 'VIRTUAL', '/dcv/script.sh', 'myapp.sh', ['argument1', 'argument2'], 1, False, None, "tag:os = 'linux'", None), ]) Risposta Di seguito è riportato un output di esempio. { "RequestId": "e32d0b83-25f7-41e7-8c8b-e89326ecc87f", "SuccessfulList": [ { "Id": "78b45deb-1163-46b1-879b-7d8fcbe9d9d6", "Name": "session1", "Owner": "user1", "Type": "CONSOLE", "State": "CREATING" }, { "Id": " a0c743c4-9ff7-43ce-b13f-0c4d55a268dd", "Name": "session2", "Owner": "user1", "Type": "VIRTUAL", "State": "CREATING" }, { "Id": " 10311636-df90-4cd1-bcf7-474e9675b7cd", "Name": "session3", "Owner": "user1", "Type": "VIRTUAL", "State": "CREATING" } ], "UnsuccessfulList": [ ] } DescribeServers Descrive uno o più server NICE DCV. Argomenti • Parametri della richiesta (p. 4) • Parametri di risposta (p. 8) • Esempio (p. 8) Parametri della richiesta ServerIds Gli ID dei server NICE DCV da descrivere. Se non viene specificato alcun ID, tutti i server vengono restituiti in output impaginato. Type: Gamma di stringhe 14
NICE DCV Guida per gli sviluppatori Parametri di risposta Campo obbligatorio: No NextToken Token usato per recuperare la pagina successiva di risultati. Type: Stringa Campo obbligatorio: No MaxResults Numero massimo di risultati da restituire dalla richiesta nell'output impaginato. Quando si utilizza questo parametro, la richiesta restituisce solo il numero specificato di risultati in una singola pagina insieme aNextTokenelemento di risposta. I risultati rimanenti della richiesta iniziale possono essere visualizzati inviando un'altra richiesta con il resoNextTokenvalue. Intervallo valido: 1 - 1000 Impostazione predefinita 1000 Type: Numero intero Campo obbligatorio: No Parametri di risposta RequestId L'ID univoco della richiesta. Servers Informazioni sui server NICE DCV. Questa struttura dati include i seguenti parametri di risposta nidificati: Id ID univoco del server NICE DCV. Ip L'indirizzo IP del server NICE DCV. Hostname Il nome host del server NICE DCV. Endpoints Informazioni sugli endpoint del server NICE DCV. Questa struttura dati include i seguenti parametri di risposta nidificati: IpAddress L'indirizzo IP dell'endpoint del server. Port La porta dell'endpoint server. Protocol Il protocollo utilizzato dall'endpoint del server. I valori possibili includono: • HTTP— L'endpoint utilizza il WebSocket TCP (Transmission • QUIC— L'endpoint utilizza il protocollo QUIC (UDP). 15
NICE DCV Guida per gli sviluppatori Parametri di risposta WebUrlPath Il percorso dell'URL Web dell'endpoint del server. Disponibile solo per il protocollo HTTP. Version La versione del server NICE DCV. SessionManagerAgentVersion La versione Session Manager Agent in esecuzione sul server NICE DCV. Availability La disponibilità del server NICE DCV. I valori possibili includono: • AVAILABLE— Il server è disponibile e pronto per il posizionamento della sessione. • UNAVAILABLE— Il server non è disponibile e non può accettare il posizionamento della sessione. UnavailabilityReason Il motivo dell'indisponibilità del server NICE DCV. I valori possibili includono: • SERVER_FULL— Il server NICE DCV ha raggiunto il numero massimo di sessioni simultanee che può essere eseguito. • SERVER_CLOSED— Il server NICE DCV è stato reso non disponibile utilizzando ilCloseServerAPI. • UNREACHABLE_AGENT— Il Session Manager Broker non è in grado di comunicare con il Session Manager Agent sul server NICE DCV. • UNHEALTHY_DCV_SERVER— Il Session Manager Agent non è in grado di comunicare con il server NICE DCV. • EXISTING_LOGGED_IN_USER— (solo server Windows NICE DCV) Un utente è attualmente connesso al server NICE DCV utilizzando RDP. • UNKNOWN— Il Session Manager Broker non è in grado di determinare il motivo. ConsoleSessionCount Il numero di sessioni console sul server NICE DCV. VirtualSessionCount Il numero di sessioni virtuali sul server NICE DCV. Host Informazioni sul server host su cui è in esecuzione il server NICE DCV. Questa struttura dati include i seguenti parametri di risposta nidificati: Os Informazioni sul sistema operativo del server host. Questa struttura dati include i seguenti parametri di risposta nidificati: Family La famiglia di sistemi operativi. I valori possibili includono: • windows: il server host esegue un sistema operativo Windows. • linux— Il server host esegue un sistema operativo Linux. Name Il nome del sistema operativo. Version La versione del sistema operativo. 16
NICE DCV Guida per gli sviluppatori Parametri di risposta KernelVersion (Solo Linux) La versione del kernel del sistema operativo. BuildNumber (Solo Windows) Il numero di build del sistema operativo. Memory Informazioni sulla memoria del server host. Questa struttura dati include i seguenti parametri di risposta nidificati: TotalBytes La memoria totale, in byte, sul server host. UsedBytes La memoria utilizzata, in byte, sul server host. Swap Informazioni sul file di swap del server host. Questa struttura dati include i seguenti parametri di risposta nidificati: TotalBytes La dimensione totale del file di swap, in byte, sul server host. UsedBytes La dimensione del file di swap utilizzato, in byte, sul server host. Aws Solo per server NICE DCV in esecuzione su un'istanza Amazon EC2.AWS-informazioni specifiche. Questa struttura dati include i seguenti parametri di risposta nidificati: Region LaAWSRegione dell'istanza Amazon EC2. Ec2InstanceType Il tipo di istanza Amazon EC2. Ec2InstanceId L'ID dell'istanza Amazon EC2. Ec2ImageId L'ID dell'immagine Amazon EC2. CpuInfo Informazioni sulle CPU del server host. Questa struttura dati include i seguenti parametri di risposta nidificati: Vendor Il fornitore della CPU del server host. ModelName Il nome del modello della CPU del server host. Architecture L'architettura della CPU del server host. 17
NICE DCV Guida per gli sviluppatori Esempio NumberOfCpus Il numero di CPU sul server host. PhysicalCorePerCpu Il numero di core CPU per CPU. CpuLoadAverage Informazioni sul carico della CPU del server host. Questa struttura dati include i seguenti parametri di risposta nidificati: OneMinute Il carico medio della CPU nell'ultimo periodo di 1 minuto. FiveMinutes Il carico medio della CPU nell'ultimo periodo di 5 minuti. FifteenMinutes Il carico medio della CPU nell'ultimo periodo di 15 minuti. Gpus Informazioni sulle GPU del server host. Questa struttura dati include i seguenti parametri di risposta nidificati: Vendor Il fornitore della GPU del server host. ModelName Il nome del modello della GPU del server host. LoggedInUsers Gli utenti che hanno attualmente effettuato l'accesso al server host. Questa struttura dati include il seguente parametro di risposta nidificato: Username Il nome utente dell'utente connesso. Tags I tag assegnati al server. Questa struttura dati include i seguenti parametri di risposta nidificati: Key La chiave di tag: Value Il valore del tag. Esempio Python Richiesta L'esempio seguente descrive tutti i server NICE DCV disponibili. I risultati sono impaginati per mostrare due risultati per pagina. 18
NICE DCV Guida per gli sviluppatori Esempio from swagger_client.models.describe_servers_request_data import DescribeServersRequestData def get_servers_api(): api_instance = swagger_client.ServersApi(swagger_client.ApiClient(get_client_configuration())) set_request_headers(api_instance.api_client) return api_instance def describe_servers(server_ids=None, next_token=None, max_results=None): request = DescribeServersRequestData(server_ids=server_ids, next_token=next_token, max_results=max_results) print('Describe Servers Request:', request) api_instance = get_servers_api() api_response = api_instance.describe_servers(body=request) print('Describe Servers Response', api_response) def main(): describe_servers(max_results=2) Risposta Di seguito è riportato un output di esempio. { "RequestId": "request-id-123", "Servers": [ { "Id": "ServerId123", "Ip": "1.1.1.123", "Hostname": "node001", "DefaultDnsName": "node001", "Endpoints": [ { "IpAddress": "x.x.x.x", "Port": 8443, "WebUrlPath": "/", "Protocol": "HTTP" } ], "Version": "2021.0.10000", "SessionManagerAgentVersion": "2021.0.300", "Availability": "UNAVAILABLE", "UnavailabilityReason": "SERVER_FULL", "ConsoleSessionCount": 1, "VirtualSessionCount": 0, "Host": { "Os": { "Family": "windows", "Name": "Windows Server 2016 Datacenter", "Version": "10.0.14393", "BuildNumber": "14393" }, "Memory": { "TotalBytes": 8795672576, "UsedBytes": 1743886336 }, "Swap": { "TotalBytes": 0, "UsedBytes": 0 }, "Aws": { "Region": "us-west-2b", "EC2InstanceType": "t2.large", 19
NICE DCV Guida per gli sviluppatori Esempio "EC2InstanceId": "i-123456789", "EC2ImageId": "ami-12345678987654321" }, "CpuInfo": { "Vendor": "GenuineIntel", "ModelName": "Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz", "Architecture": "x86_64", "NumberOfCpus": 2, "PhysicalCoresPerCpu": 3 }, "CpuLoadAverage": { "OneMinute": 0.04853546, "FiveMinutes": 0.21060601, "FifteenMinutes": 0.18792416 }, "Gpus": [], "LoggedInUsers": [ { "Username": "Administrator" } ] }, "Tags": [ { "Key": "color", "Value": "pink" }, { "Key": "dcv:os-family", "Value": "windows" }, { "Key": "size", "Value": "small" }, { "Key": "dcv:max-virtual-sessions", "Value": "0" } ] }, { "Id": "server-id-12456897", "Ip": "1.1.1.145", "Hostname": "node002", "DefaultDnsName": "node002", "Endpoints": [ { "IpAddress": "x.x.x.x", "Port": 8443, "WebUrlPath": "/", "Protocol": "HTTP" }, { "IpAddress": "x.x.x.x", "Port": 8443, "Protocol": "QUIC" } ], "Version": "2021.0.10000", "SessionManagerAgentVersion": "2021.0.0", "Availability": "AVAILABLE", "ConsoleSessionCount": 0, "VirtualSessionCount": 5, "Host": { "Os": { 20
NICE DCV Guida per gli sviluppatori Esempio "Family": "linux", "Name": "Amazon Linux", "Version": "2", "KernelVersion": "4.14.203-156.332.amzn2.x86_64" }, "Memory": { "TotalBytes": 32144048128, "UsedBytes": 2184925184 }, "Swap": { "TotalBytes": 0, "UsedBytes": 0 }, "Aws": { "Region": "us-west-2a", "EC2InstanceType": "g3s.xlarge", "EC2InstanceId": "i-123456789", "EC2ImageId": "ami-12345678987654321" }, "CpuInfo": { "Vendor": "GenuineIntel", "ModelName": "Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz", "Architecture": "x86_64", "NumberOfCpus": 4, "PhysicalCoresPerCpu": 2 }, "CpuLoadAverage": { "OneMinute": 2.24, "FiveMinutes": 0.97, "FifteenMinutes": 0.74 }, "Gpus": [ { "Vendor": "NVIDIA Corporation", "ModelName": "GM204GL [Tesla M60]" } ], "LoggedInUsers": [ { "Username" : "user45687" }, { "Username" : "user789" } ] }, "Tags": [ { "Key": "size", "Value": "big" }, { "Key": "dcv:os-family", "Value": "linux" }, { "Key": "dcv:max-virtual-sessions", "Value": "10" }, { "Key": "color", "Value": "blue" } ] } ] 21
NICE DCV Guida per gli sviluppatori DescribeSessions } DescribeSessions Descrive una o più sessioni NICE DCV. Argomenti • Parametri della richiesta (p. 4) • Parametri di risposta (p. 8) • Esempio (p. 8) Parametri della richiesta SessionIds Gli ID delle sessioni da descrivere. Type: Stringa Campo obbligatorio: No NextToken Token usato per recuperare la pagina successiva di risultati. Type: Stringa Campo obbligatorio: No Filters Filtri aggiuntivi da applicare alla richiesta. I filtri supportati includono: • tag:key: i tag assegnati alla sessione. • Owner: il proprietario della sessione. Type: Stringa Campo obbligatorio: No Parametri di risposta Id L'ID univoco della sessione. Name Il nome della sessione. Owner Il proprietario della sessione. 22
NICE DCV Guida per gli sviluppatori Parametri di risposta Server Informazioni sul server su cui è in esecuzione la sessione. Questa struttura dati include i seguenti parametri di risposta nidificati: Ip L'indirizzo IP dell'host del server NICE DCV. Hostname Il nome host dell'host del server NICE DCV. Port La porta attraverso la quale il server NICE DCV comunica con i client NICE DCV. Endpoints Informazioni sugli endpoint del server NICE DCV. Questa struttura dati include i seguenti parametri di risposta nidificati: IpAddress L'indirizzo IP dell'endpoint del server. Port La porta dell'endpoint server. Protocol Il protocollo utilizzato dall'endpoint del server. I valori possibili includono: • HTTP— L'endpoint utilizza il WebSocket TCP (Transmission • QUIC— L'endpoint utilizza il protocollo QUIC (UDP). WebUrlPath Il percorso URL Web dell'endpoint del server. Disponibile solo per il protocollo HTTP. Tags I tag assegnati al server. Questa struttura dati include i seguenti parametri di risposta nidificati: Key La chiave di tag: Value Il valore del tag. Type Il tipo di sessione. State Lo stato corrente della sessione. I valori possibili sono: • CREATING: il Broker è in fase di creazione della sessione. • READY- la sessione è pronta ad accettare connessioni client. • DELETING: la sessione è in fase di eliminazione. • DELETED: la sessione è stata eliminata. 23
NICE DCV Guida per gli sviluppatori Esempio • UNKNOWN- impossibile determinare lo stato della sessione. Il Broker e l'Agente potrebbero non essere in grado di comunicare. CreationTime Data e ora di creazione della sessione. LastDisconnectionTime La data e l'ora dell'ultima disconnessione del client. NumOfConnections Il numero di connessioni client attive. StorageRoot Specifica il percorso della cartella usato per lo storage della sessione. Per ulteriori informazioni sull'archiviazione di sessioni NICE DCV, vedereAbilitazione dello storage della sessionenellaNICE DCV. Type: Stringa Campo obbligatorio: No Esempio Python Richiesta L'esempio seguente descrive le sessioni di proprietà diuser1e avere un tag dios=windows. from swagger_client.models.describe_sessions_request_data import DescribeSessionsRequestData from swagger_client.models.key_value_pair import KeyValuePair def get_sessions_api(): api_instance = swagger_client.SessionsApi(swagger_client.ApiClient(get_client_configuration())) set_request_headers(api_instance.api_client) return api_instance def describe_sessions(session_ids=None, next_token=None, tags=None, owner=None): filters = list() if tags: for tag in tags: filter_key_value_pair = KeyValuePair(key='tag:' + tag['Key'], value=tag['Value']) filters.append(filter_key_value_pair) if owner: filter_key_value_pair = KeyValuePair(key='owner', value=owner) filters.append(filter_key_value_pair) request = DescribeSessionsRequestData(session_ids=session_ids, filters=filters, next_token=next_token) print('Describe Sessions Request:', request) api_instance = get_sessions_api() api_response = api_instance.describe_sessions(body=request) 24
NICE DCV Guida per gli sviluppatori Esempio print('Describe Sessions Response', api_response) def main(): describe_sessions( owner='user1', tags=[{'Key': 'os', 'Value': 'windows'}]) Risposta Di seguito è riportato un output di esempio. { "Sessions": [ { "Id": "SessionId1897", "Name": "a session name", "Owner": "an owner 1890", "Server": { "Ip": "1.1.1.123", "Hostname": "server hostname", "Port": "1222", "Endpoints": [ { "IpAddress": "x.x.x.x", "Port": 8443, "WebUrlPath": "/", "Protocol": "HTTP" }, { "IpAddress": "x.x.x.x", "Port": 9443, "WebUrlPath": "/", "Protocol": "HTTP" }, { "IpAddress": "x.x.x.x", "Port": 8443, "WebUrlPath": "", "Protocol": "QUIC" } ], "Tags": [ { "Key": "os", "Value": "windows" }, { "Key": "ram", "Value": "4gb" } ] }, "Type": "VIRTUAL", "State": "READY", "CreationTime": "2020-10-06T10:15:31.633Z", "LastDisconnectionTime": "2020-10-06T10:15:31.633Z", "NumOfConnections": 2, "StorageRoot" : "/storage/root" }, { "Id": "SessionId1895", "Name": "a session name", "Owner": "an owner 1890", "Server": { "Ip": "1.1.1.123", 25
NICE DCV Guida per gli sviluppatori DeleteSessions "Hostname": "server hostname", "Port": "1222", "Endpoints": [ { "IpAddress": "x.x.x.x", "Port": 8443, "WebUrlPath": "/", "Protocol": "HTTP" }, { "IpAddress": "x.x.x.x", "Port": 9443, "WebUrlPath": "/", "Protocol": "HTTP" }, { "IpAddress": "x.x.x.x", "Port": 8443, "WebUrlPath": "", "Protocol": "QUIC" } ], "Tags": [ { "Key": "os", "Value": "windows" }, { "Key": "ram", "Value": "4gb" } ] }, "Type": "VIRTUAL", "State": "DELETING", "CreationTime": "2020-10-06T10:15:31.633Z", "LastDisconnectionTime": "2020-10-06T10:15:31.633Z", "NumOfConnections": 2, "StorageRoot" : "/storage/root" } ] } DeleteSessions Elimina la sessione NICE DCV specificata e la rimuove dalla cache del Broker. Argomenti • Parametri della richiesta (p. 4) • Parametri di risposta (p. 8) • Esempio (p. 8) Parametri della richiesta SessionId L'ID della sessione da eliminare. Type: Stringa 26
Puoi anche leggere