Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refine log messages and error handling #1560

Merged
merged 1 commit into from
May 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/core/common/utility.go
Original file line number Diff line number Diff line change
Expand Up @@ -415,7 +415,7 @@ func CheckConnConfigAvailable(connConfigName string) (bool, error) {
)

if err != nil {
log.Info().Err(err).Msg("")
//log.Info().Err(err).Msg("")
return false, err
}

Expand Down Expand Up @@ -509,7 +509,7 @@ func GetConnConfigList(filterCredentialHolder string, filterVerified bool, filte
filteredConnections = tmpConnections
tmpConnections = ConnConfigList{}
}
log.Info().Msgf("Filtered connection config count: %d", len(filteredConnections.Connectionconfig))
//log.Info().Msgf("Filtered connection config count: %d", len(filteredConnections.Connectionconfig))
return filteredConnections, nil
}

Expand Down
213 changes: 105 additions & 108 deletions src/core/mcir/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -1599,95 +1599,93 @@ func LoadCommonResource() (common.IdList, error) {
connectionForLookup, ok := validRepresentativeConnectionMap.Load(validRepresentativeConnectionMapKey)
if ok {
specReqTmp.ConnectionName = connectionForLookup.(common.ConnConfig).ConfigName
} else {
specReqTmp.ConnectionName = "invalid"
}

_, ok = ignoreConnectionMap.Load(specReqTmp.ConnectionName)
if !ok {
// Give a name for spec object by combining ConnectionName and CspSpecName
// To avoid naming-rule violation, modify the string

// specReqTmp.Name = specReqTmp.ConnectionName + "-" + specReqTmp.CspSpecName
// specReqTmp.Name = ToNamingRuleCompatible(specReqTmp.Name)
specInfoId := specReqTmp.Name
_, ignoreCase := ignoreConnectionMap.Load(specReqTmp.ConnectionName)
if !ignoreCase {
// Give a name for spec object by combining ConnectionName and CspSpecName
// To avoid naming-rule violation, modify the string

specReqTmp.Description = "Common Spec Resource"
// specReqTmp.Name = specReqTmp.ConnectionName + "-" + specReqTmp.CspSpecName
// specReqTmp.Name = ToNamingRuleCompatible(specReqTmp.Name)
specInfoId := specReqTmp.Name

regiesteredStatus = ""
specReqTmp.Description = "Common Spec Resource"

var errRegisterSpec error
regiesteredStatus = ""

log.Trace().Msgf("[%d] register Common Spec: %s", i, specReqTmp.Name)
var errRegisterSpec error

// Register Spec object
searchKey := GetProviderRegionZoneResourceKey(providerName, regionName, "", specReqTmp.CspSpecName)
value, ok := specMap.Load(searchKey)
if ok {
spiderSpec := value.(SpiderSpecInfo)
//log.Info().Msgf("Found spec in the map: %s", spiderSpec.Name)
tumblebugSpec, errConvert := ConvertSpiderSpecToTumblebugSpec(spiderSpec)
if errConvert != nil {
log.Error().Err(errConvert).Msg("Cannot ConvertSpiderSpecToTumblebugSpec")
}
log.Trace().Msgf("[%d] register Common Spec: %s", i, specReqTmp.Name)

tumblebugSpec.Name = specInfoId
tumblebugSpec.ConnectionName = specReqTmp.ConnectionName
_, errRegisterSpec = RegisterSpecWithInfo(common.SystemCommonNs, &tumblebugSpec, true)
if errRegisterSpec != nil {
log.Info().Err(errRegisterSpec).Msg("RegisterSpec WithInfo failed")
}
// Register Spec object
searchKey := GetProviderRegionZoneResourceKey(providerName, regionName, "", specReqTmp.CspSpecName)
value, ok := specMap.Load(searchKey)
if ok {
spiderSpec := value.(SpiderSpecInfo)
//log.Info().Msgf("Found spec in the map: %s", spiderSpec.Name)
tumblebugSpec, errConvert := ConvertSpiderSpecToTumblebugSpec(spiderSpec)
if errConvert != nil {
log.Error().Err(errConvert).Msg("Cannot ConvertSpiderSpecToTumblebugSpec")
}

} else {
errRegisterSpec = fmt.Errorf("Not Found spec from the fetched spec list: %s", searchKey)
log.Trace().Msgf(errRegisterSpec.Error())
// _, errRegisterSpec = RegisterSpecWithCspSpecName(common.SystemCommonNs, &specReqTmp, true)
// if errRegisterSpec != nil {
// log.Error().Err(errRegisterSpec).Msg("RegisterSpec WithCspSpecName failed")
// }
}
tumblebugSpec.Name = specInfoId
tumblebugSpec.ConnectionName = specReqTmp.ConnectionName
_, errRegisterSpec = RegisterSpecWithInfo(common.SystemCommonNs, &tumblebugSpec, true)
if errRegisterSpec != nil {
log.Info().Err(errRegisterSpec).Msg("RegisterSpec WithInfo failed")
}

if errRegisterSpec != nil {
regiesteredStatus += " [Failed] " + errRegisterSpec.Error()
} else {
// Update registered Spec object with givn info from asset file
// Update registered Spec object with Cost info
costPerHour, err2 := strconv.ParseFloat(strings.ReplaceAll(row[3], " ", ""), 32)
if err2 != nil {
log.Error().Err(err2).Msg("Not valid CostPerHour value in the asset")
costPerHour = 99999999.9
}
evaluationScore01, err2 := strconv.ParseFloat(strings.ReplaceAll(row[4], " ", ""), 32)
if err2 != nil {
log.Error().Err(err2).Msg("Not valid evaluationScore01 value in the asset")
evaluationScore01 = -99.9
} else {
errRegisterSpec = fmt.Errorf("Not Found spec from the fetched spec list: %s", searchKey)
log.Trace().Msgf(errRegisterSpec.Error())
// _, errRegisterSpec = RegisterSpecWithCspSpecName(common.SystemCommonNs, &specReqTmp, true)
// if errRegisterSpec != nil {
// log.Error().Err(errRegisterSpec).Msg("RegisterSpec WithCspSpecName failed")
// }
}
specUpdateRequest :=
TbSpecInfo{
ProviderName: providerName,
RegionName: regionName,
CostPerHour: float32(costPerHour),
RootDiskType: rootDiskType,
RootDiskSize: rootDiskSize,
AcceleratorType: acceleratorType,
AcceleratorModel: acceleratorModel,
AcceleratorCount: uint8(acceleratorCount),
AcceleratorMemoryGB: float32(acceleratorMemoryGB),
Description: description,
EvaluationScore01: float32(evaluationScore01),
}

_, err3 := UpdateSpec(common.SystemCommonNs, specInfoId, specUpdateRequest)
if err3 != nil {
log.Error().Err(err3).Msg("UpdateSpec failed")
regiesteredStatus += " [Failed] " + err3.Error()
if errRegisterSpec != nil {
regiesteredStatus += " [Failed] " + errRegisterSpec.Error()
} else {
// Update registered Spec object with givn info from asset file
// Update registered Spec object with Cost info
costPerHour, err2 := strconv.ParseFloat(strings.ReplaceAll(row[3], " ", ""), 32)
if err2 != nil {
log.Error().Err(err2).Msg("Not valid CostPerHour value in the asset")
costPerHour = 99999999.9
}
evaluationScore01, err2 := strconv.ParseFloat(strings.ReplaceAll(row[4], " ", ""), 32)
if err2 != nil {
log.Error().Err(err2).Msg("Not valid evaluationScore01 value in the asset")
evaluationScore01 = -99.9
}
specUpdateRequest :=
TbSpecInfo{
ProviderName: providerName,
RegionName: regionName,
CostPerHour: float32(costPerHour),
RootDiskType: rootDiskType,
RootDiskSize: rootDiskSize,
AcceleratorType: acceleratorType,
AcceleratorModel: acceleratorModel,
AcceleratorCount: uint8(acceleratorCount),
AcceleratorMemoryGB: float32(acceleratorMemoryGB),
Description: description,
EvaluationScore01: float32(evaluationScore01),
}

_, err3 := UpdateSpec(common.SystemCommonNs, specInfoId, specUpdateRequest)
if err3 != nil {
log.Error().Err(err3).Msg("UpdateSpec failed")
regiesteredStatus += " [Failed] " + err3.Error()
}
//fmt.Printf("[%d] Registered Common Spec\n", i)
//common.PrintJsonPretty(updatedSpecInfo)
}
//fmt.Printf("[%d] Registered Common Spec\n", i)
//common.PrintJsonPretty(updatedSpecInfo)
}

regiesteredIds.AddItem(common.StrSpec + ": " + specInfoId + regiesteredStatus)
// }(i, row, lenSpecs)
regiesteredIds.AddItem(common.StrSpec + ": " + specInfoId + regiesteredStatus)
// }(i, row, lenSpecs)
}
}
}
wait.Wait()
Expand Down Expand Up @@ -1721,41 +1719,40 @@ func LoadCommonResource() (common.IdList, error) {
connectionForLookup, ok := validRepresentativeConnectionMap.Load(validRepresentativeConnectionMapKey)
if ok {
imageReqTmp.ConnectionName = connectionForLookup.(common.ConnConfig).ConfigName
} else {
imageReqTmp.ConnectionName = "invalid"
}
_, ok = ignoreConnectionMap.Load(imageReqTmp.ConnectionName)
if !ok {
// RandomSleep for safe parallel executions
common.RandomSleep(0, lenImages/8)

// To avoid naming-rule violation, modify the string
// imageReqTmp.Name = imageReqTmp.ConnectionName + "-" + osType
// imageReqTmp.Name = ToNamingRuleCompatible(imageReqTmp.Name)
imageInfoId := imageReqTmp.Name
imageReqTmp.Description = "Common Image Resource"

log.Trace().Msgf("[%d] register Common Image: %s", i, imageReqTmp.Name)

// Register Spec object
regiesteredStatus = ""

_, err1 := RegisterImageWithId(common.SystemCommonNs, &imageReqTmp, true)
if err1 != nil {
log.Info().Msg(imageReqTmp.ConnectionName + err1.Error())
regiesteredStatus += " [Failed] " + err1.Error()
} else {
// Update registered image object with OsType info
imageUpdateRequest := TbImageInfo{GuestOS: osType}
_, err2 := UpdateImage(common.SystemCommonNs, imageInfoId, imageUpdateRequest)
if err2 != nil {
log.Error().Err(err2).Msg("UpdateImage failed")
regiesteredStatus += " [Failed] " + err2.Error()
_, ignoreCase := ignoreConnectionMap.Load(imageReqTmp.ConnectionName)
if !ignoreCase {
// RandomSleep for safe parallel executions
common.RandomSleep(0, lenImages/8)

// To avoid naming-rule violation, modify the string
// imageReqTmp.Name = imageReqTmp.ConnectionName + "-" + osType
// imageReqTmp.Name = ToNamingRuleCompatible(imageReqTmp.Name)
imageInfoId := imageReqTmp.Name
imageReqTmp.Description = "Common Image Resource"

log.Trace().Msgf("[%d] register Common Image: %s", i, imageReqTmp.Name)

// Register Spec object
regiesteredStatus = ""

_, err1 := RegisterImageWithId(common.SystemCommonNs, &imageReqTmp, true)
if err1 != nil {
log.Info().Msgf("Provider: %s, Region: %s, CspImageId: %s Error: %s", providerName, regionName, imageReqTmp.CspImageId, err1.Error())
regiesteredStatus += " [Failed] " + err1.Error()
} else {
// Update registered image object with OsType info
imageUpdateRequest := TbImageInfo{GuestOS: osType}
_, err2 := UpdateImage(common.SystemCommonNs, imageInfoId, imageUpdateRequest)
if err2 != nil {
log.Error().Err(err2).Msg("UpdateImage failed")
regiesteredStatus += " [Failed] " + err2.Error()
}
}
}

//regiesteredStatus = strings.Replace(regiesteredStatus, "\\", "", -1)
regiesteredIds.AddItem(common.StrImage + ": " + imageInfoId + regiesteredStatus)
//regiesteredStatus = strings.Replace(regiesteredStatus, "\\", "", -1)
regiesteredIds.AddItem(common.StrImage + ": " + imageInfoId + regiesteredStatus)
}
}
}(i, row, lenImages)
}
Expand Down