director

package
v0.0.95 Latest Latest
Warning

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

Go to latest
Published: Oct 31, 2016 License: Apache-2.0 Imports: 26 Imported by: 0

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 AllOrPoolOrInstanceSlug

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

func NewAllOrPoolOrInstanceSlug

func NewAllOrPoolOrInstanceSlug(name, indexOrID string) AllOrPoolOrInstanceSlug

func NewAllOrPoolOrInstanceSlugFromString

func NewAllOrPoolOrInstanceSlugFromString(str string) (AllOrPoolOrInstanceSlug, error)

func (AllOrPoolOrInstanceSlug) IndexOrID

func (s AllOrPoolOrInstanceSlug) IndexOrID() string

func (AllOrPoolOrInstanceSlug) InstanceSlug

func (s AllOrPoolOrInstanceSlug) InstanceSlug() (InstanceSlug, bool)

func (AllOrPoolOrInstanceSlug) Name

func (AllOrPoolOrInstanceSlug) String

func (s AllOrPoolOrInstanceSlug) String() string

func (*AllOrPoolOrInstanceSlug) UnmarshalFlag

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

type AuthRequestAdjustment

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

func NewAuthRequestAdjustment

func NewAuthRequestAdjustment(
	authFunc func(bool) (string, error),
	username string,
	password 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 Client

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

func NewClient

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

func (Client) CancelTask

func (c Client) CancelTask(id int) error

func (Client) ChangeJobState

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

func (Client) CleanUp

func (c Client) CleanUp(all bool) error

func (Client) CleanUpSSH

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

func (Client) CloudConfigs

func (c Client) CloudConfigs() ([]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) DeleteOrphanedDisk

func (c Client) DeleteOrphanedDisk(cid 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 added in v0.0.95

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) 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) Diff

func (c Client) Diff(manifest []byte, deploymentName string, doNotRedact bool) (DeploymentDiffResponse, 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) Events

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

func (Client) ExportRelease

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

func (Client) FetchLogs

func (c Client) FetchLogs(deploymentName, job, indexOrID string, filters []string, agent bool) (string, string, 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) 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) OrphanedDisks

func (c Client) OrphanedDisks() ([]OrphanedDiskResp, 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) (ErrandRunResp, error)

func (Client) RuntimeConfigs

func (c Client) RuntimeConfigs() ([]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) 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) UpdateCloudConfig

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

func (Client) UpdateDeployment

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

func (Client) UpdateRuntimeConfig

