Add SPA UI for GARM
This change adds a single page application front-end to GARM. It uses a generated REST client, built from the swagger definitions, the websocket interface for live updates of entities and eager loading of everything except runners, as users may have many runners and we don't want to load hundreds of runners in memory. Proper pagination should be implemented in the API, in future commits, to avoid loading lots of elements for no reason. Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
This commit is contained in:
parent
a811d129d0
commit
eec158b32c
230 changed files with 47324 additions and 2045 deletions
149
vendor/github.com/spf13/pflag/errors.go
generated
vendored
Normal file
149
vendor/github.com/spf13/pflag/errors.go
generated
vendored
Normal file
|
|
@ -0,0 +1,149 @@
|
|||
package pflag
|
||||
|
||||
import "fmt"
|
||||
|
||||
// notExistErrorMessageType specifies which flavor of "flag does not exist"
|
||||
// is printed by NotExistError. This allows the related errors to be grouped
|
||||
// under a single NotExistError struct without making a breaking change to
|
||||
// the error message text.
|
||||
type notExistErrorMessageType int
|
||||
|
||||
const (
|
||||
flagNotExistMessage notExistErrorMessageType = iota
|
||||
flagNotDefinedMessage
|
||||
flagNoSuchFlagMessage
|
||||
flagUnknownFlagMessage
|
||||
flagUnknownShorthandFlagMessage
|
||||
)
|
||||
|
||||
// NotExistError is the error returned when trying to access a flag that
|
||||
// does not exist in the FlagSet.
|
||||
type NotExistError struct {
|
||||
name string
|
||||
specifiedShorthands string
|
||||
messageType notExistErrorMessageType
|
||||
}
|
||||
|
||||
// Error implements error.
|
||||
func (e *NotExistError) Error() string {
|
||||
switch e.messageType {
|
||||
case flagNotExistMessage:
|
||||
return fmt.Sprintf("flag %q does not exist", e.name)
|
||||
|
||||
case flagNotDefinedMessage:
|
||||
return fmt.Sprintf("flag accessed but not defined: %s", e.name)
|
||||
|
||||
case flagNoSuchFlagMessage:
|
||||
return fmt.Sprintf("no such flag -%v", e.name)
|
||||
|
||||
case flagUnknownFlagMessage:
|
||||
return fmt.Sprintf("unknown flag: --%s", e.name)
|
||||
|
||||
case flagUnknownShorthandFlagMessage:
|
||||
c := rune(e.name[0])
|
||||
return fmt.Sprintf("unknown shorthand flag: %q in -%s", c, e.specifiedShorthands)
|
||||
}
|
||||
|
||||
panic(fmt.Errorf("unknown flagNotExistErrorMessageType: %v", e.messageType))
|
||||
}
|
||||
|
||||
// GetSpecifiedName returns the name of the flag (without dashes) as it
|
||||
// appeared in the parsed arguments.
|
||||
func (e *NotExistError) GetSpecifiedName() string {
|
||||
return e.name
|
||||
}
|
||||
|
||||
// GetSpecifiedShortnames returns the group of shorthand arguments
|
||||
// (without dashes) that the flag appeared within. If the flag was not in a
|
||||
// shorthand group, this will return an empty string.
|
||||
func (e *NotExistError) GetSpecifiedShortnames() string {
|
||||
return e.specifiedShorthands
|
||||
}
|
||||
|
||||
// ValueRequiredError is the error returned when a flag needs an argument but
|
||||
// no argument was provided.
|
||||
type ValueRequiredError struct {
|
||||
flag *Flag
|
||||
specifiedName string
|
||||
specifiedShorthands string
|
||||
}
|
||||
|
||||
// Error implements error.
|
||||
func (e *ValueRequiredError) Error() string {
|
||||
if len(e.specifiedShorthands) > 0 {
|
||||
c := rune(e.specifiedName[0])
|
||||
return fmt.Sprintf("flag needs an argument: %q in -%s", c, e.specifiedShorthands)
|
||||
}
|
||||
|
||||
return fmt.Sprintf("flag needs an argument: --%s", e.specifiedName)
|
||||
}
|
||||
|
||||
// GetFlag returns the flag for which the error occurred.
|
||||
func (e *ValueRequiredError) GetFlag() *Flag {
|
||||
return e.flag
|
||||
}
|
||||
|
||||
// GetSpecifiedName returns the name of the flag (without dashes) as it
|
||||
// appeared in the parsed arguments.
|
||||
func (e *ValueRequiredError) GetSpecifiedName() string {
|
||||
return e.specifiedName
|
||||
}
|
||||
|
||||
// GetSpecifiedShortnames returns the group of shorthand arguments
|
||||
// (without dashes) that the flag appeared within. If the flag was not in a
|
||||
// shorthand group, this will return an empty string.
|
||||
func (e *ValueRequiredError) GetSpecifiedShortnames() string {
|
||||
return e.specifiedShorthands
|
||||
}
|
||||
|
||||
// InvalidValueError is the error returned when an invalid value is used
|
||||
// for a flag.
|
||||
type InvalidValueError struct {
|
||||
flag *Flag
|
||||
value string
|
||||
cause error
|
||||
}
|
||||
|
||||
// Error implements error.
|
||||
func (e *InvalidValueError) Error() string {
|
||||
flag := e.flag
|
||||
var flagName string
|
||||
if flag.Shorthand != "" && flag.ShorthandDeprecated == "" {
|
||||
flagName = fmt.Sprintf("-%s, --%s", flag.Shorthand, flag.Name)
|
||||
} else {
|
||||
flagName = fmt.Sprintf("--%s", flag.Name)
|
||||
}
|
||||
return fmt.Sprintf("invalid argument %q for %q flag: %v", e.value, flagName, e.cause)
|
||||
}
|
||||
|
||||
// Unwrap implements errors.Unwrap.
|
||||
func (e *InvalidValueError) Unwrap() error {
|
||||
return e.cause
|
||||
}
|
||||
|
||||
// GetFlag returns the flag for which the error occurred.
|
||||
func (e *InvalidValueError) GetFlag() *Flag {
|
||||
return e.flag
|
||||
}
|
||||
|
||||
// GetValue returns the invalid value that was provided.
|
||||
func (e *InvalidValueError) GetValue() string {
|
||||
return e.value
|
||||
}
|
||||
|
||||
// InvalidSyntaxError is the error returned when a bad flag name is passed on
|
||||
// the command line.
|
||||
type InvalidSyntaxError struct {
|
||||
specifiedFlag string
|
||||
}
|
||||
|
||||
// Error implements error.
|
||||
func (e *InvalidSyntaxError) Error() string {
|
||||
return fmt.Sprintf("bad flag syntax: %s", e.specifiedFlag)
|
||||
}
|
||||
|
||||
// GetSpecifiedName returns the exact flag (with dashes) as it
|
||||
// appeared in the parsed arguments.
|
||||
func (e *InvalidSyntaxError) GetSpecifiedFlag() string {
|
||||
return e.specifiedFlag
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue