director

package
v7.2.4 Latest Latest
Warning

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

Go to latest
Published: Jun 17, 2023 License: Apache-2.0 Imports: 32 Imported by: 11

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AdjustableClient

type AdjustableClient struct {
	// contains filtered or unexported fields
}

func NewAdjustableClient

func NewAdjustableClient(client AdjustedClient, adjustment Adjustment) AdjustableClient

func (AdjustableClient) Do

type AdjustedClient

type AdjustedClient interface {
	Do(*http.Request) (*http.Response, error)
}

type Adjustment

type Adjustment interface {
	Adjust(req *http.Request, retried bool) error
	NeedsReadjustment(*http.Response) bool
}

type AllOrInstanceGroupOrInstanceSlug

type AllOrInstanceGroupOrInstanceSlug struct {
	// contains filtered or unexported fields
}

func NewAllOrInstanceGroupOrInstanceSlug

func NewAllOrInstanceGroupOrInstanceSlug(name, indexOrID string) AllOrInstanceGroupOrInstanceSlug

func NewAllOrInstanceGroupOrInstanceSlugFromString

func NewAllOrInstanceGroupOrInstanceSlugFromString(str string) (AllOrInstanceGroupOrInstanceSlug, error)

func (AllOrInstanceGroupOrInstanceSlug) IP

func (AllOrInstanceGroupOrInstanceSlug) IndexOrID

func (AllOrInstanceGroupOrInstanceSlug) InstanceSlug

func (AllOrInstanceGroupOrInstanceSlug) Name

func (AllOrInstanceGroupOrInstanceSlug) String

func (*AllOrInstanceGroupOrInstanceSlug) UnmarshalFlag

func (s *AllOrInstanceGroupOrInstanceSlug) UnmarshalFlag(data string) error

type AuthRequestAdjustment

type AuthRequestAdjustment struct {
	// contains filtered or unexported fields
}

func NewAuthRequestAdjustment

func NewAuthRequestAdjustment(
	authFunc func(bool) (string, error),
	client,
	clientSecret string,
) AuthRequestAdjustment

func (AuthRequestAdjustment) Adjust

func (a AuthRequestAdjustment) Adjust(req *http.Request, retried bool) error

func (AuthRequestAdjustment) NeedsReadjustment

func (a AuthRequestAdjustment) NeedsReadjustment(resp *http.Response) bool

type CPIConfig

type CPIConfig struct {
	Properties string
}

type CertificateExpiryInfo

type CertificateExpiryInfo struct {
	Path     string `json:"certificate_path"`
	Expiry   string `json:"expiry"`
	DaysLeft int    `json:"days_left"`
}

type CleanUp

type CleanUp struct {
	Releases         []CleanableRelease
	Stemcells        []Stemcell
	CompiledPackages []CleanableCompiledPackage
	OrphanedDisks    []OrphanDiskResp
	OrphanedVMs      []OrphanedVM
	ExportedReleases []string
	DNSBlobs         []string
}

type CleanUpResponse

type CleanUpResponse struct {
	Releases         []CleanableRelease         `json:"releases"`
	Stemcells        []StemcellResp             `json:"stemcells"`
	CompiledPackages []CleanableCompiledPackage `json:"compiled_packages"`
	OrphanedDisks    []OrphanDiskResp           `json:"orphaned_disks"`
	OrphanedVMs      []OrphanedVMResponse       `json:"orphaned_vms"`
	ExportedReleases []string                   `json:"exported_releases"`
	DNSBlobs         []string                   `json:"dns_blobs"`
}

type CleanableCompiledPackage

type CleanableCompiledPackage struct {
	Name            string `json:"package_name"`
	StemcellOs      string `json:"stemcell_os"`
	StemcellVersion string `json:"stemcell_version"`
}

type CleanableRelease

type CleanableRelease struct {
	Name     string   `json:"name"`
	Versions []string `json:"versions"`
}

type Client

type Client struct {
	// contains filtered or unexported fields
}

func NewClient

func NewClient(
	endpoint string,
	httpClient *httpclient.HTTPClient,
	taskReporter TaskReporter,
	fileReporter FileReporter,
	logger boshlog.Logger,
) Client

func (Client) CPIConfigs

func (c Client) CPIConfigs() ([]CPIConfig, error)

func (Client) CancelTask

func (c Client) CancelTask(id int) error

func (Client) ChangeJobState

func (c Client) ChangeJobState(state, deploymentName, job, indexOrID string, skipDrain bool, force bool, fix bool, dryRun bool, canaries string, maxInFlight string) error

func (Client) CleanUp

func (c Client) CleanUp(all bool, dryRun bool, keepOrphanedDisks bool) (CleanUp, error)

func (Client) CleanUpSSH

func (c Client) CleanUpSSH(deploymentName, jobName, indexOrID string, opts SSHOpts) error

func (Client) CloudConfigs

func (c Client) CloudConfigs(name string) ([]CloudConfig, error)

func (Client) CurrentTasks

func (c Client) CurrentTasks(filter TasksFilter) ([]TaskResp, error)

func (Client) DeleteDeployment

func (c Client) DeleteDeployment(deploymentName string, force bool) error

func (Client) DeleteOrphanDisk

func (c Client) DeleteOrphanDisk(cid string) error

func (Client) DeleteOrphanNetwork

func (c Client) DeleteOrphanNetwork(name string) error

func (Client) DeleteReleaseOrSeries

func (c Client) DeleteReleaseOrSeries(name, version string, force bool) error

func (Client) DeleteSnapshot

func (c Client) DeleteSnapshot(deploymentName, cid string) error

func (Client) DeleteSnapshots

func (c Client) DeleteSnapshots(deploymentName string) error

func (Client) DeleteStemcell

func (c Client) DeleteStemcell(name, version string, force bool) error

func (Client) DeleteVM

func (c Client) DeleteVM(cid string) error

func (Client) Deployment

func (c Client) Deployment(name string) (DeploymentResp, error)

func (Client) DeploymentInstanceInfos

func (c Client) DeploymentInstanceInfos(deploymentName string) ([]VMInfo, error)

func (Client) DeploymentInstances

func (c Client) DeploymentInstances(deploymentName string) ([]Instance, error)

func (Client) DeploymentVMInfos

func (c Client) DeploymentVMInfos(deploymentName string) ([]VMInfo, error)

func (Client) DeploymentVMs

func (c Client) DeploymentVMs(deploymentName string) ([]DeploymentVMResp, error)

func (Client) Deployments

func (c Client) Deployments() ([]DeploymentResp, error)

func (Client) DeploymentsWithoutConfigs

func (c Client) DeploymentsWithoutConfigs() ([]DeploymentResp, error)

func (Client) Diff

func (c Client) Diff(manifest []byte, deploymentName string, doNotRedact bool) (DeploymentDiffResponse, error)

func (Client) DiffCPIConfig

func (c Client) DiffCPIConfig(manifest []byte, noRedact bool) (ConfigDiffResponse, error)

func (Client) DiffCloudConfig

func (c Client) DiffCloudConfig(name string, manifest []byte) (ConfigDiffResponse, error)

func (Client) DiffConfig

func (c Client) DiffConfig(manifest []byte) (ConfigDiffResponse, error)

func (Client) DiffConfigs

func (c Client) DiffConfigs(from DiffInput, to DiffInput) (ConfigDiffResponse, error)

func (Client) DiffRuntimeConfig

func (c Client) DiffRuntimeConfig(name string, manifest []byte, noRedact bool) (ConfigDiffResponse, error)

func (Client) DownloadResourceUnchecked

func (c Client) DownloadResourceUnchecked(blobstoreID string, out io.Writer) error

func (Client) EnableResurrection

func (c Client) EnableResurrection(deploymentName, job, indexOrID string, enabled bool) error

func (Client) EnableResurrectionAll

func (c Client) EnableResurrectionAll(enabled bool) error

func (Client) Errands

func (c Client) Errands(deploymentName string) ([]Errand, error)

func (Client) Event

func (c Client) Event(id string) (EventResp, error)

func (Client) Events

func (c Client) Events(opts EventsFilter) ([]EventResp, error)

func (Client) ExportRelease

func (c Client) ExportRelease(deploymentName string, release ReleaseSlug, os OSVersionSlug, jobs []string) (ExportReleaseResp, error)

func (Client) FetchLogs

func (c Client) FetchLogs(deploymentName, instance, indexOrID string, filters []string, logTypes string) (string, string, error)

func (Client) FindTasksByContextId

func (c Client) FindTasksByContextId(contextId string) ([]TaskResp, error)

func (Client) HasRelease

func (c Client) HasRelease(name, version string) (bool, error)

func (Client) HasStemcell

