func (cmd *Command) upsertHostAction(c *cli.Context) { host, err := engine.NewHost(c.String("name"), engine.HostSettings{}) if err != nil { cmd.printError(err) return } if c.String("cert") != "" || c.String("privateKey") != "" { keyPair, err := readKeyPair(c.String("cert"), c.String("privateKey")) if err != nil { cmd.printError(fmt.Errorf("failed to read key pair: %s", err)) return } host.Settings.KeyPair = keyPair } host.Settings.OCSP = engine.OCSPSettings{ Enabled: c.Bool("ocsp"), SkipSignatureCheck: c.Bool("ocspSkipCheck"), Period: c.Duration("ocspPeriod").String(), Responders: c.StringSlice("ocspResponder"), } if err := cmd.client.UpsertHost(*host); err != nil { cmd.printError(err) return } cmd.printOk("host added") }
func (cmd *Command) upsertServerAction(c *cli.Context) { s, err := engine.NewServer(c.String("id"), c.String("url")) if err != nil { cmd.printError(err) return } if err := cmd.client.UpsertServer(engine.BackendKey{Id: c.String("backend")}, *s, c.Duration("ttl")); err != nil { cmd.printError(err) return } cmd.printOk("server upserted") }
func (cmd *Command) upsertFrontendAction(c *cli.Context) { settings, err := getFrontendSettings(c) if err != nil { cmd.printError(err) return } f, err := engine.NewHTTPFrontend(route.NewMux(), c.String("id"), c.String("b"), c.String("route"), settings) if err != nil { cmd.printError(err) return } if err := cmd.client.UpsertFrontend(*f, c.Duration("ttl")); err != nil { cmd.printError(err) return } cmd.printOk("frontend upserted") }
func getBackendSettings(c *cli.Context) (engine.HTTPBackendSettings, error) { s := engine.HTTPBackendSettings{} s.Timeouts.Read = c.Duration("readTimeout").String() s.Timeouts.Dial = c.Duration("dialTimeout").String() s.Timeouts.TLSHandshake = c.Duration("handshakeTimeout").String() s.KeepAlive.Period = c.Duration("keepAlivePeriod").String() s.KeepAlive.MaxIdleConnsPerHost = c.Int("maxIdleConns") tlsSettings, err := getTLSSettings(c) if err != nil { return s, err } s.TLS = tlsSettings return s, nil }
// FromCli constructs the middleware from the command line arguments func FromCli(c *cli.Context) (plugin.Middleware, error) { return NewSpec(c.String("condition"), c.String("fallback"), c.String("onTripped"), c.String("onStandby"), c.Duration("fallbackDuration"), c.Duration("recoveryDuration"), c.Duration("checkPeriod")) }