From 7ca7052d11623a9a9251f561b651d385e19e3643 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E8=BD=A9?= Date: Wed, 17 Oct 2018 17:23:26 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=A1=A5=E5=85=85aliyuncli=20delete-snapsh?= =?UTF-8?q?ot=E5=91=BD=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/util/aliyun/snapshot.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkg/util/aliyun/snapshot.go b/pkg/util/aliyun/snapshot.go index f5ce2908d0..3e896607a0 100644 --- a/pkg/util/aliyun/snapshot.go +++ b/pkg/util/aliyun/snapshot.go @@ -107,9 +107,13 @@ func (self *SSnapshot) Delete() error { if self.region == nil { return fmt.Errorf("not init region for snapshot %s", self.SnapshotId) } + return self.region.DeleteSnapshot(self.SnapshotId) +} + +func (self *SRegion) DeleteSnapshot(snapshotId string) error { params := make(map[string]string) - params["SnapshotId"] = self.SnapshotId - _, err := self.region.ecsRequest("DeleteSnapshot", params) + params["SnapshotId"] = snapshotId + _, err := self.ecsRequest("DeleteSnapshot", params) return err } From 8df405ffd38d65e8efdc3d629cce4cf5aaea285c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E8=BD=A9?= Date: Wed, 17 Oct 2018 18:14:03 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E5=AE=8Cdisk=E5=90=8E?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=9C=89=E7=94=A8=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/compute/guestdrivers/aliyun.go | 24 +++++++++++++++++++++--- pkg/compute/guestdrivers/azure.go | 7 +++++++ 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/pkg/compute/guestdrivers/aliyun.go b/pkg/compute/guestdrivers/aliyun.go index d081599979..fd73ddef5e 100644 --- a/pkg/compute/guestdrivers/aliyun.go +++ b/pkg/compute/guestdrivers/aliyun.go @@ -68,9 +68,15 @@ func (self *SAliyunGuestDriver) ValidateCreateData(ctx context.Context, userCred } type SDiskInfo struct { - DiskType string - Size int - Uuid string + DiskType string + Size int + Uuid string + BillingType string + FsFromat string + AutoDelete bool + TemplateId string + DiskFormat string + ExpiredAt time.Time Metadata map[string]string } @@ -107,6 +113,12 @@ func fetchIVMinfo(desc SManagedVMCreateConfig, iVM cloudprovider.ICloudVM, guest dinfo.Uuid = idisks[i].GetGlobalId() dinfo.Size = idisks[i].GetDiskSizeMB() dinfo.DiskType = idisks[i].GetDiskType() + dinfo.BillingType = idisks[i].GetBillingType() + dinfo.DiskFormat = idisks[i].GetDiskFormat() + dinfo.AutoDelete = idisks[i].GetIsAutoDelete() + dinfo.TemplateId = idisks[i].GetTemplateId() + dinfo.FsFromat = idisks[i].GetFsFormat() + dinfo.ExpiredAt = idisks[i].GetExpiredAt() if metaData := idisks[i].GetMetadata(); metaData != nil { dinfo.Metadata = make(map[string]string, 0) if err := metaData.Unmarshal(dinfo.Metadata); err != nil { @@ -388,6 +400,12 @@ func (self *SAliyunGuestDriver) OnGuestDeployTaskDataReceived(ctx context.Contex disk.ExternalId = diskInfo[i].Uuid disk.DiskType = diskInfo[i].DiskType disk.Status = models.DISK_READY + disk.BillingType = diskInfo[i].BillingType + disk.FsFormat = diskInfo[i].FsFromat + disk.AutoDelete = diskInfo[i].AutoDelete + disk.TemplateId = diskInfo[i].TemplateId + disk.DiskFormat = diskInfo[i].DiskFormat + disk.ExpiredAt = diskInfo[i].ExpiredAt if len(diskInfo[i].Metadata) > 0 { for key, value := range diskInfo[i].Metadata { if err := disk.SetMetadata(ctx, key, value, task.GetUserCred()); err != nil { diff --git a/pkg/compute/guestdrivers/azure.go b/pkg/compute/guestdrivers/azure.go index 90cfe6d6ba..b94e7734f3 100644 --- a/pkg/compute/guestdrivers/azure.go +++ b/pkg/compute/guestdrivers/azure.go @@ -180,7 +180,14 @@ func (self *SAzureGuestDriver) OnGuestDeployTaskDataReceived(ctx context.Context _, err = disk.GetModelManager().TableSpec().Update(disk, func() error { disk.DiskSize = diskInfo[i].Size disk.ExternalId = diskInfo[i].Uuid + disk.DiskType = diskInfo[i].DiskType disk.Status = models.DISK_READY + disk.BillingType = diskInfo[i].BillingType + disk.FsFormat = diskInfo[i].FsFromat + disk.AutoDelete = diskInfo[i].AutoDelete + disk.TemplateId = diskInfo[i].TemplateId + disk.DiskFormat = diskInfo[i].DiskFormat + disk.ExpiredAt = diskInfo[i].ExpiredAt if len(diskInfo[i].Metadata) > 0 { for key, value := range diskInfo[i].Metadata { if err := disk.SetMetadata(ctx, key, value, task.GetUserCred()); err != nil { From ec432d1ee9f16e8be0ab9218cfd4bf7362065cbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E8=BD=A9?= Date: Wed, 17 Oct 2018 18:49:07 +0800 Subject: [PATCH 3/3] =?UTF-8?q?Azure=E7=A6=81=E6=AD=A2=E4=BD=BF=E7=94=A8ro?= =?UTF-8?q?ot=E8=B4=A6=E6=88=B7=E7=99=BB=E5=BD=95=EF=BC=8C=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E6=9C=BA=E5=99=A8=E5=90=8E=E8=BF=94=E5=9B=9E=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E7=94=A8=E6=88=B7=E5=90=8D=EF=BC=8C=E9=81=BF=E5=85=8D?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=B8=8D=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/compute/guestdrivers/aliyun.go | 10 +++++----- pkg/compute/guestdrivers/azure.go | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pkg/compute/guestdrivers/aliyun.go b/pkg/compute/guestdrivers/aliyun.go index d081599979..459edc090c 100644 --- a/pkg/compute/guestdrivers/aliyun.go +++ b/pkg/compute/guestdrivers/aliyun.go @@ -75,7 +75,7 @@ type SDiskInfo struct { Metadata map[string]string } -func fetchIVMinfo(desc SManagedVMCreateConfig, iVM cloudprovider.ICloudVM, guestId string, passwd string) *jsonutils.JSONDict { +func fetchIVMinfo(desc SManagedVMCreateConfig, iVM cloudprovider.ICloudVM, guestId string, account, passwd string) *jsonutils.JSONDict { data := jsonutils.NewDict() data.Add(jsonutils.NewString(iVM.GetOSType()), "os") @@ -85,7 +85,7 @@ func fetchIVMinfo(desc SManagedVMCreateConfig, iVM cloudprovider.ICloudVM, guest if err != nil { log.Errorf("encrypt password failed %s", err) } - data.Add(jsonutils.NewString("root"), "account") + data.Add(jsonutils.NewString(account), "account") data.Add(jsonutils.NewString(encpasswd), "key") } @@ -207,7 +207,7 @@ func (self *SAliyunGuestDriver) RequestDeployGuestOnHost(ctx context.Context, gu } }*/ - data := fetchIVMinfo(desc, iVM, guest.Id, passwd) + data := fetchIVMinfo(desc, iVM, guest.Id, "root", passwd) /* data.Add(jsonutils.NewString(iVM.GetOSType()), "os") @@ -287,7 +287,7 @@ func (self *SAliyunGuestDriver) RequestDeployGuestOnHost(ctx context.Context, gu return nil, err } - data := fetchIVMinfo(desc, iVM, guest.Id, passwd) + data := fetchIVMinfo(desc, iVM, guest.Id, "root", passwd) /* data := jsonutils.NewDict() @@ -354,7 +354,7 @@ func (self *SAliyunGuestDriver) RequestDeployGuestOnHost(ctx context.Context, gu } } - data := fetchIVMinfo(desc, iVM, guest.Id, passwd) + data := fetchIVMinfo(desc, iVM, guest.Id, "root", passwd) return data, nil }) diff --git a/pkg/compute/guestdrivers/azure.go b/pkg/compute/guestdrivers/azure.go index 90cfe6d6ba..10432b7192 100644 --- a/pkg/compute/guestdrivers/azure.go +++ b/pkg/compute/guestdrivers/azure.go @@ -110,7 +110,7 @@ func (self *SAzureGuestDriver) RequestDeployGuestOnHost(ctx context.Context, gue return nil, err } - data := fetchIVMinfo(desc, iVM, guest.Id, passwd) + data := fetchIVMinfo(desc, iVM, guest.Id, DEFAULT_USER, passwd) return data, nil } }) @@ -133,7 +133,7 @@ func (self *SAzureGuestDriver) RequestDeployGuestOnHost(ctx context.Context, gue if err != nil { return nil, err } - data := fetchIVMinfo(desc, iVM, guest.Id, passwd) + data := fetchIVMinfo(desc, iVM, guest.Id, DEFAULT_USER, passwd) return data, nil }) } else if action == "rebuild" { @@ -150,7 +150,7 @@ func (self *SAzureGuestDriver) RequestDeployGuestOnHost(ctx context.Context, gue } log.Debugf("VMrebuildRoot %s, and status is ready", iVM.GetGlobalId()) - data := fetchIVMinfo(desc, iVM, guest.Id, passwd) + data := fetchIVMinfo(desc, iVM, guest.Id, DEFAULT_USER, passwd) return data, nil })