func (c Client) HasStemcell(name, version string) (bool, error)

func (Client) Ignore

func (c Client) Ignore(deploymentName, instanceGroup, indexOrID string, enabled bool) error

func (Client) Info

func (c Client) Info() (InfoResp, error)

func (Client) ListProblems

func (c Client) ListProblems(deploymentName string) ([]Problem, error)

func (Client) Locks

func (c Client) Locks() ([]LockResp, error)

func (Client) MatchCompiledPackages

func (c Client) MatchCompiledPackages(manifest interface{}) ([]string, error)

func (Client) MatchPackages

func (c Client) MatchPackages(manifest interface{}) ([]string, error)

func (Client) NonConvergingJobAction

func (c Client) NonConvergingJobAction(action string, deployment string, instanceGroup string, id string, skipDrain bool, hard bool, ignoreUnresponsiveAgent bool) error

func (Client) OrphanDisk

func (c Client) OrphanDisk(cid string) error

func (Client) OrphanDisks

func (c Client) OrphanDisks() ([]OrphanDiskResp, error)

func (Client) OrphanNetworks

func (c Client) OrphanNetworks() ([]OrphanNetworkResp, error)

func (Client) OrphanedVMs

func (c Client) OrphanedVMs() ([]OrphanedVM, error)

func (Client) RecentTasks

func (c Client) RecentTasks(limit int, filter TasksFilter) ([]TaskResp, error)

func (Client) Release

func (c Client) Release(name, version string) (ReleaseResp, error)

func (Client) ReleaseSeries

func (c Client) ReleaseSeries() ([]ReleaseSeriesResp, error)

func (Client) ResolveProblems

func (c Client) ResolveProblems(deploymentName string, answers []ProblemAnswer) error

func (Client) RunErrand

func (c Client) RunErrand(deploymentName, name string, keepAlive bool, whenChanged bool, instanceSlugs []InstanceGroupOrInstanceSlug) ([]ErrandRunResp, error)

func (Client) RuntimeConfigs

func (c Client) RuntimeConfigs(name string) ([]RuntimeConfig, error)

func (Client) ScanForProblems

func (c Client) ScanForProblems(deploymentName string) error

func (Client) SetUpSSH

func (c Client) SetUpSSH(deploymentName, jobName, indexOrID string, opts SSHOpts) ([]SSHResp, error)

func (Client) Snapshots

func (c Client) Snapshots(deploymentName string) ([]SnapshotResp, error)

func (Client) StemcellNeedsUpload

func (c Client) StemcellNeedsUpload(stemcells StemcellInfo) (bool, error)

func (Client) Stemcells

func (c Client) Stemcells() ([]StemcellResp, error)

func (Client) TakeSnapshot

func (c Client) TakeSnapshot(deploymentName, job, indexOrID string) error

func (Client) TakeSnapshots

func (c Client) TakeSnapshots(deploymentName string) error

func (Client) Task

func (c Client) Task(id int) (TaskResp, error)

func (Client) TaskOutput

func (c Client) TaskOutput(id int, type_ string, taskReporter TaskReporter) error

func (Client) UpdateCPIConfig

func (c Client) UpdateCPIConfig(manifest []byte) error

func (Client) UpdateCloudConfig

func (c Client) UpdateCloudConfig(name string, manifest []byte) error

func (Client) UpdateDeployment

func (c Client) UpdateDeployment(manifest []byte, opts UpdateOpts) error

func (Client) UpdateRuntimeConfig

func (c Client) UpdateRuntimeConfig(name string, manifest []byte) error

func (Client) UploadReleaseFile

func (c Client) UploadReleaseFile(file UploadFile, rebase, fix bool) error

func (Client) UploadReleaseURL

func (c Client) UploadReleaseURL(url, sha1 string, rebase, fix bool) error

func (Client) UploadStemcellFile

func (c Client) UploadStemcellFile(file UploadFile, fix bool) error

func (Client) UploadStemcellURL

func (c Client) UploadStemcellURL(url, sha1 string, fix bool) error

func (Client) VMs

func (c Client) VMs() ([]VMResp, error)

func (Client) WithContext

func (c Client) WithContext(contextId string) Client

type ClientRequest

type ClientRequest struct {
	// contains filtered or unexported fields
}

func NewClientRequest

func NewClientRequest(
	endpoint string,
	httpClient *httpclient.HTTPClient,
	fileReporter FileReporter,
	logger boshlog.Logger,
) ClientRequest

func (ClientRequest) Delete

func (r ClientRequest) Delete(path string, response interface{}) error

func (ClientRequest) Get

func (r ClientRequest) Get(path string, response interface{}) error

func (ClientRequest) Post

func (r ClientRequest) Post(path string, payload []byte, f func(*http.Request), response interface{}) error

func (ClientRequest) Put

func (r ClientRequest) Put(path string, payload []byte, f func(*http.Request), response interface{}) error

func (ClientRequest) RawDelete

func (r ClientRequest) RawDelete(path string) ([]byte, *http.Response, error)

RawDelete follows redirects via GET unlike generic HTTP clients

func (ClientRequest) RawGet

func (r ClientRequest) RawGet(path string, out io.Writer, f func(*http.Request)) ([]byte, *http.Response, error)

func (ClientRequest) RawPost

func (r ClientRequest) RawPost(path string, payload []byte, f func(*http.Request)) ([]byte, *http.Response, error)

RawPost follows redirects via GET unlike generic HTTP clients

func (ClientRequest) RawPut

func (r ClientRequest) RawPut(path string, payload []byte, f func(*http.Request)) ([]byte, *http.Response, error)

RawPut follows redirects via GET unlike generic HTTP clients

func (ClientRequest) WithContext

func (r ClientRequest) WithContext(contextId string) ClientRequest

type CloudConfig

type CloudConfig struct {
	Properties string
}

type CompiledPackage

type CompiledPackage struct {
	Stemcell OSVersionSlug `json:"stemcell"` // e.g. "ubuntu-trusty/3093"

	BlobstoreID string `json:"blobstore_id"`
	SHA1        string `json:"sha1"`
}

type Config

type Config struct {
	ID        string
	Name      string
	Type      string
	CreatedAt string `json:"created_at"`
	Team      string
	Content   string
	Current   bool `json:"current"`
}

type ConfigDiff

type ConfigDiff struct {
	Diff   [][]interface{}
	FromId string
}

func NewConfigDiff

func NewConfigDiff(diff [][]interface{}) ConfigDiff

func NewConfigDiffWithFromId

func NewConfigDiffWithFromId(diff [][]interface{}, fromId string) ConfigDiff

type ConfigDiffResponse

type ConfigDiffResponse struct {
	Diff [][]interface{}   `json:"diff"`
	From map[string]string `json:"from"`
}

type ConfigResponse

type ConfigResponse struct {
	LatestId         string `json:"latest_id"`
	ExpectedLatestId string `json:"expected_latest_id"`
}

type ConfigsFilter

type ConfigsFilter struct {
	Type string
	Name string
}

type Deployment

type Deployment interface {
	Name() string
	Manifest() (string, error)
	CloudConfig() (string, error)
	Diff([]byte, bool) (DeploymentDiff, error)

	Releases() ([]Release, error)
	ExportRelease(ReleaseSlug, OSVersionSlug, []string) (ExportReleaseResult, error)

	Teams() ([]string, error)

	Stemcells() ([]Stemcell, error)
	VMInfos() ([]VMInfo, error)
	Instances() ([]Instance, error)
	InstanceInfos() ([]VMInfo, error)

	Errands() ([]Errand, error)
	RunErrand(string, bool, bool, []InstanceGroupOrInstanceSlug) ([]ErrandResult, error)

	ScanForProblems() ([]Problem, error)
	ResolveProblems([]ProblemAnswer) error

	Snapshots() ([]Snapshot, error)
	TakeSnapshots() error
	DeleteSnapshot(string) error
	DeleteSnapshots() error
	DeleteVM(string) error

	Variables() ([]VariableResult, error)

	// Deployment, pool or instance specifics
	Start(slug AllOrInstanceGroupOrInstanceSlug, opts StartOpts) error
	Stop(slug AllOrInstanceGroupOrInstanceSlug, opts StopOpts) error
	Restart(slug AllOrInstanceGroupOrInstanceSlug, opts RestartOpts) error
	Recreate(slug AllOrInstanceGroupOrInstanceSlug, opts RecreateOpts) error

	SetUpSSH(AllOrInstanceGroupOrInstanceSlug, SSHOpts) (SSHResult, error)
	CleanUpSSH(AllOrInstanceGroupOrInstanceSlug, SSHOpts) error

	// Instance specifics
	FetchLogs(AllOrInstanceGroupOrInstanceSlug, []string, string) (LogsResult, error)
	TakeSnapshot(InstanceSlug) error
	Ignore(InstanceSlug, bool) error
	EnableResurrection(InstanceSlug, bool) error

	Update(manifest []byte, opts UpdateOpts) error
	Delete(force bool) error

	AttachDisk(slug InstanceSlug, diskCID string, diskProperties string) error
}

