/// <summary> /// UpdateDiscovererAsync /// </summary> /// <param name="discoverer"></param> /// <param name="config"></param> /// <returns></returns> public async Task <string> UpdateDiscovererAsync(DiscovererInfo discoverer, DiscoveryConfigApiModel config) { var model = new DiscovererUpdateApiModel(); model.DiscoveryConfig = discoverer.DiscovererModel.DiscoveryConfig; if (config.AddressRangesToScan != null) { model.DiscoveryConfig.AddressRangesToScan = config.AddressRangesToScan; } if (config.PortRangesToScan != null) { model.DiscoveryConfig.PortRangesToScan = config.PortRangesToScan; } if (config.ActivationFilter != null) { model.DiscoveryConfig.ActivationFilter = config.ActivationFilter; } if (config.MaxNetworkProbes != null && config.MaxNetworkProbes != 0) { model.DiscoveryConfig.MaxNetworkProbes = config.MaxNetworkProbes; } if (config.MaxPortProbes != null && config.MaxPortProbes != 0) { model.DiscoveryConfig.MaxPortProbes = config.MaxPortProbes; } if (config.NetworkProbeTimeoutMs != null && config.NetworkProbeTimeoutMs != 0) { model.DiscoveryConfig.NetworkProbeTimeoutMs = config.NetworkProbeTimeoutMs; } if (config.PortProbeTimeoutMs != null && config.PortProbeTimeoutMs != 0) { model.DiscoveryConfig.PortProbeTimeoutMs = config.PortProbeTimeoutMs; } if (config.IdleTimeBetweenScansSec != null && config.IdleTimeBetweenScansSec != 0) { model.DiscoveryConfig.IdleTimeBetweenScansSec = config.IdleTimeBetweenScansSec; } else { model.DiscoveryConfig.IdleTimeBetweenScansSec = _5MINUTES; } if (config.DiscoveryUrls != null) { model.DiscoveryConfig.DiscoveryUrls = config.DiscoveryUrls; } try { await _registryService.UpdateDiscovererAsync(discoverer.DiscovererModel.Id, model); } catch (Exception exception) { var errorMessageTrace = string.Concat(exception.Message, exception.InnerException?.Message ?? "--", exception?.StackTrace ?? "--"); _logger.Error(errorMessageTrace); return(errorMessageTrace); } return(null); }
public async Task UpdateDiscovererAsync(string discovererId, [FromBody][Required] DiscovererUpdateApiModel request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } await _discoverers.UpdateDiscovererAsync(discovererId, request.ToServiceModel()); }
public async Task SetDiscoveryModeAsync(string discovererId, [FromQuery][Required] IIoT.OpcUa.Api.Registry.Models.DiscoveryMode mode, [FromBody] DiscoveryConfigApiModel config) { var request = new DiscovererUpdateApiModel { Discovery = mode, DiscoveryConfig = config }; await _discoverers.UpdateDiscovererAsync(discovererId, request.ToServiceModel()); }
/// <summary> /// Convert back to service model /// </summary> /// <returns></returns> public static DiscovererUpdateModel ToServiceModel( this DiscovererUpdateApiModel model) { if (model == null) { return(null); } return(new DiscovererUpdateModel { SiteId = model.SiteId, LogLevel = (IIoT.OpcUa.Registry.Models.TraceLogLevel?)model.LogLevel, Discovery = (IIoT.OpcUa.Registry.Models.DiscoveryMode?)model.Discovery, DiscoveryConfig = model.DiscoveryConfig.ToServiceModel() }); }
/// <inheritdoc/> public async Task UpdateDiscovererAsync(string discovererId, DiscovererUpdateApiModel content, CancellationToken ct) { if (content == null) { throw new ArgumentNullException(nameof(content)); } if (string.IsNullOrEmpty(discovererId)) { throw new ArgumentNullException(nameof(discovererId)); } var request = _httpClient.NewRequest($"{_serviceUri}/v2/discovery/{discovererId}", _resourceId); request.SetContent(content); var response = await _httpClient.PatchAsync(request, ct).ConfigureAwait(false); response.Validate(); }