Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -435,6 +435,9 @@ namespace AppInstaller::CLI::ConfigurationRemoting
strong_this->m_dynamicFactory->SendDiagnostics(information);
}
});

winrt::hstring propertyName = ConfigurationRemoting::ToHString(ConfigurationRemoting::PropertyName::DiagnosticTraceEnabled);
factory.as<Collections::IMap<winrt::hstring, winrt::hstring>>().Insert(propertyName, m_dynamicFactory->GetFactoryMapValue(propertyName));
}

return m_setProcessors.emplace(integrityLevel, DynamicProcessorInfo{ factory, factory.CreateSetProcessor(m_configurationSet), std::move(factoryDiagnosticsEventRevoker) }).first;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -300,12 +300,14 @@ namespace AppInstaller::CLI::ConfigurationRemoting

bool Insert(winrt::hstring key, winrt::hstring value)
{
return m_remoteFactory.as<Collections::IMap<winrt::hstring, winrt::hstring>>().Insert(key, value);
auto map = m_remoteFactory.try_as<Collections::IMap<winrt::hstring, winrt::hstring>>();
return map ? map.Insert(key, value) : false;
}

winrt::hstring Lookup(winrt::hstring key)
{
return m_remoteFactory.as<Collections::IMap<winrt::hstring, winrt::hstring>>().Lookup(key);
auto map = m_remoteFactory.try_as<Collections::IMap<winrt::hstring, winrt::hstring>>();
return map ? map.Lookup(key) : winrt::hstring{};
}

HRESULT STDMETHODCALLTYPE SetLifetimeWatcher(IUnknown* watcher)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,11 @@ public static ProcessorRunSettings CreateFromFindUnitProcessorsOptions(FindUnitP
/// </summary>
/// <param name="resourceDetails">The resource details to be used.</param>
/// <returns>A ProcessorRunSettings.</returns>
public static ProcessorRunSettings CreateFromResourceDetails(ResourceDetails resourceDetails)
public static ProcessorRunSettings CreateFromResourceDetails(ResourceDetails? resourceDetails)
{
return new ProcessorRunSettings
{
ResourceSearchPaths = Path.GetDirectoryName(resourceDetails.Path) ?? string.Empty,
ResourceSearchPaths = Path.GetDirectoryName(resourceDetails?.Path) ?? string.Empty,
ResourceSearchPathsExclusive = false,
};
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,9 @@ protected override IConfigurationUnitProcessor CreateUnitProcessorInternal(Confi
if (resourceDetails == null)
{
this.OnDiagnostics(DiagnosticLevel.Verbose, $"Resource not found: {configurationUnitInternal.QualifiedName}");
throw new Exceptions.FindDscResourceNotFoundException(configurationUnitInternal.QualifiedName, null);

// Don't throw when the resource is not found until https://github.com/PowerShell/DSC/issues/786 is resolved
// throw new Exceptions.FindDscResourceNotFoundException(configurationUnitInternal.QualifiedName, null);
}

return new DSCv3ConfigurationUnitProcessor(this.processorSettings, resourceDetails, configurationUnitInternal, this.IsLimitMode) { SetProcessorFactory = this.SetProcessorFactory };
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ namespace Microsoft.Management.Configuration.Processor.DSCv3.Unit
internal sealed partial class DSCv3ConfigurationUnitProcessor : ConfigurationUnitProcessorBase, IConfigurationUnitProcessor, IGetAllSettingsConfigurationUnitProcessor, IGetAllUnitsConfigurationUnitProcessor, IDiagnosticsSink
{
private readonly ProcessorSettings processorSettings;
private readonly ResourceDetails resourceDetails;
private readonly ResourceDetails? resourceDetails;

/// <summary>
/// Initializes a new instance of the <see cref="DSCv3ConfigurationUnitProcessor"/> class.
Expand All @@ -30,7 +30,7 @@ internal sealed partial class DSCv3ConfigurationUnitProcessor : ConfigurationUni
/// <param name="resourceDetails">The resource to use.</param>
/// <param name="unitInternal">Internal unit.</param>
/// <param name="isLimitMode">Whether it is under limit mode.</param>
internal DSCv3ConfigurationUnitProcessor(ProcessorSettings processorSettings, ResourceDetails resourceDetails, ConfigurationUnitInternal unitInternal, bool isLimitMode = false)
internal DSCv3ConfigurationUnitProcessor(ProcessorSettings processorSettings, ResourceDetails? resourceDetails, ConfigurationUnitInternal unitInternal, bool isLimitMode = false)
: base(unitInternal, isLimitMode)
{
this.processorSettings = processorSettings;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ public void Set_UnitPropertyDetailsCached()
/// <summary>
/// Test for unit processor creation requiring resource to be found.
/// </summary>
[Fact]
[Fact(Skip = "Disable this test while we have the bypass in place")]
public void Set_ResourceNotFoundIsError()
{
var (factory, dsc) = CreateTestFactory();
Expand Down
Loading