type DeploymentConfig

type DeploymentConfig struct {
	Config DeploymentConfigProperties
}

type DeploymentConfigProperties

type DeploymentConfigProperties struct {
	Id   int
	Type string
	Name string
}

type DeploymentConfigs

type DeploymentConfigs struct {
	Configs []DeploymentConfig
}

func (DeploymentConfigs) GetConfig

func (DeploymentConfigs) GetConfigs

type DeploymentDiff

type DeploymentDiff struct {
	Diff [][]interface{}
	// contains filtered or unexported fields
}

func NewDeploymentDiff

func NewDeploymentDiff(diff [][]interface{}, context map[string]interface{}) DeploymentDiff

type DeploymentDiffResponse

type DeploymentDiffResponse struct {
	Context map[string]interface{} `json:"context"`
	Diff    [][]interface{}        `json:"diff"`
}

type DeploymentImpl

type DeploymentImpl struct {
	// contains filtered or unexported fields
}

func (DeploymentImpl) AttachDisk

func (d DeploymentImpl) AttachDisk(slug InstanceSlug, diskCID string, diskProperties string) error

func (DeploymentImpl) CleanUpSSH

func (*DeploymentImpl) CloudConfig

func (d *DeploymentImpl) CloudConfig() (string, error)

func (DeploymentImpl) Delete

func (d DeploymentImpl) Delete(force bool) error

func (DeploymentImpl) DeleteSnapshot

func (d DeploymentImpl) DeleteSnapshot(cid string) error

func (DeploymentImpl) DeleteSnapshots

func (d DeploymentImpl) DeleteSnapshots() error

func (DeploymentImpl) DeleteVM

func (d DeploymentImpl) DeleteVM(cid string) error

func (DeploymentImpl) Diff

func (d DeploymentImpl) Diff(manifest []byte, doNotRedact bool) (DeploymentDiff, error)

func (DeploymentImpl) EnableResurrection

func (d DeploymentImpl) EnableResurrection(slug InstanceSlug, enabled bool) error

func (DeploymentImpl) Errands

func (d DeploymentImpl) Errands() ([]Errand, error)

func (DeploymentImpl) ExportRelease

func (d DeploymentImpl) ExportRelease(release ReleaseSlug, os OSVersionSlug, jobs []string) (ExportReleaseResult, error)

func (DeploymentImpl) FetchLogs

func (d DeploymentImpl) FetchLogs(slug AllOrInstanceGroupOrInstanceSlug, filters []string, logTypes string) (LogsResult, error)

func (DeploymentImpl) Ignore

func (d DeploymentImpl) Ignore(slug InstanceSlug, enabled bool) error

func (DeploymentImpl) InstanceInfos

func (d DeploymentImpl) InstanceInfos() ([]VMInfo, error)

func (DeploymentImpl) Instances

func (d DeploymentImpl) Instances() ([]Instance, error)

func (DeploymentImpl) IsInProgress

func (d DeploymentImpl) IsInProgress() (bool, error)

func (DeploymentImpl) Manifest

func (d DeploymentImpl) Manifest() (string, error)

func (DeploymentImpl) Name

func (d DeploymentImpl) Name() string

func (DeploymentImpl) Recreate

func (*DeploymentImpl) Releases

func (d *DeploymentImpl) Releases() ([]Release, error)

func (DeploymentImpl) ResolveProblems

func (d DeploymentImpl) ResolveProblems(answers []ProblemAnswer) error

func (DeploymentImpl) Restart

func (DeploymentImpl) RunErrand

func (d DeploymentImpl) RunErrand(name string, keepAlive bool, whenChanged bool, slugs []InstanceGroupOrInstanceSlug) ([]ErrandResult, error)

func (DeploymentImpl) ScanForProblems

func (d DeploymentImpl) ScanForProblems() ([]Problem, error)

func (DeploymentImpl) SetUpSSH

func (DeploymentImpl) Snapshots

func (d DeploymentImpl) Snapshots() ([]Snapshot, error)

func (DeploymentImpl) Start

func (*DeploymentImpl) Stemcells

func (d *DeploymentImpl) Stemcells() ([]Stemcell, error)

func (DeploymentImpl) Stop

func (DeploymentImpl) TakeSnapshot

func (d DeploymentImpl) TakeSnapshot(slug InstanceSlug) error

func (DeploymentImpl) TakeSnapshots

func (d DeploymentImpl) TakeSnapshots() error

func (*DeploymentImpl) Teams

func (d *DeploymentImpl) Teams() ([]string, error)

func (DeploymentImpl) Update

func (d DeploymentImpl) Update(manifest []byte, opts UpdateOpts) error

func (DeploymentImpl) VMInfos

func (d DeploymentImpl) VMInfos() ([]VMInfo, error)

func (DeploymentImpl) Variables

func (d DeploymentImpl) Variables() ([]VariableResult, error)

type DeploymentReleaseResp

type DeploymentReleaseResp struct {
	Name    string
	Version string
}

type DeploymentResp

type DeploymentResp struct {
	Name string

	Manifest string

	Releases  []DeploymentReleaseResp
	Stemcells []DeploymentStemcellResp
	Teams     []string

	CloudConfig string `json:"cloud_config"`
}

type DeploymentStemcellResp

type DeploymentStemcellResp struct {
	Name    string
	Version string
}

type DeploymentVMResp

type DeploymentVMResp struct {
	JobName  string `json:"job"`   // e.g. dummy1
	JobIndex int    `json:"index"` // e.g. 0,1,2

	AgentID string `json:"agent_id"` // e.g. 3b30123e-dfa6-4eff-abe6-63c2d5a88938
	CID     string // e.g. vm-ce10ae6a-6c31-413b-a134-7179f49e0bda
}

type DiffConfigBody

type DiffConfigBody struct {
	From DiffInput `json:"from"`
	To   DiffInput `json:"to"`
}

type DiffConfigError

type DiffConfigError struct {
	Code        int    `json:"code"`
	Description string `json:"description"`
}

type DiffInput

type DiffInput struct {
	ID      string `json:"id"`
	Content string `json:"content"`
}

type DiffLines

type DiffLines [][]interface{}

type Director

type Director interface {
	IsAuthenticated() (bool, error)
	WithContext(id string) Director
	Info() (Info, error)

	Locks() ([]Lock, error)

	CurrentTasks(TasksFilter) ([]Task, error)
	RecentTasks(int, TasksFilter) ([]Task, error)
	FindTask(int) (Task, error)
	FindTasksByContextId(string) ([]Task, error)
	CancelTasks(TasksFilter) error

	Events(EventsFilter) ([]Event, error)
	Event(string) (Event, error)

	Deployments() ([]Deployment, error)
	FindDeployment(string) (Deployment, error)
	ListDeployments() ([]DeploymentResp, error)
	ListDeploymentConfigs(name string) (DeploymentConfigs, error)

	Releases() ([]Release, error)
	HasRelease(name, version string, stemcell OSVersionSlug) (bool, error)
	ReleaseHasCompiledPackage(releaseSlug ReleaseSlug, osVersionSlug OSVersionSlug) (bool, error)
	FindRelease(ReleaseSlug) (Release, error)
	FindReleaseSeries(ReleaseSeriesSlug) (ReleaseSeries, error)
	UploadReleaseURL(url, sha1 string, rebase, fix bool) error
	UploadReleaseFile(file UploadFile, rebase, fix bool) error
	MatchPackages(manifest interface{}, compiled bool) ([]string, error)

	Stemcells() ([]Stemcell, error)
	StemcellNeedsUpload(StemcellInfo) (bool, error)
	FindStemcell(StemcellSlug) (Stemcell, error)
	UploadStemcellURL(url, sha1 string, fix bool) error
	UploadStemcellFile(file UploadFile, fix bool) error

	LatestConfig(configType string, name string) (Config, error)
	LatestConfigByID(configID string) (Config, error)
	ListConfigs(limit int, filter ConfigsFilter) ([]Config, error)
	UpdateConfig(configType string, name string, expectedLatestId string, content []byte) (Config, error)
	DeleteConfig(configType string, name string) (bool, error)
	DeleteConfigByID(configID string) (bool, error)
	DiffConfig(configType string, name string, manifest []byte) (ConfigDiff, error)
	DiffConfigByIDOrContent(fromID string, fromContent []byte, toID string, toContent []byte) (ConfigDiff, error)

	LatestCloudConfig(name string) (CloudConfig, error)
	UpdateCloudConfig(name string, manifest []byte) error
	DiffCloudConfig(name string, manifest []byte) (ConfigDiff, error)

	LatestCPIConfig() (CPIConfig, error)
	UpdateCPIConfig([]byte) error
	DiffCPIConfig(manifest []byte, noRedact bool) (ConfigDiff, error)

	LatestRuntimeConfig(name string) (RuntimeConfig, error)
	UpdateRuntimeConfig(name string, manifest []byte) error
	DiffRuntimeConfig(name string, manifest []byte, noRedact bool) (ConfigDiff, error)

	FindOrphanDisk(string) (OrphanDisk, error)
	OrphanDisks() ([]OrphanDisk, error)
	OrphanDisk(string) error

	FindOrphanNetwork(string) (OrphanNetwork, error)
	OrphanNetworks() ([]OrphanNetwork, error)

	EnableResurrection(bool) error
	CleanUp(all bool, dryRun bool, keepOrphanedDisks bool) (CleanUp, error)
	DownloadResourceUnchecked(blobstoreID string, out io.Writer) error

	OrphanedVMs() ([]OrphanedVM, error)

	CertificateExpiry() ([]CertificateExpiryInfo, error)
}

