Add depot, attendant, jetfire, optimus, ota services with kustomize overlays

This commit is contained in:
Chris Rai
2026-01-31 15:35:07 -05:00
parent a0ec642ca1
commit 9a5cb2f547
404 changed files with 38817 additions and 16 deletions

View File

@@ -0,0 +1,118 @@
package handlers
import (
"github.com/fiskerinc/cloud-services/services/depot/services"
"github.com/fiskerinc/cloud-services/pkg/common"
fv "github.com/fiskerinc/cloud-services/pkg/flashpackversion"
"github.com/fiskerinc/cloud-services/pkg/logger"
"github.com/pkg/errors"
)
// get vehicle settings
func getSettings(db *services.DB, vin string) ([]common.CarSetting, error) {
settings, err := db.GetCars().GetVehicleSpecificSettings(&common.CarToDriver{
VIN: vin,
})
if err != nil {
return nil, errors.WithStack(err)
}
osVersionSetting, err := getOSVersion(vin)
if err == nil && osVersionSetting != nil {
settings = append(settings, *osVersionSetting)
} else {
logger.Error().Msgf("failed to get os version %v", err)
}
flashpackNumber, err := getFlashpackNumber(vin)
if err != nil {
return nil, errors.WithStack(err)
}
if flashpackNumber != nil {
settings = append(settings, *flashpackNumber)
} else {
logger.Warn().Msgf("no flashpack number yet for vin %s because not enough ECUs have been updated", vin)
}
certNeedsRenewal, err := services.GetCertService().CheckCertificateNeedsRenewal(vin, common.CertICC)
if err != nil {
logger.Error().Msgf("failed to check for certificate renewal %v", err)
} else if certNeedsRenewal {
logger.Debug().Msg("ICC cert for vin " + vin + " is out of date")
settings = append(settings, common.CarSetting{
Name: "certificates",
Value: "expired",
Type: "string",
})
}
clearSettings(settings)
return settings, nil
}
// Get the OS version given a vin
func getOSVersion(vin string) (*common.CarSetting, error) {
sumsVersion, err := getSUMS(vin)
if err != nil {
return nil, err
}
sumsDB := services.GetDB().GetUpdateManifestSUMSVersions()
sums, err := sumsDB.Select(sumsVersion)
if err != nil {
logger.Error().Msgf("can not load SUMS, %v", err)
return nil, err
}
cs := common.CarSetting{
Name: "os_version",
Value: sums.OSVersion,
Type: "string",
}
cs.CreatedAt = sums.CreatedAt
cs.UpdatedAt = sums.UpdatedAt
return &cs, nil
}
// Get the SUMS version from update manifest for a given vin
func getSUMS(vin string) (sumsVersion string, err error) {
carsDB := services.GetDB().GetCars()
car, err := carsDB.SelectByVIN(vin)
if err != nil {
logger.Err(err).Msgf("failed in getSUMS(vin string) for car %s to fetch car", vin)
return
}
return car.SUMSVersion, err
}
// Get the flash pack number
func getFlashpackNumber(vin string) (*common.CarSetting, error) {
cars := services.GetDB().GetCars()
car, err := cars.SelectByVIN(vin)
if err != nil {
return nil, err
}
flashpackNumber, err := fv.FindCurrentFlashpackVersionForCar(cars, *car)
if err != nil {
return nil, err
}
if flashpackNumber != "" {
cs := &common.CarSetting{
Name: "flashpack_number",
Value: flashpackNumber,
Type: "string",
}
return cs, nil
}
return nil, nil
}