disk

package
v1.10.0 Latest Latest
Warning

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

Go to latest
Published: Apr 5, 2024 License: Apache-2.0 Imports: 11 Imported by: 3

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 iaas.APICaller) *APIClient

NewBuildersAPIClient APIクライアントの作成

type ArchiveFinder

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

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

type BlankBuilder

type BlankBuilder struct {
	Name                string
	SizeGB              int
	DistantFrom         []types.ID
	PlanID              types.ID
	Connection          types.EDiskConnection
	EncryptionAlgorithm types.EDiskEncryptionAlgorithm
	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

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 *iaas.Disk) service.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 *iaas.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 *iaas.Disk) service.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
	EncryptionAlgorithm types.EDiskEncryptionAlgorithm

	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

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 *iaas.Disk) service.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 *iaas.DiskCreateRequest, distantFrom []types.ID) (*iaas.Disk, error)
	CreateWithConfig(
		ctx context.Context,
		zone string,
		createParam *iaas.DiskCreateRequest,
		editParam *iaas.DiskEditRequest,
		bootAtAvailable bool,
		distantFrom []types.ID,
	) (*iaas.Disk, error)
	Update(ctx context.Context, zone string, id types.ID, updateParam *iaas.DiskUpdateRequest) (*iaas.Disk, error)
	Config(ctx context.Context, zone string, id types.ID, editParam *iaas.DiskEditRequest) error
	Read(ctx context.Context, zone string, id types.ID) (*iaas.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
	EncryptionAlgorithm types.EDiskEncryptionAlgorithm
	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系パラメータへの変換

type FromDiskOrArchiveBuilder

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

	Name                string
	SizeGB              int
	DistantFrom         []types.ID
	PlanID              types.ID
	Connection          types.EDiskConnection
	EncryptionAlgorithm types.EDiskEncryptionAlgorithm
	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

func (d *FromDiskOrArchiveBuilder) NoWaitFlag() bool

func (*FromDiskOrArchiveBuilder) Update

Update ディスクの更新

func (*FromDiskOrArchiveBuilder) UpdateLevel

func (d *FromDiskOrArchiveBuilder) UpdateLevel(ctx context.Context, zone string, disk *iaas.Disk) service.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
	EncryptionAlgorithm types.EDiskEncryptionAlgorithm
	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

func (d *FromFixedArchiveBuilder) NoWaitFlag() bool

func (*FromFixedArchiveBuilder) Update

Update ディスクの更新

func (*FromFixedArchiveBuilder) UpdateLevel

func (d *FromFixedArchiveBuilder) UpdateLevel(ctx context.Context, zone string, disk *iaas.Disk) service.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
	EncryptionAlgorithm types.EDiskEncryptionAlgorithm
	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

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 *iaas.Disk) service.UpdateLevel

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

func (*FromUnixBuilder) Validate

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

Validate 設定値の検証

type NoteHandler

type NoteHandler interface {
	Read(ctx context.Context, id types.ID) (*iaas.Note, error)
	Create(ctx context.Context, param *iaas.NoteCreateRequest) (*iaas.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) (*iaas.DiskPlan, error)
}

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

type SSHKeyHandler

type SSHKeyHandler interface {
	Read(ctx context.Context, id types.ID) (*iaas.SSHKey, error)
	Generate(ctx context.Context, param *iaas.SSHKeyGenerateRequest) (*iaas.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            []*iaas.DiskEditNote
}

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

func (*UnixEditRequest) Validate

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

Validate 設定値の検証

type UpdateResult

type UpdateResult struct {
	Disk *iaas.Disk
}

UpdateResult ディスク更新結果

Jump to

Keyboard shortcuts

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