type DirectorImpl

type DirectorImpl struct {
	// contains filtered or unexported fields
}

func (DirectorImpl) CancelTasks

func (d DirectorImpl) CancelTasks(filter TasksFilter) error

func (DirectorImpl) CertificateExpiry

func (d DirectorImpl) CertificateExpiry() ([]CertificateExpiryInfo, error)

func (DirectorImpl) CleanUp

func (d DirectorImpl) CleanUp(all bool, dryRun bool, keepOrphanedDisks bool) (CleanUp, error)

func (DirectorImpl) CurrentTasks

func (d DirectorImpl) CurrentTasks(filter TasksFilter) ([]Task, error)

func (DirectorImpl) DeleteConfig

func (d DirectorImpl) DeleteConfig(configType string, name string) (bool, error)

func (DirectorImpl) DeleteConfigByID

func (d DirectorImpl) DeleteConfigByID(configID string) (bool, error)

func (DirectorImpl) Deployments

func (d DirectorImpl) Deployments() ([]Deployment, error)

func (DirectorImpl) DiffCPIConfig

func (d DirectorImpl) DiffCPIConfig(manifest []byte, noRedact bool) (ConfigDiff, error)

func (DirectorImpl) DiffCloudConfig

func (d DirectorImpl) DiffCloudConfig(name string, manifest []byte) (ConfigDiff, error)

func (DirectorImpl) DiffConfig

func (d DirectorImpl) DiffConfig(configType string, name string, manifest []byte) (ConfigDiff, error)

func (DirectorImpl) DiffConfigByIDOrContent

func (d DirectorImpl) DiffConfigByIDOrContent(fromID string, fromContent []byte, toID string, toContent []byte) (ConfigDiff, error)

func (DirectorImpl) DiffRuntimeConfig

func (d DirectorImpl) DiffRuntimeConfig(name string, manifest []byte, noRedact bool) (ConfigDiff, error)

func (DirectorImpl) DownloadResourceUnchecked

func (d DirectorImpl) DownloadResourceUnchecked(blobstoreID string, out io.Writer) error

func (DirectorImpl) EnableResurrection

func (d DirectorImpl) EnableResurrection(enabled bool) error

func (DirectorImpl) Event

func (d DirectorImpl) Event(id string) (Event, error)

func (DirectorImpl) Events

func (d DirectorImpl) Events(opts EventsFilter) ([]Event, error)

func (DirectorImpl) FindDeployment

func (d DirectorImpl) FindDeployment(name string) (Deployment, error)

func (DirectorImpl) FindOrphanDisk

func (d DirectorImpl) FindOrphanDisk(cid string) (OrphanDisk, error)

func (DirectorImpl) FindOrphanNetwork

func (d DirectorImpl) FindOrphanNetwork(name string) (OrphanNetwork, error)

func (DirectorImpl) FindRelease

func (d DirectorImpl) FindRelease(slug ReleaseSlug) (Release, error)

func (DirectorImpl) FindReleaseSeries

func (d DirectorImpl) FindReleaseSeries(slug ReleaseSeriesSlug) (ReleaseSeries, error)

func (DirectorImpl) FindStemcell

func (d DirectorImpl) FindStemcell(slug StemcellSlug) (Stemcell, error)

func (DirectorImpl) FindTask

func (d DirectorImpl) FindTask(id int) (Task, error)

func (DirectorImpl) FindTasksByContextId

func (d DirectorImpl) FindTasksByContextId(contextId string) ([]Task, error)

func (DirectorImpl) HasRelease

func (d DirectorImpl) HasRelease(name, version string, stemcell OSVersionSlug) (bool, error)

func (DirectorImpl) Info

func (d DirectorImpl) Info() (Info, error)

func (DirectorImpl) IsAuthenticated

func (d DirectorImpl) IsAuthenticated() (bool, error)

func (DirectorImpl) LatestCPIConfig

func (d DirectorImpl) LatestCPIConfig() (CPIConfig, error)

func (DirectorImpl) LatestCloudConfig

func (d DirectorImpl) LatestCloudConfig(name string) (CloudConfig, error)

func (DirectorImpl) LatestConfig

func (d DirectorImpl) LatestConfig(configType string, name string) (Config, error)

func (DirectorImpl) LatestConfigByID

func (d DirectorImpl) LatestConfigByID(configID string) (Config, error)

func (DirectorImpl) LatestRuntimeConfig

func (d DirectorImpl) LatestRuntimeConfig(name string) (RuntimeConfig, error)

func (DirectorImpl) ListConfigs

func (d DirectorImpl) ListConfigs(limit int, filter ConfigsFilter) ([]Config, error)

func (DirectorImpl) ListDeploymentConfigs

func (d DirectorImpl) ListDeploymentConfigs(name string) (DeploymentConfigs, error)

func (DirectorImpl) ListDeployments

func (d DirectorImpl) ListDeployments() ([]DeploymentResp, error)

func (DirectorImpl) Locks

func (d DirectorImpl) Locks() ([]Lock, error)

func (DirectorImpl) MatchPackages

func (d DirectorImpl) MatchPackages(manifest interface{}, compiled bool) ([]string, error)

func (DirectorImpl) NewHTTPClientRequest

func (d DirectorImpl) NewHTTPClientRequest() ClientRequest

func (DirectorImpl) OrphanDisk

func (d DirectorImpl) OrphanDisk(cid string) error

func (DirectorImpl) OrphanDisks

func (d DirectorImpl) OrphanDisks() ([]OrphanDisk, error)

func (DirectorImpl) OrphanNetworks

func (d DirectorImpl) OrphanNetworks() ([]OrphanNetwork, error)

func (DirectorImpl) OrphanedVMs

func (d DirectorImpl) OrphanedVMs() ([]OrphanedVM, error)

func (DirectorImpl) RecentTasks

func (d DirectorImpl) RecentTasks(limit int, filter TasksFilter) ([]Task, error)

func (DirectorImpl) ReleaseHasCompiledPackage

func (d DirectorImpl) ReleaseHasCompiledPackage(releaseSlug ReleaseSlug, osVersionSlug OSVersionSlug) (bool, error)

releaseHasCompiledPackage returns true if all packages in the release contain compiled packages that match the stemcell slug

func (DirectorImpl) ReleaseHasSource

func (d DirectorImpl) ReleaseHasSource(releaseSlug ReleaseSlug) (bool, error)

func (DirectorImpl) Releases

func (d DirectorImpl) Releases() ([]Release, error)

func (DirectorImpl) StemcellNeedsUpload

func (d DirectorImpl) StemcellNeedsUpload(stemcells StemcellInfo) (bool, error)

func (DirectorImpl) Stemcells

func (d DirectorImpl) Stemcells() ([]Stemcell, error)

func (DirectorImpl) UpdateCPIConfig

func (d DirectorImpl) UpdateCPIConfig(manifest []byte) error

func (DirectorImpl) UpdateCloudConfig

func (d DirectorImpl) UpdateCloudConfig(name string, manifest []byte) error

func (DirectorImpl) UpdateConfig

func (d DirectorImpl) UpdateConfig(configType string, name string, expectedLatestId string, content []byte) (Config, error)

func (DirectorImpl) UpdateRuntimeConfig

func (d DirectorImpl) UpdateRuntimeConfig(name string, manifest []byte) error

func (DirectorImpl) UploadReleaseFile

func (d DirectorImpl) UploadReleaseFile(file UploadFile, rebase, fix bool) error