func (c Client) UpdateRuntimeConfig(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 added in v0.0.95

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

type ClientRequest

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

func NewClientRequest

func NewClientRequest(
	endpoint string,
	httpClient boshhttp.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

type CloudConfig

type CloudConfig struct {
	Properties string
}

type CompiledPackage

type CompiledPackage struct {
	// e.g. "bosh-aws-xen-hvm-ubuntu-trusty-go_agent/3093"
	StemcellSlug StemcellSlug `json:"stemcell"`

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

type ConcurrencyOpts added in v0.0.95

type ConcurrencyOpts struct {
	Canaries    string
	MaxInFlight string
}

type Config

type Config struct {
	Host string
	Port int

	// CA certificate is not required
	CACert string

	Username string
	Password string

	TokenFunc func(bool) (string, error)
}

func NewConfigFromURL

func NewConfigFromURL(url string) (Config, error)

func (Config) CACertPool

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

func (Config) Validate

func (c Config) Validate() error

type Deployment

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

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

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

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

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

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

	// Deployment, pool or instance specifics
	Start(slug AllOrPoolOrInstanceSlug, opts ConcurrencyOpts) error
	Stop(slug AllOrPoolOrInstanceSlug, hard bool, sd SkipDrain, force bool, opts ConcurrencyOpts) error
	Restart(slug AllOrPoolOrInstanceSlug, sd SkipDrain, force bool, opts ConcurrencyOpts) error
	Recreate(slug AllOrPoolOrInstanceSlug, sd SkipDrain, force bool, dryRun bool, opts ConcurrencyOpts) error

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

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

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

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) CleanUpSSH

func (d DeploymentImpl) CleanUpSSH(slug AllOrPoolOrInstanceSlug, opts SSHOpts) error

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 added in v0.0.95

func (d DeploymentImpl) DeleteVM(cid string) error

func (DeploymentImpl) Diff

func (d DeploymentImpl) Diff(manifest []byte, doNotRedact bool) (DiffLines, 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) (ExportReleaseResult, error)

func (DeploymentImpl) FetchLogs

func (d DeploymentImpl) FetchLogs(slug InstanceSlug, filters []string, agent bool) (LogsResult, error)

func (DeploymentImpl) InstanceInfos

func (d DeploymentImpl) InstanceInfos() ([]VMInfo, 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 (d DeploymentImpl) Recreate(slug AllOrPoolOrInstanceSlug, sd SkipDrain, force bool, dryRun bool, opts ConcurrencyOpts) error

func (*DeploymentImpl) Releases

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

func (DeploymentImpl) ResolveProblems

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

func (DeploymentImpl) Restart

func (d DeploymentImpl) Restart(slug AllOrPoolOrInstanceSlug, sd SkipDrain, force bool, opts ConcurrencyOpts) error

func (DeploymentImpl) RunErrand

func (d DeploymentImpl) RunErrand(name string, keepAlive bool) (ErrandResult, error)

func (DeploymentImpl) ScanForProblems

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

func (DeploymentImpl) SetUpSSH

func (d DeploymentImpl) SetUpSSH(slug AllOrPoolOrInstanceSlug, opts SSHOpts) (SSHResult, error)

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 (d DeploymentImpl) Stop(slug AllOrPoolOrInstanceSlug, hard bool, sd SkipDrain, force bool, opts ConcurrencyOpts) error

func (DeploymentImpl) TakeSnapshot

func (d DeploymentImpl) TakeSnapshot(slug InstanceSlug) error

func (DeploymentImpl) TakeSnapshots

func (d DeploymentImpl) TakeSnapshots() error

func (DeploymentImpl) Update

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

func (DeploymentImpl) VMInfos

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

type DeploymentReleaseResp

type DeploymentReleaseResp struct {
	Name    string
	Version string
}

type DeploymentResp

type DeploymentResp struct {
	Name string

	Manifest string

	Releases  []DeploymentReleaseResp
	Stemcells []DeploymentStemcellResp

	CloudConfig string `json:"cloud_config"`
}

type DeploymentStemcellResp

type DeploymentStemcellResp struct {
	Name    string
	Version string
}

type DeploymentVMResp added in v0.0.95

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 DiffLines

type DiffLines [][]interface{}

type Director

type Director interface {
	IsAuthenticated() (bool, error)
	Info() (Info, error)

	Locks() ([]Lock, error)

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

	Events(EventsFilter) ([]Event, error)

	Deployments() ([]Deployment, error)
	FindDeployment(string) (Deployment, error)

	Releases() ([]Release, error)
	HasRelease(name, version string) (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)
	HasStemcell(name, version string) (bool, error)
	FindStemcell(StemcellSlug) (Stemcell, error)
	UploadStemcellURL(url, sha1 string, fix bool) error
	UploadStemcellFile(file UploadFile, fix bool) error

	LatestCloudConfig() (CloudConfig, error)
	UpdateCloudConfig([]byte) error

	LatestRuntimeConfig() (RuntimeConfig, error)
	UpdateRuntimeConfig([]byte) error

	FindOrphanedDisk(string) (OrphanedDisk, error)
	OrphanedDisks() ([]OrphanedDisk, error)

	EnableResurrection(bool) error
	CleanUp(bool) error
	DownloadResourceUnchecked(blobstoreID string, out io.Writer) error
}

type DirectorImpl

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

func (DirectorImpl) CleanUp

func (d DirectorImpl) CleanUp(all bool) error

func (DirectorImpl) CurrentTasks

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

func (DirectorImpl) Deployments

func (d DirectorImpl) Deployments() ([]Deployment, 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) Events

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

func (DirectorImpl) FindDeployment

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

func (DirectorImpl) FindOrphanedDisk

func (d DirectorImpl) FindOrphanedDisk(cid string) (OrphanedDisk, 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) HasRelease

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

func (DirectorImpl) HasStemcell

func (d DirectorImpl) HasStemcell(name, version string) (bool, error)

func (DirectorImpl) Info

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

func (DirectorImpl) IsAuthenticated

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

func (DirectorImpl) LatestCloudConfig

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

func (DirectorImpl) LatestRuntimeConfig

func (d DirectorImpl) LatestRuntimeConfig() (RuntimeConfig, 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) OrphanedDisks

func (d DirectorImpl) OrphanedDisks() ([]OrphanedDisk, error)

func (DirectorImpl) RecentTasks

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

func (DirectorImpl) Releases

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

func (DirectorImpl) Stemcells

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

func (DirectorImpl) UpdateCloudConfig

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

func (DirectorImpl) UpdateRuntimeConfig

func (d DirectorImpl) UpdateRuntimeConfig(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

type Errand

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

type ErrandResult

type ErrandResult struct {
	ExitCode int

	Stdout string
	Stderr string

	LogsBlobstoreID string
	LogsSHA1        string
}

type ErrandRunResp

type ErrandRunResp struct {
	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{}
}

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) 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"`
}

type EventsFilter

type EventsFilter struct {
	BeforeID   string
	Before     string
	After      string
	Deployment string
	Task       string
	Instance   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 FSArchiveWithMetadata

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

func (FSArchiveWithMetadata) File

func (FSArchiveWithMetadata) Info

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(config Config, taskReporter TaskReporter, fileReporter FileReporter) (Director, error)

type FileReporter

type FileReporter interface {
	TrackUpload(int64, io.ReadCloser) io.ReadCloser
	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
}

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
}

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"`
}

type Lock

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

type LockResp

type LockResp struct {
	Type     string   // e.g. "deployment"
	Resource []string // e.g. ["some-deployment-name"]
	Timeout  string   // e.g. "1443889622.9964118"
}

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
}

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) io.ReadCloser

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) 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) Version

func (s OSVersionSlug) Version() string

