| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | /*   Copyright 2020 Docker Compose CLI authors   Licensed under the Apache License, Version 2.0 (the "License");   you may not use this file except in compliance with the License.   You may obtain a copy of the License at       http://www.apache.org/licenses/LICENSE-2.0   Unless required by applicable law or agreed to in writing, software   distributed under the License is distributed on an "AS IS" BASIS,   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   See the License for the specific language governing permissions and   limitations under the License.*/package metrics// FailureCategory sruct regrouping metrics failure status and specific exit codetype FailureCategory struct {	MetricsStatus string	ExitCode      int}const (	// APISource is sent for API metrics	APISource = "api"	// SuccessStatus command success	SuccessStatus = "success"	// FailureStatus command failure	FailureStatus = "failure"	// ComposeParseFailureStatus failure while parsing compose file	ComposeParseFailureStatus = "failure-compose-parse"	// FileNotFoundFailureStatus failure getting compose file	FileNotFoundFailureStatus = "failure-file-not-found"	// CommandSyntaxFailureStatus failure reading command	CommandSyntaxFailureStatus = "failure-cmd-syntax"	// BuildFailureStatus failure building imge	BuildFailureStatus = "failure-build"	// PullFailureStatus failure pulling imge	PullFailureStatus = "failure-pull"	// CanceledStatus command canceled	CanceledStatus = "canceled")var (	// FileNotFoundFailure failure for compose file not found	FileNotFoundFailure = FailureCategory{MetricsStatus: FileNotFoundFailureStatus, ExitCode: 14}	// ComposeParseFailure failure for composefile parse error	ComposeParseFailure = FailureCategory{MetricsStatus: ComposeParseFailureStatus, ExitCode: 15}	// CommandSyntaxFailure failure for command line syntax	CommandSyntaxFailure = FailureCategory{MetricsStatus: CommandSyntaxFailureStatus, ExitCode: 16}	//BuildFailure failure while building images.	BuildFailure = FailureCategory{MetricsStatus: BuildFailureStatus, ExitCode: 17}	// PullFailure failure while pulling image	PullFailure = FailureCategory{MetricsStatus: PullFailureStatus, ExitCode: 18})//ByExitCode retrieve FailureCategory based on command exit codefunc ByExitCode(exitCode int) FailureCategory {	switch exitCode {	case 0:		return FailureCategory{MetricsStatus: SuccessStatus, ExitCode: 0}	case 14:		return FileNotFoundFailure	case 15:		return ComposeParseFailure	case 16:		return CommandSyntaxFailure	case 17:		return BuildFailure	case 18:		return PullFailure	case 130:		return FailureCategory{MetricsStatus: CanceledStatus, ExitCode: exitCode}	default:		return FailureCategory{MetricsStatus: FailureStatus, ExitCode: exitCode}	}}
 |