func (DirectorImpl) UploadReleaseURL

func (d DirectorImpl) UploadReleaseURL(url, sha1 string, rebase, fix bool) error

func (DirectorImpl) UploadStemcellFile

func (d DirectorImpl) UploadStemcellFile(file UploadFile, fix bool) error

func (DirectorImpl) UploadStemcellURL

func (d DirectorImpl) UploadStemcellURL(url, sha1 string, fix bool) error

func (DirectorImpl) WithContext

func (d DirectorImpl) WithContext(id string) Director

type Errand

type Errand struct {
	Name string // e.g. "acceptance-tests"
}

type ErrandResult

type ErrandResult struct {
	InstanceGroup string
	InstanceID    string

	ExitCode int

	Stdout string
	Stderr string

	LogsBlobstoreID string
	LogsSHA1        string
}

type ErrandRunResp

type ErrandRunResp struct {
	Instance struct {
		Group string `json:"group"`
		ID    string `json:"id"`
	} `json:"instance"`

	ExitCode int `json:"exit_code"`

	Stdout string
	Stderr string

	Logs struct {
		BlobstoreID string `json:"blobstore_id"`
		SHA1        string `json:"sha1"`
	} `json:"logs"`
}

type Event

type Event interface {
	ID() string
	ParentID() string
	Timestamp() time.Time
	User() string
	Action() string
	ObjectType() string
	ObjectName() string
	TaskID() string
	DeploymentName() string
	Instance() string
	Context() map[string]interface{}
	Error() string
}

type EventImpl

type EventImpl struct {
	// contains filtered or unexported fields
}

func NewEventFromResp

func NewEventFromResp(client Client, r EventResp) EventImpl

func (EventImpl) Action

func (e EventImpl) Action() string

func (EventImpl) Context

func (e EventImpl) Context() map[string]interface{}

func (EventImpl) DeploymentName

func (e EventImpl) DeploymentName() string

func (EventImpl) Error

func (e EventImpl) Error() string

func (EventImpl) ID

func (e EventImpl) ID() string

func (EventImpl) Instance

func (e EventImpl) Instance() string

func (EventImpl) ObjectName

func (e EventImpl) ObjectName() string

func (EventImpl) ObjectType

func (e EventImpl) ObjectType() string

func (EventImpl) ParentID

func (e EventImpl) ParentID() string

func (EventImpl) TaskID

func (e EventImpl) TaskID() string

func (EventImpl) Timestamp

func (e EventImpl) Timestamp() time.Time

func (EventImpl) User

func (e EventImpl) User() string

type EventResp

type EventResp struct {
	ID             string                 `json:"id"`
	Timestamp      int64                  `json:"timestamp"`
	User           string                 `json:"user"`
	Action         string                 `json:"action"`
	ObjectType     string                 `json:"object_type"`
	ObjectName     string                 `json:"object_name"`
	TaskID         string                 `json:"task"`
	DeploymentName string                 `json:"deployment"`
	Instance       string                 `json:"instance"`
	ParentID       string                 `json:"parent_id,omitempty"`
	Context        map[string]interface{} `json:"context"`
	Error          string                 `json:"error"`
}

type EventsFilter

type EventsFilter struct {
	BeforeID   string
	Before     string
	After      string
	Deployment string
	Task       string
	Instance   string
	User       string
	Action     string
	ObjectType string
	ObjectName string
}

type ExportReleaseResp

type ExportReleaseResp struct {
	BlobstoreID string `json:"blobstore_id"`
	SHA1        string `json:"sha1"`
}

type ExportReleaseResult

type ExportReleaseResult struct {
	BlobstoreID string
	SHA1        string
}

type Factory

type Factory struct {
	// contains filtered or unexported fields
}

func NewFactory

func NewFactory(logger boshlog.Logger) Factory

func (Factory) New

func (f Factory) New(factoryConfig FactoryConfig, taskReporter TaskReporter, fileReporter FileReporter) (Director, error)

type FactoryConfig

type FactoryConfig struct {
	Host string
	Port int

	// CA certificate is not required
	CACert string

	Client       string
	ClientSecret string

	TokenFunc func(bool) (string, error)
}

func NewConfigFromURL

func NewConfigFromURL(url string) (FactoryConfig, error)

func (FactoryConfig) CACertPool

func (c FactoryConfig) CACertPool() (*x509.CertPool, error)

func (FactoryConfig) Validate

func (c FactoryConfig) Validate() error

type FileReporter

type FileReporter interface {
	TrackUpload(int64, io.ReadCloser) bio.ReadSeekCloser
	TrackDownload(int64, io.Writer) io.Writer
}

type Host

type Host struct {
	Job       string
	IndexOrID string

	Username      string
	Host          string
	HostPublicKey string
}

type Info

type Info struct {
	Name    string
	UUID    string
	Version string

	User string
	Auth UserAuthentication

	Features map[string]bool

	CPI string

	StemcellOS      string
	StemcellVersion string
}

type InfoFeatureResp

type InfoFeatureResp struct {
	Status bool
}

type InfoResp

type InfoResp struct {
	Name    string // e.g. "Bosh Lite Director"
	UUID    string // e.g. "71d36859-4f21-446f-8a02-f18d7f1263c6"
	Version string // e.g. "1.2922.0 (00000000)"

	User string
	Auth UserAuthenticationResp `json:"user_authentication"`

	Features map[string]InfoFeatureResp

	CPI string

	StemcellOS      string `json:"stemcell_os"`
	StemcellVersion string `json:"stemcell_version"`
}

type Instance

type Instance struct {
	AgentID string `json:"agent_id"`
	VMID    string `json:"cid"`

	ID    string `json:"id"`
	Group string `json:"job"`

	AZ        string `json:"az"`
	ExpectsVM bool   `json:"expects_vm"`

	IPs []string `json:"ips"`
}

type InstanceFilter

type InstanceFilter struct {
	Group string `json:"group"`
	ID    string `json:"id,omitempty"`
}

type InstanceGroupOrInstanceSlug

type InstanceGroupOrInstanceSlug struct {
	// contains filtered or unexported fields
}

func NewInstanceGroupOrInstanceSlug

func NewInstanceGroupOrInstanceSlug(name, indexOrID string) InstanceGroupOrInstanceSlug

func NewInstanceGroupOrInstanceSlugFromString

func NewInstanceGroupOrInstanceSlugFromString(str string) (InstanceGroupOrInstanceSlug, error)

func (InstanceGroupOrInstanceSlug) DirectorHash

func (InstanceGroupOrInstanceSlug) IndexOrID

func (s InstanceGroupOrInstanceSlug) IndexOrID() string

func (InstanceGroupOrInstanceSlug) Name

func (InstanceGroupOrInstanceSlug) String

func (*InstanceGroupOrInstanceSlug) UnmarshalFlag

func (s *InstanceGroupOrInstanceSlug) UnmarshalFlag(data string) error

type InstanceGroupSlug

type InstanceGroupSlug struct {
	// contains filtered or unexported fields
}

func NewInstanceGroupSlug

func NewInstanceGroupSlug(name string) InstanceGroupSlug

func (InstanceGroupSlug) Name

func (s InstanceGroupSlug) Name() string

func (InstanceGroupSlug) String

func (s InstanceGroupSlug) String() string

func (*InstanceGroupSlug) UnmarshalFlag

func (s *InstanceGroupSlug) UnmarshalFlag(data string) error

type InstanceSlug

type InstanceSlug struct {
	// contains filtered or unexported fields
}

func NewInstanceSlug

func NewInstanceSlug(name, indexOrID string) InstanceSlug

func (InstanceSlug) IndexOrID

func (s InstanceSlug) IndexOrID() string

func (InstanceSlug) IsProvided

func (s InstanceSlug) IsProvided() bool

func (InstanceSlug) Name

func (s InstanceSlug) Name() string

func (InstanceSlug) String

func (s InstanceSlug) String() string

func (*InstanceSlug) UnmarshalFlag

func (s *InstanceSlug) UnmarshalFlag(data string) error

type Job

type Job struct {
	Name        string
	Fingerprint string

	BlobstoreID string `json:"blobstore_id"`
	SHA1        string `json:"sha1"`

	LinksConsumed []Link `json:"consumes"`
	LinksProvided []Link `json:"provides"`
}
type Link struct {
	Name     string `json:"name"`
	Type     string `json:"type"`
	Optional bool   `json:"optional" yaml:",omitempty"`
}

type Lock

type Lock struct {
	Type      string   // e.g. "deployment"
	Resource  []string // e.g. ["some-deployment-name"]
	ExpiresAt time.Time
	TaskID    string // e.g. "123456"
}

