Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
f9d957f
Eliminate redundant existence checks in workload resolver
mhutch Jun 3, 2021
b8ade8e
Implement workload redirects
mhutch Jun 9, 2021
a22e8d0
Fix 'avaliable' typo
mhutch Jun 9, 2021
e7a3eb2
Allow deferred opening of workload manifest stream
mhutch Jun 9, 2021
cf013d2
Add workload resolver method to determine updated workloads
mhutch Jun 9, 2021
3374ec9
Replace workload TempDirResolver with more generic OverlayResolver
mhutch Jun 10, 2021
0a8238c
Improve diagnosability of manifest conflicts
mhutch Jun 10, 2021
accd669
Improve workload composition errors
mhutch Jun 22, 2021
ed81dd4
Nullability checks in workload manifest reader tests
mhutch Jun 22, 2021
3d64056
Stronger typing of workload/pack ids in public API
mhutch Jun 22, 2021
a6cd134
Disable workload redirects for now
mhutch Jul 1, 2021
0254d95
Improve WorkloadResolver.GetPacksInWorkload
mhutch Jul 2, 2021
15d527f
Fix available workloads returned by resolver
mhutch Jul 2, 2021
619304d
Include workload ID in exception when resolver cannot find it
mhutch Jul 2, 2021
d867fef
Hide WorkloadResolver.GetPackPath in favor of ResolvePackPath
mhutch Jul 2, 2021
536f67c
When suggesting workloads, only consider available workloads
mhutch Jul 2, 2021
e4b36e3
Localize remaining workload composition errors
mhutch Jul 13, 2021
d75137c
Simplify WorkloadResolver.GetInstalledManifests
mhutch Jul 14, 2021
c9d64aa
Fix ResolvePackPath returning empty workload pack ids
mhutch Jul 15, 2021
48720b8
Check updated composition error messages in workload tests
mhutch Jul 15, 2021
0537ca7
Don't assume missing workload packs can always be satisfied
mhutch Jul 17, 2021
f4ed4c7
Fix accidental removal that broke workload search tests
mhutch Jul 19, 2021
b736168
Fix error message argument indices
dsplaisted Jul 18, 2021
4d4f3ef
Fix workload mocks to use correct manifest IDs
dsplaisted Jul 18, 2021
9f15943
Update test now that mock workload manifest has right ID
dsplaisted Jul 19, 2021
88fc6b4
Generate correct error message when trying to install a workload whic…
dsplaisted Jul 19, 2021
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
Prev Previous commit
Generate correct error message when trying to install a workload whic…
…h isn't supported for the current platform
  • Loading branch information
dsplaisted committed Jul 19, 2021
commit 88fc6b49a01092d93ba5bcd6ab601cc4ff27393a
Original file line number Diff line number Diff line change
Expand Up @@ -104,16 +104,16 @@ private void ValidateWorkloadIdsInput()
var availableWorkloads = _workloadResolver.GetAvailableWorkloads();
foreach (var workloadId in _workloadIds)
{
if (availableWorkloads.Select(workload => workload.Id.ToString()).Contains(workloadId))
if (!availableWorkloads.Select(workload => workload.Id.ToString()).Contains(workloadId))
{
if (!_workloadResolver.IsWorkloadPlatformCompatible(new WorkloadId(workloadId)))
if (_workloadResolver.IsPlatformIncompatibleWorkload(new WorkloadId(workloadId)))
{
throw new GracefulException(string.Format(LocalizableStrings.WorkloadNotSupportedOnPlatform, workloadId));
}
}
else
{
throw new GracefulException(string.Format(LocalizableStrings.WorkloadNotRecognized, workloadId));
else
{
throw new GracefulException(string.Format(LocalizableStrings.WorkloadNotRecognized, workloadId));
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public interface IWorkloadResolver
IEnumerable<WorkloadPackId> GetPacksInWorkload(WorkloadId workloadId);
ISet<WorkloadResolver.WorkloadInfo>? GetWorkloadSuggestionForMissingPacks(IList<WorkloadPackId> packId, out ISet<WorkloadPackId> unsatisfiablePacks);
IEnumerable<WorkloadResolver.WorkloadInfo> GetAvailableWorkloads();
bool IsWorkloadPlatformCompatible(WorkloadId workloadId);
bool IsPlatformIncompatibleWorkload(WorkloadId workloadId);
string GetManifestVersion(string manifestId);
IEnumerable<WorkloadResolver.ManifestInfo> GetInstalledManifests();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -621,13 +621,14 @@ public WorkloadInfo GetWorkloadInfo(WorkloadId workloadId)
return new WorkloadInfo(workload.Id, workload.Description);
}

public bool IsWorkloadPlatformCompatible(WorkloadId workloadId)
public bool IsPlatformIncompatibleWorkload(WorkloadId workloadId)
{
if (_workloads.TryGetValue(workloadId) is not (WorkloadDefinition workload, WorkloadManifest manifest))
{
throw new ArgumentException($"Workload '{workloadId}' not found", nameof(workloadId));
// Not a recognized workload
return false;
}
return IsWorkloadPlatformCompatible(workload, manifest);
return !IsWorkloadPlatformCompatible(workload, manifest);
}

private bool IsWorkloadPlatformCompatible(WorkloadDefinition workload, WorkloadManifest manifest)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public MockWorkloadResolver(IEnumerable<WorkloadResolver.WorkloadInfo> available
public ISet<WorkloadResolver.WorkloadInfo> GetWorkloadSuggestionForMissingPacks(IList<WorkloadPackId> packId, out ISet<WorkloadPackId> unsatisfiablePacks) => throw new NotImplementedException();
public void RefreshWorkloadManifests() => throw new NotImplementedException();
public WorkloadResolver.PackInfo TryGetPackInfo(WorkloadPackId packId) => throw new NotImplementedException();
public bool IsWorkloadPlatformCompatible(WorkloadId workloadId) => throw new NotImplementedException();
public bool IsPlatformIncompatibleWorkload(WorkloadId workloadId) => throw new NotImplementedException();
public string GetManifestVersion(string manifestId) => throw new NotImplementedException();
public IEnumerable<WorkloadResolver.ManifestInfo> GetInstalledManifests() => throw new NotImplementedException();
public IWorkloadResolver CreateOverlayResolver(IWorkloadManifestProvider overlayManifestProvider) => throw new NotImplementedException();
Expand Down