server

package
v2.0.0-beta2 Latest Latest
Warning

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

Go to latest
Published: Jul 30, 2019 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FindPlan

func FindPlan(ctx context.Context, finder PlanFinder, zone string, param *FindPlanRequest) (*sacloud.ServerPlan, error)

FindPlan サーバプラン検索

func GetDefaultUserName

func GetDefaultUserName(ctx context.Context, zone string, reader *SourceInfoReader, serverID types.ID) (string, error)

GetDefaultUserName returns default admin user name from source archives/disks

Types

type AdditionalNICSettingHolder

type AdditionalNICSettingHolder interface {
	GetSwitchID() types.ID

	GetDisplayIPAddress() string
	GetPacketFilterID() types.ID
	Validate(ctx context.Context, client *BuildersAPIClient, zone string) error
}

AdditionalNICSettingHolder 追加NIC設定を保持するためのインターフェース

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 BlankDiskBuilder

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

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

func (*BlankDiskBuilder) BuildDisk

func (d *BlankDiskBuilder) BuildDisk(ctx context.Context, client *BuildersAPIClient, zone string, serverID types.ID) (*BuildDiskResult, error)

BuildDisk ディスクの構築

func (*BlankDiskBuilder) Validate

func (d *BlankDiskBuilder) Validate(ctx context.Context, client *BuildersAPIClient, zone string) error

Validate 設定値の検証

type BuildDiskResult

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

BuildDiskResult ディスク構築結果

type BuildResult

type BuildResult struct {
	ServerID               types.ID
	GeneratedSSHPrivateKey string
}

BuildResult サーバ構築結果

type Builder

type Builder struct {
	Name            string
	CPU             int
	MemoryGB        int
	Commitment      types.ECommitment
	Generation      types.EPlanGeneration
	InterfaceDriver types.EInterfaceDriver
	Description     string
	IconID          types.ID
	Tags            types.Tags
	BootAfterCreate bool
	CDROMID         types.ID
	PrivateHostID   types.ID
	NIC             NICSettingHolder
	AdditionalNICs  []AdditionalNICSettingHolder
	DiskBuilders    []DiskBuilder
}

Builder サーバ作成時のパラメータ

func (*Builder) Build

func (b *Builder) Build(ctx context.Context, client *BuildersAPIClient, zone string) (*BuildResult, error)

Build サーバ構築を行う

func (*Builder) Validate

func (b *Builder) Validate(ctx context.Context, client *BuildersAPIClient, zone string) error

Validate 入力値の検証

各種IDの存在確認のためにAPIリクエストが行われます。

type BuildersAPIClient

type BuildersAPIClient struct {
	Archive      ArchiveFinder
	Disk         DiskHandler
	DiskPlan     DiskPlanReader
	Interface    InterfaceHandler
	PacketFilter PacketFilterReader
	Server       CreateServerHandler
	ServerPlan   PlanFinder
	Switch       SwitchReader
	Note         NoteHandler
	SSHKey       SSHKeyHandler
}

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

func NewBuildersAPIClient

func NewBuildersAPIClient(caller sacloud.APICaller) *BuildersAPIClient

NewBuildersAPIClient APIクライアントの作成

type ConnectedDiskBuilder

type ConnectedDiskBuilder struct {
	DiskID        types.ID
	EditParameter *UnixDiskEditRequest
}

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

func (*ConnectedDiskBuilder) BuildDisk

func (d *ConnectedDiskBuilder) BuildDisk(ctx context.Context, client *BuildersAPIClient, zone string, serverID types.ID) (*BuildDiskResult, error)

BuildDisk ディスクの構築

func (*ConnectedDiskBuilder) Validate

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

Validate 設定値の検証

type ConnectedNICSetting

type ConnectedNICSetting struct {
	SwitchID         types.ID
	DisplayIPAddress string
	PacketFilterID   types.ID
}

ConnectedNICSetting サーバ作成時にスイッチに接続するためのパラメータ

NICSettingHolderとAdditionalNICSettingHolderを実装し、Builder.NIC/Builder.AdditionalNICsに利用できる。

func (*ConnectedNICSetting) GetConnectedSwitchParam

func (c *ConnectedNICSetting) GetConnectedSwitchParam() *sacloud.ConnectedSwitch