type LockResp

type LockResp struct {
	Type     string   // e.g. "deployment"
	Resource []string // e.g. ["some-deployment-name"]
	Timeout  string   // e.g. "1443889622.9964118"
	TaskID   string   `json:"task_id"` // e.g. "123456"
}

func (LockResp) IsForDeployment

func (l LockResp) IsForDeployment(name string) bool

type LogsResult

type LogsResult struct {
	BlobstoreID string
	SHA1        string
}

type Manifest

type Manifest struct {
	Name string

	Releases []ManifestRelease
}

func NewManifestFromBytes

func NewManifestFromBytes(bytes []byte) (Manifest, error)

func NewManifestFromPath

func NewManifestFromPath(path string, fs boshsys.FileSystem) (Manifest, error)

type ManifestRelease

type ManifestRelease struct {
	Name    string
	Version string

	URL  string
	SHA1 string

	Stemcell     ManifestReleaseStemcell
	ExportedFrom []ManifestReleaseStemcell `yaml:"exported_from,omitempty"`
}

type ManifestReleaseStemcell

type ManifestReleaseStemcell struct {
	OS      string
	Version string
}

type NoopFileReporter

type NoopFileReporter struct{}

func NewNoopFileReporter

func NewNoopFileReporter() NoopFileReporter

func (NoopFileReporter) TrackDownload

func (r NoopFileReporter) TrackDownload(size int64, writer io.Writer) io.Writer

func (NoopFileReporter) TrackUpload

func (r NoopFileReporter) TrackUpload(size int64, reader io.ReadCloser) bio.ReadSeekCloser

type NoopReadSeekCloser

type NoopReadSeekCloser struct {
	Reader io.ReadCloser
}

func (NoopReadSeekCloser) Close

func (nrsc NoopReadSeekCloser) Close() error

func (NoopReadSeekCloser) Read

func (nrsc NoopReadSeekCloser) Read(p []byte) (n int, err error)

func (NoopReadSeekCloser) Seek

func (nrsc NoopReadSeekCloser) Seek(offset int64, whence int) (int64, error)

type NoopTaskReporter

type NoopTaskReporter struct{}

func NewNoopTaskReporter

func NewNoopTaskReporter() NoopTaskReporter

func (NoopTaskReporter) TaskFinished

func (r NoopTaskReporter) TaskFinished(id int, state string)

func (NoopTaskReporter) TaskOutputChunk

func (r NoopTaskReporter) TaskOutputChunk(id int, chunk []byte)

func (NoopTaskReporter) TaskStarted

func (r NoopTaskReporter) TaskStarted(id int)

type OSVersionSlug

type OSVersionSlug struct {
	// contains filtered or unexported fields
}

func NewOSVersionSlug

func NewOSVersionSlug(os, version string) OSVersionSlug

func (OSVersionSlug) IsProvided

func (s OSVersionSlug) IsProvided() bool

func (OSVersionSlug) OS

func (s OSVersionSlug) OS() string

func (OSVersionSlug) String

func (s OSVersionSlug) String() string

func (*OSVersionSlug) UnmarshalFlag

func (s *OSVersionSlug) UnmarshalFlag(data string) error

func (*OSVersionSlug) UnmarshalJSON

func (s *OSVersionSlug) UnmarshalJSON(data []byte) error

func (OSVersionSlug) Version

func (s OSVersionSlug) Version() string

type OrphanDisk

type OrphanDisk interface {
	CID() string
	Size() uint64

	Deployment() Deployment
	InstanceName() string
	AZName() string

	OrphanedAt() time.Time

	Delete() error
}

type OrphanDiskImpl

type OrphanDiskImpl struct {
	// contains filtered or unexported fields
}

func (OrphanDiskImpl) AZName

func (d OrphanDiskImpl) AZName() string

func (OrphanDiskImpl) CID

func (d OrphanDiskImpl) CID() string

func (OrphanDiskImpl) Delete

func (d OrphanDiskImpl) Delete() error

func (OrphanDiskImpl) Deployment

func (d OrphanDiskImpl) Deployment() Deployment

func (OrphanDiskImpl) InstanceName

func (d OrphanDiskImpl) InstanceName() string

func (OrphanDiskImpl) OrphanedAt

func (d OrphanDiskImpl) OrphanedAt() time.Time

func (OrphanDiskImpl) Size

func (d OrphanDiskImpl) Size() uint64

type OrphanDiskResp

type OrphanDiskResp struct {
	CID  string `json:"disk_cid"`
	Size uint64

	DeploymentName string `json:"deployment_name"`
	InstanceName   string `json:"instance_name"`
	AZ             string `json:"az"`

	OrphanedAt string `json:"orphaned_at"` // e.g. "2016-01-09 06:23:25 +0000"
}

type OrphanNetwork

type OrphanNetwork interface {
	Name() string
	Type() string
	OrphanedAt() time.Time
	CreatedAt() time.Time
	Delete() error
}

type OrphanNetworkImpl

type OrphanNetworkImpl struct {
	// contains filtered or unexported fields
}

func (OrphanNetworkImpl) CreatedAt

func (n OrphanNetworkImpl) CreatedAt() time.Time

func (OrphanNetworkImpl) Delete

func (n OrphanNetworkImpl) Delete() error

func (OrphanNetworkImpl) Name

func (n OrphanNetworkImpl) Name() string

func (OrphanNetworkImpl) OrphanedAt

func (n OrphanNetworkImpl) OrphanedAt() time.Time

func (OrphanNetworkImpl) Type

func (n OrphanNetworkImpl) Type() string

type OrphanNetworkResp

type OrphanNetworkResp struct {
	Name       string `json:"name"`
	Type       string `json:"type"`
	CreatedAt  string `json:"created_at"`
	OrphanedAt string `json:"orphaned_at"` // e.g. "2016-01-09 06:23:25 +0000"
}

type OrphanedVM

type OrphanedVM struct {
	CID            string
	DeploymentName string
	InstanceName   string
	AZName         string
	IPAddresses    []string
	OrphanedAt     time.Time
}

type OrphanedVMResponse

type OrphanedVMResponse struct {
	AZName         string   `json:"az"`
	CID            string   `json:"cid"`
	DeploymentName string   `json:"deployment_name"`
	IPAddresses    []string `json:"ip_addresses"`
	InstanceName   string   `json:"instance_name"`
	OrphanedAt     string   `json:"orphaned_at"`
}

type Package

type Package struct {
	Name        string
	Fingerprint string

	BlobstoreID string `json:"blobstore_id"`
	SHA1        string `json:"sha1"`

	CompiledPackages []CompiledPackage `json:"compiled_packages"`
}

type Problem

type Problem struct {
	ID int // e.g. 4

	Type        string // e.g. "unresponsive_agent"
	Description string // e.g. "api/1 (5efd2cb8-d73b-4e45-6df4-58f5dd5ec2ec) is not responding"

	Data        interface{}
	Resolutions []ProblemResolution
}

type ProblemAnswer

type ProblemAnswer struct {
	ProblemID  int
	Resolution ProblemResolution
}

type ProblemResolution

type ProblemResolution struct {
	Name *string `json:"name"` // e.g. "Skip for now", "Recreate VM"
	Plan string  `json:"plan"` // e.g. "ignore", "reboot_vm"
}
var ProblemResolutionDefault ProblemResolution = ProblemResolution{}
var ProblemResolutionSkip ProblemResolution = ProblemResolution{
	Name: &skipResolutionName,
	Plan: "Skip for now",
}

type RecreateOpts

type RecreateOpts struct {
	Canaries    string
	MaxInFlight string
	Force       bool
	Fix         bool
	SkipDrain   bool
	DryRun      bool
	Converge    bool
}

type RedirectFunc

type RedirectFunc func(*http.Request, []*http.Request) error

type Release

type Release interface {
	Name() string
	Version() semver.Version
	Exists() (bool, error)
	VersionMark(mark string) string
	CommitHashWithMark(mark string) string

	Jobs() ([]Job, error)
	Packages() ([]Package, error)

	Delete(force bool) error
}

type ReleaseArchive

type ReleaseArchive interface {
	Info() (ReleaseMetadata, error)
	File() (UploadFile, error)
}

func NewFSReleaseArchive

func NewFSReleaseArchive(path string, fs boshsys.FileSystem) ReleaseArchive

type ReleaseArchiveWithMetadata

type ReleaseArchiveWithMetadata struct {
	// contains filtered or unexported fields
}

func (ReleaseArchiveWithMetadata) File

func (ReleaseArchiveWithMetadata) Info

type ReleaseImpl

type ReleaseImpl struct {
	// contains filtered or unexported fields
}

func (ReleaseImpl) CommitHashWithMark

