cbcbe0da2e
Currently the rkt driver does not expose a DriverNetwork instance after starting the container, which means that address_mode = 'driver' does not work. To get the container network information, we can call `rkt status` on the UUID of the container and grab the container IP from there. For the port map, we need to grab the pod manifest as it will tell us which ports the container exposes. We then cross-reference the configured port name with the container port names, and use that to create a correct port mapping. To avoid doing a (bad) reimplementation of the appc schema(which rkt uses for its manifest) and rkt apis, we pull those in as vendored dependencies. The versions used are the same ones that rkt use in their glide dependency configuration for version 1.28.0.
81 lines
2.9 KiB
Go
81 lines
2.9 KiB
Go
package pflag
|
|
|
|
// -- string Value
|
|
type stringValue string
|
|
|
|
func newStringValue(val string, p *string) *stringValue {
|
|
*p = val
|
|
return (*stringValue)(p)
|
|
}
|
|
|
|
func (s *stringValue) Set(val string) error {
|
|
*s = stringValue(val)
|
|
return nil
|
|
}
|
|
func (s *stringValue) Type() string {
|
|
return "string"
|
|
}
|
|
|
|
func (s *stringValue) String() string { return string(*s) }
|
|
|
|
func stringConv(sval string) (interface{}, error) {
|
|
return sval, nil
|
|
}
|
|
|
|
// GetString return the string value of a flag with the given name
|
|
func (f *FlagSet) GetString(name string) (string, error) {
|
|
val, err := f.getFlagType(name, "string", stringConv)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return val.(string), nil
|
|
}
|
|
|
|
// StringVar defines a string flag with specified name, default value, and usage string.
|
|
// The argument p points to a string variable in which to store the value of the flag.
|
|
func (f *FlagSet) StringVar(p *string, name string, value string, usage string) {
|
|
f.VarP(newStringValue(value, p), name, "", usage)
|
|
}
|
|
|
|
// StringVarP is like StringVar, but accepts a shorthand letter that can be used after a single dash.
|
|
func (f *FlagSet) StringVarP(p *string, name, shorthand string, value string, usage string) {
|
|
f.VarP(newStringValue(value, p), name, shorthand, usage)
|
|
}
|
|
|
|
// StringVar defines a string flag with specified name, default value, and usage string.
|
|
// The argument p points to a string variable in which to store the value of the flag.
|
|
func StringVar(p *string, name string, value string, usage string) {
|
|
CommandLine.VarP(newStringValue(value, p), name, "", usage)
|
|
}
|
|
|
|
// StringVarP is like StringVar, but accepts a shorthand letter that can be used after a single dash.
|
|
func StringVarP(p *string, name, shorthand string, value string, usage string) {
|
|
CommandLine.VarP(newStringValue(value, p), name, shorthand, usage)
|
|
}
|
|
|
|
// String defines a string flag with specified name, default value, and usage string.
|
|
// The return value is the address of a string variable that stores the value of the flag.
|
|
func (f *FlagSet) String(name string, value string, usage string) *string {
|
|
p := new(string)
|
|
f.StringVarP(p, name, "", value, usage)
|
|
return p
|
|
}
|
|
|
|
// StringP is like String, but accepts a shorthand letter that can be used after a single dash.
|
|
func (f *FlagSet) StringP(name, shorthand string, value string, usage string) *string {
|
|
p := new(string)
|
|
f.StringVarP(p, name, shorthand, value, usage)
|
|
return p
|
|
}
|
|
|
|
// String defines a string flag with specified name, default value, and usage string.
|
|
// The return value is the address of a string variable that stores the value of the flag.
|
|
func String(name string, value string, usage string) *string {
|
|
return CommandLine.StringP(name, "", value, usage)
|
|
}
|
|
|
|
// StringP is like String, but accepts a shorthand letter that can be used after a single dash.
|
|
func StringP(name, shorthand string, value string, usage string) *string {
|
|
return CommandLine.StringP(name, shorthand, value, usage)
|
|
}
|