Utilizzare un plug-in del gateway personalizzato nell'estensione dello strumento

Si applica a: Windows Admin Center e Windows Admin Center Preview

In questo articolo si userà un plug-in gateway personalizzato in una nuova estensione dello strumento vuota creata con l'interfaccia della riga di comando di Windows Admin Center.

Predisporre l'ambiente

Se non è già stato fatto, seguire le istruzioni relative allo sviluppo di un'estensione dello strumento per preparare l'ambiente e creare una nuova estensione dello strumento vuota.

Aggiungere un modulo a un progetto

Se non è già stato fatto, aggiungere un nuovo modulo vuoto al progetto, che verrà usato nel passaggio successivo.

Aggiungere l'integrazione al plug-in del gateway personalizzato

A questo punto si userà un plug-in gateway personalizzato nel nuovo modulo vuoto appena creato.

Creare plugin.service.ts

Passare alla directory del nuovo modulo dello strumento creato in precedenza (\src\app\{!Module-Name}) e creare un nuovo file plugin.service.ts.

Aggiungere il codice seguente al file appena creato:

import { Injectable } from '@angular/core';
import { AppContextService, HttpService } from '@microsoft/windows-admin-center-sdk/angular';
import { Cim, Http, PowerShell, PowerShellSession } from '@microsoft/windows-admin-center-sdk/core';
import { AjaxResponse, Observable } from 'rxjs';

@Injectable()
export class PluginService {
    constructor(private appContextService: AppContextService, private http: Http) {
    }

    public getGatewayRestResponse(): Observable<any> {
        let callUrl = this.appContextService.activeConnection.nodeName;

        return this.appContextService.node.get(callUrl, 'features/Sample%20Uno').map(
            (response: any) => {
                return response;
            }
        )
    }
}

Modificare i riferimenti a Sample Uno e Sample%20Uno al nome della funzionalità in base alle esigenze.

Avviso

È consigliabile usare il this.appContextService.node incorporato per chiamare qualsiasi API definita nel plug-in del gateway personalizzato. In questo modo si garantisce che le credenziali, se necessarie all'interno del plug-in del gateway, verranno gestite correttamente.

Modificare module.ts

Aprire il file module.ts del nuovo modulo creato in precedenza (ad esempio {!Module-Name}.module.ts):

Aggiungere le seguenti istruzioni Import:

import { HttpService } from '@microsoft/windows-admin-center-sdk/angular';
import { Http } from '@microsoft/windows-admin-center-sdk/core';
import { PluginService } from './plugin.service';

Aggiungere i provider seguenti (dopo le dichiarazioni):

  ,
  providers: [
    HttpService,
    PluginService,
    Http
  ]

Modificare component.ts

Aprire il file component.ts del nuovo modulo creato in precedenza (ad esempio {!Module-Name}.component.ts):

Aggiungere le seguenti istruzioni Import:

import { ActivatedRouteSnapshot } from '@angular/router';
import { AppContextService } from '@microsoft/windows-admin-center-sdk/angular';
import { Subscription } from 'rxjs';
import { Strings } from '../../generated/strings';
import { PluginService } from './plugin.service';

Aggiungere le variabili seguenti:

  private serviceSubscription: Subscription;
  private responseResult: string;

Modificare il costruttore e modificare o aggiungere le funzioni seguenti:

  constructor(private appContextService: AppContextService, private plugin: PluginService) {
    //
  }

  public ngOnInit() {
    this.responseResult = 'click go to do something';
  }

  public onClick() {
    this.serviceSubscription = this.plugin.getGatewayRestResponse().subscribe(
      (response: any) => {
        this.responseResult = 'response: ' + response.message;
      },
      (error) => {
        console.log(error);
      }
    );
  }

Modificare component.html

Aprire il file component.html del nuovo modulo creato in precedenza (ad esempio {!Module-Name}.component.html):

Aggiungere il seguente contenuto nel file html:

<button (click)="onClick()" >go</button>
{{ responseResult }}

Compilare e trasferire localmente l'estensione

Ora è possibile compilare e trasferire localmente l'estensione in Windows Admin Center.