models

package
v0.0.0-...-ad18fdd Latest Latest
Warning

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

Go to latest
Published: Oct 13, 2018 License: Apache-2.0 Imports: 22 Imported by: 10

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	//ErrProjectNameInvalid is exported
	ErrProjectNameInvalid = errors.New("project name invalid")
	//ErrProjectPackageFileInvalid is exported
	ErrProjectPackageFileInvalid = errors.New("project package file invalid")
)
View Source
var (
	RestartPolicyType = map[string]interface{}{
		"no":         true,
		"always":     true,
		"on-failure": true,
	}

	ActionType = map[string]interface{}{
		"start":   true,
		"stop":    true,
		"restart": true,
		"kill":    true,
		"pause":   true,
		"unpause": true,
		"rename":  true,
		"upgrade": true,
	}
)
View Source
var ErrorMap = map[int]string{
	20001: "Container already created, but cannot start",
	20002: "Get container info failed when upgrade container",
	20003: "Rename container failed when upgrade or update container",
	20004: "Try pull image failed when upgrade container",
	20005: "Stop container failed when upgrade or update container",
	20006: "Cannot create new container when upgrade container",
	20007: "Cannot start new container when upgrade container",
	20008: "Cannot delete old container when upgrade container, but image is upgrade succeed",
	21001: "Try pull image failed when create or update container",
}

ErrorMap - error map msg

View Source
var (
	ProjectActions = map[string]interface{}{
		"start":   true,
		"stop":    true,
		"restart": true,
		"kill":    true,
		"pause":   true,
		"unpause": true,
	}
)

Functions

func ContainerStateString

func ContainerStateString(state *types.ContainerState) string

ContainerStateString - convert container state to short string format

Types

type ComposeStorage

type ComposeStorage struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

ComposeStorage is exported compose project local storage.

func NewComposeStorage

func NewComposeStorage(rootPath string) (*ComposeStorage, error)

NewComposeStorage is exported

func (*ComposeStorage) CreateProjectSpec

func (storage *ComposeStorage) CreateProjectSpec(createProject CreateProject) (*ProjectData, error)

CreateProjectSpec is exported

func (*ComposeStorage) ProjectJSON

func (storage *ComposeStorage) ProjectJSON(projectName string) (*ProjectJSON, error)

ProjectJSON is exported

func (*ComposeStorage) ProjectSpec

func (storage *ComposeStorage) ProjectSpec(projectName string) (*ProjectData, error)

ProjectSpec is exported

func (*ComposeStorage) ProjectSpecs

func (storage *ComposeStorage) ProjectSpecs() ([]*ProjectData, error)

ProjectSpecs is exported

func (*ComposeStorage) RemoveProjectSpec

func (storage *ComposeStorage) RemoveProjectSpec(projectName string) error

RemoveProjectSpec is exported

func (*ComposeStorage) SaveProjectPackageFile

func (storage *ComposeStorage) SaveProjectPackageFile(projectName string, packageFile string, packageFileBytes []byte) (string, error)

SaveProjectPackageFile is exported

func (*ComposeStorage) SetProjectJSON

func (storage *ComposeStorage) SetProjectJSON(projectJSON *ProjectJSON) error

SetProjectJSON is exported

type Config

type Config struct {
	AppVersion                  string `json:"AppVersion"`
	DockerEndPoint              string `json:"DockerEndPoint"`
	DockerAPIVersion            string `json:"DockerAPIVersion"`
	DockerRegistryAddress       string `json:"-"`
	EnableBuildImage            bool   `json:"-"`
	DockerComposePath           string `json:"DockerComposePath"`
	DockerComposePackageMaxSize int64  `json:"DockerComposePackageMaxSize"`
	DockerNodeHTTPAddr          string `json:"DockerNodeHTTPAddr"`
	DockerContainerPortsRange   string `json:"DockerContainerPortsRange"`
	DockerClusterEnabled        bool   `json:"DockerClusterEnabled"`
	DockerClusterURIs           string `json:"DockerClusterURIs"`
	DockerClusterName           string `json:"DockerClusterName"`
	DockerClusterHeartBeat      string `json:"DockerClusterHeartBeat"`
	DockerClusterTTL            string `json:"DockerClusterTTL"`
	LogLevel                    int    `json:"LogLevel"`
}

Config - config info

type Container

type Container struct {
	ID                       string              `json:"Id"`
	Image                    string              `json:"Image"`
	Command                  string              `json:"Command"`
	CommandWithoutEntryPoint string              `json:"CommandWithoutEntryPoint"`
	Name                     string              `json:"Name"`
	Ports                    []PortBinding       `json:"Ports"`
	Volumes                  []VolumesBinding    `json:"Volumes"`
	DNS                      []string            `json:"Dns"`
	Env                      []string            `json:"Env"`
	HostName                 string              `json:"HostName"`
	NetworkMode              string              `json:"NetworkMode"`
	Status                   interface{}         `json:"Status,omitempty"`
	RestartPolicy            string              `json:"RestartPolicy,omitempty"`
	RestartRetryCount        int                 `json:"RestartRetryCount,omitempty"`
	ExtraHosts               []string            `json:"Extrahosts"`
	CPUShares                int64               `json:"CPUShares,omitempty"`
	Memory                   int64               `json:"Memory,omitempty"`
	SHMSize                  int64               `json:"SHMSize,omitempty"`
	Links                    []string            `json:"Links"`
	Ulimits                  []*units.Ulimit     `json:"Ulimits"`
	Labels                   map[string]string   `json:"Labels"`
	LogConfig                container.LogConfig `json:"LogConfig"`
}

