in magenta-lib/src/main/scala/magenta/deployment_type/S3ObjectPrefixParameters.scala [59:106]
def getPrefix(
pkg: DeploymentPackage,
target: DeployTarget,
reporter: DeployReporter
): String = {
val maybePackageOrAppName: Option[String] = (
prefixPackage(pkg, target, reporter),
prefixApp(pkg, target, reporter)
) match {
case (_, true) => Some(pkg.app.name)
case (true, false) => Some(pkg.name)
case (false, false) => None
}
val prefixFromStagePaths: Map[String, String] =
prefixStagePaths(pkg, target, reporter)
if (prefixFromStagePaths.isEmpty) {
S3Upload.prefixGenerator(
stack =
if (prefixStack(pkg, target, reporter)) Some(target.stack)
else None,
stage =
if (prefixStage(pkg, target, reporter))
Some(target.parameters.stage)
else None,
packageOrAppName = maybePackageOrAppName
)
} else {
prefixFromStagePaths.get(target.parameters.stage.name) match {
case Some(prefix) => prefix
case _ =>
reporter.fail(
s"""
|Unable to locate prefix for stage ${target.parameters.stage.name}.
|
|prefixStagePaths is set to:
|
|$prefixFromStagePaths
|
|To resolve, either:
| - Deploy to a known stage
| - Update prefixStagePaths, adding a value for ${target.parameters.stage.name}
|""".stripMargin
)
}
}
}