fix(aihit): изменены уровни журналирования, исправлена ошибка Null данных в рабочей группе, как оказалось АИХ ИТ одпускает такое значение
This commit is contained in:
@@ -63,24 +63,28 @@ namespace PARR.AIHIT
|
|||||||
var respAreas = await settingService.Get()
|
var respAreas = await settingService.Get()
|
||||||
.Where(ra => ra.Group == AIHTITSettings.RespAreaGroupName)
|
.Where(ra => ra.Group == AIHTITSettings.RespAreaGroupName)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
#if !DEBUG
|
//#if !DEBUG
|
||||||
//Запускаем хранимую процедуру в АИХ ИТ и складываем в таблицу RawDataEKs, предварительно почистив старые данные
|
//Запускаем хранимую процедуру в АИХ ИТ и складываем в таблицу RawDataEKs, предварительно почистив старые данные
|
||||||
foreach (var respArea in respAreas)
|
foreach (var respArea in respAreas)
|
||||||
{
|
{
|
||||||
|
logger.LogDebug($"-= Получение данных об ЭК зоны ответственности {respArea.Name} =-");
|
||||||
var eksFromAIHIT = aihitService.GetEKList(respArea.Value)?.ToList();
|
var eksFromAIHIT = aihitService.GetEKList(respArea.Value)?.ToList();
|
||||||
|
|
||||||
if (eksFromAIHIT == null)
|
if (eksFromAIHIT == null)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
//Удаляем текущие данные по зоне ответственности respArea
|
//Удаляем текущие данные по зоне ответственности respArea
|
||||||
|
logger.LogDebug($"-= Удаление существующих данных об ЭК зоны ответственности {respArea.Name} =-");
|
||||||
var toDelete = rawDataEKService.Get().Where(rd => rd.ResponseArea == respArea.Value).ToList();
|
var toDelete = rawDataEKService.Get().Where(rd => rd.ResponseArea == respArea.Value).ToList();
|
||||||
toDelete.ForEach(d => rawDataEKService.Delete(d));
|
toDelete.ForEach(d => rawDataEKService.Delete(d));
|
||||||
|
|
||||||
if(!await rawDataEKService.CommitAsync())
|
if(!await rawDataEKService.CommitAsync())
|
||||||
{
|
{
|
||||||
logger.LogError($"Не удалось создать удалить записи в rawDataEK зоны ответственности {respArea.Name}");
|
logger.LogError($"Не удалось создать удалить записи в rawDataEK зоны ответственности {respArea.Name}");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
logger.LogDebug($"-= Создание новых записей об ЭК зоны ответственности {respArea.Name} =-");
|
||||||
foreach (var ek in eksFromAIHIT)
|
foreach (var ek in eksFromAIHIT)
|
||||||
{
|
{
|
||||||
// создаем
|
// создаем
|
||||||
@@ -96,12 +100,16 @@ namespace PARR.AIHIT
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
logger.LogInformation($"----- Создана запись rawDataEK {mappedEK.ShortName}({mappedEK.IP}), зона ответственности {respArea.Name} -----");
|
logger.LogInformation($"Создана запись rawDataEK {mappedEK.ShortName}({mappedEK.IP}), зона ответственности {respArea.Name}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
logger.LogDebug($"-= Запись в базу данных записей об ЭК зоны ответственности {respArea.Name} ");
|
||||||
if (!await rawDataEKService.CommitAsync())
|
if (!await rawDataEKService.CommitAsync())
|
||||||
logger.LogError($"Информация о хостах зоны ответственности {respArea.Name} не записана ");
|
logger.LogError($"Информация о хостах зоны ответственности {respArea.Name} не записана ");
|
||||||
|
|
||||||
|
logger.LogDebug($"-= Конец синхронизации данных об ЭК зоны ответственности {respArea.Name} =-");
|
||||||
}
|
}
|
||||||
#endif
|
//#endif
|
||||||
//Разбираем сырые данные
|
//Разбираем сырые данные
|
||||||
|
|
||||||
//Получаем интересующие статусы ЭК
|
//Получаем интересующие статусы ЭК
|
||||||
@@ -113,7 +121,7 @@ namespace PARR.AIHIT
|
|||||||
if (statusList == null || statusList.Count == 0)
|
if (statusList == null || statusList.Count == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
//Берём только активные шаблоны
|
//Берём только активные ЭК
|
||||||
var eks = await rawDataEKService.Get()
|
var eks = await rawDataEKService.Get()
|
||||||
.Where(e => e.IsActive == "t" && (e.Status != null && statusList.Contains(e.Status.Trim())))
|
.Where(e => e.IsActive == "t" && (e.Status != null && statusList.Contains(e.Status.Trim())))
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
@@ -153,7 +161,7 @@ namespace PARR.AIHIT
|
|||||||
foundHost.EkStatusCode = mappedHost.EkStatusCode;
|
foundHost.EkStatusCode = mappedHost.EkStatusCode;
|
||||||
isChanged = true;
|
isChanged = true;
|
||||||
}
|
}
|
||||||
else if (mappedHost.WorkGroup != null && !foundHost.WorkGroup!.Equals(mappedHost.WorkGroup))
|
else if (mappedHost.WorkGroup != null && (foundHost.WorkGroup == null || !foundHost.WorkGroup!.Equals(mappedHost.WorkGroup)))
|
||||||
{
|
{
|
||||||
foundHost.WorkGroup = mappedHost.WorkGroup;
|
foundHost.WorkGroup = mappedHost.WorkGroup;
|
||||||
isChanged = true;
|
isChanged = true;
|
||||||
@@ -165,7 +173,7 @@ namespace PARR.AIHIT
|
|||||||
if (!await hostService.CommitAsync())
|
if (!await hostService.CommitAsync())
|
||||||
logger.LogError($"Не удалось обновить узел {mappedHost.IP}");
|
logger.LogError($"Не удалось обновить узел {mappedHost.IP}");
|
||||||
else
|
else
|
||||||
logger.LogInformation($"----- Обновлён Host: {mappedHost.Id} -----");
|
logger.LogInformation($"Обновлён Host: {mappedHost.Id}");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Синхронизация Applications
|
// Синхронизация Applications
|
||||||
@@ -181,7 +189,7 @@ namespace PARR.AIHIT
|
|||||||
if (host == null)
|
if (host == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
logger.LogInformation($"--- Host: {host.Id}, начало синхронизации приложений ({hostApplications.Count()}) ---");
|
logger.LogDebug($"Host: {host.Ek}({host.IP}), начало синхронизации приложений ({hostApplications.Count()}) ");
|
||||||
|
|
||||||
foreach (var changedHostApp in hostApplications)
|
foreach (var changedHostApp in hostApplications)
|
||||||
{
|
{
|
||||||
@@ -190,11 +198,11 @@ namespace PARR.AIHIT
|
|||||||
if (exist == null)
|
if (exist == null)
|
||||||
{
|
{
|
||||||
//add
|
//add
|
||||||
logger.LogInformation($"Host: {host.Id}, добавление нового приложения Application {changedHostApp.Name}");
|
logger.LogInformation($"Host: {host.Ek}({host.IP}), добавление нового приложения Application {changedHostApp.Name}");
|
||||||
|
|
||||||
var newAppHost = new ApplicationInHost { Id = Guid.NewGuid(), ApplicationId = changedHostApp.Id, HostId = host.Id };
|
var newAppHost = new ApplicationInHost { Id = Guid.NewGuid(), ApplicationId = changedHostApp.Id, HostId = host.Id };
|
||||||
if (!await appInHostService.CreateAsync(newAppHost))
|
if (!await appInHostService.CreateAsync(newAppHost))
|
||||||
logger.LogError($"Не удалось создать ApplicationInHost {changedHostApp.Name}, host: {host.Id}");
|
logger.LogError($"Не удалось создать ApplicationInHost {changedHostApp.Name}, host: {host.Ek}({host.IP})");
|
||||||
|
|
||||||
isUpdated = true;
|
isUpdated = true;
|
||||||
}
|
}
|
||||||
@@ -210,7 +218,7 @@ namespace PARR.AIHIT
|
|||||||
var obj = await appInHostService.Get().FirstOrDefaultAsync(t => t.ApplicationId == app.Id && t.HostId == host.Id);
|
var obj = await appInHostService.Get().FirstOrDefaultAsync(t => t.ApplicationId == app.Id && t.HostId == host.Id);
|
||||||
if (obj != null)
|
if (obj != null)
|
||||||
{
|
{
|
||||||
logger.LogInformation($"Host: {host.Id}, удаление неактуального приложения Application {app.Application?.Name}");
|
logger.LogInformation($"Host: {host.Ek}({host.IP}), удаление неактуального приложения Application {app.Application?.Name}");
|
||||||
appInHostService.Delete(obj);
|
appInHostService.Delete(obj);
|
||||||
|
|
||||||
isUpdated = true;
|
isUpdated = true;
|
||||||
@@ -222,16 +230,16 @@ namespace PARR.AIHIT
|
|||||||
host.DateModified = DateTimeOffset.UtcNow;
|
host.DateModified = DateTimeOffset.UtcNow;
|
||||||
|
|
||||||
if (!await appInHostService.CommitAsync())
|
if (!await appInHostService.CommitAsync())
|
||||||
logger.LogError($"Не удалось обновить ApplicationInHost для Host: {host.Id}");
|
logger.LogError($"Не удалось обновить ApplicationInHost для Host: {host.Ek}({host.IP})");
|
||||||
|
|
||||||
logger.LogInformation($"=== Host: {host.Id} конец синхронизации приложений ===");
|
logger.LogDebug($"Host: {host.Ek}({host.IP} конец синхронизации приложений");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private async Task<List<Application>> GetAndFillApplicationsAsync(RawDataEK vm)
|
private async Task<List<Application>> GetAndFillApplicationsAsync(RawDataEK vm)
|
||||||
{
|
{
|
||||||
logger.LogInformation($"--- Начало парсинга данных о программном обеспечении(СП, БД, ОС) из АИХ ИТ ---");
|
logger.LogDebug($"Начало парсинга данных о программном обеспечении(СП, БД, ОС) из АИХ ИТ");
|
||||||
var applications = new List<Application>();
|
var applications = new List<Application>();
|
||||||
|
|
||||||
if (vm.APPType != null)
|
if (vm.APPType != null)
|
||||||
@@ -265,7 +273,7 @@ namespace PARR.AIHIT
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.LogInformation($"=== Конец парсинга данных о программном обеспечении(СП, БД, ОС) из АИХ ИТ ===");
|
logger.LogDebug($"Конец парсинга данных о программном обеспечении(СП, БД, ОС) из АИХ ИТ");
|
||||||
|
|
||||||
return applications;
|
return applications;
|
||||||
}
|
}
|
||||||
@@ -289,7 +297,6 @@ namespace PARR.AIHIT
|
|||||||
return new List<string>();
|
return new List<string>();
|
||||||
|
|
||||||
var dbList = dbField.Split(";").Distinct().ToList();
|
var dbList = dbField.Split(";").Distinct().ToList();
|
||||||
//dbList.ForEach(item => item.Trim());
|
|
||||||
|
|
||||||
return dbList;
|
return dbList;
|
||||||
}
|
}
|
||||||
@@ -301,13 +308,12 @@ namespace PARR.AIHIT
|
|||||||
return new List<string>();
|
return new List<string>();
|
||||||
|
|
||||||
var osList = osField.Split(";").Distinct().ToList();
|
var osList = osField.Split(";").Distinct().ToList();
|
||||||
//osList.ForEach(item => item.Trim());
|
|
||||||
|
|
||||||
return osList;
|
return osList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private async Task<Application?> CreateAppIfNotExistAsync(string appName, ApplicationTypesEnum type)//Application application)
|
private async Task<Application?> CreateAppIfNotExistAsync(string appName, ApplicationTypesEnum type)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(appName) || string.IsNullOrWhiteSpace(appName)) return null;
|
if (string.IsNullOrEmpty(appName) || string.IsNullOrWhiteSpace(appName)) return null;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user