Ниже приведён пример использования операции SetMbUpdate для запуска установки обновления. В запросе передаётся моникёр обновления и параметры выполнения установки. Операция выполняется в синхронном режиме, но не ожидает завершения самого процесса установки. Для мониторинга статуса установки обновления используйте периодический вызов операции GetMbUpdate. Установка обновления будет завершена, когда в поле SetMbUpdateResult.meta.execute.state будет получено значение Finished или FinishedWithError.
В ответе приходит информация о результатах установки.
{
"SetMbUpdate" :
{
"tMbUpdate" :
{
"id" : "HIDMDIEFBHCHGOAEGIHPHLGMDNKCMEDEBIGGMJJBPLDGFEOG!M!S!MbUpdOJFBNIEFBHCHGOAEJCKDBGBGODBNBCBEIIDAJOFDEKCIONGC"
},
"tArg" :
{
"pattern" :
{
"execute" : "true"
},
"meta" :
{
"execute" :
{
"command" : "Apply",
"async" : "false"
}
},
"metaGet" :
{
"execute" : "true"
}
}
}
}
{
"SetMbUpdateResult" :
{
"id" :
{
"id" : "HIDMDIEFBHCHGOAEGIHPHLGMDNKCMEDEBIGGMJJBPLDGFEOG!M!S!MbUpdOJFBNIEFBHCHGOAEJCKDBGBGODBNBCBEIIDAJOFDEKCIONGC"
},
"meta" :
{
"execute" :
{
"resolveTimeout" : "600000",
"state" : "Waiting",
"callback" :
{
"onProgress" :
{
"stage" : "Start",
"total" : "1",
"current" : "1"
}
}
}
}
}
}
public static SetMbUpdateResult ApplyUpdate(string moniker)
{
var somClient = new SomPortTypeClient(); // Прокси-объект для выполнения операций
// Параметры выполнения операции
var tSet = new SetMbUpdate()
{
tArg = new SetMbUpdateArg()
{
pattern = new MbUpdateMdPattern()
{
execute = true
},
meta = new MbUpdateMd()
{
execute = new MbUpdateExecute()
{
command = MbUpdateExecuteCommand.Apply,
async = false
},
},
metaGet = new MbUpdateMdPattern()
{
execute = true
}
},
tMbUpdate = new MbUpdateId() { id = moniker }
};
// Запуск установки обновления
var result = somClient.SetMbUpdate(tSet);
return result;
}
См. также: