glamorous-australia-21342
10/04/2022, 7:36 PMsnaptshotRedirectCnames not empty!
######################
Calling [toString] on an [Output<T>] is not supported.
To get the value of an Output<T> as an Output<string> consider either:
1: o.apply(v => `prefix${v}suffix`)
2: pulumi.interpolate `prefix${v}suffix`
See <https://pulumi.io/help/outputs> for more details.
This function may throw in a future version of @pulumi/pulumi.
######################
######################
Calling [toString] on an [Output<T>] is not supported.
To get the value of an Output<T> as an Output<string> consider either:
1: o.apply(v => `prefix${v}suffix`)
2: pulumi.interpolate `prefix${v}suffix`
See <https://pulumi.io/help/outputs> for more details.
This function may throw in a future version of @pulumi/pulumi..Calling [toString] on an [Output<T>] is not supported.
To get the value of an Output<T> as an Output<string> consider either:
1: o.apply(v => `prefix${v}suffix`)
2: pulumi.interpolate `prefix${v}suffix`
See <https://pulumi.io/help/outputs> for more details.
This function may throw in a future version of @pulumi/pulumi.
######################
Function
export function snapshotRediretionCnames(subDomains: string[]) {
const cnames: string[] = []
subDomains.forEach(function (subDomain) {
// Does subdomain have -v ?
if (subDomain.indexOf('-v') > -1) {
// Does it exist in cnames?
if (cnames.length > 0) {
let networkInCnames = false
let cnameToReplace = ''
cnames.forEach(function (cname) {
const subDomainNetwork = subDomain.split('-v')[0]
if (cname.indexOf(subDomainNetwork) > -1) {
networkInCnames = true
cnameToReplace = cname
}
})
// If network is in cname
if (networkInCnames) {
// Does is the version higher than what exists?
const subDomainVersion = subDomain.replace(/[^0-9]/g, '')
const cnameVersion = cnameToReplace.replace(/[^0-9]/g, '')
if (subDomainVersion < cnameVersion) {
// If the subDomain is newer than the cname we're replacing it
const index = cnames.indexOf(cnameToReplace)
if (index !== -1) {
cnames[index] = subDomain
}
}
} else {
cnames.push(subDomain)
}
} else {
cnames.push(subDomain)
}
}
})
return pulumi.interpolate`${cnames}`
}
Caller:
const allSubdomains = shotsDeployments.map((s) => s.subdomain!)
shotsDeployments.forEach(
(shot) =>
new TezosShotsDeployment(
{ ...shot, allSubdomains },
{ provider: cluster.provider }
)
)
const snapshotRedirectionCnames = snapshotRediretionCnames(allSubdomains)
if(snapshotRedirectionCnames){
snapshotRedirectionCnames.apply(cnames=>{
cnames.split("\n").forEach(function(cname){
const output = pulumi.interpolate`${cname}`
console.log(`snaptshotRedirectCnames not empty!`)
console.log(`######################`)
console.log(`${snapshotRedirectionCnames}`)
console.log(`######################`)
const network = output.apply(cname => pulumi.interpolate`${cname.split('-v')[0]}`)
console.log(`######################`)
console.log(`${network}.${xtzshotsZone.name}`)
console.log(`######################`)
})
})
}
I've tried every combination of pulumi.interpolate
and output.apply
that I can think of, but I can't seem to get this object parsed from an Output<T> to a string. If someone could take a look and let me know what I could be doing wrong, that would be most appreciated. 😄echoing-dinner-19531
10/05/2022, 11:38 AMglamorous-australia-21342
10/05/2022, 2:53 PMsnapshotRedirectionCnames.apply(cnames=>{
cnames.split("\n").forEach(function(cname){
const output = pulumi.interpolate`${cname}`
console.log(`snaptshotRedirectCnames not empty!`)
console.log(`######################`)
console.log(`${snapshotRedirectionCnames}`)
console.log(`######################`)
const network = output.apply(cname => pulumi.interpolate`${cname.split('-v')[0]}`)
console.log(`######################`)
console.log(`${network}.${xtzshotsZone.name}`)
console.log(`######################`)
})
})
Even if I change
const network = output.apply(cname => pulumi.interpolate`${cname.split('-v')[0]}`)
to...
const network = output.apply(cname => cname.split('-v')[0])
Same error 😢echoing-dinner-19531
10/05/2022, 3:03 PMconst network = output.apply(cname => pulumi.interpolate`${cname.split('-v')[0]}`)
console.log(`######################`)
console.log(`${network}.${xtzshotsZone.name}`)
network there is an Output<T> so the console.log isn't going to be able to print itglamorous-australia-21342
10/05/2022, 3:34 PMnetwork.apply(v=>console.log(`${v}.${xtzshotsZone.name}`))
Gives me same errorconst snapshotRedirectionCnames = snapshotRediretionCnames(allSubdomains)
if(snapshotRedirectionCnames){
snapshotRedirectionCnames.apply(cnames=>{
cnames.split("\n").forEach(function(cname){
const output = pulumi.interpolate`${cname}`
const network = output.apply(cname => pulumi.interpolate`${cname.split('-v')[0]}`)
console.log(`######################`)
network.apply(v=>console.log(`${v}.${xtzshotsZone.name}`))
console.log(`######################`)
})
})
}
Is empty and it looks like the next iteration is erroring
######################
######################
mainnet.Calling [toString] on an [Output<T>] is not supported.
To get the value of an Output<T> as an Output<string> consider either:
1: o.apply(v => `prefix${v}suffix`)
2: pulumi.interpolate `prefix${v}suffix`
See <https://pulumi.io/help/outputs> for more details.
This function may throw in a future version of @pulumi/pulumi.