| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302 |
- // Copyright 2019 Yunion
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- package remotefile
- import (
- "context"
- "yunion.io/x/pkg/util/imagetools"
- api "yunion.io/x/cloudmux/pkg/apis/compute"
- "yunion.io/x/cloudmux/pkg/cloudprovider"
- )
- type SInstance struct {
- SResourceBase
- host *SHost
- osInfo *imagetools.ImageInfo
- HostId string
- Hostname string
- SecurityGroupIds []string
- VcpuCount int
- CpuSockets int
- VmemSizeMb int
- BootOrder string
- Vga string
- Vdi string
- OsArch string
- OsType string
- OsName string
- Bios string
- Machine string
- InstanceType string
- Bandwidth int
- Throughput int
- EipId string
- Disks []SDisk
- Nics []SInstanceNic
- }
- func (self *SInstance) GetSecurityGroupIds() ([]string, error) {
- return self.SecurityGroupIds, nil
- }
- func (self *SInstance) SetSecurityGroups(secgroupIds []string) error {
- return cloudprovider.ErrNotSupported
- }
- func (self *SInstance) StartVM(ctx context.Context) error {
- return cloudprovider.ErrNotSupported
- }
- func (self *SInstance) GetIHostId() string {
- return self.HostId
- }
- func (self *SInstance) GetInternetMaxBandwidthOut() int {
- return self.Bandwidth
- }
- func (self *SInstance) GetThroughput() int {
- return self.Throughput
- }
- func (self *SInstance) GetDescription() string {
- return ""
- }
- func (self *SInstance) GetSerialOutput(port int) (string, error) {
- return "", cloudprovider.ErrNotSupported
- }
- func (self *SInstance) ConvertPublicIpToEip() error {
- return cloudprovider.ErrNotSupported
- }
- func (self *SInstance) StopVM(ctx context.Context, opts *cloudprovider.ServerStopOptions) error {
- return cloudprovider.ErrNotSupported
- }
- func (self *SInstance) DeleteVM(ctx context.Context) error {
- return cloudprovider.ErrNotSupported
- }
- func (self *SInstance) UpdateVM(ctx context.Context, input cloudprovider.SInstanceUpdateOptions) error {
- return cloudprovider.ErrNotSupported
- }
- func (self *SInstance) UpdateUserData(userData string) error {
- return cloudprovider.ErrNotSupported
- }
- func (self *SInstance) RebuildRoot(ctx context.Context, config *cloudprovider.SManagedVMRebuildRootConfig) (string, error) {
- return "", cloudprovider.ErrNotSupported
- }
- func (self *SInstance) DeployVM(ctx context.Context, opts *cloudprovider.SInstanceDeployOptions) error {
- return cloudprovider.ErrNotSupported
- }
- func (self *SInstance) ChangeConfig(ctx context.Context, config *cloudprovider.SManagedVMChangeConfig) error {
- return cloudprovider.ErrNotSupported
- }
- func (self *SInstance) GetVNCInfo(input *cloudprovider.ServerVncInput) (*cloudprovider.ServerVncOutput, error) {
- return nil, cloudprovider.ErrNotSupported
- }
- func (self *SInstance) AttachDisk(ctx context.Context, diskId string) error {
- return cloudprovider.ErrNotSupported
- }
- func (self *SInstance) DetachDisk(ctx context.Context, diskId string) error {
- return cloudprovider.ErrNotSupported
- }
- func (self *SInstance) CreateDisk(ctx context.Context, opts *cloudprovider.GuestDiskCreateOptions) (string, error) {
- return "", cloudprovider.ErrNotSupported
- }
- func (self *SInstance) MigrateVM(hostid string) error {
- return cloudprovider.ErrNotSupported
- }
- func (self *SInstance) LiveMigrateVM(hostid string) error {
- return cloudprovider.ErrNotSupported
- }
- func (self *SInstance) GetError() error {
- return nil
- }
- func (self *SInstance) CreateInstanceSnapshot(ctx context.Context, name string, desc string) (cloudprovider.ICloudInstanceSnapshot, error) {
- return nil, cloudprovider.ErrNotSupported
- }
- func (self *SInstance) GetInstanceSnapshot(idStr string) (cloudprovider.ICloudInstanceSnapshot, error) {
- return nil, cloudprovider.ErrNotSupported
- }
- func (self *SInstance) GetInstanceSnapshots() ([]cloudprovider.ICloudInstanceSnapshot, error) {
- return nil, cloudprovider.ErrNotSupported
- }
- func (self *SInstance) ResetToInstanceSnapshot(ctx context.Context, idStr string) error {
- return cloudprovider.ErrNotSupported
- }
- func (self *SInstance) SaveImage(opts *cloudprovider.SaveImageOptions) (cloudprovider.ICloudImage, error) {
- return nil, cloudprovider.ErrNotSupported
- }
- func (self *SInstance) AllocatePublicIpAddress() (string, error) {
- return "", cloudprovider.ErrNotSupported
- }
- func (self *SInstance) GetCpuSockets() int {
- return self.CpuSockets
- }
- func (self *SInstance) GetVcpuCount() int {
- return self.VcpuCount
- }
- func (self *SInstance) GetVmemSizeMB() int {
- return self.VmemSizeMb
- }
- func (self *SInstance) GetBootOrder() string {
- return self.BootOrder
- }
- func (self *SInstance) GetVga() string {
- return self.Vga
- }
- func (self *SInstance) GetVdi() string {
- return self.Vdi
- }
- func (ins *SInstance) getNormalizedOsInfo() *imagetools.ImageInfo {
- if ins.osInfo == nil {
- osInfo := imagetools.NormalizeImageInfo(ins.OsName, ins.OsArch, ins.OsType, "", "")
- ins.osInfo = &osInfo
- }
- return ins.osInfo
- }
- func (ins *SInstance) GetOsArch() string {
- return ins.getNormalizedOsInfo().OsArch
- }
- func (ins *SInstance) GetOsType() cloudprovider.TOsType {
- return cloudprovider.TOsType(ins.getNormalizedOsInfo().OsType)
- }
- func (ins *SInstance) GetFullOsName() string {
- return ins.OsName
- }
- func (ins *SInstance) GetBios() cloudprovider.TBiosType {
- return cloudprovider.ToBiosType(ins.Bios)
- }
- func (ins *SInstance) GetOsLang() string {
- return ins.getNormalizedOsInfo().OsLang
- }
- func (ins *SInstance) GetOsDist() string {
- return ins.getNormalizedOsInfo().OsDistro
- }
- func (ins *SInstance) GetOsVersion() string {
- return ins.getNormalizedOsInfo().OsVersion
- }
- func (self *SInstance) GetMachine() string {
- return self.Machine
- }
- func (self *SInstance) GetInstanceType() string {
- return self.InstanceType
- }
- func (self *SInstance) GetHypervisor() string {
- return api.HYPERVISOR_REMOTEFILE
- }
- func (self *SInstance) GetHostname() string {
- return self.Hostname
- }
- func (self *SInstance) GetIDisks() ([]cloudprovider.ICloudDisk, error) {
- ret := []cloudprovider.ICloudDisk{}
- storages, err := self.host.zone.region.client.GetStorages()
- if err != nil {
- return nil, err
- }
- for i := range self.Disks {
- for _, storage := range storages {
- if storage.Id == self.Disks[i].StorageId {
- self.Disks[i].SetStorage(storage)
- ret = append(ret, &self.Disks[i])
- }
- }
- }
- return ret, nil
- }
- func (self *SInstance) GetIEIP() (cloudprovider.ICloudEIP, error) {
- return self.host.zone.region.GetIEipById(self.EipId)
- }
- func (self *SInstance) GetIHost() cloudprovider.ICloudHost {
- return self.host
- }
- func (self *SInstance) GetINics() ([]cloudprovider.ICloudNic, error) {
- ret := []cloudprovider.ICloudNic{}
- for i := range self.Nics {
- ret = append(ret, &self.Nics[i])
- }
- return ret, nil
- }
- func (self *SInstance) GetPowerStates() string {
- if self.Status == api.VM_RUNNING {
- return api.VM_POWER_STATES_ON
- }
- return api.VM_POWER_STATES_OFF
- }
- func (self *SInstance) GetHealthStatus() string {
- return ""
- }
- func (self *SInstance) GetIsolateDeviceIds() ([]string, error) {
- return nil, cloudprovider.ErrNotSupported
- }
- func (self *SInstance) GetContainers() ([]cloudprovider.ICloudContainer, error) {
- return nil, cloudprovider.ErrNotSupported
- }
- func (self *SInstance) GetModificationTypes() ([]cloudprovider.SInstanceModificationType, error) {
- return nil, cloudprovider.ErrNotSupported
- }
|