From bd73c77027cbb0aa9f0f53e031dbfca77356c8b9 Mon Sep 17 00:00:00 2001 From: Mikhail Trubnikov Date: Mon, 4 Sep 2023 12:17:50 +1000 Subject: [PATCH] =?UTF-8?q?Fix=20RabbitMQ=20=D0=B7=D0=B0=D0=BF=D0=B8=D1=81?= =?UTF-8?q?=D1=8C=20=D0=B2=20=D0=91=D0=94.=20=D0=A0=D0=B5=D0=BF=D0=BE=20?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=BD=D0=B0=20harbor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitlab-ci.yml | 11 ++- PARR.AIHIT/AIHIT/SyncherInstaller.cs | 7 +- PARR.DAL/Context/DataContext.cs | 2 +- PARR.EsppTemplateSync/ITemplateSyncer.cs | 2 +- PARR.EsppTemplateSync/Services/Manager.cs | 78 +++++++++------- .../Services/ParserService.cs | 6 +- .../Settings/GlobalSettings.cs | 1 - PARR.EsppTemplateSync/TemplateFileSyncer.cs | 7 +- PARR.EsppTemplateSync/TemplateMQSyncer.cs | 90 +++++++++---------- PARR.EsppTemplateSyncWorker/Program.cs | 1 - PARR.EsppTemplateSyncWorker/Worker.cs | 14 ++- PARR.EsppTemplateSyncWorker/appsettings.json | 7 +- PARR.MockData/Data/EsppExport.cs | 4 +- PARR.Worker/PARR.Worker/Program.cs | 4 +- 14 files changed, 127 insertions(+), 107 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fed3979c..e758d7a7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,5 @@ variables: - REPO: "10.99.253.167:8088" + REPO: "harbor.dvgd.rzd" PROD_NAME_API: "parr/parr-api" PROD_NAME_AIHIT: "parr/parr-aihit-syncher" PROD_NAME_ESPP_TEMPLATE: "parr/parr-espp-template-sync" @@ -26,7 +26,7 @@ prod_build: script: - IMAGE_VERSION=$(echo $CI_COMMIT_TAG | tr -d v) - docker build -t $REPO/$PROD_NAME_API:$CI_COMMIT_TAG -t $REPO/$PROD_NAME_API:latest -t $PROD_NAME_API:$CI_COMMIT_TAG -t $PROD_NAME_API:latest --build-arg app_version=$IMAGE_VERSION -f PARR.API/Dockerfile . - - docker login -u $NEXUS_PUSH_USER -p $NEXUS_PUSH_PASS $REPO + - docker login -u $HARBOR_PUSH_USER -p $HARBOR_PUSH_PASS $REPO - docker push --all-tags $REPO/$PROD_NAME_API tags: - docker @@ -42,6 +42,7 @@ prod_deploy: except: - branches script: + - docker login -u $HARBOR_PULL_USER -p $HARBOR_PULL_PASS $REPO - tag=$CI_COMMIT_TAG docker compose up -d parallel: matrix: @@ -70,7 +71,7 @@ prod_aihit_build: - APP_VERSION=$(echo $CI_COMMIT_TAG | tr -d as) - IMAGE_VERSION=$(echo $CI_COMMIT_TAG | sed 's/as/v/g') - docker build -t $REPO/$PROD_NAME_AIHIT:$IMAGE_VERSION -t $REPO/$PROD_NAME_AIHIT:latest -t $PROD_NAME_AIHIT:$IMAGE_VERSION -t $PROD_NAME_AIHIT:latest --build-arg app_version=$APP_VERSION -f PARR.Worker/PARR.Worker/Dockerfile . - - docker login -u $NEXUS_PUSH_USER -p $NEXUS_PUSH_PASS $REPO + - docker login -u $HARBOR_PUSH_USER -p $HARBOR_PUSH_PASS $REPO - docker push --all-tags $REPO/$PROD_NAME_AIHIT tags: - docker-as @@ -86,6 +87,7 @@ prod_aihit_deploy: - branches script: - IMAGE_VERSION=$(echo $CI_COMMIT_TAG | sed 's/as/v/g') + - docker login -u $HARBOR_PULL_USER -p $HARBOR_PULL_PASS $REPO - tag=$IMAGE_VERSION docker compose -f docker-compose.aihit-syncher.yml up -d parallel: matrix: @@ -112,7 +114,7 @@ prod_espp-template_build: - APP_VERSION=$(echo $CI_COMMIT_TAG | tr -d et) - IMAGE_VERSION=$(echo $CI_COMMIT_TAG | sed 's/et/v/g') - docker build -t $REPO/$PROD_NAME_ESPP_TEMPLATE:$IMAGE_VERSION -t $REPO/$PROD_NAME_ESPP_TEMPLATE:latest -t $PROD_NAME_ESPP_TEMPLATE:$IMAGE_VERSION -t $PROD_NAME_ESPP_TEMPLATE:latest --build-arg app_version=$APP_VERSION -f PARR.EsppTemplateSyncWorker/Dockerfile . - - docker login -u $NEXUS_PUSH_USER -p $NEXUS_PUSH_PASS $REPO + - docker login -u $HARBOR_PUSH_USER -p $HARBOR_PUSH_PASS $REPO - docker push --all-tags $REPO/$PROD_NAME_ESPP_TEMPLATE tags: - docker-et @@ -128,6 +130,7 @@ prod_espp-template_build: # - branches # script: # - IMAGE_VERSION=$(echo $CI_COMMIT_TAG | sed 's/et/v/g') +# - docker login -u $HARBOR_PULL_USER -p $HARBOR_PULL_PASS $REPO # - tag=$IMAGE_VERSION docker compose -f docker-compose.espp-template-sync.yml up -d # parallel: # matrix: diff --git a/PARR.AIHIT/AIHIT/SyncherInstaller.cs b/PARR.AIHIT/AIHIT/SyncherInstaller.cs index 5921eea4..c7953aef 100644 --- a/PARR.AIHIT/AIHIT/SyncherInstaller.cs +++ b/PARR.AIHIT/AIHIT/SyncherInstaller.cs @@ -4,6 +4,8 @@ using Microsoft.Extensions.DependencyInjection; using PARR.AIHIT.Context; using PARR.AIHIT.Services; using PARR.AIHIT.Settings; +using PARR.DAL; +using PARR.Mail; namespace PARR.AIHIT { @@ -14,7 +16,10 @@ namespace PARR.AIHIT var syncherSettings = new SyncherSettings(); configuration.GetSection(nameof(SyncherSettings)).Bind(syncherSettings); services.AddSingleton(syncherSettings); - + + services.InstallMailServices(configuration); + services.InstallDalServices(configuration); + services.AddDbContext(options => options.UseSqlServer( configuration.GetConnectionString("AihitConnection") diff --git a/PARR.DAL/Context/DataContext.cs b/PARR.DAL/Context/DataContext.cs index 631d067a..b311b77f 100644 --- a/PARR.DAL/Context/DataContext.cs +++ b/PARR.DAL/Context/DataContext.cs @@ -6,7 +6,7 @@ using PARR.DAL.Models.V1; namespace PARR.DAL.Context { - public class DataContext : DbContext + internal class DataContext : DbContext { public DataContext(DbContextOptions options) : base(options) { } diff --git a/PARR.EsppTemplateSync/ITemplateSyncer.cs b/PARR.EsppTemplateSync/ITemplateSyncer.cs index 05ffe0bd..197e9173 100644 --- a/PARR.EsppTemplateSync/ITemplateSyncer.cs +++ b/PARR.EsppTemplateSync/ITemplateSyncer.cs @@ -2,7 +2,7 @@ { public interface ITemplateSyncer { - Task StartAsync(); + void Start(); void Stop(); } } diff --git a/PARR.EsppTemplateSync/Services/Manager.cs b/PARR.EsppTemplateSync/Services/Manager.cs index 95b91a26..d4934355 100644 --- a/PARR.EsppTemplateSync/Services/Manager.cs +++ b/PARR.EsppTemplateSync/Services/Manager.cs @@ -1,6 +1,5 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; -using PARR.DAL.Context; using PARR.DAL.Models; using PARR.DAL.Services.Interfaces; @@ -11,25 +10,18 @@ namespace PARR.EsppTemplateSync.Services private readonly ILogger logger; private readonly IServiceProvider serviceProvider; private readonly IParserService parserService; - // private readonly ITemplateService templateService; public Manager( ILogger logger, IServiceProvider serviceProvider, - IParserService parserService//, - // ITemplateService templateService + IParserService parserService ) { this.logger = logger; this.serviceProvider = serviceProvider; this.parserService = parserService; - // this.templateService = templateService; - - - //using var scope = serviceProvider.CreateScope(); - //var services = scope.ServiceProvider; - //var templateService = services.GetService(); } + public Task ManageFileAsync(string path) { throw new NotImplementedException(); @@ -37,18 +29,40 @@ namespace PARR.EsppTemplateSync.Services public async Task ManageStringAsync(string str) { - bool isSuccess = true; - //TOD if (str == null || str.Length <= 2) + ////TODO: if (str == null || str.Length <= 2) + // тут обязательно нужна проверка, если str не того формата, возникает exception в ParseStringAsync var template = await parserService.ParseStringAsync(str); + ////TODO: а если template==null??? await CheckChangesAsync(template); - + //todo: only true????? return isSuccess; } private async Task CheckChangesAsync(Template esppTemplate) { + // --- test --- + + using (var scope = serviceProvider.CreateScope()) + { + var services = scope.ServiceProvider; + var templateService = services.GetService(); + + if (templateService == null) + { + return; + } + + var resCreate = await templateService.CreateAsync(esppTemplate); + var resCommit = await templateService.CommitAsync(); + } + + // === end test === + + + + //if (!await templateService.CreateAsync(esppTemplate) || !await templateService.CommitAsync()) //{ // logger.LogError($"Не удалось создать запись Template {esppTemplate.EK}({esppTemplate.ShortDescription})"); @@ -68,27 +82,27 @@ namespace PARR.EsppTemplateSync.Services // ----------------- - using (var scope = serviceProvider.CreateScope()) - { - var services = scope.ServiceProvider; - var templateService = services.GetService(); + //using (var scope = serviceProvider.CreateScope()) + //{ + // var services = scope.ServiceProvider; + // var templateService = services.GetService(); - if (templateService == null) - return; + // if (templateService == null) + // return; - var template = await templateService.GetTemplateByNameAsync(esppTemplate.EK); - if (template == null) - { - esppTemplate.Status = "New"; - logger.LogInformation($"В ЕСПП активирован неизвестной шаблон: {esppTemplate.EK} секунд. краткое описание: {esppTemplate.ShortDescription}"); - if (!await templateService.CreateAsync(esppTemplate) || !await templateService.CommitAsync()) - { - logger.LogError($"Не удалось создать запись Template {esppTemplate.EK}({esppTemplate.ShortDescription})"); - } - else - logger.LogInformation($"----- Создана запись Template {esppTemplate.EK}({esppTemplate.ShortDescription}) -----"); - } - } + // var template = await templateService.GetTemplateByNameAsync(esppTemplate.EK); + // if (template == null) + // { + // esppTemplate.Status = "New"; + // logger.LogInformation($"В ЕСПП активирован неизвестной шаблон: {esppTemplate.EK} секунд. краткое описание: {esppTemplate.ShortDescription}"); + // if (!await templateService.CreateAsync(esppTemplate) || !await templateService.CommitAsync()) + // { + // logger.LogError($"Не удалось создать запись Template {esppTemplate.EK}({esppTemplate.ShortDescription})"); + // } + // else + // logger.LogInformation($"----- Создана запись Template {esppTemplate.EK}({esppTemplate.ShortDescription}) -----"); + // } + //} } } diff --git a/PARR.EsppTemplateSync/Services/ParserService.cs b/PARR.EsppTemplateSync/Services/ParserService.cs index a7724648..d2eae1e1 100644 --- a/PARR.EsppTemplateSync/Services/ParserService.cs +++ b/PARR.EsppTemplateSync/Services/ParserService.cs @@ -24,6 +24,8 @@ namespace PARR.EsppTemplateSync.Services public async Task