type OrphanedDisk

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

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

	OrphanedAt() time.Time

	Delete() error
}

type OrphanedDiskImpl

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

func (OrphanedDiskImpl) AZName

func (d OrphanedDiskImpl) AZName() string

func (OrphanedDiskImpl) CID

func (d OrphanedDiskImpl) CID() string

func (OrphanedDiskImpl) Delete

func (d OrphanedDiskImpl) Delete() error

func (OrphanedDiskImpl) Deployment

func (d OrphanedDiskImpl) Deployment() Deployment

func (OrphanedDiskImpl) InstanceName

func (d OrphanedDiskImpl) InstanceName() string

func (OrphanedDiskImpl) OrphanedAt

func (d OrphanedDiskImpl) OrphanedAt() time.Time

func (OrphanedDiskImpl) Size

func (d OrphanedDiskImpl) Size() uint64

type OrphanedDiskResp

type OrphanedDiskResp 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 Package

type Package struct {
	Name        string
	Fingerprint string

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

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

type PoolOrInstanceSlug

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

func NewPoolOrInstanceSlug

func NewPoolOrInstanceSlug(name, indexOrID string) PoolOrInstanceSlug

func NewPoolOrInstanceSlugFromString

func NewPoolOrInstanceSlugFromString(str string) (PoolOrInstanceSlug, error)

func (PoolOrInstanceSlug) IndexOrID

func (s PoolOrInstanceSlug) IndexOrID() string

func (PoolOrInstanceSlug) Name

func (s PoolOrInstanceSlug) Name() string

func (PoolOrInstanceSlug) String

func (s PoolOrInstanceSlug) String() string

type PoolSlug

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

func NewPoolSlug

func NewPoolSlug(name string) PoolSlug

func (PoolSlug) Name

func (s PoolSlug) Name() string

func (PoolSlug) String

func (s PoolSlug) String() string

func (*PoolSlug) UnmarshalFlag

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

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{
	Name: "apply default resolution",
}

type RedirectFunc

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

type Release

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

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

	Delete(force bool) error
}

type ReleaseArchive

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

func NewFSReleaseArchive

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

func NewFSStemcellArchive

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

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) 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 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
}

type ReleaseSeriesImpl

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

func (ReleaseSeriesImpl) Delete

func (rs ReleaseSeriesImpl) Delete(force 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 RuntimeConfig

type RuntimeConfig struct {
	Properties string
}

type RuntimeConfigManifest

type RuntimeConfigManifest struct {
	Releases []RuntimeConfigManifestRelease
}

func NewRuntimeConfigManifestFromBytes

func NewRuntimeConfigManifestFromBytes(bytes []byte) (RuntimeConfigManifest, error)

type RuntimeConfigManifestRelease

type RuntimeConfigManifestRelease struct {
	Name    string
	Version string

	URL  string
	SHA1 string
}

type SSHOpts

type SSHOpts struct {
	Username  string
	Password  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 SkipDrain

type SkipDrain struct {
	All   bool
	Slugs []PoolOrInstanceSlug
}

func (SkipDrain) AsQueryValue

func (s SkipDrain) AsQueryValue() string

func (*SkipDrain) UnmarshalFlag

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

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 Stemcell

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

	OSName() string
	CID() string

	Delete(force bool) error
}

type StemcellArchive

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

func NewFSArchiveWithMetadata

func NewFSArchiveWithMetadata(path, fileName string, fs boshsys.FileSystem) StemcellArchive

type StemcellImpl

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

func (StemcellImpl) CID

func (s StemcellImpl) CID() 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 StemcellResp

type StemcellResp struct {
	Name    string
	Version string

	OperatingSystem string `json:"operating_system"`

	CID string `json:"cid"`

	// 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 Task

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

	State() string
	IsError() bool
	User() string
	DeploymentName() 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) 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) ID

func (t TaskImpl) ID() int

func (TaskImpl) IsError

func (t TaskImpl) IsError() bool

func (TaskImpl) LastActivityAt added in v0.0.52

func (t TaskImpl) LastActivityAt() time.Time

func (TaskImpl) Result

func (t TaskImpl) Result() string

func (TaskImpl) ResultOutput

func (t TaskImpl) ResultOutput(taskReporter TaskReporter) error

func (TaskImpl) StartedAt added in v0.0.52

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
	LastActivityAt 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'"
}

type TasksFilter added in v0.0.52

type TasksFilter struct {
	All        bool
	Deployment 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 UpdateOpts added in v0.0.53

type UpdateOpts struct {
	Recreate    bool
	Fix         bool
	SkipDrain   SkipDrain
	Canaries    string
	MaxInFlight string
	DryRun      bool
}

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"
	Bootstrap    bool

	IPs []string `json:"ips"`
	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"`
	DiskIDs      []string `json:"disk_cids"`

	Processes []VMInfoProcess

	Vitals VMInfoVitals

	ResurrectionPaused bool `json:"resurrection_paused"`
}

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"`
}

Directories

Path Synopsis
This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter
This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter This file was generated by counterfeiter

Jump to

Keyboard shortcuts

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