Skip to content

Commit

Permalink
Fix failing deploy when ds can't resolve variables
Browse files Browse the repository at this point in the history
  • Loading branch information
Yavor16 committed Jan 30, 2025
1 parent 5abc8c1 commit 008e1c7
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import java.util.stream.Collectors;

import org.cloudfoundry.multiapps.common.ContentException;
import org.cloudfoundry.multiapps.common.util.MiscUtil;
import org.cloudfoundry.multiapps.controller.core.Messages;
import org.cloudfoundry.multiapps.controller.core.helpers.expander.PropertiesExpander;
import org.cloudfoundry.multiapps.controller.core.model.ResolvedConfigurationReference;
Expand Down Expand Up @@ -121,7 +122,12 @@ protected List<RequiredDependency> expandRequiredDependencyIfNecessary(Propertie
}

if (!permitsMultipleResources(dependency)) {
makeSureIsResolvedToSingleResource(dependency.getName(), resolvedReference.getResolvedResources());
if (dependencyOwner instanceof Resource) {
Resource resource = MiscUtil.cast(dependencyOwner);
makeSureIsResolvedToSingleResource(dependency.getName(), resolvedReference.getResolvedResources(), resource.isOptional());
} else {
makeSureIsResolvedToSingleResource(dependency.getName(), resolvedReference.getResolvedResources(), false);
}
return Collections.singletonList(dependency);
}

Expand All @@ -139,7 +145,11 @@ protected List<RequiredDependency> expandRequiredDependencyIfNecessary(Propertie
return expandedDependencies;
}

protected void makeSureIsResolvedToSingleResource(String resolvedResourceName, List<Resource> resultingResources) {
protected void makeSureIsResolvedToSingleResource(String resolvedResourceName, List<Resource> resultingResources,
boolean isResourceOptional) {
if (isResourceOptional) {
return;
}
if (resultingResources.size() > 1) {
throw new ContentException(format(Messages.MULTIPLE_CONFIGURATION_ENTRIES_WERE_FOUND, resolvedResourceName));
} else if (resultingResources.isEmpty()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import java.util.Set;
import java.util.stream.Collectors;

import org.cloudfoundry.multiapps.common.util.MiscUtil;
import org.cloudfoundry.multiapps.controller.core.helpers.expander.PropertiesExpander;
import org.cloudfoundry.multiapps.controller.core.helpers.v2.ConfigurationFilterParser;
import org.cloudfoundry.multiapps.controller.core.model.ResolvedConfigurationReference;
Expand Down Expand Up @@ -71,7 +72,12 @@ protected List<RequiredDependency> expandRequiredDependencyIfNecessary(Propertie
}

if (!permitsMultipleResources(dependency)) {
makeSureIsResolvedToSingleResource(dependency.getName(), resolvedReference.getResolvedResources());
if (dependencyOwner instanceof Resource) {
Resource resource = MiscUtil.cast(dependencyOwner);
makeSureIsResolvedToSingleResource(dependency.getName(), resolvedReference.getResolvedResources(), resource.isOptional());
} else {
makeSureIsResolvedToSingleResource(dependency.getName(), resolvedReference.getResolvedResources(), false);
}
return Collections.singletonList(dependency);
}

Expand Down

0 comments on commit 008e1c7

Please sign in to comment.