Skip to content

Commit

Permalink
ディスク暗号化機能 (#1116)
Browse files Browse the repository at this point in the history
  • Loading branch information
yamamoto-febc authored Apr 5, 2024
1 parent 8f3c98c commit 94d984b
Show file tree
Hide file tree
Showing 7 changed files with 50 additions and 35 deletions.
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ require (
github.com/rhysd/go-github-selfupdate v1.2.3
github.com/sacloud/api-client-go v0.2.10
github.com/sacloud/go-http v0.1.8
github.com/sacloud/iaas-api-go v1.11.2
github.com/sacloud/iaas-service-go v1.9.2
github.com/sacloud/iaas-api-go v1.12.0
github.com/sacloud/iaas-service-go v1.10.0
github.com/sacloud/packages-go v0.0.10
github.com/sacloud/webaccel-api-go v1.1.6
github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966
Expand Down
8 changes: 4 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -243,10 +243,10 @@ github.com/sacloud/ftps v1.2.0 h1:7UlSWd7cnm1J+sANz7IiBV9ffVcS+4g6ZV5UHVVbvaw=
github.com/sacloud/ftps v1.2.0/go.mod h1:h4awhOi3PEyhKLj1FpXjoVV5yVkmRUU+d5L95EwX2JU=
github.com/sacloud/go-http v0.1.8 h1:ynreWA/vnM8G2ksbMlmefBHsXURKPz49qlPRqQ9IQdw=
github.com/sacloud/go-http v0.1.8/go.mod h1:7TL7TN1fnPKHsMifIqURDkGujnKViCgEz5Ei/LQdFK8=
github.com/sacloud/iaas-api-go v1.11.2 h1:2jQLPwGRK/sS9bjvjWFWk2AFToU2Zq2o+6JP5Uvhqu8=
github.com/sacloud/iaas-api-go v1.11.2/go.mod h1:gjiuIY5c/7lj2LmFnVgyHcPMT17PysXpNPBrmVMV8dM=
github.com/sacloud/iaas-service-go v1.9.2 h1:IAWsIJ1F5txAS38lN4x/iBvQl1NCIo5owFs+hFqFUmc=
github.com/sacloud/iaas-service-go v1.9.2/go.mod h1:SrH2+QeaYd4W85tAK4/u3A7WXkOlnpLlaI1SDmH7Hj4=
github.com/sacloud/iaas-api-go v1.12.0 h1:kqXFn3HzCiawlX6hVJb1GVqcSJqcmiGHB4Zp14sxiI8=
github.com/sacloud/iaas-api-go v1.12.0/go.mod h1:SZLXeWOdXk3WReIS557sbU1gkOgrE4rseIBQV1B3b7o=
github.com/sacloud/iaas-service-go v1.10.0 h1:OP0z0LLNLaNTmN1CtGpjQowD4SP1zn77z1Iku1D7l9Q=
github.com/sacloud/iaas-service-go v1.10.0/go.mod h1:tfWGYP+JnELP4ASOhcjaSDYr31TKrlPbqQ3wplCj190=
github.com/sacloud/packages-go v0.0.10 h1:UiQGjy8LretewkRhsuna1TBM9Vz/l9FoYpQx+D+AOck=
github.com/sacloud/packages-go v0.0.10/go.mod h1:f8QITBh9z4IZc4yE9j21Q8b0sXEMwRlRmhhjWeDVTYs=
github.com/sacloud/webaccel-api-go v1.1.6 h1:OjAORCUzk3kYCXSPsHj7D0+wk9/ILzZsbqPTtk24j4A=
Expand Down
28 changes: 15 additions & 13 deletions pkg/commands/iaas/disk/create.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ type createParameter struct {
DiskPlan string `cli:",options=disk_plan,category=plan,order=10" mapconv:"DiskPlanID,filters=disk_plan_to_value" validate:"required,disk_plan"`
SizeGB int `cli:"size,category=plan,order=20"`
Connection string `cli:"connector,aliases=connection,options=disk_connection,category=plan,order=30" validate:"required,disk_connection"`
EncryptionAlgorithm string `cli:"encryption-algorithm,options=disk_encryption_algorithm,category=plan,order=40" validate:"omitempty,disk_encryption_algorithm"`

OSType string `cli:",options=os_type,display_options=os_type_simple,category=source,order=10" mapconv:",omitempty,filters=os_type_to_value" validate:"omitempty,os_type"`
SourceDiskID types.ID `cli:",category=source,order=20"`
Expand Down Expand Up @@ -101,19 +102,20 @@ func (p *createParameter) Customize(ctx cli.Context) error {

func (p *createParameter) ExampleParameters(ctx cli.Context) interface{} {
return &createParameter{
ZoneParameter: examples.Zones(ctx.Option().Zones),
NameParameter: examples.Name,
DescParameter: examples.Description,
TagsParameter: examples.Tags,
IconIDParameter: examples.IconID,
DiskPlan: examples.OptionsString("disk_plan"),
SizeGB: 20,
Connection: examples.OptionsString("disk_connection"),
OSType: examples.OptionsString("os_type"),
SourceDiskID: examples.ID,
SourceArchiveID: examples.ID,
ServerID: examples.ID,
DistantFrom: []types.ID{examples.ID},
ZoneParameter: examples.Zones(ctx.Option().Zones),
NameParameter: examples.Name,
DescParameter: examples.Description,
TagsParameter: examples.Tags,
IconIDParameter: examples.IconID,
DiskPlan: examples.OptionsString("disk_plan"),
SizeGB: 20,
Connection: examples.OptionsString("disk_connection"),
EncryptionAlgorithm: examples.OptionsString("disk_encryption_algorithm"),
OSType: examples.OptionsString("os_type"),
SourceDiskID: examples.ID,
SourceArchiveID: examples.ID,
ServerID: examples.ID,
DistantFrom: []types.ID{examples.ID},
EditDisk: common.EditRequest{
HostName: "hostname",
Password: "password",
Expand Down
3 changes: 3 additions & 0 deletions pkg/commands/iaas/disk/zz_create_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

35 changes: 19 additions & 16 deletions pkg/commands/iaas/server/create.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,13 +94,15 @@ type diskApplyParameter struct {
cflag.DescParameter `cli:",squash" mapconv:",squash" json:",omitempty"`
cflag.TagsParameter `cli:",squash" mapconv:",squash" json:",omitempty"`
cflag.IconIDParameter `cli:",squash" mapconv:",squash" json:",omitempty"`
DiskPlan string `cli:",options=disk_plan" mapconv:"DiskPlanID,filters=disk_plan_to_value" validate:"omitempty,disk_plan" json:",omitempty"`
Connection string `cli:",options=disk_connection" validate:"omitempty,disk_connection" json:",omitempty"`
SourceDiskID types.ID `json:",omitempty"`
SourceArchiveID types.ID `json:",omitempty"`
SizeGB int `cli:"size,aliases=size-gb" json:",omitempty"`
DistantFrom []types.ID `json:",omitempty"`
OSType string `cli:",options=os_type,display_options=os_type_simple" mapconv:",omitempty,filters=os_type_to_value" validate:"omitempty,os_type" json:",omitempty"`
DiskPlan string `cli:",options=disk_plan" mapconv:"DiskPlanID,filters=disk_plan_to_value" validate:"omitempty,disk_plan" json:",omitempty"`
Connection string `cli:",options=disk_connection" validate:"omitempty,disk_connection" json:",omitempty"`
EncryptionAlgorithm string `cli:",options=disk_encryption_algorithm,category=plan,order=40" validate:"omitempty,disk_encryption_algorithm" json:",omitempty"`

SourceDiskID types.ID `json:",omitempty"`
SourceArchiveID types.ID `json:",omitempty"`
SizeGB int `cli:"size,aliases=size-gb" json:",omitempty"`
DistantFrom []types.ID `json:",omitempty"`
OSType string `cli:",options=os_type,display_options=os_type_simple" mapconv:",omitempty,filters=os_type_to_value" validate:"omitempty,os_type" json:",omitempty"`

EditDisk common.EditRequest `cli:"edit,category=edit" mapconv:"EditParameter,omitempty" json:",omitempty"`
NoWait bool
Expand Down Expand Up @@ -278,15 +280,16 @@ func (p *createParameter) ExampleParameters(ctx cli.Context) interface{} {
DescParameter: cflag.DescParameter{
Description: "新規ディスクを作成する例",
},
TagsParameter: examples.Tags,
IconIDParameter: examples.IconID,
DiskPlan: examples.OptionsString("disk_plan"),
Connection: examples.OptionsString("disk_connection"),
SourceDiskID: examples.ID,
SourceArchiveID: examples.ID,
SizeGB: 20,
DistantFrom: []types.ID{examples.ID},
OSType: examples.OptionsString("os_type"),
TagsParameter: examples.Tags,
IconIDParameter: examples.IconID,
DiskPlan: examples.OptionsString("disk_plan"),
Connection: examples.OptionsString("disk_connection"),
EncryptionAlgorithm: examples.OptionsString("disk_encryption_algorithm"),
SourceDiskID: examples.ID,
SourceArchiveID: examples.ID,
SizeGB: 20,
DistantFrom: []types.ID{examples.ID},
OSType: examples.OptionsString("os_type"),
EditDisk: common.EditRequest{
HostName: "hostname",
Password: "password",
Expand Down
3 changes: 3 additions & 0 deletions pkg/commands/iaas/server/zz_create_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions pkg/vdef/definitions.go
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,10 @@ var definitions = map[string][]*definition{
{key: types.DiskConnections.VirtIO.String(), value: types.DiskConnections.VirtIO.String()},
{key: types.DiskConnections.IDE.String(), value: types.DiskConnections.IDE.String()},
},
"disk_encryption_algorithm": {
{key: types.DiskEncryptionAlgorithms.None.String(), value: types.DiskEncryptionAlgorithms.None.String()},
{key: types.DiskEncryptionAlgorithms.AES256XTS.String(), value: types.DiskEncryptionAlgorithms.AES256XTS.String()},
},
"dns_record_type": {
{key: types.DNSRecordTypes.A.String(), value: types.DNSRecordTypes.A},
{key: types.DNSRecordTypes.AAAA.String(), value: types.DNSRecordTypes.AAAA},
Expand Down

0 comments on commit 94d984b

Please sign in to comment.