Container - define container info struct

func (*Container) Parse

func (container *Container) Parse(origContainer *types.ContainerJSON)

Parse - parse container from original container info

type ContainerLog

type ContainerLog struct {
	Stdout []string `json:"StdOut"`
	Stderr []string `json:"StdErr"`
}

ContainerLog - define container logs info struct

type ContainerOperate

type ContainerOperate struct {
	Action    string `json:"Action"`
	Container string `json:"Container"`
	ImageTag  string `json:"ImageTag"`
	NewName   string `json:"NewName"`
}

ContainerOperate - define container http request struct

type ContainerStats

type ContainerStats struct {
	ContainerName string  `json:"ContainerName"`
	ContainerID   string  `json:"ContainerID"`
	CPUUsage      string  `json:"CPUUsage"`
	MemoryUsage   int64   `json:"MemoryUsage"`
	MemoryLimit   int64   `json:"MemoryLimit"`
	MemoryPercent float64 `json:"MemoryPercent"`
	NetworkIn     int64   `json:"NetworkIn"`
	NetworkOut    int64   `json:"NetowrkOut"`
	IOBytesRead   int64   `json:"IOBytesRead"`
	IOBytesWrite  int64   `json:"IOBytesWrite"`
}

ContainerStats - define container stats info struct

type ContainerStatsFromDocker

type ContainerStatsFromDocker struct {
	Network struct {
		RxBytes float64 `json:"rx_bytes"`
		TxBytes float64 `json:"tx_bytes"`
	} `json:"network"`

	PreCPUStats struct {
		CPUUsage struct {
			TotalUsage float64 `json:"total_usage"`
		} `json:"cpu_usage"`
		SystemCPUUsage float64 `json:"system_cpu_usage"`
	} `json:"precpu_stats"`

	CPUStats struct {
		CPUUsage struct {
			TotalUsage float64 `json:"total_usage"`
		} `json:"cpu_usage"`
		SystemCPUUsage float64 `json:"system_cpu_usage"`
	} `json:"cpu_stats"`

	MemoryStats struct {
		Usage float64 `json:"usage"`
		Limit float64 `json:"limit"`
	} `json:"memory_stats"`

	BlkioStats struct {
		IOServiceBytesRecursive []IORecursive `json:"io_service_bytes_recursive"`
	} `json:"blkio_stats"`
}

ContainerStatsFromDocker - define container stats info from dockerapi

type ContainerStatsWithError

type ContainerStatsWithError struct {
	Stats ContainerStats `json:"ContainerStats"`
	Error interface{}    `json:"Error"`
}

ContainerStatsWithError - define container stats info struct

type CreateProject

type CreateProject struct {
	Name        string `json:"Name"`
	ComposeData string `json:"ComposeData"`
	PackageFile string `json:"PackageFile"`
}

CreateProject - define compose create project struct

type IORecursive

type IORecursive struct {
	Major int64  `json:"major"`
	Minor int64  `json:"minor"`
	Op    string `json:"op"`
	Value int64  `json:"value"`
}

IORecursive - define container stats's IORecursive

type Image

type Image struct {
	Image string `json:'Image'`
}

Image - define image info struct

type ImageTags

type ImageTags struct {
	ImageName string   `json:"ImageName"`
	Tags      []string `json:"Tags"`
}

ImageTags - define image tags info struct

type OperateProject

type OperateProject struct {
	Name   string `json:"Name"`
	Action string `json:"Action"`
}

OperateProject - define compose operate project struct

type PortBinding

type PortBinding struct {
	PrivatePort int    `json:"PrivatePort"`
	PublicPort  int    `json:"PublicPort"`
	Type        string `json:"Type"`
	IP          string `json:"Ip"`
}

PortBinding - define container port binding info struct

type ProjectBase

type ProjectBase struct {
	Name       string          `json:"Name"`
	HashCode   string          `json:"HashCode"`
	Timestamp  int64           `json:"Timestamp"`
	Containers project.InfoSet `json:"Containers"`
}

ProjectBase - define project base info struct

type ProjectData

type ProjectData struct {
	*ProjectJSON
	ComposeFile  string `json:"ComposeFile"`
	ComposeBytes []byte `json:"ComposeBytes"`
}

ProjectData is exported

type ProjectInfo

type ProjectInfo struct {
	ProjectBase
	ComposeData string `json:"ComposeData"`
	PackageFile string `json:"PackageFile"`
}

ProjectInfo - define compose project info struct

type ProjectJSON

type ProjectJSON struct {
	Name        string `json:"Name"`
	HashCode    string `json:"HashCode"`
	PackageFile string `json:"PackageFile"`
	Timestamp   int64  `json:"Timestamp"`
}

ProjectJSON is exported

type ProjectStatus

type ProjectStatus struct {
	Name   string      `json:"Name"`
	Status interface{} `json:"Status"`
}

ProjectStatus - define compose project status struct

type ProjectUploadStatus

type ProjectUploadStatus struct {
	Name        string      `json:"Name"`
	PackageFile string      `json:"PackageFile"`
	Status      interface{} `json:"Status"`
}

ProjectUploadStatus - define compose project package file upload struct

type ServiceState

type ServiceState struct {
	Name string `json:"Name"`
	*types.ContainerState
}

ServiceState - define compose service state struct

type VolumesBinding

type VolumesBinding struct {
	ContainerVolume string `json:"ContainerVolume"`
	HostVolume      string `json:"HostVolume"`
	BindMount       string `json:"BindMount,omitempty"`
}

VolumesBinding - define container volumes binding info struct

Jump to

Keyboard shortcuts

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