disk

package
v2.32.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 22, 2022 License: Apache-2.0 Imports: 11 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type APIClient

type APIClient struct {
	Archive  ArchiveFinder
	Disk     CreateDiskHandler
	DiskPlan PlanReader
	Note     NoteHandler
	SSHKey   SSHKeyHandler
}

APIClient builderが利用するAPIクライアント群

func NewBuildersAPIClient

func NewBuildersAPIClient(caller sacloud.APICaller) *APIClient

NewBuildersAPIClient APIクライアントの作成

type ArchiveFinder

type ArchiveFinder interface {
	Find(ctx context.Context, zone string, conditions *sacloud.FindCondition) (*sacloud.ArchiveFindResult, error)
	Read(ctx context.Context, zone string, id types.ID) (*sacloud.Archive, error)
}

ArchiveFinder アーカイブ検索のためのインターフェース

type BlankBuilder

type BlankBuilder struct {
	Name        string
	SizeGB      int
	DistantFrom []types.ID
	PlanID      types.ID
	Connection  types.EDiskConnection
	Description string
	Tags        types.Tags
	IconID      types.ID

	Client *APIClient
	NoWait bool
	ID     types.ID
}

BlankBuilder ブランクディスクを作成する場合のリクエスト

func (*BlankBuilder) Build

func (d *BlankBuilder) Build(ctx context.Context, zone string, serverID types.ID) (*BuildResult, error)

Build ディスクの構築

func (*BlankBuilder) DiskID

func (d *BlankBuilder) DiskID() types.ID

DiskID ディスクID取得

func (*BlankBuilder) NoWaitFlag added in v2.9.0

func (d *BlankBuilder) NoWaitFlag() bool

func (*BlankBuilder) Update

func (d *BlankBuilder) Update(ctx context.Context, zone string) (*UpdateResult, error)

Update ディスクの更新

func (*BlankBuilder) UpdateLevel

func (d *BlankBuilder) UpdateLevel(ctx context.Context, zone string, disk *sacloud.Disk) builder.UpdateLevel

UpdateLevel Update時にどのレベルの変更が必要か

func (*BlankBuilder) Validate

func (d *BlankBuilder) Validate(ctx context.Context, zone string) error

Validate 設定値の検証

type BuildResult

type BuildResult struct {
	DiskID          types.ID
	GeneratedSSHKey *sacloud.SSHKeyGenerated
}

BuildResult ディスク構築結果

type Builder

type Builder interface {
	Validate(ctx context.Context, zone string) error
	Build(ctx context.Context, zone string, serverID types.ID) (*BuildResult, error)
	Update(ctx context.Context, zone string) (*UpdateResult, error)
	DiskID() types.ID
	UpdateLevel(ctx context.Context, zone string, disk *sacloud.Disk) builder.UpdateLevel
	NoWaitFlag() bool
}

Builder ディスクの構築インターフェース

type ConnectedDiskBuilder

type ConnectedDiskBuilder struct {
	ID            types.ID
	EditParameter *UnixEditRequest

	Name        string
	Description string
	Tags        types.Tags
	IconID      types.ID
	Connection  types.EDiskConnection

	NoWait bool
	Client *APIClient
}

ConnectedDiskBuilder 既存ディスクを接続する場合のリクエスト

func (*ConnectedDiskBuilder) Build

func (d *ConnectedDiskBuilder) Build(ctx context.Context, zone string, serverID types.ID) (*BuildResult, error)

Build ディスクの構築

func (*ConnectedDiskBuilder) DiskID

func (d *ConnectedDiskBuilder) DiskID() types.ID

DiskID ディスクID取得

func (*ConnectedDiskBuilder) NoWaitFlag added in v2.9.0

func (d *ConnectedDiskBuilder) NoWaitFlag() bool

func (*ConnectedDiskBuilder) Update

func (d *ConnectedDiskBuilder) Update(ctx context.Context, zone string) (*UpdateResult, error)

