How to use newError method of toxiproxy Package

Best Toxiproxy code snippet using toxiproxy.newError

api.go

Source:api.go Github

copy

Full Screen

...406}407func (e *ApiError) Error() string {408 return e.Message409}410func newError(msg string, status int) *ApiError {411 return &ApiError{msg, status}412}413func joinError(err error, wrapper *ApiError) *ApiError {414 if err != nil {415 return &ApiError{wrapper.Message + ": " + err.Error(), wrapper.StatusCode}416 }417 return nil418}419var (420 ErrBadRequestBody = newError("bad request body", http.StatusBadRequest)421 ErrMissingField = newError("missing required field", http.StatusBadRequest)422 ErrProxyNotFound = newError("proxy not found", http.StatusNotFound)423 ErrProxyAlreadyExists = newError("proxy already exists", http.StatusConflict)424 ErrInvalidStream = newError(425 "stream was invalid, can be either upstream or downstream",426 http.StatusBadRequest,427 )428 ErrInvalidToxicType = newError("invalid toxic type", http.StatusBadRequest)429 ErrToxicAlreadyExists = newError("toxic already exists", http.StatusConflict)430 ErrToxicNotFound = newError("toxic not found", http.StatusNotFound)431)432func (server *ApiServer) apiError(resp http.ResponseWriter, err error) bool {433 obj, ok := err.(*ApiError)434 if !ok && err != nil {435 server.Logger.Warn().Err(err).Msg("Error did not include status code")436 obj = &ApiError{err.Error(), http.StatusInternalServerError}437 }438 if obj == nil {439 return false440 }441 data, err2 := json.Marshal(obj)442 if err2 != nil {443 server.Logger.Warn().Err(err2).Msg("Error json encoding error (╯°□°)╯︵ ┻━┻ ")444 }...

Full Screen

Full Screen

node.go

Source:node.go Github

copy

Full Screen

...22 conf := defaultNodeConfig()23 for _, opt := range opts {24 opt(conf)25 }26 wrapper := newErrorWrapper("failed to create rqlite node")27 // Add proxies between the advertised API and actual API.28 apiProxy := toxiproxy.NewProxy()29 apiProxy.Listen = conf.APIAdvAddr30 apiProxy.Upstream = conf.APIAddr31 if err := apiProxy.Start(); err != nil {32 return &Node{}, wrapper.Error(err)33 }34 raftProxy := toxiproxy.NewProxy()35 raftProxy.Listen = conf.RaftAdvAddr36 raftProxy.Upstream = conf.RaftAddr37 if err := raftProxy.Start(); err != nil {38 return &Node{}, wrapper.Error(err)39 }40 proc, err := runNode(path, id, conf)41 if err != nil {42 return &Node{}, wrapper.Error(err)43 }44 return &Node{45 path: path,46 id: id,47 conf: conf,48 proxies: []*toxiproxy.Proxy{apiProxy, raftProxy},49 proc: proc,50 }, nil51}52func (n *Node) ID() uint32 {53 return n.id54}55func (n *Node) APIAdvAddr() string {56 return n.conf.APIAdvAddr57}58func (n *Node) RaftAdvAddr() string {59 return n.conf.RaftAdvAddr60}61func (n *Node) Reboot(duration int64, timeout bool) error {62 wrapper := newErrorWrapper("failed to reboot rqlite node")63 if err := n.Close(); err != nil {64 return wrapper.Error(err)65 }66 if timeout {67 <-time.After(time.Duration(duration) * time.Millisecond)68 }69 // Add proxies between the advertised API and actual API.70 apiProxy := toxiproxy.NewProxy()71 apiProxy.Listen = n.conf.APIAdvAddr72 apiProxy.Upstream = n.conf.APIAddr73 if err := apiProxy.Start(); err != nil {74 return wrapper.Error(err)75 }76 raftProxy := toxiproxy.NewProxy()77 raftProxy.Listen = n.conf.RaftAdvAddr78 raftProxy.Upstream = n.conf.RaftAddr79 if err := raftProxy.Start(); err != nil {80 return wrapper.Error(err)81 }82 proc, err := runNode(n.path, n.id, n.conf)83 if err != nil {84 return wrapper.Error(err)85 }86 n.proxies = []*toxiproxy.Proxy{apiProxy, raftProxy}87 n.proc = proc88 return nil89}90func (n *Node) WaitForLeader(ctx context.Context) (string, error) {91 ticker := time.NewTicker(250 * time.Millisecond)92 var err error93 for {94 select {95 case <-ctx.Done():96 if err != nil {97 return "", wrapError(err, "failed to get leader")98 }99 return "", newError("failed to get leader: timed out")100 case <-ticker.C:101 var leader string102 if leader, err = n.leader(ctx); err == nil {103 return leader, nil104 }105 }106 }107}108// WaitForAllFSM waits until all outstanding database commands have actually109// been applied to the database i.e. state machine.110func (n *Node) WaitForAllFSM(ctx context.Context) (int, error) {111 ticker := time.NewTicker(250 * time.Millisecond)112 var err error113 for {114 select {115 case <-ctx.Done():116 if err != nil {117 return 0, err118 }119 return 0, newError("failed to wait for all fsm: timed out")120 case <-ticker.C:121 var status gorqlite.Status122 status, err = n.Status(ctx)123 if err != nil {124 continue125 }126 if status.Store.FSMIndex != status.Store.DBAppliedIndex {127 err = newError("fsmIndex != dbAppliedIndex (%d != %d)", status.Store.FSMIndex, status.Store.DBAppliedIndex)128 continue129 }130 return status.Store.FSMIndex, nil131 }132 }133}134func (n *Node) Status(ctx context.Context) (gorqlite.Status, error) {135 conn := gorqlite.Open([]string{n.APIAdvAddr()})136 status, err := conn.StatusWithContext(ctx)137 if err != nil {138 return status, wrapError(err, "failed to get status")139 }140 return status, nil141}142func (n *Node) Close() error {143 for _, p := range n.proxies {144 p.Stop()145 }146 if err := n.proc.Kill(); err != nil {147 return wrapError(err, "failed to close rqlite proc")148 }149 _, err := n.proc.Wait()150 if err != nil {151 return wrapError(err, "failed to close rqlite proc")152 }153 log.WithFields(log.Fields{154 "id": n.id,155 }).Info("stopped rqlited")156 return nil157}158func (n *Node) leader(ctx context.Context) (string, error) {159 conn := gorqlite.Open([]string{n.APIAdvAddr()})160 status, err := conn.StatusWithContext(ctx)161 if err != nil {162 return "", wrapError(err, "failed to get leader")163 }164 return status.Store.Leader.Addr, nil165}166func runNode(path string, id uint32, conf *nodeConfig) (*os.Process, error) {167 wrapper := newErrorWrapper("failed to create rqlite proc")168 lg, err := newLogger(fmt.Sprintf("rqlited-%d", id))169 if err != nil {170 return nil, wrapper.Error(err)171 }172 args := []string{173 "-node-id",174 fmt.Sprintf("%d", id),175 "-http-addr",176 conf.APIAddr,177 "-http-adv-addr",178 conf.APIAdvAddr,179 "-raft-addr",180 conf.RaftAddr,181 "-raft-adv-addr",...

Full Screen

Full Screen

newError

Using AI Code Generation

copy

Full Screen

1import (2func main() {3 toxiproxyClient := toxiproxy.NewClient("localhost:8474")4 err := toxiproxyClient.CreateProxy("myproxy", "localhost:12345", "localhost:54321")5 if err != nil {6 fmt.Println(err)7 }8}9import (10func main() {11 toxiproxyClient := toxiproxy.NewClient("localhost:8474")12 err := toxiproxyClient.CreateProxy("myproxy", "localhost:12345", "localhost:54321")13 if err != nil {14 fmt.Println(err)15 }16}17How can I use the toxiproxy.NewClient() method in both the files?

Full Screen

Full Screen

newError

Using AI Code Generation

copy

Full Screen

1import (2func main() {3 proxy := client.NewProxy()4 err := proxy.Create()5 if err != nil {6 fmt.Println(err)7 }8}9import (10func main() {11 proxy := client.NewProxy()12 err := proxy.Create()13 if err != nil {14 fmt.Println(err)15 }16}

Full Screen

Full Screen

newError

Using AI Code Generation

copy

Full Screen

1import (2func main() {3 toxics := client.NewClient("localhost:8474")4 toxics.CreateProxy("my_proxy", "localhost:6379", "localhost:6380")5 proxy, _ := toxics.Proxy("my_proxy")6 proxy.AddToxic("latency", "latency", 1, 0).Upstream()7 proxy.AddToxic("latency2", "latency", 1, 0).Downstream()8 proxy.AddToxic("latency3", "latency", 1, 0).Both()9 proxy.AddToxic("latency4", "latency", 1, 0).All()10 proxy.AddToxic("latency5", "latency", 1, 0).All()11 proxy.AddToxic("latency6", "latency", 1, 0).All()12 proxy.AddToxic("latency7", "latency", 1, 0).All()13 proxy.AddToxic("latency8", "latency", 1, 0).All()14 proxy.AddToxic("latency9", "latency", 1, 0).All()15 proxy.AddToxic("latency10", "latency", 1, 0).All()16 proxy.AddToxic("latency11", "latency", 1, 0).All()17 proxy.AddToxic("latency12", "latency", 1, 0).All()18 proxy.AddToxic("latency13", "latency", 1, 0).All()19 proxy.AddToxic("latency14", "latency", 1, 0).All()20 proxy.AddToxic("latency15", "latency", 1, 0).All()21 proxy.AddToxic("latency16", "latency", 1, 0).All()22 proxy.AddToxic("latency17", "latency", 1, 0).All()23 proxy.AddToxic("latency18", "latency", 1, 0).All()24 proxy.AddToxic("latency19", "latency", 1, 0).All()25 proxy.AddToxic("

Full Screen

Full Screen

newError

Using AI Code Generation

copy

Full Screen

1toxiproxy.newError("toxic1", "latency", "downstream", 5000, 0.0, 0)2toxiproxy.newError("toxic2", "latency", "downstream", 5000, 0.0, 0)3toxiproxy.newError("toxic3", "latency", "downstream", 5000, 0.0, 0)4toxiproxy.newError("toxic4", "latency", "downstream", 5000, 0.0, 0)5toxiproxy.newError("toxic5", "latency", "downstream", 5000, 0.0, 0)6toxiproxy.newError("toxic6", "latency", "downstream", 5000, 0.0, 0)7toxiproxy.newError("toxic7", "latency", "downstream", 5000, 0.0, 0)8toxiproxy.newError("toxic8", "latency", "downstream", 5000, 0.0, 0)9toxiproxy.newError("toxic9", "latency", "downstream", 5000, 0.0, 0)10toxiproxy.newError("toxic10", "latency", "downstream", 5000, 0.0, 0)

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful