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"`
}