Update ディスクの更新

func (*ConnectedDiskBuilder) UpdateLevel

func (d *ConnectedDiskBuilder) UpdateLevel(ctx context.Context, zone string, disk *sacloud.Disk) builder.UpdateLevel

UpdateLevel Update時にどのレベルの変更が必要か

func (*ConnectedDiskBuilder) Validate

func (d *ConnectedDiskBuilder) Validate(ctx context.Context, zone string) error

Validate 設定値の検証

type CreateDiskHandler

type CreateDiskHandler interface {
	Create(ctx context.Context, zone string, createParam *sacloud.DiskCreateRequest, distantFrom []types.ID) (*sacloud.Disk, error)
	CreateWithConfig(
		ctx context.Context,
		zone string,
		createParam *sacloud.DiskCreateRequest,
		editParam *sacloud.DiskEditRequest,
		bootAtAvailable bool,
		distantFrom []types.ID,
	) (*sacloud.Disk, error)
	Update(ctx context.Context, zone string, id types.ID, updateParam *sacloud.DiskUpdateRequest) (*sacloud.Disk, error)
	Config(ctx context.Context, zone string, id types.ID, editParam *sacloud.DiskEditRequest) error
	Read(ctx context.Context, zone string, id types.ID) (*sacloud.Disk, error)
	ConnectToServer(ctx context.Context, zone string, id types.ID, serverID types.ID) error
}

CreateDiskHandler ディスク操作のためのインターフェース

type Director

type Director struct {
	OSType ostype.ArchiveOSType

	Name        string
	SizeGB      int
	DistantFrom []types.ID
	PlanID      types.ID
	Connection  types.EDiskConnection
	Description string
	Tags        types.Tags
	IconID      types.ID

	DiskID          types.ID
	SourceDiskID    types.ID
	SourceArchiveID types.ID

	EditParameter *EditRequest

	NoWait bool
	Client *APIClient
}

Director パラメータに応じて適切なDiskBuilderを構築する

func (*Director) Builder

func (d *Director) Builder() Builder

Builder パラメータに応じて適切なDiskBuilderを返す

type EditRequest

type EditRequest UnixEditRequest

EditRequest 汎用ディスクの修正リクエストパラメータ DiskDirectorが利用する

func (*EditRequest) ToUnixDiskEditRequest

func (d *EditRequest) ToUnixDiskEditRequest() *UnixEditRequest

ToUnixDiskEditRequest Unix系パラメータへの変換

func (*EditRequest) ToWindowsDiskEditRequest

func (d *EditRequest) ToWindowsDiskEditRequest() *WindowsEditRequest

ToWindowsDiskEditRequest Windows系パラメータへの変換

type FromDiskOrArchiveBuilder

type FromDiskOrArchiveBuilder struct {
	SourceDiskID    types.ID
	SourceArchiveID types.ID

	Name        string
	SizeGB      int
	DistantFrom []types.ID
	PlanID      types.ID
	Connection  types.EDiskConnection
	Description string
	Tags        types.Tags
	IconID      types.ID

	EditParameter *UnixEditRequest

	Client *APIClient

	ID     types.ID
	NoWait bool
	// contains filtered or unexported fields
}

FromDiskOrArchiveBuilder ディスクorアーカイブからディスクを作成するリクエスト

ディスクの修正が可能かは実行時にさくらのクラウドAPI側にて判定される

func (*FromDiskOrArchiveBuilder) Build

func (d *FromDiskOrArchiveBuilder) Build(ctx context.Context, zone string, serverID types.ID) (*BuildResult, error)

Build ディスクの構築

func (*FromDiskOrArchiveBuilder) DiskID

func (d *FromDiskOrArchiveBuilder) DiskID() types.ID

DiskID ディスクID取得

func (*FromDiskOrArchiveBuilder) NoWaitFlag added in v2.9.0

