Best Toxiproxy code snippet using toxiproxy.ToxicUpdate
api.go
Source:api.go
...112 r.HandleFunc("/proxies/{proxy}/toxics", server.ToxicCreate).Methods("POST").113 Name("ToxicCreate")114 r.HandleFunc("/proxies/{proxy}/toxics/{toxic}", server.ToxicShow).Methods("GET").115 Name("ToxicShow")116 r.HandleFunc("/proxies/{proxy}/toxics/{toxic}", server.ToxicUpdate).Methods("POST", "PATCH").117 Name("ToxicUpdate")118 r.HandleFunc("/proxies/{proxy}/toxics/{toxic}", server.ToxicDelete).Methods("DELETE").119 Name("ToxicDelete")120 r.HandleFunc("/version", server.Version).Methods("GET").Name("Version")121 if server.Metrics.anyMetricsEnabled() {122 r.Handle("/metrics", server.Metrics.handler()).Name("Metrics")123 }124 return r125}126func (server *ApiServer) PopulateConfig(filename string) {127 file, err := os.Open(filename)128 logger := server.Logger129 if err != nil {130 logger.Err(err).Str("config", filename).Msg("Error reading config file")131 return132 }133 proxies, err := server.Collection.PopulateJson(server, file)134 if err != nil {135 logger.Err(err).Msg("Failed to populate proxies from file")136 } else {137 logger.Info().Int("proxies", len(proxies)).Msg("Populated proxies from file")138 }139}140func (server *ApiServer) ProxyIndex(response http.ResponseWriter, request *http.Request) {141 proxies := server.Collection.Proxies()142 marshalData := make(map[string]interface{}, len(proxies))143 for name, proxy := range proxies {144 marshalData[name] = proxyWithToxics(proxy)145 }146 data, err := json.Marshal(marshalData)147 if server.apiError(response, err) {148 return149 }150 response.Header().Set("Content-Type", "application/json")151 _, err = response.Write(data)152 if err != nil {153 log := zerolog.Ctx(request.Context())154 log.Warn().Err(err).Msg("ProxyIndex: Failed to write response to client")155 }156}157func (server *ApiServer) ResetState(response http.ResponseWriter, request *http.Request) {158 ctx := request.Context()159 proxies := server.Collection.Proxies()160 for _, proxy := range proxies {161 err := proxy.Start()162 if err != ErrProxyAlreadyStarted && server.apiError(response, err) {163 return164 }165 proxy.Toxics.ResetToxics(ctx)166 }167 response.WriteHeader(http.StatusNoContent)168 _, err := response.Write(nil)169 if err != nil {170 log := zerolog.Ctx(ctx)171 log.Warn().Err(err).Msg("ResetState: Failed to write headers to client")172 }173}174func (server *ApiServer) ProxyCreate(response http.ResponseWriter, request *http.Request) {175 // Default fields to enable the proxy right away176 input := Proxy{Enabled: true}177 err := json.NewDecoder(request.Body).Decode(&input)178 if server.apiError(response, joinError(err, ErrBadRequestBody)) {179 return180 }181 if len(input.Name) < 1 {182 server.apiError(response, joinError(fmt.Errorf("name"), ErrMissingField))183 return184 }185 if len(input.Upstream) < 1 {186 server.apiError(response, joinError(fmt.Errorf("upstream"), ErrMissingField))187 return188 }189 proxy := NewProxy(server, input.Name, input.Listen, input.Upstream)190 err = server.Collection.Add(proxy, input.Enabled)191 if server.apiError(response, err) {192 return193 }194 data, err := json.Marshal(proxyWithToxics(proxy))195 if server.apiError(response, err) {196 return197 }198 response.Header().Set("Content-Type", "application/json")199 response.WriteHeader(http.StatusCreated)200 _, err = response.Write(data)201 if err != nil {202 log := zerolog.Ctx(request.Context())203 log.Warn().Err(err).Msg("ProxyCreate: Failed to write response to client")204 }205}206func (server *ApiServer) Populate(response http.ResponseWriter, request *http.Request) {207 proxies, err := server.Collection.PopulateJson(server, request.Body)208 apiErr, ok := err.(*ApiError)209 if !ok && err != nil {210 log := zerolog.Ctx(request.Context())211 log.Warn().Err(err).Msg("Error did not include status code")212 apiErr = &ApiError{err.Error(), http.StatusInternalServerError}213 }214 data, err := json.Marshal(struct {215 *ApiError `json:",omitempty"`216 Proxies []proxyToxics `json:"proxies"`217 }{apiErr, proxiesWithToxics(proxies)})218 if server.apiError(response, err) {219 return220 }221 responseCode := http.StatusCreated222 if apiErr != nil {223 responseCode = apiErr.StatusCode224 }225 response.Header().Set("Content-Type", "application/json")226 response.WriteHeader(responseCode)227 _, err = response.Write(data)228 if err != nil {229 log := zerolog.Ctx(request.Context())230 log.Warn().Err(err).Msg("Populate: Failed to write response to client")231 }232}233func (server *ApiServer) ProxyShow(response http.ResponseWriter, request *http.Request) {234 vars := mux.Vars(request)235 proxy, err := server.Collection.Get(vars["proxy"])236 if server.apiError(response, err) {237 return238 }239 data, err := json.Marshal(proxyWithToxics(proxy))240 if server.apiError(response, err) {241 return242 }243 response.Header().Set("Content-Type", "application/json")244 _, err = response.Write(data)245 if err != nil {246 server.Logger.Warn().Err(err).Msg("ProxyShow: Failed to write response to client")247 }248}249func (server *ApiServer) ProxyUpdate(response http.ResponseWriter, request *http.Request) {250 log := zerolog.Ctx(request.Context())251 if request.Method == "POST" {252 log.Warn().Msg("ProxyUpdate: HTTP method POST is depercated. Use HTTP PATCH instead.")253 }254 vars := mux.Vars(request)255 proxy, err := server.Collection.Get(vars["proxy"])256 if server.apiError(response, err) {257 return258 }259 // Default fields are the same as existing proxy260 input := Proxy{Listen: proxy.Listen, Upstream: proxy.Upstream, Enabled: proxy.Enabled}261 err = json.NewDecoder(request.Body).Decode(&input)262 if server.apiError(response, joinError(err, ErrBadRequestBody)) {263 return264 }265 err = proxy.Update(&input)266 if server.apiError(response, err) {267 return268 }269 data, err := json.Marshal(proxyWithToxics(proxy))270 if server.apiError(response, err) {271 return272 }273 response.Header().Set("Content-Type", "application/json")274 _, err = response.Write(data)275 if err != nil {276 log.Warn().Err(err).Msg("ProxyUpdate: Failed to write response to client")277 }278}279func (server *ApiServer) ProxyDelete(response http.ResponseWriter, request *http.Request) {280 vars := mux.Vars(request)281 err := server.Collection.Remove(vars["proxy"])282 if server.apiError(response, err) {283 return284 }285 response.WriteHeader(http.StatusNoContent)286 _, err = response.Write(nil)287 if err != nil {288 log := zerolog.Ctx(request.Context())289 log.Warn().Err(err).Msg("ProxyDelete: Failed to write headers to client")290 }291}292func (server *ApiServer) ToxicIndex(response http.ResponseWriter, request *http.Request) {293 vars := mux.Vars(request)294 proxy, err := server.Collection.Get(vars["proxy"])295 if server.apiError(response, err) {296 return297 }298 toxics := proxy.Toxics.GetToxicArray()299 data, err := json.Marshal(toxics)300 if server.apiError(response, err) {301 return302 }303 response.Header().Set("Content-Type", "application/json")304 _, err = response.Write(data)305 if err != nil {306 log := zerolog.Ctx(request.Context())307 log.Warn().Err(err).Msg("ToxicIndex: Failed to write response to client")308 }309}310func (server *ApiServer) ToxicCreate(response http.ResponseWriter, request *http.Request) {311 vars := mux.Vars(request)312 proxy, err := server.Collection.Get(vars["proxy"])313 if server.apiError(response, err) {314 return315 }316 toxic, err := proxy.Toxics.AddToxicJson(request.Body)317 if server.apiError(response, err) {318 return319 }320 data, err := json.Marshal(toxic)321 if server.apiError(response, err) {322 return323 }324 response.Header().Set("Content-Type", "application/json")325 _, err = response.Write(data)326 if err != nil {327 log := zerolog.Ctx(request.Context())328 log.Warn().Err(err).Msg("ToxicCreate: Failed to write response to client")329 }330}331func (server *ApiServer) ToxicShow(response http.ResponseWriter, request *http.Request) {332 vars := mux.Vars(request)333 proxy, err := server.Collection.Get(vars["proxy"])334 if server.apiError(response, err) {335 return336 }337 toxic := proxy.Toxics.GetToxic(vars["toxic"])338 if toxic == nil {339 server.apiError(response, ErrToxicNotFound)340 return341 }342 data, err := json.Marshal(toxic)343 if server.apiError(response, err) {344 return345 }346 response.Header().Set("Content-Type", "application/json")347 _, err = response.Write(data)348 if err != nil {349 log := zerolog.Ctx(request.Context())350 log.Warn().Err(err).Msg("ToxicShow: Failed to write response to client")351 }352}353func (server *ApiServer) ToxicUpdate(response http.ResponseWriter, request *http.Request) {354 log := zerolog.Ctx(request.Context())355 if request.Method == "POST" {356 log.Warn().Msg("ToxicUpdate: HTTP method POST is depercated. Use HTTP PATCH instead.")357 }358 vars := mux.Vars(request)359 proxy, err := server.Collection.Get(vars["proxy"])360 if server.apiError(response, err) {361 return362 }363 toxic, err := proxy.Toxics.UpdateToxicJson(vars["toxic"], request.Body)364 if server.apiError(response, err) {365 return366 }367 data, err := json.Marshal(toxic)368 if server.apiError(response, err) {369 return370 }371 response.Header().Set("Content-Type", "application/json")372 _, err = response.Write(data)373 if err != nil {374 log.Warn().Err(err).Msg("ToxicUpdate: Failed to write response to client")375 }376}377func (server *ApiServer) ToxicDelete(response http.ResponseWriter, request *http.Request) {378 vars := mux.Vars(request)379 ctx := request.Context()380 log := zerolog.Ctx(ctx)381 proxy, err := server.Collection.Get(vars["proxy"])382 if server.apiError(response, err) {383 return384 }385 err = proxy.Toxics.RemoveToxic(ctx, vars["toxic"])386 if server.apiError(response, err) {387 return388 }...
ToxicUpdate
Using AI Code Generation
1import (2func main() {3 c, _ := toxiproxy.NewClient("localhost:8474")4 toxics, _ := c.Toxics("redis")5 for _, t := range toxics {6 fmt.Println(t.Name)7 }8 t, _ := c.Toxic("redis", "latency")9 c.UpdateToxic("redis", t)10}11toxic := toxiproxy.Toxic{12 Attributes: map[string]interface{}{13 },14}15c.CreateToxic("redis", toxic)16toxic := toxiproxy.Toxic{17 Attributes: map[string]interface{}{18 },19}20c.ToxicUpdate("redis", "latency", toxic)
ToxicUpdate
Using AI Code Generation
1import (2func main() {3 proxy, err := proxyClient.Proxy("redis")4 if err != nil {5 fmt.Println("Error in getting proxy")6 }7 latencyToxic := toxiproxy.Toxic{8 Attributes: toxiproxy.Attributes{9 },10 }11 err = proxyClient.AddToxic(proxy, latencyToxic)12 if err != nil {13 fmt.Println("Error in adding toxic")14 }15 err = proxyClient.UpdateToxic(proxy, latencyToxic)16 if err != nil {17 fmt.Println("Error in updating toxic")18 }19 time.Sleep(30 * time.Second)20}
ToxicUpdate
Using AI Code Generation
1import (2func main() {3 proxy, err := toxiproxy.CreateProxy("tcp", "localhost:8080", "localhost:8000")4 if err != nil {5 panic(err)6 }7 toxic, err := proxy.CreateToxic("latency", "downstream", "latency", 1, toxiproxy.Attributes{"latency": 1000, "jitter": 500})8 if err != nil {9 panic(err)10 }11 toxic, err = proxy.UpdateToxic(toxic.Name, toxiproxy.Attributes{"latency": 2000, "jitter": 1000})12 if err != nil {13 panic(err)14 }15 if err != nil {16 panic(err)17 }18 err = proxy.DeleteToxic(toxic.Name)19 if err != nil {20 panic(err)21 }22 err = proxy.Delete()23 if err != nil {24 panic(err)25 }26}
ToxicUpdate
Using AI Code Generation
1import (2func main() {3 c, err := client.NewClient("localhost:8474")4 if err != nil {5 panic(err)6 }7 proxy, err := c.Proxy("test")8 if err != nil {9 panic(err)10 }11 toxic, err := proxy.CreateToxic("latency", "latency", "downstream", 1.0, client.ToxicAttributes{12 })13 if err != nil {14 panic(err)15 }16 toxic, err = proxy.UpdateToxic("latency", client.ToxicAttributes{17 })18 if err != nil {19 panic(err)20 }21 fmt.Println(toxic)22}23{latency latency downstream 1 map[latency:1000 jitter:0 rate:0.5 duration:0]}24import (25func main() {26 c, err := client.NewClient("localhost:8474")27 if err != nil {28 panic(err)29 }30 proxy, err := c.Proxy("test")31 if err != nil {32 panic(err)33 }34 toxic, err := proxy.CreateToxic("latency", "latency", "downstream", 1.0, client.ToxicAttributes{
ToxicUpdate
Using AI Code Generation
1import (2func main() {3 if err != nil {4 log.Fatal(err)5 }6 proxies, err := toxiproxy.Proxies()7 if err != nil {8 log.Fatal(err)9 }10 for _, proxy := range proxies {11 fmt.Printf("%s -> %s12 }13 _, err = toxiproxy.CreateProxy("test_proxy", "localhost:9000", "localhost:9001")14 if err != nil {15 log.Fatal(err)16 }17 proxy, err := toxiproxy.Proxy("test_proxy")18 if err != nil {19 log.Fatal(err)20 }21 fmt.Printf("%s -> %s -> %s22 proxy, err = toxiproxy.UpdateProxy(proxy)23 if err != nil {24 log.Fatal(err)25 }26 fmt.Printf("%s -> %s -> %s27 toxic, err := proxy.CreateToxic("test_toxic", "latency", "downstream", 1.0, map[string]interface{}{28 })29 if err != nil {30 log.Fatal(err)31 }32 fmt.Printf("%s -> %s33 toxic, err = proxy.UpdateToxic(toxic)34 if err != nil {35 log.Fatal(err)36 }37 fmt.Printf("%s -> %s38 err = proxy.DeleteToxic("test_toxic")39 if err != nil {40 log.Fatal(err)
ToxicUpdate
Using AI Code Generation
1import (2func main() {3 if err != nil {4 fmt.Println("Error in connecting to toxiproxy server")5 }6 proxy, err := proxyClient.Proxy("proxy1")7 if err != nil {8 fmt.Println("Error in getting the proxy object")9 }10 err = proxy.ToxicUpdate("latency", "latency", client.ToxicAttributes{"latency": 1000, "jitter": 0})11 if err != nil {12 fmt.Println("Error in updating toxic attributes")13 }14}15* About to connect() to localhost port 8080 (#0)16* Connected to localhost (::1) port 8080 (#0)17< Content-Type: text/plain; charset=utf-8
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.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!