Skip to content

Commit

Permalink
Merge pull request #303 from openziti/release-next
Browse files Browse the repository at this point in the history
Release 0.18.10
  • Loading branch information
plorenz authored Feb 12, 2021
2 parents 02b129e + db1f77b commit f15f883
Show file tree
Hide file tree
Showing 8 changed files with 217 additions and 11 deletions.
17 changes: 16 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,24 @@
# Release 0.18.10

# What's New

* Close terminating xgress instances if no start is received with a configurable timeout
* Timeout is set in the router config under listener/dialer options: `sessionStartTimeout`
Default value: `3m`
* Don't add a second shutdown timer if one is already set
* Allow list/updating router forwarding tables if --debug-ops is passed
* new command `ziti ps route <optional target> <session> <src-address> <dest-address>`
* new command `ziti ps dump-routes <optional target>`
* If an xgress session fails in retransmit, sends fault notification to controller so
controller can fix path or remove session, depending on session state

# Release 0.18.9

# What's New

* Fix PATCH OS Posture Checks clearing data
* Fix ziti-tunnel panic when removing services. [edge#517](https://github.com/openziti/edge/issues/517)
* Fix ziti-tunnel panic when removing
services. [edge#517](https://github.com/openziti/edge/issues/517)
* ziti-tunnel tproxy now supports `--lanIf` option to automatically add rules to accept incoming
connections for service connections. [edge#519](https://github.com/openziti/edge/issues/519)
* Fix orphaned ottca enrollments after `DELETE /cas/<id>'
Expand Down
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ require (
github.com/keybase/go-ps v0.0.0-20190827175125-91aafc93ba19
github.com/michaelquigley/pfxlog v0.3.6
github.com/openziti/edge v0.17.67
github.com/openziti/fabric v0.15.23
github.com/openziti/foundation v0.15.12
github.com/openziti/fabric v0.15.24
github.com/openziti/foundation v0.15.13
github.com/openziti/sdk-golang v0.15.13
github.com/pborman/uuid v1.2.0
github.com/pkg/errors v0.9.1
Expand Down
8 changes: 5 additions & 3 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -530,13 +530,14 @@ github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYr
github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8=
github.com/openziti/edge v0.17.67 h1:Un9eLq8ZPaznqr0UqxKGgAR135G9Rm9XylyFViCa+x8=
github.com/openziti/edge v0.17.67/go.mod h1:L19G8aGgeHNjHz8vZBNgZlsmSFCSg7CGgXRneKAnDGU=
github.com/openziti/fabric v0.15.21 h1:4rrh9ovQwGW4ecEZ2ykgxkPJ3Sdtxx7FV4SzguwpuwQ=
github.com/openziti/fabric v0.15.21/go.mod h1:2Q63EWL1MDcdhZYoaMQDVjbGzRgonIdgRmzxaNDHJI0=
github.com/openziti/fabric v0.15.23 h1:tYG/hQLaFRm2VIcdK4eqcDYiI3vGN8vtQ3NoS5m69ow=
github.com/openziti/fabric v0.15.23/go.mod h1:2Q63EWL1MDcdhZYoaMQDVjbGzRgonIdgRmzxaNDHJI0=
github.com/openziti/fabric v0.15.24 h1:gl5QTxUB2qxpjteAtqIGcuBQ/Sg5rSjDj+82AI+Bds0=
github.com/openziti/fabric v0.15.24/go.mod h1:2Q63EWL1MDcdhZYoaMQDVjbGzRgonIdgRmzxaNDHJI0=
github.com/openziti/foundation v0.15.9/go.mod h1:34ifQ24R2EUNjakzZBKY1M4EvnOWeIYJOrJxRGdRNh4=
github.com/openziti/foundation v0.15.12 h1:fdhhEsJPfvVIdarY4fd4gPGHkOGIAuxIig2hHweZ9K0=
github.com/openziti/foundation v0.15.12/go.mod h1:34ifQ24R2EUNjakzZBKY1M4EvnOWeIYJOrJxRGdRNh4=
github.com/openziti/foundation v0.15.13 h1:eq6FE+4bKqU94XQ++IF80e9JLCbVtqGm772lR4hHSKQ=
github.com/openziti/foundation v0.15.13/go.mod h1:34ifQ24R2EUNjakzZBKY1M4EvnOWeIYJOrJxRGdRNh4=
github.com/openziti/sdk-golang v0.15.13 h1:Pd5WqFcPxrM8o/VeqCoKeGCgL+pC9Y5dVb1tqMhRprI=
github.com/openziti/sdk-golang v0.15.13/go.mod h1:L1UbvXUV7DV6a3pd50CAJqtt9z6nN53p2cKNJlHZXR8=
github.com/orcaman/concurrent-map v0.0.0-20190826125027-8c72a8bb44f6/go.mod h1:Lu3tH6HLW3feq74c2GC+jIMS/K2CFcDWnWD9XkenwhI=
Expand Down Expand Up @@ -847,6 +848,7 @@ golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201009025420-dfb3f7c4e634/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201118182958-a01c418693c7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68 h1:nxC68pudNYkKU6jWhgrqdreuFiOQWj1Fs7T3VrH4Pjw=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201218084310-7d0127a74742/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210110051926-789bb1bd4061 h1:DQmQoKxQWtyybCtX/3dIuDBcAhFszqq8YiNeS6sNu1c=
Expand Down
2 changes: 2 additions & 0 deletions ziti-router/subcmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ func init() {
root.PersistentFlags().StringVar(&logFormatter, "log-formatter", "", "Specify log formatter [json|pfxlog|text]")
root.PersistentFlags().BoolVar(&cliAgentEnabled, "cli-agent", true, "Enable/disable CLI Agent (enabled by default)")
root.PersistentFlags().StringVar(&cliAgentAddr, "cli-agent-addr", "", "Specify where CLI Agent should list (ex: unix:/tmp/myfile.sock or tcp:127.0.0.1:10001)")
root.PersistentFlags().BoolVar(&debugOpsEnabled, "debug-ops", false, "Enable/disable debug agent operations (disabled by default)")
}

var root = &cobra.Command{
Expand Down Expand Up @@ -55,6 +56,7 @@ var root = &cobra.Command{
var verbose bool
var logFormatter string
var cliAgentEnabled bool
var debugOpsEnabled bool
var cliAgentAddr string

func Execute() {
Expand Down
17 changes: 12 additions & 5 deletions ziti-router/subcmd/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import (
"github.com/sirupsen/logrus"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
"io"
)

func init() {
Expand All @@ -50,16 +51,22 @@ func run(cmd *cobra.Command, args []string) {
Info("starting ziti-router")

if config, err := router.LoadConfig(args[0]); err == nil {
config.SetFlags(getFlags(cmd))

r := router.Create(config, version.GetCmdBuildInfo())

if cliAgentEnabled {
if err := agent.Listen(agent.Options{Addr: cliAgentAddr}); err != nil {
options := agent.Options{Addr: cliAgentAddr}
if debugOpsEnabled {
options.CustomOps = map[byte]func(conn io.ReadWriter) error{
agent.CustomOp: r.HandleDebug,
}
}
if err := agent.Listen(options); err != nil {
pfxlog.Logger().WithError(err).Error("unable to start CLI agent")
}
}

config.SetFlags(getFlags(cmd))

r := router.Create(config, version.GetCmdBuildInfo())

xgressEdgeFactory := xgress_edge.NewFactory(version.GetCmdBuildInfo())
xgress.GlobalRegistry().Register("edge", xgressEdgeFactory)
if err := r.RegisterXctrl(xgressEdgeFactory); err != nil {
Expand Down
2 changes: 2 additions & 0 deletions ziti/cmd/ziti/cmd/ps.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,8 @@ func NewCmdPs(f cmdutil.Factory, out io.Writer, errOut io.Writer) *cobra.Command
cmd.AddCommand(NewCmdPsPprofCpu(f, out, errOut))
cmd.AddCommand(NewCmdPsTrace(f, out, errOut))
cmd.AddCommand(NewCmdPsSetLogLevel(f, out, errOut))
cmd.AddCommand(NewCmdPsRoute(f, out, errOut))
cmd.AddCommand(NewCmdPsDumpRoutes(f, out, errOut))

// cmd.AddCommand(NewCmdPsController(f, out, errOut))
// cmd.AddCommand(NewCmdPsMgmt(f, out, errOut))
Expand Down
105 changes: 105 additions & 0 deletions ziti/cmd/ziti/cmd/ps_route.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
/*
Copyright NetFoundry, Inc.
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
https://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 cmd

import (
"encoding/binary"
"github.com/golang/protobuf/proto"
"github.com/openziti/fabric/pb/ctrl_pb"
"github.com/openziti/fabric/router"
"github.com/openziti/foundation/agent"
cmdutil "github.com/openziti/ziti/ziti/cmd/ziti/cmd/factory"
cmdhelper "github.com/openziti/ziti/ziti/cmd/ziti/cmd/helpers"
"github.com/spf13/cobra"
"io"
"os"
)

// PsRouteOptions the options for the create spring command
type PsRouteOptions struct {
PsOptions
CtrlListener string
}

// NewCmdPsRoute creates a command object for the "create" command
func NewCmdPsRoute(f cmdutil.Factory, out io.Writer, errOut io.Writer) *cobra.Command {
options := &PsRouteOptions{
PsOptions: PsOptions{
CommonOptions: CommonOptions{
Factory: f,
Out: out,
Err: errOut,
},
},
}

cmd := &cobra.Command{
Args: cobra.RangeArgs(3, 4),
Use: "route <optional-target> <session id> <source-address> <destination-address>",
Run: func(cmd *cobra.Command, args []string) {
options.Cmd = cmd
options.Args = args
err := options.Run()
cmdhelper.CheckErr(err)
},
}

options.addCommonFlags(cmd)

return cmd
}

// Run implements the command
func (o *PsRouteOptions) Run() error {
var addr string
var err error

offset := 0
if len(o.Args) == 4 {
addr, err = agent.ParseGopsAddress(o.Args)
if err != nil {
return err
}
offset = 1
}

route := &ctrl_pb.Route{
SessionId: o.Args[offset],
Forwards: []*ctrl_pb.Route_Forward{
{
SrcAddress: o.Args[offset+1],
DstAddress: o.Args[offset+2],
},
},
}

buf, err := proto.Marshal(route)
if err != nil {
return err
}

fullBuf := make([]byte, len(buf)+5)
fullBuf[0] = router.UpdateRoute

sizeBuf := make([]byte, 4)
binary.LittleEndian.PutUint32(sizeBuf, uint32(len(buf)))

copy(fullBuf[1:], sizeBuf)
copy(fullBuf[5:], buf)

return agent.MakeRequest(addr, agent.CustomOp, fullBuf, os.Stdout)
}
73 changes: 73 additions & 0 deletions ziti/cmd/ziti/cmd/ps_route_dump.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
/*
Copyright NetFoundry, Inc.
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
https://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 cmd

import (
"github.com/openziti/fabric/router"
"github.com/openziti/foundation/agent"
cmdutil "github.com/openziti/ziti/ziti/cmd/ziti/cmd/factory"
cmdhelper "github.com/openziti/ziti/ziti/cmd/ziti/cmd/helpers"
"github.com/spf13/cobra"
"io"
"os"
)

// PsRouteOptions the options for the create spring command
type PsDumpRoutesOptions struct {
PsOptions
CtrlListener string
}

// NewCmdPsDumpRoutes creates a command object for the "dump-routes" command
func NewCmdPsDumpRoutes(f cmdutil.Factory, out io.Writer, errOut io.Writer) *cobra.Command {
options := &PsDumpRoutesOptions{
PsOptions: PsOptions{
CommonOptions: CommonOptions{
Factory: f,
Out: out,
Err: errOut,
},
},
}

cmd := &cobra.Command{
Args: cobra.MaximumNArgs(1),
Use: "dump-routes <optional-target> ",
Run: func(cmd *cobra.Command, args []string) {
options.Cmd = cmd
options.Args = args
err := options.Run()
cmdhelper.CheckErr(err)
},
}

options.addCommonFlags(cmd)

return cmd
}

// Run implements the command
func (o *PsDumpRoutesOptions) Run() error {
addr, err := agent.ParseGopsAddress(o.Args)
if err != nil {
return err
}

buf := []byte{router.DumpForwarderTables}

return agent.MakeRequest(addr, agent.CustomOp, buf, os.Stdout)
}

0 comments on commit f15f883

Please sign in to comment.