github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/ecs/v1/cloudservers/results.go (about) 1 package cloudservers 2 3 import ( 4 "time" 5 6 "github.com/opentelekomcloud/gophertelekomcloud" 7 ) 8 9 type cloudServerResult struct { 10 golangsdk.Result 11 } 12 13 type Flavor struct { 14 Disk string `json:"disk"` 15 Vcpus string `json:"vcpus"` 16 RAM string `json:"ram"` 17 ID string `json:"id"` 18 Name string `json:"name"` 19 } 20 21 // Image defines a image struct in details of a server. 22 type Image struct { 23 ID string `json:"id"` 24 } 25 26 type SysTags struct { 27 Key string `json:"key"` 28 Value string `json:"value"` 29 } 30 31 type OsSchedulerHints struct { 32 Group []string `json:"group"` 33 Tenancy []string `json:"tenancy"` 34 DedicatedHostID []string `json:"dedicated_host_id"` 35 } 36 37 // Metadata is only used for method that requests details on a single server, by ID. 38 // Because metadata struct must be a map. 39 type Metadata struct { 40 ChargingMode string `json:"charging_mode"` 41 VpcID string `json:"vpc_id"` 42 EcmResStatus string `json:"EcmResStatus"` 43 ImageID string `json:"metering.image_id"` 44 ImageType string `json:"metering.imagetype"` 45 ResourceSpecCode string `json:"metering.resourcespeccode"` 46 ResourceType string `json:"metering.resourcetype"` 47 CascadeExtraInfo string `json:"cascaded.instance_extrainfo"` 48 ImageName string `json:"image_name"` 49 AgencyName string `json:"agency_name"` 50 OsBit string `json:"os_bit"` 51 OsType string `json:"os_type"` 52 LockCheckEndpoint string `json:"lockCheckEndpoint"` 53 LockSource string `json:"lockSource"` 54 LockSourceID string `json:"lockSourceId"` 55 LockScene string `json:"lockScene"` 56 VirtualEnvType string `json:"virtual_env_type"` 57 } 58 59 type Address struct { 60 Version string `json:"version"` 61 Addr string `json:"addr"` 62 MacAddr string `json:"OS-EXT-IPS-MAC:mac_addr"` 63 PortID string `json:"OS-EXT-IPS:port_id"` 64 Type string `json:"OS-EXT-IPS:type"` 65 } 66 67 type VolumeAttached struct { 68 ID string `json:"id"` 69 DeleteOnTermination string `json:"delete_on_termination"` 70 BootIndex string `json:"bootIndex"` 71 Device string `json:"device"` 72 } 73 74 type SecurityGroups struct { 75 Name string `json:"name"` 76 ID string `json:"id"` 77 } 78 79 // CloudServer is only used for method that requests details on a single server, by ID. 80 // Because metadata struct must be a map. 81 type CloudServer struct { 82 Status string `json:"status"` 83 Updated time.Time `json:"updated"` 84 HostID string `json:"hostId"` 85 Addresses map[string][]Address `json:"addresses"` 86 ID string `json:"id"` 87 Name string `json:"name"` 88 AccessIPv4 string `json:"accessIPv4"` 89 AccessIPv6 string `json:"accessIPv6"` 90 Created time.Time `json:"created"` 91 Tags []string `json:"tags"` 92 Description string `json:"description"` 93 Locked bool `json:"locked"` 94 ConfigDrive string `json:"config_drive"` 95 TenantID string `json:"tenant_id"` 96 UserID string `json:"user_id"` 97 HostStatus string `json:"host_status"` 98 SysTags []SysTags `json:"sys_tags"` 99 Flavor Flavor `json:"flavor"` 100 Metadata Metadata `json:"metadata"` 101 SecurityGroups []SecurityGroups `json:"security_groups"` 102 KeyName string `json:"key_name"` 103 Image Image `json:"image"` 104 Progress int `json:"progress"` 105 PowerState int `json:"OS-EXT-STS:power_state"` 106 VMState string `json:"OS-EXT-STS:vm_state"` 107 TaskState string `json:"OS-EXT-STS:task_state"` 108 DiskConfig string `json:"OS-DCF:diskConfig"` 109 AvailabilityZone string `json:"OS-EXT-AZ:availability_zone"` 110 LaunchedAt string `json:"OS-SRV-USG:launched_at"` 111 TerminatedAt string `json:"OS-SRV-USG:terminated_at"` 112 RootDeviceName string `json:"OS-EXT-SRV-ATTR:root_device_name"` 113 RamdiskID string `json:"OS-EXT-SRV-ATTR:ramdisk_id"` 114 KernelID string `json:"OS-EXT-SRV-ATTR:kernel_id"` 115 LaunchIndex int `json:"OS-EXT-SRV-ATTR:launch_index"` 116 ReservationID string `json:"OS-EXT-SRV-ATTR:reservation_id"` 117 Hostname string `json:"OS-EXT-SRV-ATTR:hostname"` 118 UserData string `json:"OS-EXT-SRV-ATTR:user_data"` 119 Host string `json:"OS-EXT-SRV-ATTR:host"` 120 InstanceName string `json:"OS-EXT-SRV-ATTR:instance_name"` 121 HypervisorHostname string `json:"OS-EXT-SRV-ATTR:hypervisor_hostname"` 122 VolumeAttached []VolumeAttached `json:"os-extended-volumes:volumes_attached"` 123 OsSchedulerHints OsSchedulerHints `json:"os:scheduler_hints"` 124 } 125 126 // NewCloudServer defines the response from details on a single server, by ID. 127 type NewCloudServer struct { 128 CloudServer 129 Metadata map[string]string `json:"metadata"` 130 } 131 132 // GetResult is the response from a Get operation. Call its Extract 133 // method to interpret it as a Server. 134 type GetResult struct { 135 cloudServerResult 136 } 137 138 func (r GetResult) Extract() (*CloudServer, error) { 139 var s struct { 140 Server *CloudServer `json:"server"` 141 } 142 err := r.ExtractInto(&s) 143 return s.Server, err 144 } 145 146 type DryRunResult struct { 147 golangsdk.ErrResult 148 }