func (r ReleaseImpl) CommitHashWithMark(suffix string) string

func (ReleaseImpl) Delete

func (r ReleaseImpl) Delete(force bool) error

func (ReleaseImpl) Exists

func (r ReleaseImpl) Exists() (bool, error)

func (*ReleaseImpl) Jobs

func (r *ReleaseImpl) Jobs() ([]Job, error)

func (ReleaseImpl) Name

func (r ReleaseImpl) Name() string

func (*ReleaseImpl) Packages

func (r *ReleaseImpl) Packages() ([]Package, error)

func (ReleaseImpl) Version

func (r ReleaseImpl) Version() semver.Version

func (ReleaseImpl) VersionMark

func (r ReleaseImpl) VersionMark(suffix string) string

type ReleaseMetadata

type ReleaseMetadata struct {
	Name    string `yaml:"name"`
	Version string `yaml:"version"`
}

type ReleaseOrSeriesSlug

type ReleaseOrSeriesSlug struct {
	// contains filtered or unexported fields
}

func NewReleaseOrSeriesSlug

func NewReleaseOrSeriesSlug(name, version string) ReleaseOrSeriesSlug

func (ReleaseOrSeriesSlug) Name

func (s ReleaseOrSeriesSlug) Name() string

func (ReleaseOrSeriesSlug) ReleaseSlug

func (s ReleaseOrSeriesSlug) ReleaseSlug() (ReleaseSlug, bool)

func (ReleaseOrSeriesSlug) SeriesSlug

func (s ReleaseOrSeriesSlug) SeriesSlug() ReleaseSeriesSlug

func (*ReleaseOrSeriesSlug) UnmarshalFlag

func (s *ReleaseOrSeriesSlug) UnmarshalFlag(data string) error

func (ReleaseOrSeriesSlug) Version

func (s ReleaseOrSeriesSlug) Version() string

type ReleaseResp

type ReleaseResp struct {
	Jobs     []Job
	Packages []Package
}

type ReleaseSeries

type ReleaseSeries interface {
	Name() string
	Delete(force bool) error
	Exists() (bool, error)
}

type ReleaseSeriesImpl

type ReleaseSeriesImpl struct {
	// contains filtered or unexported fields
}

func (ReleaseSeriesImpl) Delete

func (rs ReleaseSeriesImpl) Delete(force bool) error

func (ReleaseSeriesImpl) Exists

func (rs ReleaseSeriesImpl) Exists() (bool, error)

func (ReleaseSeriesImpl) Name

func (rs ReleaseSeriesImpl) Name() string

type ReleaseSeriesResp

type ReleaseSeriesResp struct {
	Name     string
	Versions []ReleaseVersionResp `json:"release_versions"`
}

type ReleaseSeriesSlug

type ReleaseSeriesSlug struct {
	// contains filtered or unexported fields
}

func NewReleaseSeriesSlug

func NewReleaseSeriesSlug(name string) ReleaseSeriesSlug

func (ReleaseSeriesSlug) Name

func (s ReleaseSeriesSlug) Name() string

func (ReleaseSeriesSlug) String

func (s ReleaseSeriesSlug) String() string

func (*ReleaseSeriesSlug) UnmarshalFlag

func (s *ReleaseSeriesSlug) UnmarshalFlag(data string) error

type ReleaseSlug

type ReleaseSlug struct {
	// contains filtered or unexported fields
}

func NewReleaseSlug

func NewReleaseSlug(name, version string) ReleaseSlug

func (ReleaseSlug) Name

func (s ReleaseSlug) Name() string

func (ReleaseSlug) String

func (s ReleaseSlug) String() string

func (*ReleaseSlug) UnmarshalFlag

func (s *ReleaseSlug) UnmarshalFlag(data string) error

func (ReleaseSlug) Version

func (s ReleaseSlug) Version() string

type ReleaseVersionResp

type ReleaseVersionResp struct {
	Version string

	CurrentlyDeployed bool `json:"currently_deployed"`

	CommitHash         string `json:"commit_hash"`
	UncommittedChanges bool   `json:"uncommitted_changes"`
}

type RequestSanitizer

type RequestSanitizer struct {
	Request http.Request
}

func (RequestSanitizer) SanitizeRequest

func (rs RequestSanitizer) SanitizeRequest() (http.Request, error)

This will destructively mutate rs.Request

type RestartOpts

type RestartOpts struct {
	Canaries    string
	MaxInFlight string
	Force       bool
	SkipDrain   bool
	Converge    bool
}

type RuntimeConfig

type RuntimeConfig struct {
	Properties string
}

type SSHOpts

type SSHOpts struct {
	Username  string
	PublicKey string
}

func NewSSHOpts

func NewSSHOpts(uuidGen boshuuid.Generator) (SSHOpts, string, error)

type SSHResp

type SSHResp struct {
	Status string

	Job   string
	Index *int
	ID    string

	IP            string // e.g. "10.244.2.18"
	HostPublicKey string `json:"host_public_key"`

	GatewayUser string `json:"gateway_user"`
	GatewayHost string `json:"gateway_host"`
}

func (SSHResp) IndexOrID

func (r SSHResp) IndexOrID() string

type SSHResult

type SSHResult struct {
	Hosts []Host

	GatewayUsername string
	GatewayHost     string
}

type ShouldTrackDownload

type ShouldTrackDownload interface {
	ShouldTrackDownload() bool
}

type SkipDrain

type SkipDrain struct {
	All  bool
	Slug InstanceGroupOrInstanceSlug
}

func (*SkipDrain) UnmarshalFlag

func (s *SkipDrain) UnmarshalFlag(data string) error

type SkipDrains

type SkipDrains []SkipDrain

func (SkipDrains) AsQueryValue

func (s SkipDrains) AsQueryValue() string

type Snapshot

type Snapshot struct {
	Job   string
	Index *int

	CID       string
	CreatedAt time.Time

	Clean bool
}

func (Snapshot) InstanceDesc

func (s Snapshot) InstanceDesc() string

type SnapshotResp

type SnapshotResp struct {
	Job   string
	Index *int

	SnapshotCID string `json:"snapshot_cid"`
	CreatedAt   string `json:"created_at"`

	Clean bool
}

type StartOpts

type StartOpts struct {
	Canaries    string
	MaxInFlight string
	Converge    bool
}

type Stemcell

type Stemcell interface {
	Name() string
	Version() semver.Version
	VersionMark(mark string) string

	OSName() string

	CPI() string
	CID() string

	Delete(force bool) error
}

type StemcellArchive

type StemcellArchive interface {
	Info() (StemcellMetadata, error)
	File() (UploadFile, error)
}

func NewFSStemcellArchive

func NewFSStemcellArchive(path string, fs boshsys.FileSystem) (stemcellArchive StemcellArchive)

type StemcellArchiveWithMetadata

type StemcellArchiveWithMetadata struct {
	// contains filtered or unexported fields
}

func (StemcellArchiveWithMetadata) File

func (StemcellArchiveWithMetadata) Info

type StemcellImpl

type StemcellImpl struct {
	// contains filtered or unexported fields
}

func (StemcellImpl) CID

func (s StemcellImpl) CID() string

func (StemcellImpl) CPI

func (s StemcellImpl) CPI() string

func (StemcellImpl) Delete

func (s StemcellImpl) Delete(force bool) error

func (StemcellImpl) Name

func (s StemcellImpl) Name() string

func (StemcellImpl) OSName

func (s StemcellImpl) OSName() string

func (StemcellImpl) Version

func (s StemcellImpl) Version() semver.Version

func (StemcellImpl) VersionMark

func (s StemcellImpl) VersionMark(suffix string) string

type StemcellInfo

type StemcellInfo struct {
	Name    string `json:"name"`
	Version string `json:"version"`
}

type StemcellMetadata

type StemcellMetadata struct {
	Name            string         `yaml:"name"`
	OS              string         `yaml:"operating_system"`
	Version         string         `yaml:"version"`
	CloudProperties biproperty.Map `yaml:"cloud_properties"`
}

type StemcellResp

type StemcellResp struct {
	Name    string
	Version string

	OperatingSystem string `json:"operating_system"`

	CID string `json:"cid"`
	CPI string `json:"cpi"`

	// Only used for determining if stemcell is deployed
	Deployments []interface{}
}

type StemcellSlug

type StemcellSlug struct {
	// contains filtered or unexported fields
}

func NewStemcellSlug

func NewStemcellSlug(name, version string) StemcellSlug

func (StemcellSlug) Name

func (s StemcellSlug) Name() string

func (StemcellSlug) String

func (s StemcellSlug) String() string

func (*StemcellSlug) UnmarshalFlag

func (s *StemcellSlug) UnmarshalFlag(data string) error

