Documentation ¶
Index ¶
- func GetJobEntity(client *golangsdk.ServiceClient, jobID string, label string) (interface{}, error)
- func WaitForJobSuccess(client *golangsdk.ServiceClient, secs int, jobID string) error
- type Address
- type BandWidth
- type BindingProfile
- type CloudServer
- type CreateOpts
- type CreateOptsBuilder
- type DataVolume
- type DeleteOpts
- type DryRunResult
- type Eip
- type ExtraDhcpOpts
- type Flavor
- type GetResult
- type Image
- type JobEntity
- type JobResponse
- type JobResult
- type JobStatus
- type MetaData
- type Metadata
- type NewCloudServer
- type Nic
- type OsSchedulerHints
- type PublicIp
- type RootVolume
- type SchedulerHints
- type SecurityGroup
- type SecurityGroups
- type Server
- type ServerExtendParam
- type ServerTags
- type SubJob
- type SysTags
- type VolumeAttached
- type VolumeExtendParam
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetJobEntity ¶
func WaitForJobSuccess ¶
Types ¶
type BindingProfile ¶ added in v0.2.7
type BindingProfile struct { // DisableSecurityGroups indicates that a HANA ECS NIC is not added to a security group. DisableSecurityGroups *bool `json:"disable_security_groups,omitempty"` }
type CloudServer ¶
type CloudServer struct { Status string `json:"status"` Updated time.Time `json:"updated"` HostID string `json:"hostId"` Addresses map[string][]Address `json:"addresses"` ID string `json:"id"` Name string `json:"name"` AccessIPv4 string `json:"accessIPv4"` AccessIPv6 string `json:"accessIPv6"` Created time.Time `json:"created"` Tags []string `json:"tags"` Description string `json:"description"` Locked bool `json:"locked"` ConfigDrive string `json:"config_drive"` TenantID string `json:"tenant_id"` UserID string `json:"user_id"` HostStatus string `json:"host_status"` SysTags []SysTags `json:"sys_tags"` Flavor Flavor `json:"flavor"` Metadata Metadata `json:"metadata"` SecurityGroups []SecurityGroups `json:"security_groups"` KeyName string `json:"key_name"` Image Image `json:"image"` Progress int `json:"progress"` PowerState int `json:"OS-EXT-STS:power_state"` VMState string `json:"OS-EXT-STS:vm_state"` TaskState string `json:"OS-EXT-STS:task_state"` DiskConfig string `json:"OS-DCF:diskConfig"` AvailabilityZone string `json:"OS-EXT-AZ:availability_zone"` LaunchedAt string `json:"OS-SRV-USG:launched_at"` TerminatedAt string `json:"OS-SRV-USG:terminated_at"` RootDeviceName string `json:"OS-EXT-SRV-ATTR:root_device_name"` RamdiskID string `json:"OS-EXT-SRV-ATTR:ramdisk_id"` KernelID string `json:"OS-EXT-SRV-ATTR:kernel_id"` LaunchIndex int `json:"OS-EXT-SRV-ATTR:launch_index"` ReservationID string `json:"OS-EXT-SRV-ATTR:reservation_id"` Hostname string `json:"OS-EXT-SRV-ATTR:hostname"` UserData string `json:"OS-EXT-SRV-ATTR:user_data"` Host string `json:"OS-EXT-SRV-ATTR:host"` InstanceName string `json:"OS-EXT-SRV-ATTR:instance_name"` HypervisorHostname string `json:"OS-EXT-SRV-ATTR:hypervisor_hostname"` VolumeAttached []VolumeAttached `json:"os-extended-volumes:volumes_attached"` OsSchedulerHints OsSchedulerHints `json:"os:scheduler_hints"` }
CloudServer is only used for method that requests details on a single server, by ID. Because metadata struct must be a map.
type CreateOpts ¶
type CreateOpts struct { // ImageRef ID the ID of the system image used for creating ECSs. ImageRef string `json:"imageRef" required:"true"` // FlavorRef ID of the ECS to be created. FlavorRef string `json:"flavorRef" required:"true"` // Name of the ECS instance. Name string `json:"name" required:"true"` // UserData to be injected during the ECS creation process. UserData []byte `json:"-"` // AdminPass sets the root user password. If not set, a randomly-generated // password will be created and returned in the response. AdminPass string `json:"adminPass,omitempty"` // KeyName of the SSH key used for logging in to the ECS. KeyName string `json:"key_name,omitempty"` // VpcId of the VPC to which the ECS belongs. VpcId string `json:"vpcid" required:"true"` // Nics information of the ECS. Nics []Nic `json:"nics" required:"true"` // PublicIp of the ECS. PublicIp *PublicIp `json:"publicip,omitempty"` // Count of ECSs to be created. // If this parameter is not specified, the default value is 1. Count int `json:"count,omitempty"` // ECS RootVolume configurations. RootVolume RootVolume `json:"root_volume" required:"true"` // ECS DataVolumes configurations. DataVolumes []DataVolume `json:"data_volumes,omitempty"` // SecurityGroups of the ECS. SecurityGroups []SecurityGroup `json:"security_groups,omitempty"` // AvailabilityZone specifies name of the AZ where the ECS is located. AvailabilityZone string `json:"availability_zone" required:"true"` // ExtendParam provides the supplementary information about the ECS to be created. ExtendParam *ServerExtendParam `json:"extendparam,omitempty"` // MetaData specifies the metadata of the ECS to be created. MetaData *MetaData `json:"metadata,omitempty"` // SchedulerHints schedules ECSs, for example, by configuring an ECS group. SchedulerHints *SchedulerHints `json:"os:scheduler_hints,omitempty"` // ECS Tags. Tags []string `json:"tags,omitempty"` ServerTags []ServerTags `json:"server_tags,omitempty"` }
func (CreateOpts) ToServerCreateMap ¶
func (opts CreateOpts) ToServerCreateMap() (map[string]interface{}, error)
ToServerCreateMap assembles a request body based on the contents of a CreateOpts.
type CreateOptsBuilder ¶
CreateOptsBuilder allows extensions to add additional parameters to the Create request.
type DataVolume ¶
type DataVolume struct { // VolumeType of the ECS data disk. VolumeType string `json:"volumetype" required:"true"` // The data disk Size, in GB. Size int `json:"size" required:"true"` // MultiAttach is the shared disk information. MultiAttach *bool `json:"multiattach,omitempty"` // PassThrough indicates whether the data volume uses a SCSI lock. PassThrough *bool `json:"hw:passthrough,omitempty"` Extendparam *VolumeExtendParam `json:"extendparam,omitempty"` // DataImageID If data disks are created using a data disk // image, this parameter is mandatory and it does not support metadata. DataImageID string `json:"data_image_id,omitempty"` // EVS disk Metadata. Metadata map[string]interface{} `json:"metadata,omitempty"` }
type DeleteOpts ¶
type DeleteOpts struct { // Servers to be deleted Servers []Server `json:"servers" required:"true"` // DeletePublicIP specifies whether to delete the EIP bound to the ECS when deleting the ECS. DeletePublicIP bool `json:"delete_publicip,omitempty"` // DeleteVolume specifies whether to delete the data disks of the ECS. DeleteVolume bool `json:"delete_volume,omitempty"` }
func (DeleteOpts) ToServerDeleteMap ¶
func (opts DeleteOpts) ToServerDeleteMap() (map[string]interface{}, error)
ToServerDeleteMap assembles a request body based on the contents of a DeleteOpts.
type DryRunResult ¶ added in v0.2.7
type DryRunResult struct {
golangsdk.ErrResult
}
func DryRun ¶ added in v0.2.7
func DryRun(client *golangsdk.ServiceClient, opts CreateOptsBuilder) (r DryRunResult)
DryRun requests a server to be provisioned to the user in the current tenant.
type ExtraDhcpOpts ¶ added in v0.2.7
type GetResult ¶
type GetResult struct {
// contains filtered or unexported fields
}
GetResult is the response from a Get operation. Call its Extract method to interpret it as a Server.
func (GetResult) Extract ¶
func (r GetResult) Extract() (*CloudServer, error)
type Image ¶
type Image struct {
ID string `json:"id"`
}
Image defines a image struct in details of a server.
type JobEntity ¶
type JobEntity struct { // Specifies the number of subtasks. // When no subtask exists, the value of this parameter is 0. SubJobsTotal int `json:"sub_jobs_total"` // Specifies the execution information of a subtask. // When no subtask exists, the value of this parameter is left blank. SubJobs []SubJob `json:"sub_jobs"` }
type JobResponse ¶
type JobResponse struct {
JobID string `json:"job_id"`
}
type JobResult ¶
type JobResult struct {
golangsdk.Result
}
func Create ¶
func Create(client *golangsdk.ServiceClient, opts CreateOptsBuilder) (r JobResult)
Create requests a server to be provisioned to the user in the current tenant.
func Delete ¶
func Delete(client *golangsdk.ServiceClient, opts DeleteOpts) (r JobResult)
Delete requests a server to be deleted to the user in the current tenant.
func (JobResult) ExtractJobResponse ¶
func (r JobResult) ExtractJobResponse() (*JobResponse, error)
func (JobResult) ExtractJobStatus ¶
type JobStatus ¶
type JobStatus struct { Status string `json:"status"` Entities JobEntity `json:"entities"` JobID string `json:"job_id"` JobType string `json:"job_type"` BeginTime string `json:"begin_time"` EndTime string `json:"end_time"` ErrorCode string `json:"error_code"` FailReason string `json:"fail_reason"` Message string `json:"message"` Code string `json:"code"` }
type MetaData ¶
type MetaData struct { // AdminPass specifies the password of user Administrator for logging in to a Windows ECS. AdminPass string `json:"admin_pass,omitempty"` // OpSvcUserId specifies the user ID. OpSvcUserId string `json:"op_svc_userid,omitempty"` // AgencyName specifies the IAM agency name. AgencyName string `json:"agency_name,omitempty"` // If you have an OS or a software license, you can migrate your services to the cloud // platform in BYOL mode to continue using your existing licenses. BYOL string `json:"BYOL,omitempty"` }
type Metadata ¶
type Metadata struct { ChargingMode string `json:"charging_mode"` VpcID string `json:"vpc_id"` EcmResStatus string `json:"EcmResStatus"` ImageID string `json:"metering.image_id"` ImageType string `json:"metering.imagetype"` ResourceSpecCode string `json:"metering.resourcespeccode"` ResourceType string `json:"metering.resourcetype"` CascadeExtraInfo string `json:"cascaded.instance_extrainfo"` ImageName string `json:"image_name"` AgencyName string `json:"agency_name"` OsBit string `json:"os_bit"` OsType string `json:"os_type"` LockCheckEndpoint string `json:"lockCheckEndpoint"` LockSource string `json:"lockSource"` LockSourceID string `json:"lockSourceId"` LockScene string `json:"lockScene"` VirtualEnvType string `json:"virtual_env_type"` }
Metadata is only used for method that requests details on a single server, by ID. Because metadata struct must be a map.
type NewCloudServer ¶
type NewCloudServer struct { CloudServer Metadata map[string]string `json:"metadata"` }
NewCloudServer defines the response from details on a single server, by ID.
type Nic ¶
type Nic struct { // SubnetId of the ECS. SubnetId string `json:"subnet_id" required:"true"` // IpAddress of the NIC used by the ECS. IpAddress string `json:"ip_address,omitempty"` // BindingProfile allows you to customize data. // Configure this parameter when creating a HANA ECS. BindingProfile BindingProfile `json:"binding:profile,omitempty"` // ExtraDhcpOpts indicates extended DHCP options. ExtraDhcpOpts []ExtraDhcpOpts `json:"extra_dhcp_opts,omitempty"` }
type OsSchedulerHints ¶
type RootVolume ¶
type RootVolume struct { // VolumeType of the ECS system disk. VolumeType string `json:"volumetype" required:"true"` // System disk Size, in GB. Size int `json:"size,omitempty"` ExtendParam *VolumeExtendParam `json:"extendparam,omitempty"` // Pay attention to this parameter if your ECS is SDI-compliant. // If the value of this parameter is true, the created disk is of SCSI type. PassThrough *bool `json:"hw:passthrough,omitempty"` Metadata map[string]interface{} `json:"metadata,omitempty"` }
type SchedulerHints ¶
type SchedulerHints struct { // ECS Group ID, which is in UUID format. Group string `json:"group,omitempty"` // Specifies whether the ECS is created on a Dedicated Host (DeH) or in a shared pool. Tenancy string `json:"tenancy,omitempty"` // DedicatedHostID specifies a DeH ID. DedicatedHostID string `json:"dedicated_host_id,omitempty"` }
type SecurityGroup ¶
type SecurityGroup struct { // ID of the security group to which an ECS is to be added ID string `json:"id,omitempty"` }
type SecurityGroups ¶
type Server ¶
type Server struct { // ID of the ECS to be deleted. Id string `json:"id" required:"true"` }
type ServerExtendParam ¶
type ServerTags ¶
type SubJob ¶
type SubJob struct { // Specifies the task ID. Id string `json:"job_id"` // Task type. Type string `json:"job_type"` // Specifies the task status. // SUCCESS: indicates the task is successfully executed. // RUNNING: indicates that the task is in progress. // FAIL: indicates that the task failed. // INIT: indicates that the task is being initialized. Status string `json:"status"` // Specifies the time when the task started. BeginTime string `json:"begin_time"` // Specifies the time when the task finished. EndTime string `json:"end_time"` // Specifies the returned error code when the task execution fails. ErrorCode string `json:"error_code"` // Specifies the cause of the task execution failure. FailReason string `json:"fail_reason"` // Specifies the object of the task. Entities map[string]string `json:"entities"` }
type VolumeAttached ¶
type VolumeExtendParam ¶
type VolumeExtendParam struct {
SnapshotId string `json:"snapshotId,omitempty"`
}