Skip to content

Commit

Permalink
Merge pull request #1448 from MZC-CSC/develop
Browse files Browse the repository at this point in the history
Issue 1405 metadata vm image for tencent
  • Loading branch information
powerkimhub authored Feb 5, 2025
2 parents af9ab70 + 0ddb7d1 commit 6ee6c65
Showing 1 changed file with 72 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ package resources

import (
"errors"
"strconv"
"strings"

idrv "github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/interfaces"
Expand Down Expand Up @@ -141,6 +142,19 @@ func ExtractImageDescribeInfo(image *cvm.Image) irs.ImageInfo {
imageInfo.Status = "available"
}

osPlatform := extractOsPlatform(image)
osArchitecture := extractOsArchitecture(image)
distribution := extractOsDistribution(image)

imageStatus := extractImageAvailability(image)

imageInfo.OSPlatform = osPlatform
imageInfo.OSArchitecture = osArchitecture
imageInfo.OSDistribution = distribution
imageInfo.ImageStatus = imageStatus
imageInfo.OSDiskSizeInGB = strconv.FormatInt(*image.ImageSize, 10)
imageInfo.OSDiskType = "NA"

//KeyValue 목록 처리
keyValueList, errKeyValue := ConvertKeyValueList(image)
if errKeyValue != nil {
Expand Down Expand Up @@ -247,3 +261,61 @@ func (imageHandler *TencentImageHandler) CheckWindowsImage(imageIID irs.IID) (bo

return isWindow, nil
}

func extractOsPlatform(image *cvm.Image) irs.OSPlatform {
platform := image.Platform

if platform == nil {
return irs.PlatformNA
}
switch *platform {
case "CentOS", "Ubuntu", "TencentOS", "OpenCloudOS":
return irs.Linux_UNIX
case "Windows":
return irs.Windows
default:
return irs.PlatformNA
}
}

func extractOsDistribution(image *cvm.Image) string {
return *image.ImageName
}

func extractImageAvailability(image *cvm.Image) irs.ImageStatus {
state := image.ImageState

if state == nil {
return irs.ImageNA
}
switch *state {
case "NORMAL":
return irs.ImageAvailable
default:
return irs.ImageUnavailable
}
}

func extractOsArchitecture(orgImage *cvm.Image) irs.OSArchitecture {
arch := orgImage.Architecture
if arch == nil {
return irs.ArchitectureNA
}

// arm64
// arm64_mac
// x86_64
// x86_64_mac
// NA
switch *arch {
case "arm", "arm64":
return irs.ARM64

case "x86_64":
return irs.X86_64

default:
return irs.ArchitectureNA
}

}

0 comments on commit 6ee6c65

Please sign in to comment.