Используйте пользовательский плагин шлюза в расширении вашего инструмента
В этой статье мы будем использовать пользовательский подключаемый модуль шлюза в новом, пустом расширении инструментов, созданном с помощью интерфейса командной строки 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.