GetConnectedSwitchParam サーバ作成時の接続先指定パラメータを作成して返す

func (*ConnectedNICSetting) GetDisplayIPAddress

func (c *ConnectedNICSetting) GetDisplayIPAddress() string

GetDisplayIPAddress 表示用IPアドレスを返す

func (*ConnectedNICSetting) GetPacketFilterID

func (c *ConnectedNICSetting) GetPacketFilterID() types.ID

GetPacketFilterID このNICに接続するパケットフィルタのIDを返す

func (*ConnectedNICSetting) GetSwitchID

func (c *ConnectedNICSetting) GetSwitchID() types.ID

GetSwitchID このNICが接続するスイッチのIDを返す

func (*ConnectedNICSetting) Validate

func (c *ConnectedNICSetting) Validate(ctx context.Context, client *BuildersAPIClient, zone string) error

Validate 設定値の検証

type CreateServerHandler

type CreateServerHandler interface {
	Create(ctx context.Context, zone string, param *sacloud.ServerCreateRequest) (*sacloud.Server, error)
	Read(ctx context.Context, zone string, id types.ID) (*sacloud.Server, error)
	InsertCDROM(ctx context.Context, zone string, id types.ID, insertParam *sacloud.InsertCDROMRequest) error
	Boot(ctx context.Context, zone string, id types.ID) error
}

CreateServerHandler サーバ操作のためのインターフェース

type DisconnectedNICSetting

type DisconnectedNICSetting struct{}

DisconnectedNICSetting 切断状態のNICを作成するためのパラメータ

NICSettingHolderとAdditionalNICSettingHolderを実装し、Builder.NIC/Builder.AdditionalNICsに利用できる。

func (*DisconnectedNICSetting) GetConnectedSwitchParam

func (d *DisconnectedNICSetting) GetConnectedSwitchParam() *sacloud.ConnectedSwitch

GetConnectedSwitchParam サーバ作成時の接続先指定パラメータを作成して返す

func (*DisconnectedNICSetting) GetDisplayIPAddress

func (d *DisconnectedNICSetting) GetDisplayIPAddress() string

GetDisplayIPAddress 表示用IPアドレスを返す

func (*DisconnectedNICSetting) GetPacketFilterID

func (d *DisconnectedNICSetting) GetPacketFilterID() types.ID

GetPacketFilterID このNICに接続するパケットフィルタのIDを返す

func (*DisconnectedNICSetting) GetSwitchID

func (d *DisconnectedNICSetting) GetSwitchID() types.ID

GetSwitchID このNICが接続するスイッチのIDを返す

func (*DisconnectedNICSetting) Validate

func (d *DisconnectedNICSetting) Validate(ctx context.Context, client *BuildersAPIClient, zone string) error

Validate 設定値の検証

type DiskBuilder

type DiskBuilder interface {
	Validate(ctx context.Context, client *BuildersAPIClient, zone string) error
	BuildDisk(ctx context.Context, client *BuildersAPIClient, zone string, serverID types.ID) (*BuildDiskResult, error)
}

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

type DiskHandler

type DiskHandler 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)
	Read(ctx context.Context, zone string, id types.ID) (*sacloud.Disk, error)
}

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

type DiskPlanReader

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

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

type FindPlanRequest

type FindPlanRequest struct {
	CPU        int
	MemoryGB   int
	Commitment types.ECommitment
	Generation types.EPlanGeneration
}

FindPlanRequest サーバプラン検索パラメータ

type FromDiskOrArchiveDiskBuilder

type FromDiskOrArchiveDiskBuilder 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 *UnixDiskEditRequest
	// contains filtered or unexported fields
}

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

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

func (*FromDiskOrArchiveDiskBuilder) BuildDisk

func (d *FromDiskOrArchiveDiskBuilder) BuildDisk(ctx context.Context, client *BuildersAPIClient, zone string, serverID types.ID) (*BuildDiskResult, error)

BuildDisk ディスクの構築

func (*FromDiskOrArchiveDiskBuilder) Validate

Validate 設定値の検証

type FromUnixDiskBuilder

type FromUnixDiskBuilder struct {
	OSType ostype.UnixPublicArchiveType

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

	EditParameter *UnixDiskEditRequest
	// contains filtered or unexported fields
}

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