func (d *FromDiskOrArchiveBuilder) NoWaitFlag() bool

func (*FromDiskOrArchiveBuilder) Update

Update ディスクの更新

func (*FromDiskOrArchiveBuilder) UpdateLevel

func (d *FromDiskOrArchiveBuilder) UpdateLevel(ctx context.Context, zone string, disk *sacloud.Disk) builder.UpdateLevel

UpdateLevel Update時にどのレベルの変更が必要か

func (*FromDiskOrArchiveBuilder) Validate

func (d *FromDiskOrArchiveBuilder) Validate(ctx context.Context, zone string) error

Validate 設定値の検証

type FromFixedArchiveBuilder

type FromFixedArchiveBuilder struct {
	OSType ostype.ArchiveOSType

	Name        string
	SizeGB      int
	DistantFrom []types.ID
	PlanID      types.ID
	Connection  types.EDiskConnection
	Description string
	Tags        types.Tags
	IconID      types.ID

	Client *APIClient
	NoWait bool

	ID types.ID
	// contains filtered or unexported fields
}

FromFixedArchiveBuilder ディスクの修正をサポートしないパブリックアーカイブからディスクを作成するリクエスト

func (*FromFixedArchiveBuilder) Build

func (d *FromFixedArchiveBuilder) Build(ctx context.Context, zone string, serverID types.ID) (*BuildResult, error)

Build ディスクの構築

func (*FromFixedArchiveBuilder) DiskID

func (d *FromFixedArchiveBuilder) DiskID() types.ID

DiskID ディスクID取得

func (*FromFixedArchiveBuilder) NoWaitFlag added in v2.9.0

func (d *FromFixedArchiveBuilder) NoWaitFlag() bool

func (*FromFixedArchiveBuilder) Update

Update ディスクの更新

func (*FromFixedArchiveBuilder) UpdateLevel

func (d *FromFixedArchiveBuilder) UpdateLevel(ctx context.Context, zone string, disk *sacloud.Disk) builder.UpdateLevel

UpdateLevel Update時にどのレベルの変更が必要か

func (*FromFixedArchiveBuilder) Validate

func (d *FromFixedArchiveBuilder) Validate(ctx context.Context, zone string) error

Validate 設定値の検証

type FromUnixBuilder

type FromUnixBuilder struct {
	OSType ostype.ArchiveOSType

	Name        string
	SizeGB      int
	DistantFrom []types.ID
	PlanID      types.ID
	Connection  types.EDiskConnection
	Description string
	Tags        types.Tags
	IconID      types.ID

	EditParameter *UnixEditRequest

	Client *APIClient
	NoWait bool

	ID types.ID
	// contains filtered or unexported fields
}

FromUnixBuilder Unix系パブリックアーカイブからディスクを作成するリクエスト

func (*FromUnixBuilder) Build

func (d *FromUnixBuilder) Build(ctx context.Context, zone string, serverID types.ID) (*BuildResult, error)

Build ディスクの構築

func (*FromUnixBuilder) DiskID

func (d *FromUnixBuilder) DiskID() types.ID

DiskID ディスクID取得

func (*FromUnixBuilder) NoWaitFlag added in v2.9.0

func (d *FromUnixBuilder) NoWaitFlag() bool

func (*FromUnixBuilder) Update

func (d *FromUnixBuilder) Update(ctx context.Context, zone string) (*UpdateResult, error)

Update ディスクの更新

func (*FromUnixBuilder) UpdateLevel

func (d *FromUnixBuilder) UpdateLevel(ctx context.Context, zone string, disk *sacloud.Disk) builder.UpdateLevel

UpdateLevel Update時にどのレベルの変更が必要か

func (*FromUnixBuilder) Validate

func (d *FromUnixBuilder) Validate(ctx context.Context, zone string) error

Validate 設定値の検証

type FromWindowsBuilder

