sparse-intern-71089
06/15/2020, 7:49 PMechoing-breakfast-73834
06/16/2020, 3:21 PMget_<resource>_list
it's pretty easy. Here's an example of doing it with Cloudflare zones:
# Get or setup the zone
matched_zones: List[pulumi_cloudflare.Zone] = pulumi_cloudflare.get_zones(
filter={
"name": args.zone_name
},
opts=self.child_opts
).zones
# Remove duplicate entries from the list. No idea why they sometimes show up.
unique_matched_zones: List[pulumi_cloudflare.Zone] = []
for zone in matched_zones:
if zone not in unique_matched_zones:
unique_matched_zones.append(zone)
if len(unique_matched_zones) > 1:
raise ValueError(f"The provided zone name \"{args.zone_name}\" matched multiple zones ({unique_matched_zones}).")
if len(matched_zones) == 1:
self.zone: pulumi_cloudflare.Zone = pulumi_cloudflare.Zone.get(
resource_name=f"{self.name}-zone",
opts=self.child_opts,
id=unique_matched_zones[0]["id"]
)
else:
self.zone: pulumi_cloudflare.Zone = pulumi_cloudflare.Zone(
resource_name=f"{self.name}-zone",
opts=self.child_opts,
plan=args.plan,
zone=args.zone_name,
type="full" if not args.cname else "partial",
jump_start=False
)
If a get_<resource>_list
method doesn't exist you'll probably have to write oneastonishing-quill-88807
06/16/2020, 3:41 PM