in extensionlauncher/extensionlauncher.go [57:82]
func writeTransitioningStatus(extensionName, extensionVersion, operation string, handlerEnv *handlerenv.HandlerEnvironment, el *logging.ExtensionLogger) {
if operation == vmextension.EnableOperation.ToString() {
// we write transitioning status only for Enable command
currentSequenceNumber, err := seqno.FindSeqNum(el, handlerEnv.ConfigFolder)
if err != nil {
el.Error("could not retrieve the current sequence number %s", err.Error())
eh.Exit(exithelper.EnvironmentError)
}
// if status file exists, no need to overwrite it
statusFilePath := path.Join(handlerEnv.StatusFolder, fmt.Sprintf("%d.status", currentSequenceNumber))
fileInfo, statErr := os.Stat(statusFilePath)
if os.IsNotExist(statErr) {
statusReport := status.New(status.StatusTransitioning, vmextension.EnableOperation.ToStatusName(), fmt.Sprintf("extension %s version %s started execution", extensionName, extensionVersion))
err := statusReport.Save(handlerEnv.StatusFolder, currentSequenceNumber)
if err != nil {
// don't exit
el.Warn("could not write transitioning status for extension %s version %s", extensionName, extensionVersion)
}
} else if fileInfo != nil {
el.Info("%d.status file already exists, will not create new status file with transitioning status", currentSequenceNumber)
} else if err != nil {
el.Warn("could not determine the existence or absence of status file, will continue without writing placeholder status file")
}
}
}