func (*StemcellSlug) UnmarshalJSON

func (s *StemcellSlug) UnmarshalJSON(data []byte) error

func (StemcellSlug) Version

func (s StemcellSlug) Version() string

type StopOpts

type StopOpts struct {
	Canaries    string
	MaxInFlight string
	Force       bool
	SkipDrain   bool
	Hard        bool
	Converge    bool
}

type Task

type Task interface {
	ID() int
	StartedAt() time.Time
	FinishedAt() time.Time

	State() string
	IsError() bool
	User() string
	DeploymentName() string
	ContextID() string

	Description() string
	Result() string

	EventOutput(TaskReporter) error
	CPIOutput(TaskReporter) error
	DebugOutput(TaskReporter) error
	ResultOutput(TaskReporter) error

	Cancel() error
}

type TaskClientRequest

type TaskClientRequest struct {
	// contains filtered or unexported fields
}

func NewTaskClientRequest

func NewTaskClientRequest(
	clientRequest ClientRequest,
	taskReporter TaskReporter,
	taskCheckStepDuration time.Duration,
) TaskClientRequest

func (TaskClientRequest) DeleteResult

func (r TaskClientRequest) DeleteResult(path string) ([]byte, error)

func (TaskClientRequest) GetResult

func (r TaskClientRequest) GetResult(path string) (int, []byte, error)

func (TaskClientRequest) PostResult

func (r TaskClientRequest) PostResult(path string, payload []byte, f func(*http.Request)) ([]byte, error)

func (TaskClientRequest) PutResult

func (r TaskClientRequest) PutResult(path string, payload []byte, f func(*http.Request)) ([]byte, error)

func (TaskClientRequest) WaitForCompletion

func (r TaskClientRequest) WaitForCompletion(id int, type_ string, taskReporter TaskReporter) error

type TaskImpl

type TaskImpl struct {
	// contains filtered or unexported fields
}

func NewTaskFromResp

func NewTaskFromResp(client Client, r TaskResp) TaskImpl

func (TaskImpl) CPIOutput

func (t TaskImpl) CPIOutput(taskReporter TaskReporter) error

func (TaskImpl) Cancel

func (t TaskImpl) Cancel() error

func (TaskImpl) ContextID

func (t TaskImpl) ContextID() string

func (TaskImpl) DebugOutput

func (t TaskImpl) DebugOutput(taskReporter TaskReporter) error

func (TaskImpl) DeploymentName

func (t TaskImpl) DeploymentName() string

func (TaskImpl) Description

func (t TaskImpl) Description() string

func (TaskImpl) EventOutput

func (t TaskImpl) EventOutput(taskReporter TaskReporter) error

func (TaskImpl) FinishedAt

func (t TaskImpl) FinishedAt() time.Time

func (TaskImpl) ID

func (t TaskImpl) ID() int

func (TaskImpl) IsError

func (t TaskImpl) IsError() bool

func (TaskImpl) Result

func (t TaskImpl) Result() string

func (TaskImpl) ResultOutput

func (t TaskImpl) ResultOutput(taskReporter TaskReporter) error

func (TaskImpl) StartedAt

func (t TaskImpl) StartedAt() time.Time

func (TaskImpl) State

func (t TaskImpl) State() string

func (TaskImpl) User

func (t TaskImpl) User() string

type TaskReporter

type TaskReporter interface {
	TaskStarted(int)
	TaskFinished(int, string)
	TaskOutputChunk(int, []byte)
}

type TaskResp

type TaskResp struct {
	ID int // 165

	StartedAt  int64 `json:"started_at"` // 1440318199
	FinishedAt int64 `json:"timestamp"`  // 1440318199

	State      string // e.g. "queued", "processing", "done", "error", "cancelled"
	User       string // e.g. "admin"
	Deployment string

	Description string // e.g. "create release"
	Result      string // e.g. "Created release `bosh-ui/0+dev.17'"
	ContextId   string `json:"context_id"`
}

type TasksFilter

type TasksFilter struct {
	All        bool
	Deployment string
	Types      []string
	States     []string
}

type TimeParser

type TimeParser struct{}

func (TimeParser) Parse

func (p TimeParser) Parse(s string) (time.Time, error)

type TimeoutTime

type TimeoutTime time.Time

type UpdateConfigBody

type UpdateConfigBody struct {
	Type             string `json:"type"`
	Name             string `json:"name"`
	Content          string `json:"content"`
	ExpectedLatestId string `json:"expected_latest_id,omitempty"`
}

type UpdateOpts

type UpdateOpts struct {
	Recreate                bool
	RecreatePersistentDisks bool
	Fix                     bool
	SkipDrain               SkipDrains
	Canaries                string
	MaxInFlight             string
	DryRun                  bool
	Diff                    DeploymentDiff
}

type UploadFile

type UploadFile interface {
	io.ReadCloser
	Stat() (os.FileInfo, error)
}

type UserAuthentication

type UserAuthentication struct {
	Type    string
	Options map[string]interface{}
}

type UserAuthenticationResp

type UserAuthenticationResp struct {
	Type    string
	Options map[string]interface{}
}

type VMInfo

type VMInfo struct {
	AgentID string `json:"agent_id"`

	JobName      string `json:"job_name"`
	ID           string `json:"id"`
	Index        *int   `json:"index"`
	ProcessState string `json:"job_state"` // e.g. "running"
	Active       *bool  `json:"active"`
	Bootstrap    bool

	IPs        []string `json:"ips"`
	Deployment string   `json:"deployment_name"`
	DNS        []string `json:"dns"`

	AZ              string      `json:"az"`
	State           string      `json:"state"`
	VMID            string      `json:"vm_cid"`
	VMType          string      `json:"vm_type"`
	ResourcePool    string      `json:"resource_pool"`
	DiskID          string      `json:"disk_cid"`
	Ignore          bool        `json:"ignore"`
	DiskIDs         []string    `json:"disk_cids"`
	VMCreatedAtRaw  string      `json:"vm_created_at"`
	VMCreatedAt     time.Time   `json:"-"`
	CloudProperties interface{} `json:"cloud_properties"`

	Processes []VMInfoProcess

	Vitals VMInfoVitals

	ResurrectionPaused bool `json:"resurrection_paused"`

	Stemcell VmInfoStemcell
}

func (VMInfo) InstanceState

func (i VMInfo) InstanceState() string

func (VMInfo) IsRunning

func (i VMInfo) IsRunning() bool

type VMInfoProcess

type VMInfoProcess struct {
	Name  string
	State string // e.g. "running"

	CPU    VMInfoVitalsCPU `json:"cpu"`
	Mem    VMInfoVitalsMemIntSize
	Uptime VMInfoVitalsUptime
}

func (VMInfoProcess) IsRunning

func (p VMInfoProcess) IsRunning() bool

type VMInfoVitals

type VMInfoVitals struct {
	CPU    VMInfoVitalsCPU `json:"cpu"`
	Mem    VMInfoVitalsMemSize
	Swap   VMInfoVitalsMemSize
	Uptime VMInfoVitalsUptime

	Load []string
	Disk map[string]VMInfoVitalsDiskSize
}

func (VMInfoVitals) EphemeralDisk

func (v VMInfoVitals) EphemeralDisk() VMInfoVitalsDiskSize

func (VMInfoVitals) PersistentDisk

func (v VMInfoVitals) PersistentDisk() VMInfoVitalsDiskSize

func (VMInfoVitals) SystemDisk

func (v VMInfoVitals) SystemDisk() VMInfoVitalsDiskSize

type VMInfoVitalsCPU

type VMInfoVitalsCPU struct {
	Total *float64 // used by VMInfoProcess
	Sys   string
	User  string
	Wait  string
}

type VMInfoVitalsDiskSize

type VMInfoVitalsDiskSize struct {
	InodePercent string `json:"inode_percent"`
	Percent      string
}

type VMInfoVitalsMemIntSize

type VMInfoVitalsMemIntSize struct {
	KB      *uint64 `json:"kb"`
	Percent *float64
}

type VMInfoVitalsMemSize

type VMInfoVitalsMemSize struct {
	KB      string `json:"kb"`
	Percent string
}

type VMInfoVitalsUptime

type VMInfoVitalsUptime struct {
	Seconds *uint64 `json:"secs"` // e.g. 48307
}

type VMResp

type VMResp struct {
	VMCID string `json:"vm_cid"`
}

type VariableResult

type VariableResult struct {
	ID   string `json:"id"`
	Name string `json:"name"`
}

type VmInfoStemcell

type VmInfoStemcell struct {
	Name       string
	Version    string
	ApiVersion int `json:"api_version"`
}

Directories

Path Synopsis
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

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