type FromWindowsBuilder struct {
	OSType ostype.ArchiveOSType

	Name        string
	SizeGB      int
	DistantFrom []types.ID
	PlanID      types.ID
	Connection  types.EDiskConnection
	Description string
	Tags        types.Tags
	IconID      types.ID

	EditParameter *WindowsEditRequest

	Client *APIClient
	NoWait bool

	ID types.ID
}

FromWindowsBuilder Windows系パブリックアーカイブからディスクを作成するリクエスト

func (*FromWindowsBuilder) Build

func (d *FromWindowsBuilder) Build(ctx context.Context, zone string, serverID types.ID) (*BuildResult, error)

Build ディスクの構築

func (*FromWindowsBuilder) DiskID

func (d *FromWindowsBuilder) DiskID() types.ID

DiskID ディスクID取得

func (*FromWindowsBuilder) NoWaitFlag added in v2.9.0

func (d *FromWindowsBuilder) NoWaitFlag() bool

func (*FromWindowsBuilder) Update

func (d *FromWindowsBuilder) Update(ctx context.Context, zone string) (*UpdateResult, error)

Update ディスクの更新

func (*FromWindowsBuilder) UpdateLevel

func (d *FromWindowsBuilder) UpdateLevel(ctx context.Context, zone string, disk *sacloud.Disk) builder.UpdateLevel

UpdateLevel Update時にどのレベルの変更が必要か

func (*FromWindowsBuilder) Validate

func (d *FromWindowsBuilder) Validate(ctx context.Context, zone string) error

Validate 設定値の検証

type NoteHandler

type NoteHandler interface {
	Read(ctx context.Context, id types.ID) (*sacloud.Note, error)
	Create(ctx context.Context, param *sacloud.NoteCreateRequest) (*sacloud.Note, error)
	Delete(ctx context.Context, id types.ID) error
}

NoteHandler スタートアップスクリプト参照のためのインターフェース

type PlanReader

type PlanReader interface {
	Read(ctx context.Context, zone string, id types.ID) (*sacloud.DiskPlan, error)
}

PlanReader ディスクプラン取得のためのインターフェース

type SSHKeyHandler

type SSHKeyHandler interface {
	Read(ctx context.Context, id types.ID) (*sacloud.SSHKey, error)
	Generate(ctx context.Context, param *sacloud.SSHKeyGenerateRequest) (*sacloud.SSHKeyGenerated, error)
	Delete(ctx context.Context, id types.ID) error
}

SSHKeyHandler SSHKey参照のためのインターフェース

type UnixEditRequest

type UnixEditRequest struct {
	HostName string
	Password string

	DisablePWAuth       bool
	EnableDHCP          bool
	ChangePartitionUUID bool

	IPAddress      string
	NetworkMaskLen int
	DefaultRoute   string

	SSHKeys   []string
	SSHKeyIDs []types.ID

	// IsSSHKeysEphemeral trueの場合、SSHキーを生成する場合に生成したSSHキーリソースをサーバ作成後に削除する
	IsSSHKeysEphemeral bool
	// GenerateSSHKeyName 設定されていた場合、クラウドAPIを用いてキーペアを生成する。
	GenerateSSHKeyName        string
	GenerateSSHKeyPassPhrase  string
	GenerateSSHKeyDescription string

	IsNotesEphemeral bool
	NoteContents     []string
	Notes            []*sacloud.DiskEditNote
}

UnixEditRequest Unix系の場合のディスクの修正リクエスト

func (*UnixEditRequest) Validate

func (u *UnixEditRequest) Validate(ctx context.Context, client *APIClient) error

Validate 設定値の検証

type UpdateResult

type UpdateResult struct {
	Disk *sacloud.Disk
}

UpdateResult ディスク更新結果

type WindowsEditRequest

type WindowsEditRequest struct {
	IPAddress      string
	NetworkMaskLen int
	DefaultRoute   string
}

WindowsEditRequest Windows系の場合のディスクの修正リクエスト

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL