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.
85 lines
3 KiB
Go
85 lines
3 KiB
Go
package pflag
|
|
|
|
import "strconv"
|
|
|
|
// -- float64 Value
|
|
type float64Value float64
|
|
|
|
func newFloat64Value(val float64, p *float64) *float64Value {
|
|
*p = val
|
|
return (*float64Value)(p)
|
|
}
|
|
|
|
func (f *float64Value) Set(s string) error {
|
|
v, err := strconv.ParseFloat(s, 64)
|
|
*f = float64Value(v)
|
|
return err
|
|
}
|
|
|
|
func (f *float64Value) Type() string {
|
|
return "float64"
|
|
}
|
|
|
|
func (f *float64Value) String() string { return strconv.FormatFloat(float64(*f), 'g', -1, 64) }
|
|
|
|
func float64Conv(sval string) (interface{}, error) {
|
|
return strconv.ParseFloat(sval, 64)
|
|
}
|
|
|
|
// GetFloat64 return the float64 value of a flag with the given name
|
|
func (f *FlagSet) GetFloat64(name string) (float64, error) {
|
|
val, err := f.getFlagType(name, "float64", float64Conv)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
return val.(float64), nil
|
|
}
|
|
|
|
// Float64Var defines a float64 flag with specified name, default value, and usage string.
|
|
// The argument p points to a float64 variable in which to store the value of the flag.
|
|
func (f *FlagSet) Float64Var(p *float64, name string, value float64, usage string) {
|
|
f.VarP(newFloat64Value(value, p), name, "", usage)
|
|
}
|
|
|
|
// Float64VarP is like Float64Var, but accepts a shorthand letter that can be used after a single dash.
|
|
func (f *FlagSet) Float64VarP(p *float64, name, shorthand string, value float64, usage string) {
|
|
f.VarP(newFloat64Value(value, p), name, shorthand, usage)
|
|
}
|
|
|
|
// Float64Var defines a float64 flag with specified name, default value, and usage string.
|
|
// The argument p points to a float64 variable in which to store the value of the flag.
|
|
func Float64Var(p *float64, name string, value float64, usage string) {
|
|
CommandLine.VarP(newFloat64Value(value, p), name, "", usage)
|
|
}
|
|
|
|
// Float64VarP is like Float64Var, but accepts a shorthand letter that can be used after a single dash.
|
|
func Float64VarP(p *float64, name, shorthand string, value float64, usage string) {
|
|
CommandLine.VarP(newFloat64Value(value, p), name, shorthand, usage)
|
|
}
|
|
|
|
// Float64 defines a float64 flag with specified name, default value, and usage string.
|
|
// The return value is the address of a float64 variable that stores the value of the flag.
|
|
func (f *FlagSet) Float64(name string, value float64, usage string) *float64 {
|
|
p := new(float64)
|
|
f.Float64VarP(p, name, "", value, usage)
|
|
return p
|
|
}
|
|
|
|
// Float64P is like Float64, but accepts a shorthand letter that can be used after a single dash.
|
|
func (f *FlagSet) Float64P(name, shorthand string, value float64, usage string) *float64 {
|
|
p := new(float64)
|
|
f.Float64VarP(p, name, shorthand, value, usage)
|
|
return p
|
|
}
|
|
|
|
// Float64 defines a float64 flag with specified name, default value, and usage string.
|
|
// The return value is the address of a float64 variable that stores the value of the flag.
|
|
func Float64(name string, value float64, usage string) *float64 {
|
|
return CommandLine.Float64P(name, "", value, usage)
|
|
}
|
|
|
|
// Float64P is like Float64, but accepts a shorthand letter that can be used after a single dash.
|
|
func Float64P(name, shorthand string, value float64, usage string) *float64 {
|
|
return CommandLine.Float64P(name, shorthand, value, usage)
|
|
}
|