func (*FromUnixDiskBuilder) BuildDisk

func (d *FromUnixDiskBuilder) BuildDisk(ctx context.Context, client *BuildersAPIClient, zone string, serverID types.ID) (*BuildDiskResult, error)

BuildDisk ディスクの構築

func (*FromUnixDiskBuilder) Validate

func (d *FromUnixDiskBuilder) Validate(ctx context.Context, client *BuildersAPIClient, zone string) error

Validate 設定値の検証

type FromWindowsDiskBuilder

type FromWindowsDiskBuilder struct {
	OSType ostype.WindowsPublicArchiveType

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

	EditParameter *WindowsDiskEditRequest
}

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

func (*FromWindowsDiskBuilder) BuildDisk

func (d *FromWindowsDiskBuilder) BuildDisk(ctx context.Context, client *BuildersAPIClient, zone string, serverID types.ID) (*BuildDiskResult, error)

BuildDisk ディスクの構築

func (*FromWindowsDiskBuilder) Validate

func (d *FromWindowsDiskBuilder) Validate(ctx context.Context, client *BuildersAPIClient, zone string) error

Validate 設定値の検証

type InterfaceHandler

type InterfaceHandler interface {
	ConnectToPacketFilter(ctx context.Context, zone string, id types.ID, packetFilterID types.ID) error
	Update(ctx context.Context, zone string, id types.ID, param *sacloud.InterfaceUpdateRequest) (*sacloud.Interface, error)
}

InterfaceHandler NIC操作のためのインターフェース

type NICSettingHolder

type NICSettingHolder interface {
	GetConnectedSwitchParam() *sacloud.ConnectedSwitch

	GetPacketFilterID() types.ID
	Validate(ctx context.Context, client *BuildersAPIClient, zone string) error
}

NICSettingHolder NIC設定を保持するためのインターフェース

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 PacketFilterReader

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

PacketFilterReader パケットフィルタ参照のためのインターフェース

type PlanFinder

type PlanFinder interface {
	Find(ctx context.Context, zone string, conditions *sacloud.FindCondition) (*sacloud.ServerPlanFindResult, error)
}

PlanFinder .

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 SharedNICSetting

type SharedNICSetting struct {
	PacketFilterID types.ID
}

SharedNICSetting サーバ作成時に共有セグメントに接続するためのパラメータ

NICSettingHolderを実装し、Builder.NICに利用できる。

func (*SharedNICSetting) GetConnectedSwitchParam

func (c *SharedNICSetting) GetConnectedSwitchParam() *sacloud.ConnectedSwitch

GetConnectedSwitchParam サーバ作成時の接続先指定パラメータを作成して返す

func (*SharedNICSetting) GetPacketFilterID

func (c *SharedNICSetting) GetPacketFilterID() types.ID

GetPacketFilterID このNICに接続するパケットフィルタのIDを返す

func (*SharedNICSetting) Validate

func (c *SharedNICSetting) Validate(ctx context.Context, client *BuildersAPIClient, zone string) error

Validate 設定値の検証

type SourceArchiveReader

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

SourceArchiveReader アーカイブ参照インターフェース

type SourceDiskReader

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

SourceDiskReader ディスク参照インターフェース

type SourceInfoReader

type SourceInfoReader struct {
	ServerReader  SourceServerReader
	ArchiveReader SourceArchiveReader
	DiskReader    SourceDiskReader
}

SourceInfoReader サーバのコピー元情報を参照するためのリーダー

func NewSourceInfoReader

func NewSourceInfoReader(caller sacloud.APICaller) *SourceInfoReader

NewSourceInfoReader デフォルトのリーダーを返す

type SourceServerReader

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

SourceServerReader サーバ参照インターフェース

type SwitchReader

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

SwitchReader スイッチ参照のためのインターフェース

type UnixDiskEditRequest

type UnixDiskEditRequest 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
	Notes            []string
	NoteIDs          []types.ID
}

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

func (*UnixDiskEditRequest) Validate

func (u *UnixDiskEditRequest) Validate(ctx context.Context, client *BuildersAPIClient) error

Validate 設定値の検証

type WindowsDiskEditRequest

type WindowsDiskEditRequest struct {
	IPAddress      string
	NetworkMaskLen int
	DefaultRoute   string
}

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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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