octet service
WEB API для MICROSOFT HYpER-V
Получите возможность управления виртуальными машинами через rest api
Стоимость лицензии составляет 5000 руб. Мы рады услышать пожелания, поэтому направляйте их на manager@octet.spb.ru
В процессе разработки сейчас находится следующий функционал:
-Создание виртуальной машины
-Выполнение удаленных команд на хосте
Запрос должен содержать токен (параметр key) из настроек службы и параметр action, который определяет действие
http://127.0.0.1:8088/?key=sdfoj3429mgfi823jhrniefj8123423ieufmwiefm239854r234&action=listДанный запрос вернет список виртуальных машин с сервера localhost. Для получения данных с другого сервера требуется указать параметр server
Ответ json:
Adapters: [{Name: "Тест", MacAddress: "00155DB45402", SwitchName: null}]
AdministratorPassword: null
BootFromCD: true
CpuCores: 2
CpuUsage: 0
CreatedDate: "0001-01-01T00:00:00"
CurrentTaskId: null
Disks: [{FileSize: 33554432, MaxInternalSize: 161061273600, ParentPath: null, DiskType: 3,…}]
Domain: null
DvdDriveInstalled: false
DynamicMemory: null
ExternalNetworkEnabled: false
ExternalNicMacAddress: null
ExternalSwitchId: null
Generation: 2
HddLogicalDisks: null
HddSize: 0
Heartbeat: 0
Hostname: null
Id: 0
LegacyNetworkAdapter: false
ManagementNetworkEnabled: false
ManagementNicMacAddress: null
ManagementSwitchId: null
Name: "PXE"
NumLockEnabled: false
OS: null
OperatingSystemTemplate: null
OperatingSystemTemplatePath: null
ParentSnapshotId: null
PauseResumeAllowed: false
PrivateNetworkEnabled: false
PrivateNicMacAddress: null
PrivateSwitchId: null
ProcessorCount: 0
Properties: null
ProvisioningStatus: 0
RamSize: 2048
RamUsage: 0
RebootAllowed: false
ReinstallAllowed: false
RemoteDesktopEnabled: false
ReplicationState: 0
ResetAllowed: false
RootFolderPath: null
SnapshotsNumber: 0
StartTurnOffAllowed: false
State: 3
Status: null
TypeId: 0
Uptime: 0
VirtualHardDrivePath: "C:\\VM\\PXE\\PXE\\Virtual Hard Disks\\PXE.vhdx"
VirtualMachineId: "78656409-A993-4345-BD8D-7E43B3C2F092"
Данный метод возвращает список виртуальных машин с их характеристиками. Поддерживается параметр server
http://127.0.0.1:8088/?key=sdfoj3429mgfi823jhrniefj8123423ieufmwiefm239854r234&action=listДанный запрос вернет список виртуальных машин с сервера localhost
Ответ:
Adapters: [{Name: "Тест", MacAddress: "00155DB45402", SwitchName: null}]
AdministratorPassword: null
BootFromCD: true
CpuCores: 2
CpuUsage: 0
CreatedDate: "0001-01-01T00:00:00"
CurrentTaskId: null
Disks: [{FileSize: 33554432, MaxInternalSize: 161061273600, ParentPath: null, DiskType: 3,…}]
Domain: null
DvdDriveInstalled: false
DynamicMemory: null
ExternalNetworkEnabled: false
ExternalNicMacAddress: null
ExternalSwitchId: null
Generation: 2
HddLogicalDisks: null
HddSize: 0
Heartbeat: 0
Hostname: null
Id: 0
LegacyNetworkAdapter: false
ManagementNetworkEnabled: false
ManagementNicMacAddress: null
ManagementSwitchId: null
Name: "PXE"
NumLockEnabled: false
OS: null
OperatingSystemTemplate: null
OperatingSystemTemplatePath: null
ParentSnapshotId: null
PauseResumeAllowed: false
PrivateNetworkEnabled: false
PrivateNicMacAddress: null
PrivateSwitchId: null
ProcessorCount: 0
Properties: null
ProvisioningStatus: 0
RamSize: 2048
RamUsage: 0
RebootAllowed: false
ReinstallAllowed: false
RemoteDesktopEnabled: false
ReplicationState: 0
ResetAllowed: false
RootFolderPath: null
SnapshotsNumber: 0
StartTurnOffAllowed: false
State: 3
Status: null
TypeId: 0
Uptime: 0
VirtualHardDrivePath: "C:\\VM\\PXE\\PXE\\Virtual Hard Disks\\PXE.vhdx"
VirtualMachineId: "78656409-A993-4345-BD8D-7E43B3C2F092"
Данный метод возвращает скриншот экрана виртуальной машины. Требуется передать параметр id указывающий идентификатор виртуальной машины. Поддерживается параметр server
http://127.0.0.1:8088/?key=sdfoj3429mgfi823jhrniefj8123423ieufmwiefm239854r234&action=thumb&id=78656409-A993-4345-BD8D-7E43B3C2F092ответ содержит закодированный в base64 снимок экрана
Ответ:
{"src":"iVBORw0KGgoAAAANSUhEUgAAAUAAAADwCAYAAABxLb1rAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAMJSURBVH
he7dQxAQAwEAOh+rcXQV8hx4AF3rYDKBIgkCVAIEuAQJYAgSwBAlkCBLIECGQJEMgSIJAlQCBLgECWAIEsAQJZAgSyBAhkCRDIEiCQJUAgS4BAlgCBLAECWQIEsgQIZAkQyBIgkCV
AIEuAQJYAgSwBAlkCBLIECGQJEMgSIJAlQCBLgECWAIEsAQJZAgSyBAhkCRDIEiCQJUAgS4BAlgCBLAECWQIEsgQIZAkQyBIgkCVAIEuAQJYAgSwBAlkCBLIECGQJEMgSIJAlQCBLgEC
WAIEsAQJZAgSyBAhkCRDIEiCQJUAgS4BAlgCBLAECWQIEsgQIZAkQyBIgkCVAIEuAQJYAgSwBAlkCBLIECGQJEMgSIJAlQCBLgECWAIEsAQJZAgSyBAhkCRDIEiCQJUAgS4BAlgCBLAE
CWQIEsgQIZAkQyBIgkCVAIEuAQJYAgSwBAlkCBLIECGQJEMgSIJAlQCBLgECWAIEsAQJZAgSyBAhkCRDIEiCQJUAgS4BAlgCBLAECWQIEsgQIZAkQyBIgkCVAIEuAQJYAgSwBAlkCBLI
ECGQJEMgSIJAlQCBLgECWAIEsAQJZAgSyBAhkCRDIEiCQJUAgS4BAlgCBLAECWQIEsgQIZAkQyBIgkCVAIEuAQJYAgSwBAlkCBLIECGQJEMgSIJAlQCBLgECWAIEsAQJZAgSyBAhkCR
DIEiCQJUAgS4BAlgCBLAECWQIEsgQIZAkQyBIgkCVAIEuAQJYAgSwBAlkCBLIECGQJEMgSIJAlQCBLgECWAIEsAQJZAgSyBAhkCRDIEiCQJUAgS4BAlgCBLAECWQIEsgQIZAkQyBIgk
CVAIEuAQJYAgSwBAlkCBLIECGQJEMgSIJAlQCBLgECWAIEsAQJZAgSyBAhkCRDIEiCQJUAgS4BAlgCBLAECWQIEsgQIZAkQyBIgkCVAIEuAQJYAgSwBAlkCBLIECGQJEMgSIJAlQCBLgE
CWAIEsAQJZAgSyBAhkCRDIEiCQJUAgS4BAlgCBLAECWQIEsgQIRO0+xFHc8exoJDkAAAAASUVORK5CYII="}
Данный метод инициирует завершение работы операционной системы(корректное выключение). Требуется передать параметр id указывающий идентификатор виртуальной машины. Поддерживается параметр server
http://127.0.0.1:8088/?key=sdfoj3429mgfi823jhrniefj8123423ieufmwiefm239854r234&action=shutdown&id=78656409-A993-4345-BD8D-7E43B3C2F092ответ может содержать ошибку остановки или успешный код завершения
Ответ:
{"Id":"33B2DA07-49DF-495D-AC75-5A30AC51D8F4","JobState":10,"Cancellable":false,"Caption":"Завершение работы","Description":"Завершение работы виртуальной машины","ElapsedTime":"2022-04-07T10:53:47.020009+03:00","StartTime":"2022-04-07T10:53:46","ErrorCode":32768,"ErrorDescription":"Сбой остановки \"PXE\": Устройство не готово. (0x800710DF). (ИД виртуальной машины 78656409-A993-4345-BD8D-7E43B3C2F092)","PercentComplete":0,"TargetState":0}
Данный метод инициирует принудительное выключение виртуальной машины. Требуется передать параметр id указывающий идентификатор виртуальной машины. Поддерживается параметр server
http://127.0.0.1:8088/?key=sdfoj3429mgfi823jhrniefj8123423ieufmwiefm239854r234&action=off&id=78656409-A993-4345-BD8D-7E43B3C2F092ответ может содержать ошибку остановки или успешный код завершения
Ответ:
{"Id":"D7CBA876-5D8A-47B1-87EB-98D2FC3D67C9","JobState":4,"Cancellable":false,"Caption":"Выключение","Description":"Выключение виртуальной машины","ElapsedTime":"2022-04-07T10:54:58.3152202+03:00","StartTime":"2022-04-07T10:54:58","ErrorCode":0,"ErrorDescription":"","PercentComplete":0,"TargetState":0}
Данный метод инициирует включение виртуальной машины. Требуется передать параметр id указывающий идентификатор виртуальной машины. Поддерживается параметр server
http://127.0.0.1:8088/?key=sdfoj3429mgfi823jhrniefj8123423ieufmwiefm239854r234&action=start&id=78656409-A993-4345-BD8D-7E43B3C2F092ответ может содержать ошибку остановки или успешный код выполнения
Ответ:
{"Id":"D152A0B1-0B41-46DD-9D1E-ECE518957BE2","JobState":4,"Cancellable":false,"Caption":"Запуск","Description":"Инициализация и запуск виртуальной машины","ElapsedTime":"2022-04-07T10:55:48.715126+03:00","StartTime":"2022-04-07T10:55:48","ErrorCode":0,"ErrorDescription":"","PercentComplete":0,"TargetState":0}
Данный метод инициирует сброс виртуальной машины. Требуется передать параметр id указывающий идентификатор виртуальной машины. Поддерживается параметр server
http://127.0.0.1:8088/?key=sdfoj3429mgfi823jhrniefj8123423ieufmwiefm239854r234&action=reset&id=78656409-A993-4345-BD8D-7E43B3C2F092ответ может содержать ошибку остановки или успешный код выполнения
Ответ:
{"Id":"41C6328D-C046-450D-92AF-809BFBDA38FE","JobState":4,"Cancellable":false,"Caption":"Сброс","Description":"Сброс виртуальной машины","ElapsedTime":"2022-04-07T10:56:36.3081291+03:00","StartTime":"2022-04-07T10:56:36","ErrorCode":0,"ErrorDescription":"","PercentComplete":0,"TargetState":0}
Данный метод возвращает список виртуальных коммутаторов Hyper-V. Поддерживается параметр server
http://localhost:8088/?key=sdfoj3429mgfi823jhrniefj8123423ieufmwiefm239854r234&action=getexternalswitch
Ответ:
[{"SwitchId":"40F4A1DE-7348-4635-B6A2-8838F872E0C0","SwitchType":"External","Id":0,"TypeId":0,"Name":"ts","CreatedDate":"0001-01-01T00:00:00","Properties":null}]