Modifying configuration files and conversions
This commit is contained in:
parent
db5bda5fd6
commit
6cff79d0ca
|
@ -49,7 +49,7 @@ openstackConfig:
|
||||||
OpenstackBareMetalUrl: ""
|
OpenstackBareMetalUrl: ""
|
||||||
Platform: "Nudt_Openstack_R"
|
Platform: "Nudt_Openstack_R"
|
||||||
Id: "default"
|
Id: "default"
|
||||||
DianKe_Openstack_T:
|
Keylin_Openstack_T:
|
||||||
USER: "admin"
|
USER: "admin"
|
||||||
PASSWORD: "28b474f30dc3497d"
|
PASSWORD: "28b474f30dc3497d"
|
||||||
DOMAIN: "Default"
|
DOMAIN: "Default"
|
||||||
|
@ -64,7 +64,7 @@ openstackConfig:
|
||||||
OpenstackVolumev2Url: "http://10.200.1.82:8776/v2/cdda0b55c2034012b255389f96d894db"
|
OpenstackVolumev2Url: "http://10.200.1.82:8776/v2/cdda0b55c2034012b255389f96d894db"
|
||||||
OpenstackLimitsUrl: "http://10.200.1.82:8774"
|
OpenstackLimitsUrl: "http://10.200.1.82:8774"
|
||||||
OpenstackBareMetalUrl: ""
|
OpenstackBareMetalUrl: ""
|
||||||
Platform: "DianKe_Openstack_T"
|
Platform: "Keylin_Openstack_T"
|
||||||
Id: "default"
|
Id: "default"
|
||||||
DianKe_Openstack_R:
|
DianKe_Openstack_R:
|
||||||
USER: "admin"
|
USER: "admin"
|
||||||
|
|
|
@ -91,8 +91,8 @@ func GetOpenstackConfWithPlatform(platform string) (*config.Conf, error) {
|
||||||
conf = C.OpenstackConfig.Nudt_Openstack_R
|
conf = C.OpenstackConfig.Nudt_Openstack_R
|
||||||
case C.OpenstackConfig.ZhiJiang_Openstack_T.Platform:
|
case C.OpenstackConfig.ZhiJiang_Openstack_T.Platform:
|
||||||
conf = C.OpenstackConfig.ZhiJiang_Openstack_T
|
conf = C.OpenstackConfig.ZhiJiang_Openstack_T
|
||||||
case C.OpenstackConfig.DianKe_Openstack_T.Platform:
|
case C.OpenstackConfig.Keylin_Openstack_T.Platform:
|
||||||
conf = C.OpenstackConfig.DianKe_Openstack_T
|
conf = C.OpenstackConfig.Keylin_Openstack_T
|
||||||
case C.OpenstackConfig.DianKe_Openstack_R.Platform:
|
case C.OpenstackConfig.DianKe_Openstack_R.Platform:
|
||||||
conf = C.OpenstackConfig.DianKe_Openstack_R
|
conf = C.OpenstackConfig.DianKe_Openstack_R
|
||||||
default:
|
default:
|
||||||
|
@ -123,14 +123,14 @@ func GetToken(Platform string) (token string) {
|
||||||
a.Auth.Identity.Password.User.Password = C.OpenstackConfig.Nudt_Openstack_R.PASSWORD
|
a.Auth.Identity.Password.User.Password = C.OpenstackConfig.Nudt_Openstack_R.PASSWORD
|
||||||
a.Auth.Identity.Password.User.Domain.Name = C.OpenstackConfig.Nudt_Openstack_R.DOMAIN
|
a.Auth.Identity.Password.User.Domain.Name = C.OpenstackConfig.Nudt_Openstack_R.DOMAIN
|
||||||
TokenUrl = C.OpenstackConfig.Nudt_Openstack_R.TokenUrl
|
TokenUrl = C.OpenstackConfig.Nudt_Openstack_R.TokenUrl
|
||||||
case C.OpenstackConfig.DianKe_Openstack_T.Platform:
|
case C.OpenstackConfig.Keylin_Openstack_T.Platform:
|
||||||
a.Auth.Scope.Project.Name = C.OpenstackConfig.DianKe_Openstack_T.USER
|
a.Auth.Scope.Project.Name = C.OpenstackConfig.Keylin_Openstack_T.USER
|
||||||
a.Auth.Scope.Project.Domain.Id = C.OpenstackConfig.DianKe_Openstack_T.Id
|
a.Auth.Scope.Project.Domain.Id = C.OpenstackConfig.Keylin_Openstack_T.Id
|
||||||
a.Auth.Identity.Methods = append(a.Auth.Identity.Methods, C.OpenstackConfig.DianKe_Openstack_T.AuthMethod)
|
a.Auth.Identity.Methods = append(a.Auth.Identity.Methods, C.OpenstackConfig.Keylin_Openstack_T.AuthMethod)
|
||||||
a.Auth.Identity.Password.User.Name = C.OpenstackConfig.DianKe_Openstack_T.USER
|
a.Auth.Identity.Password.User.Name = C.OpenstackConfig.Keylin_Openstack_T.USER
|
||||||
a.Auth.Identity.Password.User.Password = C.OpenstackConfig.DianKe_Openstack_T.PASSWORD
|
a.Auth.Identity.Password.User.Password = C.OpenstackConfig.Keylin_Openstack_T.PASSWORD
|
||||||
a.Auth.Identity.Password.User.Domain.Name = C.OpenstackConfig.DianKe_Openstack_T.DOMAIN
|
a.Auth.Identity.Password.User.Domain.Name = C.OpenstackConfig.Keylin_Openstack_T.DOMAIN
|
||||||
TokenUrl = C.OpenstackConfig.DianKe_Openstack_T.TokenUrl
|
TokenUrl = C.OpenstackConfig.Keylin_Openstack_T.TokenUrl
|
||||||
case C.OpenstackConfig.DianKe_Openstack_R.Platform:
|
case C.OpenstackConfig.DianKe_Openstack_R.Platform:
|
||||||
a.Auth.Scope.Project.Name = C.OpenstackConfig.DianKe_Openstack_R.USER
|
a.Auth.Scope.Project.Name = C.OpenstackConfig.DianKe_Openstack_R.USER
|
||||||
a.Auth.Scope.Project.Domain.Id = C.OpenstackConfig.DianKe_Openstack_R.Id
|
a.Auth.Scope.Project.Domain.Id = C.OpenstackConfig.DianKe_Openstack_R.Id
|
||||||
|
|
|
@ -3,7 +3,7 @@ package config
|
||||||
type OpenstackConfig struct {
|
type OpenstackConfig struct {
|
||||||
ZhiJiang_Openstack_T Conf `json:"ZhiJiang_Openstack_T"`
|
ZhiJiang_Openstack_T Conf `json:"ZhiJiang_Openstack_T"`
|
||||||
Nudt_Openstack_R Conf `json:"Nudt_Openstack_R"`
|
Nudt_Openstack_R Conf `json:"Nudt_Openstack_R"`
|
||||||
DianKe_Openstack_T Conf `json:"DianKe_Openstack_T"`
|
Keylin_Openstack_T Conf `json:"Keylin_Openstack_T"`
|
||||||
DianKe_Openstack_R Conf `json:"DianKe_Openstack_R"`
|
DianKe_Openstack_R Conf `json:"DianKe_Openstack_R"`
|
||||||
Status_created int `json:"Status_created"`
|
Status_created int `json:"Status_created"`
|
||||||
TokenHeader string `json:"TokenHeader"`
|
TokenHeader string `json:"TokenHeader"`
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
package logic
|
||||||
|
|
||||||
|
/*type ListServersDetailedLogic struct {
|
||||||
|
ctx context.Context
|
||||||
|
svcCtx *svc.ServiceContext
|
||||||
|
logx.Logger
|
||||||
|
}
|
||||||
|
*/
|
|
@ -8,8 +8,7 @@ import (
|
||||||
"gitlink.org.cn/JointCloud/pcm-openstack/internal/svc"
|
"gitlink.org.cn/JointCloud/pcm-openstack/internal/svc"
|
||||||
"gitlink.org.cn/JointCloud/pcm-openstack/openstack"
|
"gitlink.org.cn/JointCloud/pcm-openstack/openstack"
|
||||||
|
|
||||||
"k8s.io/apimachinery/pkg/util/json"
|
"encoding/json"
|
||||||
|
|
||||||
"github.com/zeromicro/go-zero/core/logx"
|
"github.com/zeromicro/go-zero/core/logx"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -27,8 +26,108 @@ func NewListServersDetailedLogic(ctx context.Context, svcCtx *svc.ServiceContext
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type ServersDetailedResp struct {
|
||||||
|
Servers []ServersData `json:"servers"`
|
||||||
|
Code int32 `json:"code"`
|
||||||
|
Msg string `json:"msg"`
|
||||||
|
Error_msg string `json:"error_msg"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ServersData struct {
|
||||||
|
OSTaskState string `json:"OS-EXT-STS:task_state"`
|
||||||
|
VmState string `json:"OS-EXT-STS:vm_state"`
|
||||||
|
InstanceName string `json:"OS-EXT-SRV-ATTR:instance_name"`
|
||||||
|
OS_SRV_USG_Launched_At string `json:"OS-SRV-USG:launched_at"`
|
||||||
|
OS_DCF_DiskConfig string `json:"OS-DCF:diskConfig"`
|
||||||
|
OS_EXT_STS_Power_State int32 `json:"OS-EXT-SRV-ATTR:power_state"`
|
||||||
|
OS_EXT_AZ_availability_zone string `json:"OS-EXT-AZ:availability_zone"`
|
||||||
|
OS_EXT_SRV_ATTR_Host string `json:"OS-EXT-SRV-ATTR:host"`
|
||||||
|
OS_SRV_USG_Terminated_At string `json:"OS-SRV-USG:terminated_at"`
|
||||||
|
Os_extended_volumes_volumes_attached []string `json:"os-extended-volumes:volumes_attached"`
|
||||||
|
OS_EXT_SRV_ATTR_Hypervisor_Hostname string `json:"OS-EXT-SRV-ATTR:hypervisor_hostname"`
|
||||||
|
AccessIPv4 string `json:"accessIPv4"`
|
||||||
|
AccessIPv6 string `json:"accessIPv6"`
|
||||||
|
Addresses Addresses `json:"addresses"`
|
||||||
|
Config_drive string `json:"config_drive"`
|
||||||
|
Description string `json:"description"`
|
||||||
|
Flavor Flavor `json:"flavor"`
|
||||||
|
HostId string `json:"hostId"`
|
||||||
|
Host_status string `json:"host_status"`
|
||||||
|
Id string `json:"id"`
|
||||||
|
Image Image `json:"image"`
|
||||||
|
Key_name string `json:"key_name"`
|
||||||
|
Links Links1 `json:"links"`
|
||||||
|
Locked bool `json:"locked"`
|
||||||
|
Locked_reason string `json:"locked_reason"`
|
||||||
|
Metadata Metadata `json:"metadata"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
Created string `json:"created"`
|
||||||
|
Progress uint32 `json:"progress"`
|
||||||
|
Security_groups []Security_groups `json:"security_groups"`
|
||||||
|
Status string `json:"status"`
|
||||||
|
Tags []string `json:"tags"`
|
||||||
|
Trusted_image_certificates string `json:"trusted_image_certificates"`
|
||||||
|
Updated string `json:"updated"`
|
||||||
|
User_id string `json:"user_id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Addresses 结构体表示网络地址的集合
|
||||||
|
type Addresses map[string][]Address
|
||||||
|
|
||||||
|
type Address struct {
|
||||||
|
OSEXTIPSMACMacAddr string `json:"OS-EXT-IPS-MAC:mac_addr"`
|
||||||
|
Version int `json:"version"`
|
||||||
|
Addr string `json:"addr"`
|
||||||
|
OSEXTIPSType string `json:"OS-EXT-IPS:type"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flavor struct {
|
||||||
|
Id string `json:"id"`
|
||||||
|
Links []Links1 `json:"links"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Image struct {
|
||||||
|
Id string `json:"id"`
|
||||||
|
Links []Links1 `json:"links"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Links1 struct {
|
||||||
|
Href string `json:"href"`
|
||||||
|
Rel string `json:"rel"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Metadata struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
type Security_groups struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Private struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
type ServersWrapper struct {
|
||||||
|
// 其他字段...
|
||||||
|
Servers []ServersDetailed `json:"servers"`
|
||||||
|
// 其他字段...
|
||||||
|
}
|
||||||
|
|
||||||
|
type ServersDetailed struct {
|
||||||
|
// 其他字段...
|
||||||
|
OSTaskState string `json:"OSTaskState"`
|
||||||
|
Status string `json:"status"`
|
||||||
|
VmState string `json:"VmState"`
|
||||||
|
OS_EXT_SRV_ATTR_Instance_Name string `json:"OS_EXT_SRV_ATTR_Instance_Name"`
|
||||||
|
Created string `json:"Created"`
|
||||||
|
HostId string `json:"HostId"`
|
||||||
|
Ip string `json:"Ip"`
|
||||||
|
Image string `json:"Image"`
|
||||||
|
// 其他字段...
|
||||||
|
}
|
||||||
|
|
||||||
func (l *ListServersDetailedLogic) ListServersDetailed(in *openstack.ListServersDetailedReq) (*openstack.ListServersDetailedResp, error) {
|
func (l *ListServersDetailedLogic) ListServersDetailed(in *openstack.ListServersDetailedReq) (*openstack.ListServersDetailedResp, error) {
|
||||||
// todo: add your logic here and delete this line
|
// todo: add your logic here and delete this line
|
||||||
|
var response ServersDetailedResp
|
||||||
var resp openstack.ListServersDetailedResp
|
var resp openstack.ListServersDetailedResp
|
||||||
platform, err := common.GetOpenstackConfWithPlatform(in.Platform)
|
platform, err := common.GetOpenstackConfWithPlatform(in.Platform)
|
||||||
openstackUrl := platform.OpenstackComputeUrl
|
openstackUrl := platform.OpenstackComputeUrl
|
||||||
|
@ -41,10 +140,40 @@ func (l *ListServersDetailedLogic) ListServersDetailed(in *openstack.ListServers
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if statusCode == 200 {
|
if statusCode == 200 {
|
||||||
err := json.Unmarshal(body, &resp)
|
err := json.Unmarshal(body, &response)
|
||||||
|
fmt.Println("返回结果", response)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
}
|
}
|
||||||
|
var newList []interface{}
|
||||||
|
for _, server := range response.Servers {
|
||||||
|
// 假设我们想要提取任务状态(task_state)和状态(status)
|
||||||
|
newList = append(newList, map[string]interface{}{
|
||||||
|
"OSTaskState": server.OSTaskState,
|
||||||
|
"status": server.Status,
|
||||||
|
"VmState": server.VmState,
|
||||||
|
"OS_EXT_SRV_ATTR_Instance_Name": server.InstanceName,
|
||||||
|
"Created": server.Created,
|
||||||
|
"Updated": server.Updated,
|
||||||
|
"hostId": server.HostId,
|
||||||
|
"ip": server.Addresses,
|
||||||
|
"image": server.Image.Id,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
jsonData, err := json.Marshal(newList)
|
||||||
|
var serversDetailed []ServersDetailed
|
||||||
|
err2 := json.Unmarshal(jsonData, &serversDetailed)
|
||||||
|
if err2 != nil {
|
||||||
|
fmt.Println("Error parsing JSON array:", err)
|
||||||
|
}
|
||||||
|
serversWrapper := ServersWrapper{
|
||||||
|
Servers: serversDetailed,
|
||||||
|
}
|
||||||
|
jsonData2, err := json.Marshal(serversWrapper)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("Error marshalling JSON:", err)
|
||||||
|
}
|
||||||
|
json.Unmarshal(jsonData2, &resp)
|
||||||
resp.Code = 200
|
resp.Code = 200
|
||||||
resp.Msg = "Success"
|
resp.Msg = "Success"
|
||||||
} else if statusCode != 200 {
|
} else if statusCode != 200 {
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -259,15 +259,6 @@ type (
|
||||||
ListSecurityGroupsResp_SecurityGroups = openstack.ListSecurityGroupsResp_SecurityGroups
|
ListSecurityGroupsResp_SecurityGroups = openstack.ListSecurityGroupsResp_SecurityGroups
|
||||||
ListServersDetailedReq = openstack.ListServersDetailedReq
|
ListServersDetailedReq = openstack.ListServersDetailedReq
|
||||||
ListServersDetailedResp = openstack.ListServersDetailedResp
|
ListServersDetailedResp = openstack.ListServersDetailedResp
|
||||||
ListServersDetailedResp_Addresses = openstack.ListServersDetailedResp_Addresses
|
|
||||||
ListServersDetailedResp_ExtraSpecs = openstack.ListServersDetailedResp_ExtraSpecs
|
|
||||||
ListServersDetailedResp_Flavor = openstack.ListServersDetailedResp_Flavor
|
|
||||||
ListServersDetailedResp_Image = openstack.ListServersDetailedResp_Image
|
|
||||||
ListServersDetailedResp_Links = openstack.ListServersDetailedResp_Links
|
|
||||||
ListServersDetailedResp_Links1 = openstack.ListServersDetailedResp_Links1
|
|
||||||
ListServersDetailedResp_Metadata = openstack.ListServersDetailedResp_Metadata
|
|
||||||
ListServersDetailedResp_Private = openstack.ListServersDetailedResp_Private
|
|
||||||
ListServersDetailedResp_SecurityGroups = openstack.ListServersDetailedResp_SecurityGroups
|
|
||||||
ListServersDetailedResp_ServersDetailed = openstack.ListServersDetailedResp_ServersDetailed
|
ListServersDetailedResp_ServersDetailed = openstack.ListServersDetailedResp_ServersDetailed
|
||||||
ListServersReq = openstack.ListServersReq
|
ListServersReq = openstack.ListServersReq
|
||||||
ListServersResp = openstack.ListServersResp
|
ListServersResp = openstack.ListServersResp
|
||||||
|
|
|
@ -112,86 +112,16 @@ message ListServersDetailedReq {
|
||||||
}
|
}
|
||||||
|
|
||||||
message ListServersDetailedResp {
|
message ListServersDetailedResp {
|
||||||
message Private {
|
|
||||||
string OS_EXT_IPS_MAC_mac_addr = 1 [json_name="OS-EXT-IPS-MAC:mac_addr"];
|
|
||||||
string OS_EXT_IPS_type = 2 [json_name="OS-EXT-IPS:type"];
|
|
||||||
string addr = 3;
|
|
||||||
uint32 version = 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
message Addresses {
|
|
||||||
repeated Private private = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message Extra_specs {
|
|
||||||
}
|
|
||||||
|
|
||||||
message Flavor {
|
|
||||||
string id =1;
|
|
||||||
repeated Links1 links = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
message Links {
|
|
||||||
string href = 1;
|
|
||||||
string rel = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
message Image {
|
|
||||||
string id = 1;
|
|
||||||
repeated Links links = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
message Links1 {
|
|
||||||
string href = 1;
|
|
||||||
string rel = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
message Metadata {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
message Security_groups {
|
|
||||||
string name = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message ServersDetailed {
|
message ServersDetailed {
|
||||||
string TaskState = 1 [json_name="OS-EXT-STS:task_state,omitempty"];
|
string OSTaskState = 1;
|
||||||
string VmState = 15[json_name="OS-EXT-STS:vm_state,omitempty"];
|
string Status =2;
|
||||||
string OS_EXT_SRV_ATTR_Instance_Name = 6 [json_name="OS-EXT-SRV-ATTR:instance_name"];
|
string VmState = 3;
|
||||||
string OS_SRV_USG_Launched_At = 16[json_name="OS-SRV-USG:launched_at"];
|
string OS_EXT_SRV_ATTR_Instance_Name = 4;
|
||||||
string OS_DCF_DiskConfig = 44[json_name="OS-DCF:diskConfig"];
|
string Created = 5;
|
||||||
int32 OS_EXT_STS_Power_State = 13[json_name="OS-EXT-SRV-ATTR:power_state"];
|
string HostId = 6;
|
||||||
string OS_EXT_AZ_availability_zone = 2 [json_name="OS-EXT-AZ:availability_zone"];
|
string Ip = 7;
|
||||||
string OS_EXT_SRV_ATTR_Host = 3 [json_name="OS-EXT-SRV-ATTR:host"];
|
string Image =8;
|
||||||
string OS_SRV_USG_Terminated_At = 17[json_name="OS-SRV-USG:terminated_at"];
|
|
||||||
repeated string os_extended_volumes_volumes_attached = 35 [json_name="os-extended-volumes:volumes_attached"];
|
|
||||||
string OS_EXT_SRV_ATTR_Hypervisor_Hostname = 5 [json_name="OS-EXT-SRV-ATTR:hypervisor_hostname"];
|
|
||||||
|
|
||||||
string accessIPv4 = 18;
|
|
||||||
string accessIPv6 = 19;
|
|
||||||
Addresses addresses = 20;
|
|
||||||
string config_drive = 21;
|
|
||||||
string description = 23;
|
|
||||||
Flavor flavor = 24;
|
|
||||||
string hostId = 25;
|
|
||||||
string host_status = 26;
|
|
||||||
string id = 27;
|
|
||||||
Image image = 28;
|
|
||||||
string key_name = 29;
|
|
||||||
repeated Links1 links = 30;
|
|
||||||
bool locked = 31;
|
|
||||||
string locked_reason = 32;
|
|
||||||
Metadata metadata = 33;
|
|
||||||
string name = 34;
|
|
||||||
|
|
||||||
uint32 progress = 36;
|
|
||||||
repeated Security_groups security_groups = 37;
|
|
||||||
string status = 38;
|
|
||||||
repeated string tags = 39;
|
|
||||||
string tenant_id = 40;
|
|
||||||
string trusted_image_certificates = 41;
|
|
||||||
string updated = 42;
|
|
||||||
string user_id = 43;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
repeated ServersDetailed servers = 1; // @gotags: copier:"ServersDetailed"
|
repeated ServersDetailed servers = 1; // @gotags: copier:"ServersDetailed"
|
||||||
|
|
Loading…
Reference in New Issue