Поделиться через


Использование пользовательского подключаемого модуля шлюза в расширении инструмента

В этой статье мы будем использовать пользовательский подключаемый модуль шлюза в новом, пустом расширении инструментов, созданном с помощью интерфейса командной строки Windows Admin Center.

Подготовка среды

Если вы еще не сделали этого, следуйте указаниям в разработке расширения средства для подготовки среды и создания нового, пустого расширения инструмента.

Добавление модуля в проект

Если вы еще не сделали этого, добавьте новый пустой модуль в проект, который мы будем использовать на следующем шаге.

Добавление интеграции в настраиваемый подключаемый модуль шлюза

Теперь мы будем использовать подключаемый модуль пользовательского шлюза в новом, пустом модуле, который мы только что создали.

Создание plugin.service.ts

Перейдите в каталог нового модуля инструментов, созданного выше (\src\app\{!Module-Name}), и создайте новый файл plugin.service.ts.

Добавьте следующий код в только что созданный файл:

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;
            }
        )
    }
}

Измените ссылки на Sample Uno имя функции и Sample%20Uno на нее соответствующим образом.

Предупреждение

Рекомендуется использовать встроенную функцию this.appContextService.node для вызова любого API, определенного в подключаемом модуле пользовательского шлюза. Это обеспечит правильную обработку учетных данных в подключаемом модуле шлюза.

Изменение module.ts

module.ts Откройте файл нового модуля, созданного ранее (т. е. {!Module-Name}.module.ts):

Добавьте в файл следующие операторы импорта:

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

Добавьте следующих поставщиков (после объявлений):

  ,
  providers: [
    HttpService,
    PluginService,
    Http
  ]

Изменение component.ts

component.ts Откройте файл нового модуля, созданного ранее (т. е. {!Module-Name}.component.ts):

Добавьте в файл следующие операторы импорта:

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';

Добавьте следующие переменные:

  private serviceSubscription: Subscription;
  private responseResult: string;

Измените конструктор и измените или добавьте следующие функции:

  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);
      }
    );
  }

Изменение component.html

component.html Откройте файл нового модуля, созданного ранее (т. е. {!Module-Name}.component.html):

Добавьте следующее содержимое в html-файл:

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

Сборка и загрузка расширения на стороне

Теперь вы готовы к сборке и загрузке расширения на стороне в Windows Admin Center.