Skip to content

Commit

Permalink
Feature: added EncryptionAlgorithm field to Disk (#140)
Browse files Browse the repository at this point in the history
  • Loading branch information
yamamoto-febc committed Apr 5, 2024
1 parent 79ea2d5 commit ba96157
Show file tree
Hide file tree
Showing 8 changed files with 287 additions and 260 deletions.
54 changes: 28 additions & 26 deletions disk/apply_request.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,18 @@ type ApplyRequest struct {
Zone string `service:"-" validate:"required"`
ID types.ID `service:"-"` // TODO Builderを更新対応させる(変更できない値の場合はエラーにするとか)

Name string `validate:"required"`
Description string `validate:"min=0,max=512"`
Tags types.Tags
IconID types.ID
DiskPlanID types.ID
Connection types.EDiskConnection
SourceDiskID types.ID
SourceArchiveID types.ID
ServerID types.ID
SizeGB int
DistantFrom []types.ID
Name string `validate:"required"`
Description string `validate:"min=0,max=512"`
Tags types.Tags
IconID types.ID
DiskPlanID types.ID
Connection types.EDiskConnection
EncryptionAlgorithm types.EDiskEncryptionAlgorithm
SourceDiskID types.ID
SourceArchiveID types.ID
ServerID types.ID
SizeGB int
DistantFrom []types.ID

OSType ostype.ArchiveOSType
EditParameter *EditParameter
Expand Down Expand Up @@ -84,21 +85,22 @@ func (req *ApplyRequest) Builder(caller iaas.APICaller) (disk.Builder, error) {
}

director := &disk.Director{
OSType: req.OSType,
Name: req.Name,
SizeGB: req.SizeGB,
DistantFrom: req.DistantFrom,
PlanID: req.DiskPlanID,
Connection: req.Connection,
Description: req.Description,
Tags: req.Tags,
IconID: req.IconID,
DiskID: req.ID,
SourceDiskID: req.SourceDiskID,
SourceArchiveID: req.SourceArchiveID,
EditParameter: editParameter,
NoWait: req.NoWait,
Client: disk.NewBuildersAPIClient(caller),
OSType: req.OSType,
Name: req.Name,
SizeGB: req.SizeGB,
DistantFrom: req.DistantFrom,
PlanID: req.DiskPlanID,
Connection: req.Connection,
EncryptionAlgorithm: req.EncryptionAlgorithm,
Description: req.Description,
Tags: req.Tags,
IconID: req.IconID,
DiskID: req.ID,
SourceDiskID: req.SourceDiskID,
SourceArchiveID: req.SourceArchiveID,
EditParameter: editParameter,
NoWait: req.NoWait,
Client: disk.NewBuildersAPIClient(caller),
}
return director.Builder(), nil
}
94 changes: 50 additions & 44 deletions disk/apply_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,53 +34,57 @@ func TestDiskService_convertApplyRequest(t *testing.T) {
// blank
{
in: &ApplyRequest{
Zone: "is1a",
Name: "test",
Description: "description",
Tags: types.Tags{"tag1", "tag2"},
IconID: types.ID(1),
ServerID: types.ID(2),
DiskPlanID: types.DiskPlans.SSD,
Connection: types.DiskConnections.VirtIO,
SizeGB: 20,
DistantFrom: nil,
OSType: 0,
EditParameter: nil,
NoWait: true,
Zone: "is1a",
Name: "test",
Description: "description",
Tags: types.Tags{"tag1", "tag2"},
IconID: types.ID(1),
ServerID: types.ID(2),
DiskPlanID: types.DiskPlans.SSD,
Connection: types.DiskConnections.VirtIO,
EncryptionAlgorithm: types.DiskEncryptionAlgorithms.AES256XTS,
SizeGB: 20,
DistantFrom: nil,
OSType: 0,
EditParameter: nil,
NoWait: true,
},
expect: &disk.BlankBuilder{
Name: "test",
Description: "description",
Tags: types.Tags{"tag1", "tag2"},
IconID: types.ID(1),
SizeGB: 20,
PlanID: types.DiskPlans.SSD,
Connection: types.DiskConnections.VirtIO,
Client: disk.NewBuildersAPIClient(caller),
NoWait: true,
Name: "test",
Description: "description",
Tags: types.Tags{"tag1", "tag2"},
IconID: types.ID(1),
SizeGB: 20,
PlanID: types.DiskPlans.SSD,
Connection: types.DiskConnections.VirtIO,
EncryptionAlgorithm: types.DiskEncryptionAlgorithms.AES256XTS,
Client: disk.NewBuildersAPIClient(caller),
NoWait: true,
},
},
// linux
{
in: &ApplyRequest{
Zone: "is1a",
Name: "test",
DiskPlanID: types.DiskPlans.SSD,
Connection: types.DiskConnections.VirtIO,
SizeGB: 20,
OSType: ostype.Ubuntu,
Zone: "is1a",
Name: "test",
DiskPlanID: types.DiskPlans.SSD,
Connection: types.DiskConnections.VirtIO,
EncryptionAlgorithm: types.DiskEncryptionAlgorithms.AES256XTS,
SizeGB: 20,
OSType: ostype.Ubuntu,
EditParameter: &EditParameter{
HostName: "hostname",
Password: "password",
},
NoWait: true,
},
expect: &disk.FromUnixBuilder{
OSType: ostype.Ubuntu,
Name: "test",
SizeGB: 20,
PlanID: types.DiskPlans.SSD,
Connection: types.DiskConnections.VirtIO,
OSType: ostype.Ubuntu,
Name: "test",
SizeGB: 20,
PlanID: types.DiskPlans.SSD,
Connection: types.DiskConnections.VirtIO,
EncryptionAlgorithm: types.DiskEncryptionAlgorithms.AES256XTS,
EditParameter: &disk.UnixEditRequest{
HostName: "hostname",
Password: "password",
Expand All @@ -93,24 +97,26 @@ func TestDiskService_convertApplyRequest(t *testing.T) {
// source disk
{
in: &ApplyRequest{
Zone: "is1a",
Name: "test",
DiskPlanID: types.DiskPlans.SSD,
Connection: types.DiskConnections.VirtIO,
SourceDiskID: types.ID(1),
SizeGB: 20,
Zone: "is1a",
Name: "test",
DiskPlanID: types.DiskPlans.SSD,
Connection: types.DiskConnections.VirtIO,
EncryptionAlgorithm: types.DiskEncryptionAlgorithms.AES256XTS,
SourceDiskID: types.ID(1),
SizeGB: 20,
EditParameter: &EditParameter{
HostName: "hostname",
Password: "password",
},
NoWait: true,
},
expect: &disk.FromDiskOrArchiveBuilder{
Name: "test",
SizeGB: 20,
PlanID: types.DiskPlans.SSD,
Connection: types.DiskConnections.VirtIO,
SourceDiskID: types.ID(1),
Name: "test",
SizeGB: 20,
PlanID: types.DiskPlans.SSD,
Connection: types.DiskConnections.VirtIO,
EncryptionAlgorithm: types.DiskEncryptionAlgorithms.AES256XTS,
SourceDiskID: types.ID(1),
EditParameter: &disk.UnixEditRequest{
HostName: "hostname",
Password: "password",
Expand Down

0 comments on commit ba96157

Please sign in to comment.