go.etcd.io/etcd@v3.3.27+incompatible/functional/rpcpb/rpc.pb.go (about) 1 // Code generated by protoc-gen-gogo. DO NOT EDIT. 2 // source: rpcpb/rpc.proto 3 4 /* 5 Package rpcpb is a generated protocol buffer package. 6 7 It is generated from these files: 8 rpcpb/rpc.proto 9 10 It has these top-level messages: 11 Request 12 SnapshotInfo 13 Response 14 Member 15 Tester 16 Etcd 17 */ 18 package rpcpb 19 20 import proto "github.com/golang/protobuf/proto" 21 import fmt "fmt" 22 import math "math" 23 import _ "github.com/gogo/protobuf/gogoproto" 24 25 import context "golang.org/x/net/context" 26 import grpc "google.golang.org/grpc" 27 28 import io "io" 29 30 // Reference imports to suppress errors if they are not otherwise used. 31 var _ = proto.Marshal 32 var _ = fmt.Errorf 33 var _ = math.Inf 34 35 // This is a compile-time assertion to ensure that this generated file 36 // is compatible with the proto package it is being compiled against. 37 // A compilation error at this line likely means your copy of the 38 // proto package needs to be updated. 39 const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package 40 41 type Operation int32 42 43 const ( 44 // NOT_STARTED is the agent status before etcd first start. 45 Operation_NOT_STARTED Operation = 0 46 // INITIAL_START_ETCD is only called to start etcd, the very first time. 47 Operation_INITIAL_START_ETCD Operation = 10 48 // RESTART_ETCD is sent to restart killed etcd. 49 Operation_RESTART_ETCD Operation = 11 50 // SIGTERM_ETCD pauses etcd process while keeping data directories 51 // and previous etcd configurations. 52 Operation_SIGTERM_ETCD Operation = 20 53 // SIGQUIT_ETCD_AND_REMOVE_DATA kills etcd process and removes all data 54 // directories to simulate destroying the whole machine. 55 Operation_SIGQUIT_ETCD_AND_REMOVE_DATA Operation = 21 56 // SAVE_SNAPSHOT is sent to trigger local member to download its snapshot 57 // onto its local disk with the specified path from tester. 58 Operation_SAVE_SNAPSHOT Operation = 30 59 // RESTORE_RESTART_FROM_SNAPSHOT is sent to trigger local member to 60 // restore a cluster from existing snapshot from disk, and restart 61 // an etcd instance from recovered data. 62 Operation_RESTORE_RESTART_FROM_SNAPSHOT Operation = 31 63 // RESTART_FROM_SNAPSHOT is sent to trigger local member to restart 64 // and join an existing cluster that has been recovered from a snapshot. 65 // Local member joins this cluster with fresh data. 66 Operation_RESTART_FROM_SNAPSHOT Operation = 32 67 // SIGQUIT_ETCD_AND_ARCHIVE_DATA is sent when consistency check failed, 68 // thus need to archive etcd data directories. 69 Operation_SIGQUIT_ETCD_AND_ARCHIVE_DATA Operation = 40 70 // SIGQUIT_ETCD_AND_REMOVE_DATA_AND_STOP_AGENT destroys etcd process, 71 // etcd data, and agent server. 72 Operation_SIGQUIT_ETCD_AND_REMOVE_DATA_AND_STOP_AGENT Operation = 41 73 // BLACKHOLE_PEER_PORT_TX_RX drops all outgoing/incoming packets from/to 74 // the peer port on target member's peer port. 75 Operation_BLACKHOLE_PEER_PORT_TX_RX Operation = 100 76 // UNBLACKHOLE_PEER_PORT_TX_RX removes outgoing/incoming packet dropping. 77 Operation_UNBLACKHOLE_PEER_PORT_TX_RX Operation = 101 78 // DELAY_PEER_PORT_TX_RX delays all outgoing/incoming packets from/to 79 // the peer port on target member's peer port. 80 Operation_DELAY_PEER_PORT_TX_RX Operation = 200 81 // UNDELAY_PEER_PORT_TX_RX removes all outgoing/incoming delays. 82 Operation_UNDELAY_PEER_PORT_TX_RX Operation = 201 83 ) 84 85 var Operation_name = map[int32]string{ 86 0: "NOT_STARTED", 87 10: "INITIAL_START_ETCD", 88 11: "RESTART_ETCD", 89 20: "SIGTERM_ETCD", 90 21: "SIGQUIT_ETCD_AND_REMOVE_DATA", 91 30: "SAVE_SNAPSHOT", 92 31: "RESTORE_RESTART_FROM_SNAPSHOT", 93 32: "RESTART_FROM_SNAPSHOT", 94 40: "SIGQUIT_ETCD_AND_ARCHIVE_DATA", 95 41: "SIGQUIT_ETCD_AND_REMOVE_DATA_AND_STOP_AGENT", 96 100: "BLACKHOLE_PEER_PORT_TX_RX", 97 101: "UNBLACKHOLE_PEER_PORT_TX_RX", 98 200: "DELAY_PEER_PORT_TX_RX", 99 201: "UNDELAY_PEER_PORT_TX_RX", 100 } 101 var Operation_value = map[string]int32{ 102 "NOT_STARTED": 0, 103 "INITIAL_START_ETCD": 10, 104 "RESTART_ETCD": 11, 105 "SIGTERM_ETCD": 20, 106 "SIGQUIT_ETCD_AND_REMOVE_DATA": 21, 107 "SAVE_SNAPSHOT": 30, 108 "RESTORE_RESTART_FROM_SNAPSHOT": 31, 109 "RESTART_FROM_SNAPSHOT": 32, 110 "SIGQUIT_ETCD_AND_ARCHIVE_DATA": 40, 111 "SIGQUIT_ETCD_AND_REMOVE_DATA_AND_STOP_AGENT": 41, 112 "BLACKHOLE_PEER_PORT_TX_RX": 100, 113 "UNBLACKHOLE_PEER_PORT_TX_RX": 101, 114 "DELAY_PEER_PORT_TX_RX": 200, 115 "UNDELAY_PEER_PORT_TX_RX": 201, 116 } 117 118 func (x Operation) String() string { 119 return proto.EnumName(Operation_name, int32(x)) 120 } 121 func (Operation) EnumDescriptor() ([]byte, []int) { return fileDescriptorRpc, []int{0} } 122 123 // Case defines various system faults or test case in distributed systems, 124 // in order to verify correct behavior of etcd servers and clients. 125 type Case int32 126 127 const ( 128 // SIGTERM_ONE_FOLLOWER stops a randomly chosen follower (non-leader) 129 // but does not delete its data directories on disk for next restart. 130 // It waits "delay-ms" before recovering this failure. 131 // The expected behavior is that the follower comes back online 132 // and rejoins the cluster, and then each member continues to process 133 // client requests ('Put' request that requires Raft consensus). 134 Case_SIGTERM_ONE_FOLLOWER Case = 0 135 // SIGTERM_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT stops a randomly chosen 136 // follower but does not delete its data directories on disk for next 137 // restart. And waits until most up-to-date node (leader) applies the 138 // snapshot count of entries since the stop operation. 139 // The expected behavior is that the follower comes back online and 140 // rejoins the cluster, and then active leader sends snapshot 141 // to the follower to force it to follow the leader's log. 142 // As always, after recovery, each member must be able to process 143 // client requests. 144 Case_SIGTERM_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT Case = 1 145 // SIGTERM_LEADER stops the active leader node but does not delete its 146 // data directories on disk for next restart. Then it waits "delay-ms" 147 // before recovering this failure, in order to trigger election timeouts. 148 // The expected behavior is that a new leader gets elected, and the 149 // old leader comes back online and rejoins the cluster as a follower. 150 // As always, after recovery, each member must be able to process 151 // client requests. 152 Case_SIGTERM_LEADER Case = 2 153 // SIGTERM_LEADER_UNTIL_TRIGGER_SNAPSHOT stops the active leader node 154 // but does not delete its data directories on disk for next restart. 155 // And waits until most up-to-date node ("new" leader) applies the 156 // snapshot count of entries since the stop operation. 157 // The expected behavior is that cluster elects a new leader, and the 158 // old leader comes back online and rejoins the cluster as a follower. 159 // And it receives the snapshot from the new leader to overwrite its 160 // store. As always, after recovery, each member must be able to 161 // process client requests. 162 Case_SIGTERM_LEADER_UNTIL_TRIGGER_SNAPSHOT Case = 3 163 // SIGTERM_QUORUM stops majority number of nodes to make the whole cluster 164 // inoperable but does not delete data directories on stopped nodes 165 // for next restart. And it waits "delay-ms" before recovering failure. 166 // The expected behavior is that nodes come back online, thus cluster 167 // comes back operative as well. As always, after recovery, each member 168 // must be able to process client requests. 169 Case_SIGTERM_QUORUM Case = 4 170 // SIGTERM_ALL stops the whole cluster but does not delete data directories 171 // on disk for next restart. And it waits "delay-ms" before recovering 172 // this failure. 173 // The expected behavior is that nodes come back online, thus cluster 174 // comes back operative as well. As always, after recovery, each member 175 // must be able to process client requests. 176 Case_SIGTERM_ALL Case = 5 177 // SIGQUIT_AND_REMOVE_ONE_FOLLOWER stops a randomly chosen follower 178 // (non-leader), deletes its data directories on disk, and removes 179 // this member from cluster (membership reconfiguration). On recovery, 180 // tester adds a new member, and this member joins the existing cluster 181 // with fresh data. It waits "delay-ms" before recovering this 182 // failure. This simulates destroying one follower machine, where operator 183 // needs to add a new member from a fresh machine. 184 // The expected behavior is that a new member joins the existing cluster, 185 // and then each member continues to process client requests. 186 Case_SIGQUIT_AND_REMOVE_ONE_FOLLOWER Case = 10 187 // SIGQUIT_AND_REMOVE_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT stops a randomly 188 // chosen follower, deletes its data directories on disk, and removes 189 // this member from cluster (membership reconfiguration). On recovery, 190 // tester adds a new member, and this member joins the existing cluster 191 // restart. On member remove, cluster waits until most up-to-date node 192 // (leader) applies the snapshot count of entries since the stop operation. 193 // This simulates destroying a leader machine, where operator needs to add 194 // a new member from a fresh machine. 195 // The expected behavior is that a new member joins the existing cluster, 196 // and receives a snapshot from the active leader. As always, after 197 // recovery, each member must be able to process client requests. 198 Case_SIGQUIT_AND_REMOVE_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT Case = 11 199 // SIGQUIT_AND_REMOVE_LEADER stops the active leader node, deletes its 200 // data directories on disk, and removes this member from cluster. 201 // On recovery, tester adds a new member, and this member joins the 202 // existing cluster with fresh data. It waits "delay-ms" before 203 // recovering this failure. This simulates destroying a leader machine, 204 // where operator needs to add a new member from a fresh machine. 205 // The expected behavior is that a new member joins the existing cluster, 206 // and then each member continues to process client requests. 207 Case_SIGQUIT_AND_REMOVE_LEADER Case = 12 208 // SIGQUIT_AND_REMOVE_LEADER_UNTIL_TRIGGER_SNAPSHOT stops the active leader, 209 // deletes its data directories on disk, and removes this member from 210 // cluster (membership reconfiguration). On recovery, tester adds a new 211 // member, and this member joins the existing cluster restart. On member 212 // remove, cluster waits until most up-to-date node (new leader) applies 213 // the snapshot count of entries since the stop operation. This simulates 214 // destroying a leader machine, where operator needs to add a new member 215 // from a fresh machine. 216 // The expected behavior is that on member remove, cluster elects a new 217 // leader, and a new member joins the existing cluster and receives a 218 // snapshot from the newly elected leader. As always, after recovery, each 219 // member must be able to process client requests. 220 Case_SIGQUIT_AND_REMOVE_LEADER_UNTIL_TRIGGER_SNAPSHOT Case = 13 221 // SIGQUIT_AND_REMOVE_QUORUM_AND_RESTORE_LEADER_SNAPSHOT_FROM_SCRATCH first 222 // stops majority number of nodes, deletes data directories on those quorum 223 // nodes, to make the whole cluster inoperable. Now that quorum and their 224 // data are totally destroyed, cluster cannot even remove unavailable nodes 225 // (e.g. 2 out of 3 are lost, so no leader can be elected). 226 // Let's assume 3-node cluster of node A, B, and C. One day, node A and B 227 // are destroyed and all their data are gone. The only viable solution is 228 // to recover from C's latest snapshot. 229 // 230 // To simulate: 231 // 1. Assume node C is the current leader with most up-to-date data. 232 // 2. Download snapshot from node C, before destroying node A and B. 233 // 3. Destroy node A and B, and make the whole cluster inoperable. 234 // 4. Now node C cannot operate either. 235 // 5. SIGTERM node C and remove its data directories. 236 // 6. Restore a new seed member from node C's latest snapshot file. 237 // 7. Add another member to establish 2-node cluster. 238 // 8. Add another member to establish 3-node cluster. 239 // 9. Add more if any. 240 // 241 // The expected behavior is that etcd successfully recovers from such 242 // disastrous situation as only 1-node survives out of 3-node cluster, 243 // new members joins the existing cluster, and previous data from snapshot 244 // are still preserved after recovery process. As always, after recovery, 245 // each member must be able to process client requests. 246 Case_SIGQUIT_AND_REMOVE_QUORUM_AND_RESTORE_LEADER_SNAPSHOT_FROM_SCRATCH Case = 14 247 // BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER drops all outgoing/incoming 248 // packets from/to the peer port on a randomly chosen follower 249 // (non-leader), and waits for "delay-ms" until recovery. 250 // The expected behavior is that once dropping operation is undone, 251 // each member must be able to process client requests. 252 Case_BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER Case = 100 253 // BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT drops 254 // all outgoing/incoming packets from/to the peer port on a randomly 255 // chosen follower (non-leader), and waits for most up-to-date node 256 // (leader) applies the snapshot count of entries since the blackhole 257 // operation. 258 // The expected behavior is that once packet drop operation is undone, 259 // the slow follower tries to catch up, possibly receiving the snapshot 260 // from the active leader. As always, after recovery, each member must 261 // be able to process client requests. 262 Case_BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT Case = 101 263 // BLACKHOLE_PEER_PORT_TX_RX_LEADER drops all outgoing/incoming packets 264 // from/to the peer port on the active leader (isolated), and waits for 265 // "delay-ms" until recovery, in order to trigger election timeout. 266 // The expected behavior is that after election timeout, a new leader gets 267 // elected, and once dropping operation is undone, the old leader comes 268 // back and rejoins the cluster as a follower. As always, after recovery, 269 // each member must be able to process client requests. 270 Case_BLACKHOLE_PEER_PORT_TX_RX_LEADER Case = 102 271 // BLACKHOLE_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT drops all 272 // outgoing/incoming packets from/to the peer port on the active leader, 273 // and waits for most up-to-date node (leader) applies the snapshot 274 // count of entries since the blackhole operation. 275 // The expected behavior is that cluster elects a new leader, and once 276 // dropping operation is undone, the old leader comes back and rejoins 277 // the cluster as a follower. The slow follower tries to catch up, likely 278 // receiving the snapshot from the new active leader. As always, after 279 // recovery, each member must be able to process client requests. 280 Case_BLACKHOLE_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT Case = 103 281 // BLACKHOLE_PEER_PORT_TX_RX_QUORUM drops all outgoing/incoming packets 282 // from/to the peer ports on majority nodes of cluster, thus losing its 283 // leader and cluster being inoperable. And it waits for "delay-ms" 284 // until recovery. 285 // The expected behavior is that once packet drop operation is undone, 286 // nodes come back online, thus cluster comes back operative. As always, 287 // after recovery, each member must be able to process client requests. 288 Case_BLACKHOLE_PEER_PORT_TX_RX_QUORUM Case = 104 289 // BLACKHOLE_PEER_PORT_TX_RX_ALL drops all outgoing/incoming packets 290 // from/to the peer ports on all nodes, thus making cluster totally 291 // inoperable. It waits for "delay-ms" until recovery. 292 // The expected behavior is that once packet drop operation is undone, 293 // nodes come back online, thus cluster comes back operative. As always, 294 // after recovery, each member must be able to process client requests. 295 Case_BLACKHOLE_PEER_PORT_TX_RX_ALL Case = 105 296 // DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER delays outgoing/incoming packets 297 // from/to the peer port on a randomly chosen follower (non-leader). 298 // It waits for "delay-ms" until recovery. 299 // The expected behavior is that once packet delay operation is undone, 300 // the follower comes back and tries to catch up with latest changes from 301 // cluster. And as always, after recovery, each member must be able to 302 // process client requests. 303 Case_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER Case = 200 304 // RANDOM_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER delays outgoing/incoming 305 // packets from/to the peer port on a randomly chosen follower 306 // (non-leader) with a randomized time duration (thus isolated). It 307 // waits for "delay-ms" until recovery. 308 // The expected behavior is that once packet delay operation is undone, 309 // each member must be able to process client requests. 310 Case_RANDOM_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER Case = 201 311 // DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT delays 312 // outgoing/incoming packets from/to the peer port on a randomly chosen 313 // follower (non-leader), and waits for most up-to-date node (leader) 314 // applies the snapshot count of entries since the delay operation. 315 // The expected behavior is that the delayed follower gets isolated 316 // and behind the current active leader, and once delay operation is undone, 317 // the slow follower comes back and catches up possibly receiving snapshot 318 // from the active leader. As always, after recovery, each member must be 319 // able to process client requests. 320 Case_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT Case = 202 321 // RANDOM_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT delays 322 // outgoing/incoming packets from/to the peer port on a randomly chosen 323 // follower (non-leader) with a randomized time duration, and waits for 324 // most up-to-date node (leader) applies the snapshot count of entries 325 // since the delay operation. 326 // The expected behavior is that the delayed follower gets isolated 327 // and behind the current active leader, and once delay operation is undone, 328 // the slow follower comes back and catches up, possibly receiving a 329 // snapshot from the active leader. As always, after recovery, each member 330 // must be able to process client requests. 331 Case_RANDOM_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT Case = 203 332 // DELAY_PEER_PORT_TX_RX_LEADER delays outgoing/incoming packets from/to 333 // the peer port on the active leader. And waits for "delay-ms" until 334 // recovery. 335 // The expected behavior is that cluster may elect a new leader, and 336 // once packet delay operation is undone, the (old) leader comes back 337 // and tries to catch up with latest changes from cluster. As always, 338 // after recovery, each member must be able to process client requests. 339 Case_DELAY_PEER_PORT_TX_RX_LEADER Case = 204 340 // RANDOM_DELAY_PEER_PORT_TX_RX_LEADER delays outgoing/incoming packets 341 // from/to the peer port on the active leader with a randomized time 342 // duration. And waits for "delay-ms" until recovery. 343 // The expected behavior is that cluster may elect a new leader, and 344 // once packet delay operation is undone, the (old) leader comes back 345 // and tries to catch up with latest changes from cluster. As always, 346 // after recovery, each member must be able to process client requests. 347 Case_RANDOM_DELAY_PEER_PORT_TX_RX_LEADER Case = 205 348 // DELAY_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT delays 349 // outgoing/incoming packets from/to the peer port on the active leader, 350 // and waits for most up-to-date node (current or new leader) applies the 351 // snapshot count of entries since the delay operation. 352 // The expected behavior is that cluster may elect a new leader, and 353 // the old leader gets isolated and behind the current active leader, 354 // and once delay operation is undone, the slow follower comes back 355 // and catches up, likely receiving a snapshot from the active leader. 356 // As always, after recovery, each member must be able to process client 357 // requests. 358 Case_DELAY_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT Case = 206 359 // RANDOM_DELAY_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT delays 360 // outgoing/incoming packets from/to the peer port on the active leader, 361 // with a randomized time duration. And it waits for most up-to-date node 362 // (current or new leader) applies the snapshot count of entries since the 363 // delay operation. 364 // The expected behavior is that cluster may elect a new leader, and 365 // the old leader gets isolated and behind the current active leader, 366 // and once delay operation is undone, the slow follower comes back 367 // and catches up, likely receiving a snapshot from the active leader. 368 // As always, after recovery, each member must be able to process client 369 // requests. 370 Case_RANDOM_DELAY_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT Case = 207 371 // DELAY_PEER_PORT_TX_RX_QUORUM delays outgoing/incoming packets from/to 372 // the peer ports on majority nodes of cluster. And it waits for 373 // "delay-ms" until recovery, likely to trigger election timeouts. 374 // The expected behavior is that cluster may elect a new leader, while 375 // quorum of nodes struggle with slow networks, and once delay operation 376 // is undone, nodes come back and cluster comes back operative. As always, 377 // after recovery, each member must be able to process client requests. 378 Case_DELAY_PEER_PORT_TX_RX_QUORUM Case = 208 379 // RANDOM_DELAY_PEER_PORT_TX_RX_QUORUM delays outgoing/incoming packets 380 // from/to the peer ports on majority nodes of cluster, with randomized 381 // time durations. And it waits for "delay-ms" until recovery, likely 382 // to trigger election timeouts. 383 // The expected behavior is that cluster may elect a new leader, while 384 // quorum of nodes struggle with slow networks, and once delay operation 385 // is undone, nodes come back and cluster comes back operative. As always, 386 // after recovery, each member must be able to process client requests. 387 Case_RANDOM_DELAY_PEER_PORT_TX_RX_QUORUM Case = 209 388 // DELAY_PEER_PORT_TX_RX_ALL delays outgoing/incoming packets from/to the 389 // peer ports on all nodes. And it waits for "delay-ms" until recovery, 390 // likely to trigger election timeouts. 391 // The expected behavior is that cluster may become totally inoperable, 392 // struggling with slow networks across the whole cluster. Once delay 393 // operation is undone, nodes come back and cluster comes back operative. 394 // As always, after recovery, each member must be able to process client 395 // requests. 396 Case_DELAY_PEER_PORT_TX_RX_ALL Case = 210 397 // RANDOM_DELAY_PEER_PORT_TX_RX_ALL delays outgoing/incoming packets 398 // from/to the peer ports on all nodes, with randomized time durations. 399 // And it waits for "delay-ms" until recovery, likely to trigger 400 // election timeouts. 401 // The expected behavior is that cluster may become totally inoperable, 402 // struggling with slow networks across the whole cluster. Once delay 403 // operation is undone, nodes come back and cluster comes back operative. 404 // As always, after recovery, each member must be able to process client 405 // requests. 406 Case_RANDOM_DELAY_PEER_PORT_TX_RX_ALL Case = 211 407 // NO_FAIL_WITH_STRESS stops injecting failures while testing the 408 // consistency and correctness under pressure loads, for the duration of 409 // "delay-ms". Goal is to ensure cluster be still making progress 410 // on recovery, and verify system does not deadlock following a sequence 411 // of failure injections. 412 // The expected behavior is that cluster remains fully operative in healthy 413 // condition. As always, after recovery, each member must be able to process 414 // client requests. 415 Case_NO_FAIL_WITH_STRESS Case = 300 416 // NO_FAIL_WITH_NO_STRESS_FOR_LIVENESS neither injects failures nor 417 // sends stressig client requests to the cluster, for the duration of 418 // "delay-ms". Goal is to ensure cluster be still making progress 419 // on recovery, and verify system does not deadlock following a sequence 420 // of failure injections. 421 // The expected behavior is that cluster remains fully operative in healthy 422 // condition, and clients requests during liveness period succeed without 423 // errors. 424 // Note: this is how Google Chubby does failure injection testing 425 // https://static.googleusercontent.com/media/research.google.com/en//archive/paxos_made_live.pdf. 426 Case_NO_FAIL_WITH_NO_STRESS_FOR_LIVENESS Case = 301 427 // FAILPOINTS injects failpoints to etcd server runtime, triggering panics 428 // in critical code paths. 429 Case_FAILPOINTS Case = 400 430 // EXTERNAL runs external failure injection scripts. 431 Case_EXTERNAL Case = 500 432 ) 433 434 var Case_name = map[int32]string{ 435 0: "SIGTERM_ONE_FOLLOWER", 436 1: "SIGTERM_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT", 437 2: "SIGTERM_LEADER", 438 3: "SIGTERM_LEADER_UNTIL_TRIGGER_SNAPSHOT", 439 4: "SIGTERM_QUORUM", 440 5: "SIGTERM_ALL", 441 10: "SIGQUIT_AND_REMOVE_ONE_FOLLOWER", 442 11: "SIGQUIT_AND_REMOVE_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT", 443 12: "SIGQUIT_AND_REMOVE_LEADER", 444 13: "SIGQUIT_AND_REMOVE_LEADER_UNTIL_TRIGGER_SNAPSHOT", 445 14: "SIGQUIT_AND_REMOVE_QUORUM_AND_RESTORE_LEADER_SNAPSHOT_FROM_SCRATCH", 446 100: "BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER", 447 101: "BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT", 448 102: "BLACKHOLE_PEER_PORT_TX_RX_LEADER", 449 103: "BLACKHOLE_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT", 450 104: "BLACKHOLE_PEER_PORT_TX_RX_QUORUM", 451 105: "BLACKHOLE_PEER_PORT_TX_RX_ALL", 452 200: "DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER", 453 201: "RANDOM_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER", 454 202: "DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT", 455 203: "RANDOM_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT", 456 204: "DELAY_PEER_PORT_TX_RX_LEADER", 457 205: "RANDOM_DELAY_PEER_PORT_TX_RX_LEADER", 458 206: "DELAY_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT", 459 207: "RANDOM_DELAY_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT", 460 208: "DELAY_PEER_PORT_TX_RX_QUORUM", 461 209: "RANDOM_DELAY_PEER_PORT_TX_RX_QUORUM", 462 210: "DELAY_PEER_PORT_TX_RX_ALL", 463 211: "RANDOM_DELAY_PEER_PORT_TX_RX_ALL", 464 300: "NO_FAIL_WITH_STRESS", 465 301: "NO_FAIL_WITH_NO_STRESS_FOR_LIVENESS", 466 400: "FAILPOINTS", 467 500: "EXTERNAL", 468 } 469 var Case_value = map[string]int32{ 470 "SIGTERM_ONE_FOLLOWER": 0, 471 "SIGTERM_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT": 1, 472 "SIGTERM_LEADER": 2, 473 "SIGTERM_LEADER_UNTIL_TRIGGER_SNAPSHOT": 3, 474 "SIGTERM_QUORUM": 4, 475 "SIGTERM_ALL": 5, 476 "SIGQUIT_AND_REMOVE_ONE_FOLLOWER": 10, 477 "SIGQUIT_AND_REMOVE_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT": 11, 478 "SIGQUIT_AND_REMOVE_LEADER": 12, 479 "SIGQUIT_AND_REMOVE_LEADER_UNTIL_TRIGGER_SNAPSHOT": 13, 480 "SIGQUIT_AND_REMOVE_QUORUM_AND_RESTORE_LEADER_SNAPSHOT_FROM_SCRATCH": 14, 481 "BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER": 100, 482 "BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT": 101, 483 "BLACKHOLE_PEER_PORT_TX_RX_LEADER": 102, 484 "BLACKHOLE_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT": 103, 485 "BLACKHOLE_PEER_PORT_TX_RX_QUORUM": 104, 486 "BLACKHOLE_PEER_PORT_TX_RX_ALL": 105, 487 "DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER": 200, 488 "RANDOM_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER": 201, 489 "DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT": 202, 490 "RANDOM_DELAY_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT": 203, 491 "DELAY_PEER_PORT_TX_RX_LEADER": 204, 492 "RANDOM_DELAY_PEER_PORT_TX_RX_LEADER": 205, 493 "DELAY_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT": 206, 494 "RANDOM_DELAY_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT": 207, 495 "DELAY_PEER_PORT_TX_RX_QUORUM": 208, 496 "RANDOM_DELAY_PEER_PORT_TX_RX_QUORUM": 209, 497 "DELAY_PEER_PORT_TX_RX_ALL": 210, 498 "RANDOM_DELAY_PEER_PORT_TX_RX_ALL": 211, 499 "NO_FAIL_WITH_STRESS": 300, 500 "NO_FAIL_WITH_NO_STRESS_FOR_LIVENESS": 301, 501 "FAILPOINTS": 400, 502 "EXTERNAL": 500, 503 } 504 505 func (x Case) String() string { 506 return proto.EnumName(Case_name, int32(x)) 507 } 508 func (Case) EnumDescriptor() ([]byte, []int) { return fileDescriptorRpc, []int{1} } 509 510 type Stresser int32 511 512 const ( 513 Stresser_KV Stresser = 0 514 Stresser_LEASE Stresser = 1 515 Stresser_ELECTION_RUNNER Stresser = 2 516 Stresser_WATCH_RUNNER Stresser = 3 517 Stresser_LOCK_RACER_RUNNER Stresser = 4 518 Stresser_LEASE_RUNNER Stresser = 5 519 ) 520 521 var Stresser_name = map[int32]string{ 522 0: "KV", 523 1: "LEASE", 524 2: "ELECTION_RUNNER", 525 3: "WATCH_RUNNER", 526 4: "LOCK_RACER_RUNNER", 527 5: "LEASE_RUNNER", 528 } 529 var Stresser_value = map[string]int32{ 530 "KV": 0, 531 "LEASE": 1, 532 "ELECTION_RUNNER": 2, 533 "WATCH_RUNNER": 3, 534 "LOCK_RACER_RUNNER": 4, 535 "LEASE_RUNNER": 5, 536 } 537 538 func (x Stresser) String() string { 539 return proto.EnumName(Stresser_name, int32(x)) 540 } 541 func (Stresser) EnumDescriptor() ([]byte, []int) { return fileDescriptorRpc, []int{2} } 542 543 type Checker int32 544 545 const ( 546 Checker_KV_HASH Checker = 0 547 Checker_LEASE_EXPIRE Checker = 1 548 Checker_RUNNER Checker = 2 549 Checker_NO_CHECK Checker = 3 550 ) 551 552 var Checker_name = map[int32]string{ 553 0: "KV_HASH", 554 1: "LEASE_EXPIRE", 555 2: "RUNNER", 556 3: "NO_CHECK", 557 } 558 var Checker_value = map[string]int32{ 559 "KV_HASH": 0, 560 "LEASE_EXPIRE": 1, 561 "RUNNER": 2, 562 "NO_CHECK": 3, 563 } 564 565 func (x Checker) String() string { 566 return proto.EnumName(Checker_name, int32(x)) 567 } 568 func (Checker) EnumDescriptor() ([]byte, []int) { return fileDescriptorRpc, []int{3} } 569 570 type Request struct { 571 Operation Operation `protobuf:"varint,1,opt,name=Operation,proto3,enum=rpcpb.Operation" json:"Operation,omitempty"` 572 // Member contains the same Member object from tester configuration. 573 Member *Member `protobuf:"bytes,2,opt,name=Member" json:"Member,omitempty"` 574 // Tester contains tester configuration. 575 Tester *Tester `protobuf:"bytes,3,opt,name=Tester" json:"Tester,omitempty"` 576 } 577 578 func (m *Request) Reset() { *m = Request{} } 579 func (m *Request) String() string { return proto.CompactTextString(m) } 580 func (*Request) ProtoMessage() {} 581 func (*Request) Descriptor() ([]byte, []int) { return fileDescriptorRpc, []int{0} } 582 583 // SnapshotInfo contains SAVE_SNAPSHOT request results. 584 type SnapshotInfo struct { 585 MemberName string `protobuf:"bytes,1,opt,name=MemberName,proto3" json:"MemberName,omitempty"` 586 MemberClientURLs []string `protobuf:"bytes,2,rep,name=MemberClientURLs" json:"MemberClientURLs,omitempty"` 587 SnapshotPath string `protobuf:"bytes,3,opt,name=SnapshotPath,proto3" json:"SnapshotPath,omitempty"` 588 SnapshotFileSize string `protobuf:"bytes,4,opt,name=SnapshotFileSize,proto3" json:"SnapshotFileSize,omitempty"` 589 SnapshotTotalSize string `protobuf:"bytes,5,opt,name=SnapshotTotalSize,proto3" json:"SnapshotTotalSize,omitempty"` 590 SnapshotTotalKey int64 `protobuf:"varint,6,opt,name=SnapshotTotalKey,proto3" json:"SnapshotTotalKey,omitempty"` 591 SnapshotHash int64 `protobuf:"varint,7,opt,name=SnapshotHash,proto3" json:"SnapshotHash,omitempty"` 592 SnapshotRevision int64 `protobuf:"varint,8,opt,name=SnapshotRevision,proto3" json:"SnapshotRevision,omitempty"` 593 Took string `protobuf:"bytes,9,opt,name=Took,proto3" json:"Took,omitempty"` 594 } 595 596 func (m *SnapshotInfo) Reset() { *m = SnapshotInfo{} } 597 func (m *SnapshotInfo) String() string { return proto.CompactTextString(m) } 598 func (*SnapshotInfo) ProtoMessage() {} 599 func (*SnapshotInfo) Descriptor() ([]byte, []int) { return fileDescriptorRpc, []int{1} } 600 601 type Response struct { 602 Success bool `protobuf:"varint,1,opt,name=Success,proto3" json:"Success,omitempty"` 603 Status string `protobuf:"bytes,2,opt,name=Status,proto3" json:"Status,omitempty"` 604 // Member contains the same Member object from tester request. 605 Member *Member `protobuf:"bytes,3,opt,name=Member" json:"Member,omitempty"` 606 // SnapshotInfo contains SAVE_SNAPSHOT request results. 607 SnapshotInfo *SnapshotInfo `protobuf:"bytes,4,opt,name=SnapshotInfo" json:"SnapshotInfo,omitempty"` 608 } 609 610 func (m *Response) Reset() { *m = Response{} } 611 func (m *Response) String() string { return proto.CompactTextString(m) } 612 func (*Response) ProtoMessage() {} 613 func (*Response) Descriptor() ([]byte, []int) { return fileDescriptorRpc, []int{2} } 614 615 type Member struct { 616 // EtcdExecPath is the executable etcd binary path in agent server. 617 EtcdExecPath string `protobuf:"bytes,1,opt,name=EtcdExecPath,proto3" json:"EtcdExecPath,omitempty" yaml:"etcd-exec-path"` 618 // AgentAddr is the agent HTTP server address. 619 AgentAddr string `protobuf:"bytes,11,opt,name=AgentAddr,proto3" json:"AgentAddr,omitempty" yaml:"agent-addr"` 620 // FailpointHTTPAddr is the agent's failpoints HTTP server address. 621 FailpointHTTPAddr string `protobuf:"bytes,12,opt,name=FailpointHTTPAddr,proto3" json:"FailpointHTTPAddr,omitempty" yaml:"failpoint-http-addr"` 622 // BaseDir is the base directory where all logs and etcd data are stored. 623 BaseDir string `protobuf:"bytes,101,opt,name=BaseDir,proto3" json:"BaseDir,omitempty" yaml:"base-dir"` 624 // EtcdLogPath is the log file to store current etcd server logs. 625 EtcdLogPath string `protobuf:"bytes,102,opt,name=EtcdLogPath,proto3" json:"EtcdLogPath,omitempty" yaml:"etcd-log-path"` 626 // EtcdClientProxy is true when client traffic needs to be proxied. 627 // If true, listen client URL port must be different than advertise client URL port. 628 EtcdClientProxy bool `protobuf:"varint,201,opt,name=EtcdClientProxy,proto3" json:"EtcdClientProxy,omitempty" yaml:"etcd-client-proxy"` 629 // EtcdPeerProxy is true when peer traffic needs to be proxied. 630 // If true, listen peer URL port must be different than advertise peer URL port. 631 EtcdPeerProxy bool `protobuf:"varint,202,opt,name=EtcdPeerProxy,proto3" json:"EtcdPeerProxy,omitempty" yaml:"etcd-peer-proxy"` 632 // EtcdClientEndpoint is the etcd client endpoint. 633 EtcdClientEndpoint string `protobuf:"bytes,301,opt,name=EtcdClientEndpoint,proto3" json:"EtcdClientEndpoint,omitempty" yaml:"etcd-client-endpoint"` 634 // Etcd defines etcd binary configuration flags. 635 Etcd *Etcd `protobuf:"bytes,302,opt,name=Etcd" json:"Etcd,omitempty" yaml:"etcd"` 636 // EtcdOnSnapshotRestore defines one-time use configuration during etcd 637 // snapshot recovery process. 638 EtcdOnSnapshotRestore *Etcd `protobuf:"bytes,303,opt,name=EtcdOnSnapshotRestore" json:"EtcdOnSnapshotRestore,omitempty"` 639 // ClientCertData contains cert file contents from this member's etcd server. 640 ClientCertData string `protobuf:"bytes,401,opt,name=ClientCertData,proto3" json:"ClientCertData,omitempty" yaml:"client-cert-data"` 641 ClientCertPath string `protobuf:"bytes,402,opt,name=ClientCertPath,proto3" json:"ClientCertPath,omitempty" yaml:"client-cert-path"` 642 // ClientKeyData contains key file contents from this member's etcd server. 643 ClientKeyData string `protobuf:"bytes,403,opt,name=ClientKeyData,proto3" json:"ClientKeyData,omitempty" yaml:"client-key-data"` 644 ClientKeyPath string `protobuf:"bytes,404,opt,name=ClientKeyPath,proto3" json:"ClientKeyPath,omitempty" yaml:"client-key-path"` 645 // ClientTrustedCAData contains trusted CA file contents from this member's etcd server. 646 ClientTrustedCAData string `protobuf:"bytes,405,opt,name=ClientTrustedCAData,proto3" json:"ClientTrustedCAData,omitempty" yaml:"client-trusted-ca-data"` 647 ClientTrustedCAPath string `protobuf:"bytes,406,opt,name=ClientTrustedCAPath,proto3" json:"ClientTrustedCAPath,omitempty" yaml:"client-trusted-ca-path"` 648 // PeerCertData contains cert file contents from this member's etcd server. 649 PeerCertData string `protobuf:"bytes,501,opt,name=PeerCertData,proto3" json:"PeerCertData,omitempty" yaml:"peer-cert-data"` 650 PeerCertPath string `protobuf:"bytes,502,opt,name=PeerCertPath,proto3" json:"PeerCertPath,omitempty" yaml:"peer-cert-path"` 651 // PeerKeyData contains key file contents from this member's etcd server. 652 PeerKeyData string `protobuf:"bytes,503,opt,name=PeerKeyData,proto3" json:"PeerKeyData,omitempty" yaml:"peer-key-data"` 653 PeerKeyPath string `protobuf:"bytes,504,opt,name=PeerKeyPath,proto3" json:"PeerKeyPath,omitempty" yaml:"peer-key-path"` 654 // PeerTrustedCAData contains trusted CA file contents from this member's etcd server. 655 PeerTrustedCAData string `protobuf:"bytes,505,opt,name=PeerTrustedCAData,proto3" json:"PeerTrustedCAData,omitempty" yaml:"peer-trusted-ca-data"` 656 PeerTrustedCAPath string `protobuf:"bytes,506,opt,name=PeerTrustedCAPath,proto3" json:"PeerTrustedCAPath,omitempty" yaml:"peer-trusted-ca-path"` 657 // SnapshotPath is the snapshot file path to store or restore from. 658 SnapshotPath string `protobuf:"bytes,601,opt,name=SnapshotPath,proto3" json:"SnapshotPath,omitempty" yaml:"snapshot-path"` 659 // SnapshotInfo contains last SAVE_SNAPSHOT request results. 660 SnapshotInfo *SnapshotInfo `protobuf:"bytes,602,opt,name=SnapshotInfo" json:"SnapshotInfo,omitempty"` 661 } 662 663 func (m *Member) Reset() { *m = Member{} } 664 func (m *Member) String() string { return proto.CompactTextString(m) } 665 func (*Member) ProtoMessage() {} 666 func (*Member) Descriptor() ([]byte, []int) { return fileDescriptorRpc, []int{3} } 667 668 type Tester struct { 669 DataDir string `protobuf:"bytes,1,opt,name=DataDir,proto3" json:"DataDir,omitempty" yaml:"data-dir"` 670 Network string `protobuf:"bytes,2,opt,name=Network,proto3" json:"Network,omitempty" yaml:"network"` 671 Addr string `protobuf:"bytes,3,opt,name=Addr,proto3" json:"Addr,omitempty" yaml:"addr"` 672 // DelayLatencyMsRv is the delay latency in milliseconds, 673 // to inject to simulated slow network. 674 DelayLatencyMs uint32 `protobuf:"varint,11,opt,name=DelayLatencyMs,proto3" json:"DelayLatencyMs,omitempty" yaml:"delay-latency-ms"` 675 // DelayLatencyMsRv is the delay latency random variable in milliseconds. 676 DelayLatencyMsRv uint32 `protobuf:"varint,12,opt,name=DelayLatencyMsRv,proto3" json:"DelayLatencyMsRv,omitempty" yaml:"delay-latency-ms-rv"` 677 // UpdatedDelayLatencyMs is the update delay latency in milliseconds, 678 // to inject to simulated slow network. It's the final latency to apply, 679 // in case the latency numbers are randomly generated from given delay latency field. 680 UpdatedDelayLatencyMs uint32 `protobuf:"varint,13,opt,name=UpdatedDelayLatencyMs,proto3" json:"UpdatedDelayLatencyMs,omitempty" yaml:"updated-delay-latency-ms"` 681 // RoundLimit is the limit of rounds to run failure set (-1 to run without limits). 682 RoundLimit int32 `protobuf:"varint,21,opt,name=RoundLimit,proto3" json:"RoundLimit,omitempty" yaml:"round-limit"` 683 // ExitOnCaseFail is true, then exit tester on first failure. 684 ExitOnCaseFail bool `protobuf:"varint,22,opt,name=ExitOnCaseFail,proto3" json:"ExitOnCaseFail,omitempty" yaml:"exit-on-failure"` 685 // EnablePprof is true to enable profiler. 686 EnablePprof bool `protobuf:"varint,23,opt,name=EnablePprof,proto3" json:"EnablePprof,omitempty" yaml:"enable-pprof"` 687 // CaseDelayMs is the delay duration after failure is injected. 688 // Useful when triggering snapshot or no-op failure cases. 689 CaseDelayMs uint32 `protobuf:"varint,31,opt,name=CaseDelayMs,proto3" json:"CaseDelayMs,omitempty" yaml:"case-delay-ms"` 690 // CaseShuffle is true to randomize failure injecting order. 691 CaseShuffle bool `protobuf:"varint,32,opt,name=CaseShuffle,proto3" json:"CaseShuffle,omitempty" yaml:"case-shuffle"` 692 // Cases is the selected test cases to schedule. 693 // If empty, run all failure cases. 694 Cases []string `protobuf:"bytes,33,rep,name=Cases" json:"Cases,omitempty" yaml:"cases"` 695 // FailpointCommands is the list of "gofail" commands 696 // (e.g. panic("etcd-tester"),1*sleep(1000). 697 FailpointCommands []string `protobuf:"bytes,34,rep,name=FailpointCommands" json:"FailpointCommands,omitempty" yaml:"failpoint-commands"` 698 // RunnerExecPath is a path of etcd-runner binary. 699 RunnerExecPath string `protobuf:"bytes,41,opt,name=RunnerExecPath,proto3" json:"RunnerExecPath,omitempty" yaml:"runner-exec-path"` 700 // ExternalExecPath is a path of script for enabling/disabling an external fault injector. 701 ExternalExecPath string `protobuf:"bytes,42,opt,name=ExternalExecPath,proto3" json:"ExternalExecPath,omitempty" yaml:"external-exec-path"` 702 // Stressers is the list of stresser types: 703 // KV, LEASE, ELECTION_RUNNER, WATCH_RUNNER, LOCK_RACER_RUNNER, LEASE_RUNNER. 704 Stressers []string `protobuf:"bytes,101,rep,name=Stressers" json:"Stressers,omitempty" yaml:"stressers"` 705 // Checkers is the list of consistency checker types: 706 // KV_HASH, LEASE_EXPIRE, NO_CHECK, RUNNER. 707 // Leave empty to skip consistency checks. 708 Checkers []string `protobuf:"bytes,102,rep,name=Checkers" json:"Checkers,omitempty" yaml:"checkers"` 709 // StressKeySize is the size of each small key written into etcd. 710 StressKeySize int32 `protobuf:"varint,201,opt,name=StressKeySize,proto3" json:"StressKeySize,omitempty" yaml:"stress-key-size"` 711 // StressKeySizeLarge is the size of each large key written into etcd. 712 StressKeySizeLarge int32 `protobuf:"varint,202,opt,name=StressKeySizeLarge,proto3" json:"StressKeySizeLarge,omitempty" yaml:"stress-key-size-large"` 713 // StressKeySuffixRange is the count of key range written into etcd. 714 // Stress keys are created with "fmt.Sprintf("foo%016x", rand.Intn(keySuffixRange)". 715 StressKeySuffixRange int32 `protobuf:"varint,203,opt,name=StressKeySuffixRange,proto3" json:"StressKeySuffixRange,omitempty" yaml:"stress-key-suffix-range"` 716 // StressKeySuffixRangeTxn is the count of key range written into etcd txn (max 100). 717 // Stress keys are created with "fmt.Sprintf("/k%03d", i)". 718 StressKeySuffixRangeTxn int32 `protobuf:"varint,204,opt,name=StressKeySuffixRangeTxn,proto3" json:"StressKeySuffixRangeTxn,omitempty" yaml:"stress-key-suffix-range-txn"` 719 // StressKeyTxnOps is the number of operations per a transaction (max 64). 720 StressKeyTxnOps int32 `protobuf:"varint,205,opt,name=StressKeyTxnOps,proto3" json:"StressKeyTxnOps,omitempty" yaml:"stress-key-txn-ops"` 721 // StressClients is the number of concurrent stressing clients 722 // with "one" shared TCP connection. 723 StressClients int32 `protobuf:"varint,301,opt,name=StressClients,proto3" json:"StressClients,omitempty" yaml:"stress-clients"` 724 // StressQPS is the maximum number of stresser requests per second. 725 StressQPS int32 `protobuf:"varint,302,opt,name=StressQPS,proto3" json:"StressQPS,omitempty" yaml:"stress-qps"` 726 } 727 728 func (m *Tester) Reset() { *m = Tester{} } 729 func (m *Tester) String() string { return proto.CompactTextString(m) } 730 func (*Tester) ProtoMessage() {} 731 func (*Tester) Descriptor() ([]byte, []int) { return fileDescriptorRpc, []int{4} } 732 733 type Etcd struct { 734 Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty" yaml:"name"` 735 DataDir string `protobuf:"bytes,2,opt,name=DataDir,proto3" json:"DataDir,omitempty" yaml:"data-dir"` 736 WALDir string `protobuf:"bytes,3,opt,name=WALDir,proto3" json:"WALDir,omitempty" yaml:"wal-dir"` 737 // HeartbeatIntervalMs is the time (in milliseconds) of a heartbeat interval. 738 // Default value is 100, which is 100ms. 739 HeartbeatIntervalMs int64 `protobuf:"varint,11,opt,name=HeartbeatIntervalMs,proto3" json:"HeartbeatIntervalMs,omitempty" yaml:"heartbeat-interval"` 740 // ElectionTimeoutMs is the time (in milliseconds) for an election to timeout. 741 // Default value is 1000, which is 1s. 742 ElectionTimeoutMs int64 `protobuf:"varint,12,opt,name=ElectionTimeoutMs,proto3" json:"ElectionTimeoutMs,omitempty" yaml:"election-timeout"` 743 ListenClientURLs []string `protobuf:"bytes,21,rep,name=ListenClientURLs" json:"ListenClientURLs,omitempty" yaml:"listen-client-urls"` 744 AdvertiseClientURLs []string `protobuf:"bytes,22,rep,name=AdvertiseClientURLs" json:"AdvertiseClientURLs,omitempty" yaml:"advertise-client-urls"` 745 ClientAutoTLS bool `protobuf:"varint,23,opt,name=ClientAutoTLS,proto3" json:"ClientAutoTLS,omitempty" yaml:"auto-tls"` 746 ClientCertAuth bool `protobuf:"varint,24,opt,name=ClientCertAuth,proto3" json:"ClientCertAuth,omitempty" yaml:"client-cert-auth"` 747 ClientCertFile string `protobuf:"bytes,25,opt,name=ClientCertFile,proto3" json:"ClientCertFile,omitempty" yaml:"cert-file"` 748 ClientKeyFile string `protobuf:"bytes,26,opt,name=ClientKeyFile,proto3" json:"ClientKeyFile,omitempty" yaml:"key-file"` 749 ClientTrustedCAFile string `protobuf:"bytes,27,opt,name=ClientTrustedCAFile,proto3" json:"ClientTrustedCAFile,omitempty" yaml:"trusted-ca-file"` 750 ListenPeerURLs []string `protobuf:"bytes,31,rep,name=ListenPeerURLs" json:"ListenPeerURLs,omitempty" yaml:"listen-peer-urls"` 751 AdvertisePeerURLs []string `protobuf:"bytes,32,rep,name=AdvertisePeerURLs" json:"AdvertisePeerURLs,omitempty" yaml:"initial-advertise-peer-urls"` 752 PeerAutoTLS bool `protobuf:"varint,33,opt,name=PeerAutoTLS,proto3" json:"PeerAutoTLS,omitempty" yaml:"peer-auto-tls"` 753 PeerClientCertAuth bool `protobuf:"varint,34,opt,name=PeerClientCertAuth,proto3" json:"PeerClientCertAuth,omitempty" yaml:"peer-client-cert-auth"` 754 PeerCertFile string `protobuf:"bytes,35,opt,name=PeerCertFile,proto3" json:"PeerCertFile,omitempty" yaml:"peer-cert-file"` 755 PeerKeyFile string `protobuf:"bytes,36,opt,name=PeerKeyFile,proto3" json:"PeerKeyFile,omitempty" yaml:"peer-key-file"` 756 PeerTrustedCAFile string `protobuf:"bytes,37,opt,name=PeerTrustedCAFile,proto3" json:"PeerTrustedCAFile,omitempty" yaml:"peer-trusted-ca-file"` 757 InitialCluster string `protobuf:"bytes,41,opt,name=InitialCluster,proto3" json:"InitialCluster,omitempty" yaml:"initial-cluster"` 758 InitialClusterState string `protobuf:"bytes,42,opt,name=InitialClusterState,proto3" json:"InitialClusterState,omitempty" yaml:"initial-cluster-state"` 759 InitialClusterToken string `protobuf:"bytes,43,opt,name=InitialClusterToken,proto3" json:"InitialClusterToken,omitempty" yaml:"initial-cluster-token"` 760 SnapshotCount int64 `protobuf:"varint,51,opt,name=SnapshotCount,proto3" json:"SnapshotCount,omitempty" yaml:"snapshot-count"` 761 QuotaBackendBytes int64 `protobuf:"varint,52,opt,name=QuotaBackendBytes,proto3" json:"QuotaBackendBytes,omitempty" yaml:"quota-backend-bytes"` 762 PreVote bool `protobuf:"varint,63,opt,name=PreVote,proto3" json:"PreVote,omitempty" yaml:"pre-vote"` 763 InitialCorruptCheck bool `protobuf:"varint,64,opt,name=InitialCorruptCheck,proto3" json:"InitialCorruptCheck,omitempty" yaml:"initial-corrupt-check"` 764 } 765 766 func (m *Etcd) Reset() { *m = Etcd{} } 767 func (m *Etcd) String() string { return proto.CompactTextString(m) } 768 func (*Etcd) ProtoMessage() {} 769 func (*Etcd) Descriptor() ([]byte, []int) { return fileDescriptorRpc, []int{5} } 770 771 func init() { 772 proto.RegisterType((*Request)(nil), "rpcpb.Request") 773 proto.RegisterType((*SnapshotInfo)(nil), "rpcpb.SnapshotInfo") 774 proto.RegisterType((*Response)(nil), "rpcpb.Response") 775 proto.RegisterType((*Member)(nil), "rpcpb.Member") 776 proto.RegisterType((*Tester)(nil), "rpcpb.Tester") 777 proto.RegisterType((*Etcd)(nil), "rpcpb.Etcd") 778 proto.RegisterEnum("rpcpb.Operation", Operation_name, Operation_value) 779 proto.RegisterEnum("rpcpb.Case", Case_name, Case_value) 780 proto.RegisterEnum("rpcpb.Stresser", Stresser_name, Stresser_value) 781 proto.RegisterEnum("rpcpb.Checker", Checker_name, Checker_value) 782 } 783 784 // Reference imports to suppress errors if they are not otherwise used. 785 var _ context.Context 786 var _ grpc.ClientConn 787 788 // This is a compile-time assertion to ensure that this generated file 789 // is compatible with the grpc package it is being compiled against. 790 const _ = grpc.SupportPackageIsVersion4 791 792 // Client API for Transport service 793 794 type TransportClient interface { 795 Transport(ctx context.Context, opts ...grpc.CallOption) (Transport_TransportClient, error) 796 } 797 798 type transportClient struct { 799 cc *grpc.ClientConn 800 } 801 802 func NewTransportClient(cc *grpc.ClientConn) TransportClient { 803 return &transportClient{cc} 804 } 805 806 func (c *transportClient) Transport(ctx context.Context, opts ...grpc.CallOption) (Transport_TransportClient, error) { 807 stream, err := grpc.NewClientStream(ctx, &_Transport_serviceDesc.Streams[0], c.cc, "/rpcpb.Transport/Transport", opts...) 808 if err != nil { 809 return nil, err 810 } 811 x := &transportTransportClient{stream} 812 return x, nil 813 } 814 815 type Transport_TransportClient interface { 816 Send(*Request) error 817 Recv() (*Response, error) 818 grpc.ClientStream 819 } 820 821 type transportTransportClient struct { 822 grpc.ClientStream 823 } 824 825 func (x *transportTransportClient) Send(m *Request) error { 826 return x.ClientStream.SendMsg(m) 827 } 828 829 func (x *transportTransportClient) Recv() (*Response, error) { 830 m := new(Response) 831 if err := x.ClientStream.RecvMsg(m); err != nil { 832 return nil, err 833 } 834 return m, nil 835 } 836 837 // Server API for Transport service 838 839 type TransportServer interface { 840 Transport(Transport_TransportServer) error 841 } 842 843 func RegisterTransportServer(s *grpc.Server, srv TransportServer) { 844 s.RegisterService(&_Transport_serviceDesc, srv) 845 } 846 847 func _Transport_Transport_Handler(srv interface{}, stream grpc.ServerStream) error { 848 return srv.(TransportServer).Transport(&transportTransportServer{stream}) 849 } 850 851 type Transport_TransportServer interface { 852 Send(*Response) error 853 Recv() (*Request, error) 854 grpc.ServerStream 855 } 856 857 type transportTransportServer struct { 858 grpc.ServerStream 859 } 860 861 func (x *transportTransportServer) Send(m *Response) error { 862 return x.ServerStream.SendMsg(m) 863 } 864 865 func (x *transportTransportServer) Recv() (*Request, error) { 866 m := new(Request) 867 if err := x.ServerStream.RecvMsg(m); err != nil { 868 return nil, err 869 } 870 return m, nil 871 } 872 873 var _Transport_serviceDesc = grpc.ServiceDesc{ 874 ServiceName: "rpcpb.Transport", 875 HandlerType: (*TransportServer)(nil), 876 Methods: []grpc.MethodDesc{}, 877 Streams: []grpc.StreamDesc{ 878 { 879 StreamName: "Transport", 880 Handler: _Transport_Transport_Handler, 881 ServerStreams: true, 882 ClientStreams: true, 883 }, 884 }, 885 Metadata: "rpcpb/rpc.proto", 886 } 887 888 func (m *Request) Marshal() (dAtA []byte, err error) { 889 size := m.Size() 890 dAtA = make([]byte, size) 891 n, err := m.MarshalTo(dAtA) 892 if err != nil { 893 return nil, err 894 } 895 return dAtA[:n], nil 896 } 897 898 func (m *Request) MarshalTo(dAtA []byte) (int, error) { 899 var i int 900 _ = i 901 var l int 902 _ = l 903 if m.Operation != 0 { 904 dAtA[i] = 0x8 905 i++ 906 i = encodeVarintRpc(dAtA, i, uint64(m.Operation)) 907 } 908 if m.Member != nil { 909 dAtA[i] = 0x12 910 i++ 911 i = encodeVarintRpc(dAtA, i, uint64(m.Member.Size())) 912 n1, err := m.Member.MarshalTo(dAtA[i:]) 913 if err != nil { 914 return 0, err 915 } 916 i += n1 917 } 918 if m.Tester != nil { 919 dAtA[i] = 0x1a 920 i++ 921 i = encodeVarintRpc(dAtA, i, uint64(m.Tester.Size())) 922 n2, err := m.Tester.MarshalTo(dAtA[i:]) 923 if err != nil { 924 return 0, err 925 } 926 i += n2 927 } 928 return i, nil 929 } 930 931 func (m *SnapshotInfo) Marshal() (dAtA []byte, err error) { 932 size := m.Size() 933 dAtA = make([]byte, size) 934 n, err := m.MarshalTo(dAtA) 935 if err != nil { 936 return nil, err 937 } 938 return dAtA[:n], nil 939 } 940 941 func (m *SnapshotInfo) MarshalTo(dAtA []byte) (int, error) { 942 var i int 943 _ = i 944 var l int 945 _ = l 946 if len(m.MemberName) > 0 { 947 dAtA[i] = 0xa 948 i++ 949 i = encodeVarintRpc(dAtA, i, uint64(len(m.MemberName))) 950 i += copy(dAtA[i:], m.MemberName) 951 } 952 if len(m.MemberClientURLs) > 0 { 953 for _, s := range m.MemberClientURLs { 954 dAtA[i] = 0x12 955 i++ 956 l = len(s) 957 for l >= 1<<7 { 958 dAtA[i] = uint8(uint64(l)&0x7f | 0x80) 959 l >>= 7 960 i++ 961 } 962 dAtA[i] = uint8(l) 963 i++ 964 i += copy(dAtA[i:], s) 965 } 966 } 967 if len(m.SnapshotPath) > 0 { 968 dAtA[i] = 0x1a 969 i++ 970 i = encodeVarintRpc(dAtA, i, uint64(len(m.SnapshotPath))) 971 i += copy(dAtA[i:], m.SnapshotPath) 972 } 973 if len(m.SnapshotFileSize) > 0 { 974 dAtA[i] = 0x22 975 i++ 976 i = encodeVarintRpc(dAtA, i, uint64(len(m.SnapshotFileSize))) 977 i += copy(dAtA[i:], m.SnapshotFileSize) 978 } 979 if len(m.SnapshotTotalSize) > 0 { 980 dAtA[i] = 0x2a 981 i++ 982 i = encodeVarintRpc(dAtA, i, uint64(len(m.SnapshotTotalSize))) 983 i += copy(dAtA[i:], m.SnapshotTotalSize) 984 } 985 if m.SnapshotTotalKey != 0 { 986 dAtA[i] = 0x30 987 i++ 988 i = encodeVarintRpc(dAtA, i, uint64(m.SnapshotTotalKey)) 989 } 990 if m.SnapshotHash != 0 { 991 dAtA[i] = 0x38 992 i++ 993 i = encodeVarintRpc(dAtA, i, uint64(m.SnapshotHash)) 994 } 995 if m.SnapshotRevision != 0 { 996 dAtA[i] = 0x40 997 i++ 998 i = encodeVarintRpc(dAtA, i, uint64(m.SnapshotRevision)) 999 } 1000 if len(m.Took) > 0 { 1001 dAtA[i] = 0x4a 1002 i++ 1003 i = encodeVarintRpc(dAtA, i, uint64(len(m.Took))) 1004 i += copy(dAtA[i:], m.Took) 1005 } 1006 return i, nil 1007 } 1008 1009 func (m *Response) Marshal() (dAtA []byte, err error) { 1010 size := m.Size() 1011 dAtA = make([]byte, size) 1012 n, err := m.MarshalTo(dAtA) 1013 if err != nil { 1014 return nil, err 1015 } 1016 return dAtA[:n], nil 1017 } 1018 1019 func (m *Response) MarshalTo(dAtA []byte) (int, error) { 1020 var i int 1021 _ = i 1022 var l int 1023 _ = l 1024 if m.Success { 1025 dAtA[i] = 0x8 1026 i++ 1027 if m.Success { 1028 dAtA[i] = 1 1029 } else { 1030 dAtA[i] = 0 1031 } 1032 i++ 1033 } 1034 if len(m.Status) > 0 { 1035 dAtA[i] = 0x12 1036 i++ 1037 i = encodeVarintRpc(dAtA, i, uint64(len(m.Status))) 1038 i += copy(dAtA[i:], m.Status) 1039 } 1040 if m.Member != nil { 1041 dAtA[i] = 0x1a 1042 i++ 1043 i = encodeVarintRpc(dAtA, i, uint64(m.Member.Size())) 1044 n3, err := m.Member.MarshalTo(dAtA[i:]) 1045 if err != nil { 1046 return 0, err 1047 } 1048 i += n3 1049 } 1050 if m.SnapshotInfo != nil { 1051 dAtA[i] = 0x22 1052 i++ 1053 i = encodeVarintRpc(dAtA, i, uint64(m.SnapshotInfo.Size())) 1054 n4, err := m.SnapshotInfo.MarshalTo(dAtA[i:]) 1055 if err != nil { 1056 return 0, err 1057 } 1058 i += n4 1059 } 1060 return i, nil 1061 } 1062 1063 func (m *Member) Marshal() (dAtA []byte, err error) { 1064 size := m.Size() 1065 dAtA = make([]byte, size) 1066 n, err := m.MarshalTo(dAtA) 1067 if err != nil { 1068 return nil, err 1069 } 1070 return dAtA[:n], nil 1071 } 1072 1073 func (m *Member) MarshalTo(dAtA []byte) (int, error) { 1074 var i int 1075 _ = i 1076 var l int 1077 _ = l 1078 if len(m.EtcdExecPath) > 0 { 1079 dAtA[i] = 0xa 1080 i++ 1081 i = encodeVarintRpc(dAtA, i, uint64(len(m.EtcdExecPath))) 1082 i += copy(dAtA[i:], m.EtcdExecPath) 1083 } 1084 if len(m.AgentAddr) > 0 { 1085 dAtA[i] = 0x5a 1086 i++ 1087 i = encodeVarintRpc(dAtA, i, uint64(len(m.AgentAddr))) 1088 i += copy(dAtA[i:], m.AgentAddr) 1089 } 1090 if len(m.FailpointHTTPAddr) > 0 { 1091 dAtA[i] = 0x62 1092 i++ 1093 i = encodeVarintRpc(dAtA, i, uint64(len(m.FailpointHTTPAddr))) 1094 i += copy(dAtA[i:], m.FailpointHTTPAddr) 1095 } 1096 if len(m.BaseDir) > 0 { 1097 dAtA[i] = 0xaa 1098 i++ 1099 dAtA[i] = 0x6 1100 i++ 1101 i = encodeVarintRpc(dAtA, i, uint64(len(m.BaseDir))) 1102 i += copy(dAtA[i:], m.BaseDir) 1103 } 1104 if len(m.EtcdLogPath) > 0 { 1105 dAtA[i] = 0xb2 1106 i++ 1107 dAtA[i] = 0x6 1108 i++ 1109 i = encodeVarintRpc(dAtA, i, uint64(len(m.EtcdLogPath))) 1110 i += copy(dAtA[i:], m.EtcdLogPath) 1111 } 1112 if m.EtcdClientProxy { 1113 dAtA[i] = 0xc8 1114 i++ 1115 dAtA[i] = 0xc 1116 i++ 1117 if m.EtcdClientProxy { 1118 dAtA[i] = 1 1119 } else { 1120 dAtA[i] = 0 1121 } 1122 i++ 1123 } 1124 if m.EtcdPeerProxy { 1125 dAtA[i] = 0xd0 1126 i++ 1127 dAtA[i] = 0xc 1128 i++ 1129 if m.EtcdPeerProxy { 1130 dAtA[i] = 1 1131 } else { 1132 dAtA[i] = 0 1133 } 1134 i++ 1135 } 1136 if len(m.EtcdClientEndpoint) > 0 { 1137 dAtA[i] = 0xea 1138 i++ 1139 dAtA[i] = 0x12 1140 i++ 1141 i = encodeVarintRpc(dAtA, i, uint64(len(m.EtcdClientEndpoint))) 1142 i += copy(dAtA[i:], m.EtcdClientEndpoint) 1143 } 1144 if m.Etcd != nil { 1145 dAtA[i] = 0xf2 1146 i++ 1147 dAtA[i] = 0x12 1148 i++ 1149 i = encodeVarintRpc(dAtA, i, uint64(m.Etcd.Size())) 1150 n5, err := m.Etcd.MarshalTo(dAtA[i:]) 1151 if err != nil { 1152 return 0, err 1153 } 1154 i += n5 1155 } 1156 if m.EtcdOnSnapshotRestore != nil { 1157 dAtA[i] = 0xfa 1158 i++ 1159 dAtA[i] = 0x12 1160 i++ 1161 i = encodeVarintRpc(dAtA, i, uint64(m.EtcdOnSnapshotRestore.Size())) 1162 n6, err := m.EtcdOnSnapshotRestore.MarshalTo(dAtA[i:]) 1163 if err != nil { 1164 return 0, err 1165 } 1166 i += n6 1167 } 1168 if len(m.ClientCertData) > 0 { 1169 dAtA[i] = 0x8a 1170 i++ 1171 dAtA[i] = 0x19 1172 i++ 1173 i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientCertData))) 1174 i += copy(dAtA[i:], m.ClientCertData) 1175 } 1176 if len(m.ClientCertPath) > 0 { 1177 dAtA[i] = 0x92 1178 i++ 1179 dAtA[i] = 0x19 1180 i++ 1181 i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientCertPath))) 1182 i += copy(dAtA[i:], m.ClientCertPath) 1183 } 1184 if len(m.ClientKeyData) > 0 { 1185 dAtA[i] = 0x9a 1186 i++ 1187 dAtA[i] = 0x19 1188 i++ 1189 i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientKeyData))) 1190 i += copy(dAtA[i:], m.ClientKeyData) 1191 } 1192 if len(m.ClientKeyPath) > 0 { 1193 dAtA[i] = 0xa2 1194 i++ 1195 dAtA[i] = 0x19 1196 i++ 1197 i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientKeyPath))) 1198 i += copy(dAtA[i:], m.ClientKeyPath) 1199 } 1200 if len(m.ClientTrustedCAData) > 0 { 1201 dAtA[i] = 0xaa 1202 i++ 1203 dAtA[i] = 0x19 1204 i++ 1205 i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientTrustedCAData))) 1206 i += copy(dAtA[i:], m.ClientTrustedCAData) 1207 } 1208 if len(m.ClientTrustedCAPath) > 0 { 1209 dAtA[i] = 0xb2 1210 i++ 1211 dAtA[i] = 0x19 1212 i++ 1213 i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientTrustedCAPath))) 1214 i += copy(dAtA[i:], m.ClientTrustedCAPath) 1215 } 1216 if len(m.PeerCertData) > 0 { 1217 dAtA[i] = 0xaa 1218 i++ 1219 dAtA[i] = 0x1f 1220 i++ 1221 i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerCertData))) 1222 i += copy(dAtA[i:], m.PeerCertData) 1223 } 1224 if len(m.PeerCertPath) > 0 { 1225 dAtA[i] = 0xb2 1226 i++ 1227 dAtA[i] = 0x1f 1228 i++ 1229 i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerCertPath))) 1230 i += copy(dAtA[i:], m.PeerCertPath) 1231 } 1232 if len(m.PeerKeyData) > 0 { 1233 dAtA[i] = 0xba 1234 i++ 1235 dAtA[i] = 0x1f 1236 i++ 1237 i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerKeyData))) 1238 i += copy(dAtA[i:], m.PeerKeyData) 1239 } 1240 if len(m.PeerKeyPath) > 0 { 1241 dAtA[i] = 0xc2 1242 i++ 1243 dAtA[i] = 0x1f 1244 i++ 1245 i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerKeyPath))) 1246 i += copy(dAtA[i:], m.PeerKeyPath) 1247 } 1248 if len(m.PeerTrustedCAData) > 0 { 1249 dAtA[i] = 0xca 1250 i++ 1251 dAtA[i] = 0x1f 1252 i++ 1253 i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerTrustedCAData))) 1254 i += copy(dAtA[i:], m.PeerTrustedCAData) 1255 } 1256 if len(m.PeerTrustedCAPath) > 0 { 1257 dAtA[i] = 0xd2 1258 i++ 1259 dAtA[i] = 0x1f 1260 i++ 1261 i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerTrustedCAPath))) 1262 i += copy(dAtA[i:], m.PeerTrustedCAPath) 1263 } 1264 if len(m.SnapshotPath) > 0 { 1265 dAtA[i] = 0xca 1266 i++ 1267 dAtA[i] = 0x25 1268 i++ 1269 i = encodeVarintRpc(dAtA, i, uint64(len(m.SnapshotPath))) 1270 i += copy(dAtA[i:], m.SnapshotPath) 1271 } 1272 if m.SnapshotInfo != nil { 1273 dAtA[i] = 0xd2 1274 i++ 1275 dAtA[i] = 0x25 1276 i++ 1277 i = encodeVarintRpc(dAtA, i, uint64(m.SnapshotInfo.Size())) 1278 n7, err := m.SnapshotInfo.MarshalTo(dAtA[i:]) 1279 if err != nil { 1280 return 0, err 1281 } 1282 i += n7 1283 } 1284 return i, nil 1285 } 1286 1287 func (m *Tester) Marshal() (dAtA []byte, err error) { 1288 size := m.Size() 1289 dAtA = make([]byte, size) 1290 n, err := m.MarshalTo(dAtA) 1291 if err != nil { 1292 return nil, err 1293 } 1294 return dAtA[:n], nil 1295 } 1296 1297 func (m *Tester) MarshalTo(dAtA []byte) (int, error) { 1298 var i int 1299 _ = i 1300 var l int 1301 _ = l 1302 if len(m.DataDir) > 0 { 1303 dAtA[i] = 0xa 1304 i++ 1305 i = encodeVarintRpc(dAtA, i, uint64(len(m.DataDir))) 1306 i += copy(dAtA[i:], m.DataDir) 1307 } 1308 if len(m.Network) > 0 { 1309 dAtA[i] = 0x12 1310 i++ 1311 i = encodeVarintRpc(dAtA, i, uint64(len(m.Network))) 1312 i += copy(dAtA[i:], m.Network) 1313 } 1314 if len(m.Addr) > 0 { 1315 dAtA[i] = 0x1a 1316 i++ 1317 i = encodeVarintRpc(dAtA, i, uint64(len(m.Addr))) 1318 i += copy(dAtA[i:], m.Addr) 1319 } 1320 if m.DelayLatencyMs != 0 { 1321 dAtA[i] = 0x58 1322 i++ 1323 i = encodeVarintRpc(dAtA, i, uint64(m.DelayLatencyMs)) 1324 } 1325 if m.DelayLatencyMsRv != 0 { 1326 dAtA[i] = 0x60 1327 i++ 1328 i = encodeVarintRpc(dAtA, i, uint64(m.DelayLatencyMsRv)) 1329 } 1330 if m.UpdatedDelayLatencyMs != 0 { 1331 dAtA[i] = 0x68 1332 i++ 1333 i = encodeVarintRpc(dAtA, i, uint64(m.UpdatedDelayLatencyMs)) 1334 } 1335 if m.RoundLimit != 0 { 1336 dAtA[i] = 0xa8 1337 i++ 1338 dAtA[i] = 0x1 1339 i++ 1340 i = encodeVarintRpc(dAtA, i, uint64(m.RoundLimit)) 1341 } 1342 if m.ExitOnCaseFail { 1343 dAtA[i] = 0xb0 1344 i++ 1345 dAtA[i] = 0x1 1346 i++ 1347 if m.ExitOnCaseFail { 1348 dAtA[i] = 1 1349 } else { 1350 dAtA[i] = 0 1351 } 1352 i++ 1353 } 1354 if m.EnablePprof { 1355 dAtA[i] = 0xb8 1356 i++ 1357 dAtA[i] = 0x1 1358 i++ 1359 if m.EnablePprof { 1360 dAtA[i] = 1 1361 } else { 1362 dAtA[i] = 0 1363 } 1364 i++ 1365 } 1366 if m.CaseDelayMs != 0 { 1367 dAtA[i] = 0xf8 1368 i++ 1369 dAtA[i] = 0x1 1370 i++ 1371 i = encodeVarintRpc(dAtA, i, uint64(m.CaseDelayMs)) 1372 } 1373 if m.CaseShuffle { 1374 dAtA[i] = 0x80 1375 i++ 1376 dAtA[i] = 0x2 1377 i++ 1378 if m.CaseShuffle { 1379 dAtA[i] = 1 1380 } else { 1381 dAtA[i] = 0 1382 } 1383 i++ 1384 } 1385 if len(m.Cases) > 0 { 1386 for _, s := range m.Cases { 1387 dAtA[i] = 0x8a 1388 i++ 1389 dAtA[i] = 0x2 1390 i++ 1391 l = len(s) 1392 for l >= 1<<7 { 1393 dAtA[i] = uint8(uint64(l)&0x7f | 0x80) 1394 l >>= 7 1395 i++ 1396 } 1397 dAtA[i] = uint8(l) 1398 i++ 1399 i += copy(dAtA[i:], s) 1400 } 1401 } 1402 if len(m.FailpointCommands) > 0 { 1403 for _, s := range m.FailpointCommands { 1404 dAtA[i] = 0x92 1405 i++ 1406 dAtA[i] = 0x2 1407 i++ 1408 l = len(s) 1409 for l >= 1<<7 { 1410 dAtA[i] = uint8(uint64(l)&0x7f | 0x80) 1411 l >>= 7 1412 i++ 1413 } 1414 dAtA[i] = uint8(l) 1415 i++ 1416 i += copy(dAtA[i:], s) 1417 } 1418 } 1419 if len(m.RunnerExecPath) > 0 { 1420 dAtA[i] = 0xca 1421 i++ 1422 dAtA[i] = 0x2 1423 i++ 1424 i = encodeVarintRpc(dAtA, i, uint64(len(m.RunnerExecPath))) 1425 i += copy(dAtA[i:], m.RunnerExecPath) 1426 } 1427 if len(m.ExternalExecPath) > 0 { 1428 dAtA[i] = 0xd2 1429 i++ 1430 dAtA[i] = 0x2 1431 i++ 1432 i = encodeVarintRpc(dAtA, i, uint64(len(m.ExternalExecPath))) 1433 i += copy(dAtA[i:], m.ExternalExecPath) 1434 } 1435 if len(m.Stressers) > 0 { 1436 for _, s := range m.Stressers { 1437 dAtA[i] = 0xaa 1438 i++ 1439 dAtA[i] = 0x6 1440 i++ 1441 l = len(s) 1442 for l >= 1<<7 { 1443 dAtA[i] = uint8(uint64(l)&0x7f | 0x80) 1444 l >>= 7 1445 i++ 1446 } 1447 dAtA[i] = uint8(l) 1448 i++ 1449 i += copy(dAtA[i:], s) 1450 } 1451 } 1452 if len(m.Checkers) > 0 { 1453 for _, s := range m.Checkers { 1454 dAtA[i] = 0xb2 1455 i++ 1456 dAtA[i] = 0x6 1457 i++ 1458 l = len(s) 1459 for l >= 1<<7 { 1460 dAtA[i] = uint8(uint64(l)&0x7f | 0x80) 1461 l >>= 7 1462 i++ 1463 } 1464 dAtA[i] = uint8(l) 1465 i++ 1466 i += copy(dAtA[i:], s) 1467 } 1468 } 1469 if m.StressKeySize != 0 { 1470 dAtA[i] = 0xc8 1471 i++ 1472 dAtA[i] = 0xc 1473 i++ 1474 i = encodeVarintRpc(dAtA, i, uint64(m.StressKeySize)) 1475 } 1476 if m.StressKeySizeLarge != 0 { 1477 dAtA[i] = 0xd0 1478 i++ 1479 dAtA[i] = 0xc 1480 i++ 1481 i = encodeVarintRpc(dAtA, i, uint64(m.StressKeySizeLarge)) 1482 } 1483 if m.StressKeySuffixRange != 0 { 1484 dAtA[i] = 0xd8 1485 i++ 1486 dAtA[i] = 0xc 1487 i++ 1488 i = encodeVarintRpc(dAtA, i, uint64(m.StressKeySuffixRange)) 1489 } 1490 if m.StressKeySuffixRangeTxn != 0 { 1491 dAtA[i] = 0xe0 1492 i++ 1493 dAtA[i] = 0xc 1494 i++ 1495 i = encodeVarintRpc(dAtA, i, uint64(m.StressKeySuffixRangeTxn)) 1496 } 1497 if m.StressKeyTxnOps != 0 { 1498 dAtA[i] = 0xe8 1499 i++ 1500 dAtA[i] = 0xc 1501 i++ 1502 i = encodeVarintRpc(dAtA, i, uint64(m.StressKeyTxnOps)) 1503 } 1504 if m.StressClients != 0 { 1505 dAtA[i] = 0xe8 1506 i++ 1507 dAtA[i] = 0x12 1508 i++ 1509 i = encodeVarintRpc(dAtA, i, uint64(m.StressClients)) 1510 } 1511 if m.StressQPS != 0 { 1512 dAtA[i] = 0xf0 1513 i++ 1514 dAtA[i] = 0x12 1515 i++ 1516 i = encodeVarintRpc(dAtA, i, uint64(m.StressQPS)) 1517 } 1518 return i, nil 1519 } 1520 1521 func (m *Etcd) Marshal() (dAtA []byte, err error) { 1522 size := m.Size() 1523 dAtA = make([]byte, size) 1524 n, err := m.MarshalTo(dAtA) 1525 if err != nil { 1526 return nil, err 1527 } 1528 return dAtA[:n], nil 1529 } 1530 1531 func (m *Etcd) MarshalTo(dAtA []byte) (int, error) { 1532 var i int 1533 _ = i 1534 var l int 1535 _ = l 1536 if len(m.Name) > 0 { 1537 dAtA[i] = 0xa 1538 i++ 1539 i = encodeVarintRpc(dAtA, i, uint64(len(m.Name))) 1540 i += copy(dAtA[i:], m.Name) 1541 } 1542 if len(m.DataDir) > 0 { 1543 dAtA[i] = 0x12 1544 i++ 1545 i = encodeVarintRpc(dAtA, i, uint64(len(m.DataDir))) 1546 i += copy(dAtA[i:], m.DataDir) 1547 } 1548 if len(m.WALDir) > 0 { 1549 dAtA[i] = 0x1a 1550 i++ 1551 i = encodeVarintRpc(dAtA, i, uint64(len(m.WALDir))) 1552 i += copy(dAtA[i:], m.WALDir) 1553 } 1554 if m.HeartbeatIntervalMs != 0 { 1555 dAtA[i] = 0x58 1556 i++ 1557 i = encodeVarintRpc(dAtA, i, uint64(m.HeartbeatIntervalMs)) 1558 } 1559 if m.ElectionTimeoutMs != 0 { 1560 dAtA[i] = 0x60 1561 i++ 1562 i = encodeVarintRpc(dAtA, i, uint64(m.ElectionTimeoutMs)) 1563 } 1564 if len(m.ListenClientURLs) > 0 { 1565 for _, s := range m.ListenClientURLs { 1566 dAtA[i] = 0xaa 1567 i++ 1568 dAtA[i] = 0x1 1569 i++ 1570 l = len(s) 1571 for l >= 1<<7 { 1572 dAtA[i] = uint8(uint64(l)&0x7f | 0x80) 1573 l >>= 7 1574 i++ 1575 } 1576 dAtA[i] = uint8(l) 1577 i++ 1578 i += copy(dAtA[i:], s) 1579 } 1580 } 1581 if len(m.AdvertiseClientURLs) > 0 { 1582 for _, s := range m.AdvertiseClientURLs { 1583 dAtA[i] = 0xb2 1584 i++ 1585 dAtA[i] = 0x1 1586 i++ 1587 l = len(s) 1588 for l >= 1<<7 { 1589 dAtA[i] = uint8(uint64(l)&0x7f | 0x80) 1590 l >>= 7 1591 i++ 1592 } 1593 dAtA[i] = uint8(l) 1594 i++ 1595 i += copy(dAtA[i:], s) 1596 } 1597 } 1598 if m.ClientAutoTLS { 1599 dAtA[i] = 0xb8 1600 i++ 1601 dAtA[i] = 0x1 1602 i++ 1603 if m.ClientAutoTLS { 1604 dAtA[i] = 1 1605 } else { 1606 dAtA[i] = 0 1607 } 1608 i++ 1609 } 1610 if m.ClientCertAuth { 1611 dAtA[i] = 0xc0 1612 i++ 1613 dAtA[i] = 0x1 1614 i++ 1615 if m.ClientCertAuth { 1616 dAtA[i] = 1 1617 } else { 1618 dAtA[i] = 0 1619 } 1620 i++ 1621 } 1622 if len(m.ClientCertFile) > 0 { 1623 dAtA[i] = 0xca 1624 i++ 1625 dAtA[i] = 0x1 1626 i++ 1627 i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientCertFile))) 1628 i += copy(dAtA[i:], m.ClientCertFile) 1629 } 1630 if len(m.ClientKeyFile) > 0 { 1631 dAtA[i] = 0xd2 1632 i++ 1633 dAtA[i] = 0x1 1634 i++ 1635 i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientKeyFile))) 1636 i += copy(dAtA[i:], m.ClientKeyFile) 1637 } 1638 if len(m.ClientTrustedCAFile) > 0 { 1639 dAtA[i] = 0xda 1640 i++ 1641 dAtA[i] = 0x1 1642 i++ 1643 i = encodeVarintRpc(dAtA, i, uint64(len(m.ClientTrustedCAFile))) 1644 i += copy(dAtA[i:], m.ClientTrustedCAFile) 1645 } 1646 if len(m.ListenPeerURLs) > 0 { 1647 for _, s := range m.ListenPeerURLs { 1648 dAtA[i] = 0xfa 1649 i++ 1650 dAtA[i] = 0x1 1651 i++ 1652 l = len(s) 1653 for l >= 1<<7 { 1654 dAtA[i] = uint8(uint64(l)&0x7f | 0x80) 1655 l >>= 7 1656 i++ 1657 } 1658 dAtA[i] = uint8(l) 1659 i++ 1660 i += copy(dAtA[i:], s) 1661 } 1662 } 1663 if len(m.AdvertisePeerURLs) > 0 { 1664 for _, s := range m.AdvertisePeerURLs { 1665 dAtA[i] = 0x82 1666 i++ 1667 dAtA[i] = 0x2 1668 i++ 1669 l = len(s) 1670 for l >= 1<<7 { 1671 dAtA[i] = uint8(uint64(l)&0x7f | 0x80) 1672 l >>= 7 1673 i++ 1674 } 1675 dAtA[i] = uint8(l) 1676 i++ 1677 i += copy(dAtA[i:], s) 1678 } 1679 } 1680 if m.PeerAutoTLS { 1681 dAtA[i] = 0x88 1682 i++ 1683 dAtA[i] = 0x2 1684 i++ 1685 if m.PeerAutoTLS { 1686 dAtA[i] = 1 1687 } else { 1688 dAtA[i] = 0 1689 } 1690 i++ 1691 } 1692 if m.PeerClientCertAuth { 1693 dAtA[i] = 0x90 1694 i++ 1695 dAtA[i] = 0x2 1696 i++ 1697 if m.PeerClientCertAuth { 1698 dAtA[i] = 1 1699 } else { 1700 dAtA[i] = 0 1701 } 1702 i++ 1703 } 1704 if len(m.PeerCertFile) > 0 { 1705 dAtA[i] = 0x9a 1706 i++ 1707 dAtA[i] = 0x2 1708 i++ 1709 i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerCertFile))) 1710 i += copy(dAtA[i:], m.PeerCertFile) 1711 } 1712 if len(m.PeerKeyFile) > 0 { 1713 dAtA[i] = 0xa2 1714 i++ 1715 dAtA[i] = 0x2 1716 i++ 1717 i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerKeyFile))) 1718 i += copy(dAtA[i:], m.PeerKeyFile) 1719 } 1720 if len(m.PeerTrustedCAFile) > 0 { 1721 dAtA[i] = 0xaa 1722 i++ 1723 dAtA[i] = 0x2 1724 i++ 1725 i = encodeVarintRpc(dAtA, i, uint64(len(m.PeerTrustedCAFile))) 1726 i += copy(dAtA[i:], m.PeerTrustedCAFile) 1727 } 1728 if len(m.InitialCluster) > 0 { 1729 dAtA[i] = 0xca 1730 i++ 1731 dAtA[i] = 0x2 1732 i++ 1733 i = encodeVarintRpc(dAtA, i, uint64(len(m.InitialCluster))) 1734 i += copy(dAtA[i:], m.InitialCluster) 1735 } 1736 if len(m.InitialClusterState) > 0 { 1737 dAtA[i] = 0xd2 1738 i++ 1739 dAtA[i] = 0x2 1740 i++ 1741 i = encodeVarintRpc(dAtA, i, uint64(len(m.InitialClusterState))) 1742 i += copy(dAtA[i:], m.InitialClusterState) 1743 } 1744 if len(m.InitialClusterToken) > 0 { 1745 dAtA[i] = 0xda 1746 i++ 1747 dAtA[i] = 0x2 1748 i++ 1749 i = encodeVarintRpc(dAtA, i, uint64(len(m.InitialClusterToken))) 1750 i += copy(dAtA[i:], m.InitialClusterToken) 1751 } 1752 if m.SnapshotCount != 0 { 1753 dAtA[i] = 0x98 1754 i++ 1755 dAtA[i] = 0x3 1756 i++ 1757 i = encodeVarintRpc(dAtA, i, uint64(m.SnapshotCount)) 1758 } 1759 if m.QuotaBackendBytes != 0 { 1760 dAtA[i] = 0xa0 1761 i++ 1762 dAtA[i] = 0x3 1763 i++ 1764 i = encodeVarintRpc(dAtA, i, uint64(m.QuotaBackendBytes)) 1765 } 1766 if m.PreVote { 1767 dAtA[i] = 0xf8 1768 i++ 1769 dAtA[i] = 0x3 1770 i++ 1771 if m.PreVote { 1772 dAtA[i] = 1 1773 } else { 1774 dAtA[i] = 0 1775 } 1776 i++ 1777 } 1778 if m.InitialCorruptCheck { 1779 dAtA[i] = 0x80 1780 i++ 1781 dAtA[i] = 0x4 1782 i++ 1783 if m.InitialCorruptCheck { 1784 dAtA[i] = 1 1785 } else { 1786 dAtA[i] = 0 1787 } 1788 i++ 1789 } 1790 return i, nil 1791 } 1792 1793 func encodeVarintRpc(dAtA []byte, offset int, v uint64) int { 1794 for v >= 1<<7 { 1795 dAtA[offset] = uint8(v&0x7f | 0x80) 1796 v >>= 7 1797 offset++ 1798 } 1799 dAtA[offset] = uint8(v) 1800 return offset + 1 1801 } 1802 func (m *Request) Size() (n int) { 1803 var l int 1804 _ = l 1805 if m.Operation != 0 { 1806 n += 1 + sovRpc(uint64(m.Operation)) 1807 } 1808 if m.Member != nil { 1809 l = m.Member.Size() 1810 n += 1 + l + sovRpc(uint64(l)) 1811 } 1812 if m.Tester != nil { 1813 l = m.Tester.Size() 1814 n += 1 + l + sovRpc(uint64(l)) 1815 } 1816 return n 1817 } 1818 1819 func (m *SnapshotInfo) Size() (n int) { 1820 var l int 1821 _ = l 1822 l = len(m.MemberName) 1823 if l > 0 { 1824 n += 1 + l + sovRpc(uint64(l)) 1825 } 1826 if len(m.MemberClientURLs) > 0 { 1827 for _, s := range m.MemberClientURLs { 1828 l = len(s) 1829 n += 1 + l + sovRpc(uint64(l)) 1830 } 1831 } 1832 l = len(m.SnapshotPath) 1833 if l > 0 { 1834 n += 1 + l + sovRpc(uint64(l)) 1835 } 1836 l = len(m.SnapshotFileSize) 1837 if l > 0 { 1838 n += 1 + l + sovRpc(uint64(l)) 1839 } 1840 l = len(m.SnapshotTotalSize) 1841 if l > 0 { 1842 n += 1 + l + sovRpc(uint64(l)) 1843 } 1844 if m.SnapshotTotalKey != 0 { 1845 n += 1 + sovRpc(uint64(m.SnapshotTotalKey)) 1846 } 1847 if m.SnapshotHash != 0 { 1848 n += 1 + sovRpc(uint64(m.SnapshotHash)) 1849 } 1850 if m.SnapshotRevision != 0 { 1851 n += 1 + sovRpc(uint64(m.SnapshotRevision)) 1852 } 1853 l = len(m.Took) 1854 if l > 0 { 1855 n += 1 + l + sovRpc(uint64(l)) 1856 } 1857 return n 1858 } 1859 1860 func (m *Response) Size() (n int) { 1861 var l int 1862 _ = l 1863 if m.Success { 1864 n += 2 1865 } 1866 l = len(m.Status) 1867 if l > 0 { 1868 n += 1 + l + sovRpc(uint64(l)) 1869 } 1870 if m.Member != nil { 1871 l = m.Member.Size() 1872 n += 1 + l + sovRpc(uint64(l)) 1873 } 1874 if m.SnapshotInfo != nil { 1875 l = m.SnapshotInfo.Size() 1876 n += 1 + l + sovRpc(uint64(l)) 1877 } 1878 return n 1879 } 1880 1881 func (m *Member) Size() (n int) { 1882 var l int 1883 _ = l 1884 l = len(m.EtcdExecPath) 1885 if l > 0 { 1886 n += 1 + l + sovRpc(uint64(l)) 1887 } 1888 l = len(m.AgentAddr) 1889 if l > 0 { 1890 n += 1 + l + sovRpc(uint64(l)) 1891 } 1892 l = len(m.FailpointHTTPAddr) 1893 if l > 0 { 1894 n += 1 + l + sovRpc(uint64(l)) 1895 } 1896 l = len(m.BaseDir) 1897 if l > 0 { 1898 n += 2 + l + sovRpc(uint64(l)) 1899 } 1900 l = len(m.EtcdLogPath) 1901 if l > 0 { 1902 n += 2 + l + sovRpc(uint64(l)) 1903 } 1904 if m.EtcdClientProxy { 1905 n += 3 1906 } 1907 if m.EtcdPeerProxy { 1908 n += 3 1909 } 1910 l = len(m.EtcdClientEndpoint) 1911 if l > 0 { 1912 n += 2 + l + sovRpc(uint64(l)) 1913 } 1914 if m.Etcd != nil { 1915 l = m.Etcd.Size() 1916 n += 2 + l + sovRpc(uint64(l)) 1917 } 1918 if m.EtcdOnSnapshotRestore != nil { 1919 l = m.EtcdOnSnapshotRestore.Size() 1920 n += 2 + l + sovRpc(uint64(l)) 1921 } 1922 l = len(m.ClientCertData) 1923 if l > 0 { 1924 n += 2 + l + sovRpc(uint64(l)) 1925 } 1926 l = len(m.ClientCertPath) 1927 if l > 0 { 1928 n += 2 + l + sovRpc(uint64(l)) 1929 } 1930 l = len(m.ClientKeyData) 1931 if l > 0 { 1932 n += 2 + l + sovRpc(uint64(l)) 1933 } 1934 l = len(m.ClientKeyPath) 1935 if l > 0 { 1936 n += 2 + l + sovRpc(uint64(l)) 1937 } 1938 l = len(m.ClientTrustedCAData) 1939 if l > 0 { 1940 n += 2 + l + sovRpc(uint64(l)) 1941 } 1942 l = len(m.ClientTrustedCAPath) 1943 if l > 0 { 1944 n += 2 + l + sovRpc(uint64(l)) 1945 } 1946 l = len(m.PeerCertData) 1947 if l > 0 { 1948 n += 2 + l + sovRpc(uint64(l)) 1949 } 1950 l = len(m.PeerCertPath) 1951 if l > 0 { 1952 n += 2 + l + sovRpc(uint64(l)) 1953 } 1954 l = len(m.PeerKeyData) 1955 if l > 0 { 1956 n += 2 + l + sovRpc(uint64(l)) 1957 } 1958 l = len(m.PeerKeyPath) 1959 if l > 0 { 1960 n += 2 + l + sovRpc(uint64(l)) 1961 } 1962 l = len(m.PeerTrustedCAData) 1963 if l > 0 { 1964 n += 2 + l + sovRpc(uint64(l)) 1965 } 1966 l = len(m.PeerTrustedCAPath) 1967 if l > 0 { 1968 n += 2 + l + sovRpc(uint64(l)) 1969 } 1970 l = len(m.SnapshotPath) 1971 if l > 0 { 1972 n += 2 + l + sovRpc(uint64(l)) 1973 } 1974 if m.SnapshotInfo != nil { 1975 l = m.SnapshotInfo.Size() 1976 n += 2 + l + sovRpc(uint64(l)) 1977 } 1978 return n 1979 } 1980 1981 func (m *Tester) Size() (n int) { 1982 var l int 1983 _ = l 1984 l = len(m.DataDir) 1985 if l > 0 { 1986 n += 1 + l + sovRpc(uint64(l)) 1987 } 1988 l = len(m.Network) 1989 if l > 0 { 1990 n += 1 + l + sovRpc(uint64(l)) 1991 } 1992 l = len(m.Addr) 1993 if l > 0 { 1994 n += 1 + l + sovRpc(uint64(l)) 1995 } 1996 if m.DelayLatencyMs != 0 { 1997 n += 1 + sovRpc(uint64(m.DelayLatencyMs)) 1998 } 1999 if m.DelayLatencyMsRv != 0 { 2000 n += 1 + sovRpc(uint64(m.DelayLatencyMsRv)) 2001 } 2002 if m.UpdatedDelayLatencyMs != 0 { 2003 n += 1 + sovRpc(uint64(m.UpdatedDelayLatencyMs)) 2004 } 2005 if m.RoundLimit != 0 { 2006 n += 2 + sovRpc(uint64(m.RoundLimit)) 2007 } 2008 if m.ExitOnCaseFail { 2009 n += 3 2010 } 2011 if m.EnablePprof { 2012 n += 3 2013 } 2014 if m.CaseDelayMs != 0 { 2015 n += 2 + sovRpc(uint64(m.CaseDelayMs)) 2016 } 2017 if m.CaseShuffle { 2018 n += 3 2019 } 2020 if len(m.Cases) > 0 { 2021 for _, s := range m.Cases { 2022 l = len(s) 2023 n += 2 + l + sovRpc(uint64(l)) 2024 } 2025 } 2026 if len(m.FailpointCommands) > 0 { 2027 for _, s := range m.FailpointCommands { 2028 l = len(s) 2029 n += 2 + l + sovRpc(uint64(l)) 2030 } 2031 } 2032 l = len(m.RunnerExecPath) 2033 if l > 0 { 2034 n += 2 + l + sovRpc(uint64(l)) 2035 } 2036 l = len(m.ExternalExecPath) 2037 if l > 0 { 2038 n += 2 + l + sovRpc(uint64(l)) 2039 } 2040 if len(m.Stressers) > 0 { 2041 for _, s := range m.Stressers { 2042 l = len(s) 2043 n += 2 + l + sovRpc(uint64(l)) 2044 } 2045 } 2046 if len(m.Checkers) > 0 { 2047 for _, s := range m.Checkers { 2048 l = len(s) 2049 n += 2 + l + sovRpc(uint64(l)) 2050 } 2051 } 2052 if m.StressKeySize != 0 { 2053 n += 2 + sovRpc(uint64(m.StressKeySize)) 2054 } 2055 if m.StressKeySizeLarge != 0 { 2056 n += 2 + sovRpc(uint64(m.StressKeySizeLarge)) 2057 } 2058 if m.StressKeySuffixRange != 0 { 2059 n += 2 + sovRpc(uint64(m.StressKeySuffixRange)) 2060 } 2061 if m.StressKeySuffixRangeTxn != 0 { 2062 n += 2 + sovRpc(uint64(m.StressKeySuffixRangeTxn)) 2063 } 2064 if m.StressKeyTxnOps != 0 { 2065 n += 2 + sovRpc(uint64(m.StressKeyTxnOps)) 2066 } 2067 if m.StressClients != 0 { 2068 n += 2 + sovRpc(uint64(m.StressClients)) 2069 } 2070 if m.StressQPS != 0 { 2071 n += 2 + sovRpc(uint64(m.StressQPS)) 2072 } 2073 return n 2074 } 2075 2076 func (m *Etcd) Size() (n int) { 2077 var l int 2078 _ = l 2079 l = len(m.Name) 2080 if l > 0 { 2081 n += 1 + l + sovRpc(uint64(l)) 2082 } 2083 l = len(m.DataDir) 2084 if l > 0 { 2085 n += 1 + l + sovRpc(uint64(l)) 2086 } 2087 l = len(m.WALDir) 2088 if l > 0 { 2089 n += 1 + l + sovRpc(uint64(l)) 2090 } 2091 if m.HeartbeatIntervalMs != 0 { 2092 n += 1 + sovRpc(uint64(m.HeartbeatIntervalMs)) 2093 } 2094 if m.ElectionTimeoutMs != 0 { 2095 n += 1 + sovRpc(uint64(m.ElectionTimeoutMs)) 2096 } 2097 if len(m.ListenClientURLs) > 0 { 2098 for _, s := range m.ListenClientURLs { 2099 l = len(s) 2100 n += 2 + l + sovRpc(uint64(l)) 2101 } 2102 } 2103 if len(m.AdvertiseClientURLs) > 0 { 2104 for _, s := range m.AdvertiseClientURLs { 2105 l = len(s) 2106 n += 2 + l + sovRpc(uint64(l)) 2107 } 2108 } 2109 if m.ClientAutoTLS { 2110 n += 3 2111 } 2112 if m.ClientCertAuth { 2113 n += 3 2114 } 2115 l = len(m.ClientCertFile) 2116 if l > 0 { 2117 n += 2 + l + sovRpc(uint64(l)) 2118 } 2119 l = len(m.ClientKeyFile) 2120 if l > 0 { 2121 n += 2 + l + sovRpc(uint64(l)) 2122 } 2123 l = len(m.ClientTrustedCAFile) 2124 if l > 0 { 2125 n += 2 + l + sovRpc(uint64(l)) 2126 } 2127 if len(m.ListenPeerURLs) > 0 { 2128 for _, s := range m.ListenPeerURLs { 2129 l = len(s) 2130 n += 2 + l + sovRpc(uint64(l)) 2131 } 2132 } 2133 if len(m.AdvertisePeerURLs) > 0 { 2134 for _, s := range m.AdvertisePeerURLs { 2135 l = len(s) 2136 n += 2 + l + sovRpc(uint64(l)) 2137 } 2138 } 2139 if m.PeerAutoTLS { 2140 n += 3 2141 } 2142 if m.PeerClientCertAuth { 2143 n += 3 2144 } 2145 l = len(m.PeerCertFile) 2146 if l > 0 { 2147 n += 2 + l + sovRpc(uint64(l)) 2148 } 2149 l = len(m.PeerKeyFile) 2150 if l > 0 { 2151 n += 2 + l + sovRpc(uint64(l)) 2152 } 2153 l = len(m.PeerTrustedCAFile) 2154 if l > 0 { 2155 n += 2 + l + sovRpc(uint64(l)) 2156 } 2157 l = len(m.InitialCluster) 2158 if l > 0 { 2159 n += 2 + l + sovRpc(uint64(l)) 2160 } 2161 l = len(m.InitialClusterState) 2162 if l > 0 { 2163 n += 2 + l + sovRpc(uint64(l)) 2164 } 2165 l = len(m.InitialClusterToken) 2166 if l > 0 { 2167 n += 2 + l + sovRpc(uint64(l)) 2168 } 2169 if m.SnapshotCount != 0 { 2170 n += 2 + sovRpc(uint64(m.SnapshotCount)) 2171 } 2172 if m.QuotaBackendBytes != 0 { 2173 n += 2 + sovRpc(uint64(m.QuotaBackendBytes)) 2174 } 2175 if m.PreVote { 2176 n += 3 2177 } 2178 if m.InitialCorruptCheck { 2179 n += 3 2180 } 2181 return n 2182 } 2183 2184 func sovRpc(x uint64) (n int) { 2185 for { 2186 n++ 2187 x >>= 7 2188 if x == 0 { 2189 break 2190 } 2191 } 2192 return n 2193 } 2194 func sozRpc(x uint64) (n int) { 2195 return sovRpc(uint64((x << 1) ^ uint64((int64(x) >> 63)))) 2196 } 2197 func (m *Request) Unmarshal(dAtA []byte) error { 2198 l := len(dAtA) 2199 iNdEx := 0 2200 for iNdEx < l { 2201 preIndex := iNdEx 2202 var wire uint64 2203 for shift := uint(0); ; shift += 7 { 2204 if shift >= 64 { 2205 return ErrIntOverflowRpc 2206 } 2207 if iNdEx >= l { 2208 return io.ErrUnexpectedEOF 2209 } 2210 b := dAtA[iNdEx] 2211 iNdEx++ 2212 wire |= (uint64(b) & 0x7F) << shift 2213 if b < 0x80 { 2214 break 2215 } 2216 } 2217 fieldNum := int32(wire >> 3) 2218 wireType := int(wire & 0x7) 2219 if wireType == 4 { 2220 return fmt.Errorf("proto: Request: wiretype end group for non-group") 2221 } 2222 if fieldNum <= 0 { 2223 return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire) 2224 } 2225 switch fieldNum { 2226 case 1: 2227 if wireType != 0 { 2228 return fmt.Errorf("proto: wrong wireType = %d for field Operation", wireType) 2229 } 2230 m.Operation = 0 2231 for shift := uint(0); ; shift += 7 { 2232 if shift >= 64 { 2233 return ErrIntOverflowRpc 2234 } 2235 if iNdEx >= l { 2236 return io.ErrUnexpectedEOF 2237 } 2238 b := dAtA[iNdEx] 2239 iNdEx++ 2240 m.Operation |= (Operation(b) & 0x7F) << shift 2241 if b < 0x80 { 2242 break 2243 } 2244 } 2245 case 2: 2246 if wireType != 2 { 2247 return fmt.Errorf("proto: wrong wireType = %d for field Member", wireType) 2248 } 2249 var msglen int 2250 for shift := uint(0); ; shift += 7 { 2251 if shift >= 64 { 2252 return ErrIntOverflowRpc 2253 } 2254 if iNdEx >= l { 2255 return io.ErrUnexpectedEOF 2256 } 2257 b := dAtA[iNdEx] 2258 iNdEx++ 2259 msglen |= (int(b) & 0x7F) << shift 2260 if b < 0x80 { 2261 break 2262 } 2263 } 2264 if msglen < 0 { 2265 return ErrInvalidLengthRpc 2266 } 2267 postIndex := iNdEx + msglen 2268 if postIndex > l { 2269 return io.ErrUnexpectedEOF 2270 } 2271 if m.Member == nil { 2272 m.Member = &Member{} 2273 } 2274 if err := m.Member.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { 2275 return err 2276 } 2277 iNdEx = postIndex 2278 case 3: 2279 if wireType != 2 { 2280 return fmt.Errorf("proto: wrong wireType = %d for field Tester", wireType) 2281 } 2282 var msglen int 2283 for shift := uint(0); ; shift += 7 { 2284 if shift >= 64 { 2285 return ErrIntOverflowRpc 2286 } 2287 if iNdEx >= l { 2288 return io.ErrUnexpectedEOF 2289 } 2290 b := dAtA[iNdEx] 2291 iNdEx++ 2292 msglen |= (int(b) & 0x7F) << shift 2293 if b < 0x80 { 2294 break 2295 } 2296 } 2297 if msglen < 0 { 2298 return ErrInvalidLengthRpc 2299 } 2300 postIndex := iNdEx + msglen 2301 if postIndex > l { 2302 return io.ErrUnexpectedEOF 2303 } 2304 if m.Tester == nil { 2305 m.Tester = &Tester{} 2306 } 2307 if err := m.Tester.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { 2308 return err 2309 } 2310 iNdEx = postIndex 2311 default: 2312 iNdEx = preIndex 2313 skippy, err := skipRpc(dAtA[iNdEx:]) 2314 if err != nil { 2315 return err 2316 } 2317 if skippy < 0 { 2318 return ErrInvalidLengthRpc 2319 } 2320 if (iNdEx + skippy) > l { 2321 return io.ErrUnexpectedEOF 2322 } 2323 iNdEx += skippy 2324 } 2325 } 2326 2327 if iNdEx > l { 2328 return io.ErrUnexpectedEOF 2329 } 2330 return nil 2331 } 2332 func (m *SnapshotInfo) Unmarshal(dAtA []byte) error { 2333 l := len(dAtA) 2334 iNdEx := 0 2335 for iNdEx < l { 2336 preIndex := iNdEx 2337 var wire uint64 2338 for shift := uint(0); ; shift += 7 { 2339 if shift >= 64 { 2340 return ErrIntOverflowRpc 2341 } 2342 if iNdEx >= l { 2343 return io.ErrUnexpectedEOF 2344 } 2345 b := dAtA[iNdEx] 2346 iNdEx++ 2347 wire |= (uint64(b) & 0x7F) << shift 2348 if b < 0x80 { 2349 break 2350 } 2351 } 2352 fieldNum := int32(wire >> 3) 2353 wireType := int(wire & 0x7) 2354 if wireType == 4 { 2355 return fmt.Errorf("proto: SnapshotInfo: wiretype end group for non-group") 2356 } 2357 if fieldNum <= 0 { 2358 return fmt.Errorf("proto: SnapshotInfo: illegal tag %d (wire type %d)", fieldNum, wire) 2359 } 2360 switch fieldNum { 2361 case 1: 2362 if wireType != 2 { 2363 return fmt.Errorf("proto: wrong wireType = %d for field MemberName", wireType) 2364 } 2365 var stringLen uint64 2366 for shift := uint(0); ; shift += 7 { 2367 if shift >= 64 { 2368 return ErrIntOverflowRpc 2369 } 2370 if iNdEx >= l { 2371 return io.ErrUnexpectedEOF 2372 } 2373 b := dAtA[iNdEx] 2374 iNdEx++ 2375 stringLen |= (uint64(b) & 0x7F) << shift 2376 if b < 0x80 { 2377 break 2378 } 2379 } 2380 intStringLen := int(stringLen) 2381 if intStringLen < 0 { 2382 return ErrInvalidLengthRpc 2383 } 2384 postIndex := iNdEx + intStringLen 2385 if postIndex > l { 2386 return io.ErrUnexpectedEOF 2387 } 2388 m.MemberName = string(dAtA[iNdEx:postIndex]) 2389 iNdEx = postIndex 2390 case 2: 2391 if wireType != 2 { 2392 return fmt.Errorf("proto: wrong wireType = %d for field MemberClientURLs", wireType) 2393 } 2394 var stringLen uint64 2395 for shift := uint(0); ; shift += 7 { 2396 if shift >= 64 { 2397 return ErrIntOverflowRpc 2398 } 2399 if iNdEx >= l { 2400 return io.ErrUnexpectedEOF 2401 } 2402 b := dAtA[iNdEx] 2403 iNdEx++ 2404 stringLen |= (uint64(b) & 0x7F) << shift 2405 if b < 0x80 { 2406 break 2407 } 2408 } 2409 intStringLen := int(stringLen) 2410 if intStringLen < 0 { 2411 return ErrInvalidLengthRpc 2412 } 2413 postIndex := iNdEx + intStringLen 2414 if postIndex > l { 2415 return io.ErrUnexpectedEOF 2416 } 2417 m.MemberClientURLs = append(m.MemberClientURLs, string(dAtA[iNdEx:postIndex])) 2418 iNdEx = postIndex 2419 case 3: 2420 if wireType != 2 { 2421 return fmt.Errorf("proto: wrong wireType = %d for field SnapshotPath", wireType) 2422 } 2423 var stringLen uint64 2424 for shift := uint(0); ; shift += 7 { 2425 if shift >= 64 { 2426 return ErrIntOverflowRpc 2427 } 2428 if iNdEx >= l { 2429 return io.ErrUnexpectedEOF 2430 } 2431 b := dAtA[iNdEx] 2432 iNdEx++ 2433 stringLen |= (uint64(b) & 0x7F) << shift 2434 if b < 0x80 { 2435 break 2436 } 2437 } 2438 intStringLen := int(stringLen) 2439 if intStringLen < 0 { 2440 return ErrInvalidLengthRpc 2441 } 2442 postIndex := iNdEx + intStringLen 2443 if postIndex > l { 2444 return io.ErrUnexpectedEOF 2445 } 2446 m.SnapshotPath = string(dAtA[iNdEx:postIndex]) 2447 iNdEx = postIndex 2448 case 4: 2449 if wireType != 2 { 2450 return fmt.Errorf("proto: wrong wireType = %d for field SnapshotFileSize", wireType) 2451 } 2452 var stringLen uint64 2453 for shift := uint(0); ; shift += 7 { 2454 if shift >= 64 { 2455 return ErrIntOverflowRpc 2456 } 2457 if iNdEx >= l { 2458 return io.ErrUnexpectedEOF 2459 } 2460 b := dAtA[iNdEx] 2461 iNdEx++ 2462 stringLen |= (uint64(b) & 0x7F) << shift 2463 if b < 0x80 { 2464 break 2465 } 2466 } 2467 intStringLen := int(stringLen) 2468 if intStringLen < 0 { 2469 return ErrInvalidLengthRpc 2470 } 2471 postIndex := iNdEx + intStringLen 2472 if postIndex > l { 2473 return io.ErrUnexpectedEOF 2474 } 2475 m.SnapshotFileSize = string(dAtA[iNdEx:postIndex]) 2476 iNdEx = postIndex 2477 case 5: 2478 if wireType != 2 { 2479 return fmt.Errorf("proto: wrong wireType = %d for field SnapshotTotalSize", wireType) 2480 } 2481 var stringLen uint64 2482 for shift := uint(0); ; shift += 7 { 2483 if shift >= 64 { 2484 return ErrIntOverflowRpc 2485 } 2486 if iNdEx >= l { 2487 return io.ErrUnexpectedEOF 2488 } 2489 b := dAtA[iNdEx] 2490 iNdEx++ 2491 stringLen |= (uint64(b) & 0x7F) << shift 2492 if b < 0x80 { 2493 break 2494 } 2495 } 2496 intStringLen := int(stringLen) 2497 if intStringLen < 0 { 2498 return ErrInvalidLengthRpc 2499 } 2500 postIndex := iNdEx + intStringLen 2501 if postIndex > l { 2502 return io.ErrUnexpectedEOF 2503 } 2504 m.SnapshotTotalSize = string(dAtA[iNdEx:postIndex]) 2505 iNdEx = postIndex 2506 case 6: 2507 if wireType != 0 { 2508 return fmt.Errorf("proto: wrong wireType = %d for field SnapshotTotalKey", wireType) 2509 } 2510 m.SnapshotTotalKey = 0 2511 for shift := uint(0); ; shift += 7 { 2512 if shift >= 64 { 2513 return ErrIntOverflowRpc 2514 } 2515 if iNdEx >= l { 2516 return io.ErrUnexpectedEOF 2517 } 2518 b := dAtA[iNdEx] 2519 iNdEx++ 2520 m.SnapshotTotalKey |= (int64(b) & 0x7F) << shift 2521 if b < 0x80 { 2522 break 2523 } 2524 } 2525 case 7: 2526 if wireType != 0 { 2527 return fmt.Errorf("proto: wrong wireType = %d for field SnapshotHash", wireType) 2528 } 2529 m.SnapshotHash = 0 2530 for shift := uint(0); ; shift += 7 { 2531 if shift >= 64 { 2532 return ErrIntOverflowRpc 2533 } 2534 if iNdEx >= l { 2535 return io.ErrUnexpectedEOF 2536 } 2537 b := dAtA[iNdEx] 2538 iNdEx++ 2539 m.SnapshotHash |= (int64(b) & 0x7F) << shift 2540 if b < 0x80 { 2541 break 2542 } 2543 } 2544 case 8: 2545 if wireType != 0 { 2546 return fmt.Errorf("proto: wrong wireType = %d for field SnapshotRevision", wireType) 2547 } 2548 m.SnapshotRevision = 0 2549 for shift := uint(0); ; shift += 7 { 2550 if shift >= 64 { 2551 return ErrIntOverflowRpc 2552 } 2553 if iNdEx >= l { 2554 return io.ErrUnexpectedEOF 2555 } 2556 b := dAtA[iNdEx] 2557 iNdEx++ 2558 m.SnapshotRevision |= (int64(b) & 0x7F) << shift 2559 if b < 0x80 { 2560 break 2561 } 2562 } 2563 case 9: 2564 if wireType != 2 { 2565 return fmt.Errorf("proto: wrong wireType = %d for field Took", wireType) 2566 } 2567 var stringLen uint64 2568 for shift := uint(0); ; shift += 7 { 2569 if shift >= 64 { 2570 return ErrIntOverflowRpc 2571 } 2572 if iNdEx >= l { 2573 return io.ErrUnexpectedEOF 2574 } 2575 b := dAtA[iNdEx] 2576 iNdEx++ 2577 stringLen |= (uint64(b) & 0x7F) << shift 2578 if b < 0x80 { 2579 break 2580 } 2581 } 2582 intStringLen := int(stringLen) 2583 if intStringLen < 0 { 2584 return ErrInvalidLengthRpc 2585 } 2586 postIndex := iNdEx + intStringLen 2587 if postIndex > l { 2588 return io.ErrUnexpectedEOF 2589 } 2590 m.Took = string(dAtA[iNdEx:postIndex]) 2591 iNdEx = postIndex 2592 default: 2593 iNdEx = preIndex 2594 skippy, err := skipRpc(dAtA[iNdEx:]) 2595 if err != nil { 2596 return err 2597 } 2598 if skippy < 0 { 2599 return ErrInvalidLengthRpc 2600 } 2601 if (iNdEx + skippy) > l { 2602 return io.ErrUnexpectedEOF 2603 } 2604 iNdEx += skippy 2605 } 2606 } 2607 2608 if iNdEx > l { 2609 return io.ErrUnexpectedEOF 2610 } 2611 return nil 2612 } 2613 func (m *Response) Unmarshal(dAtA []byte) error { 2614 l := len(dAtA) 2615 iNdEx := 0 2616 for iNdEx < l { 2617 preIndex := iNdEx 2618 var wire uint64 2619 for shift := uint(0); ; shift += 7 { 2620 if shift >= 64 { 2621 return ErrIntOverflowRpc 2622 } 2623 if iNdEx >= l { 2624 return io.ErrUnexpectedEOF 2625 } 2626 b := dAtA[iNdEx] 2627 iNdEx++ 2628 wire |= (uint64(b) & 0x7F) << shift 2629 if b < 0x80 { 2630 break 2631 } 2632 } 2633 fieldNum := int32(wire >> 3) 2634 wireType := int(wire & 0x7) 2635 if wireType == 4 { 2636 return fmt.Errorf("proto: Response: wiretype end group for non-group") 2637 } 2638 if fieldNum <= 0 { 2639 return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire) 2640 } 2641 switch fieldNum { 2642 case 1: 2643 if wireType != 0 { 2644 return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) 2645 } 2646 var v int 2647 for shift := uint(0); ; shift += 7 { 2648 if shift >= 64 { 2649 return ErrIntOverflowRpc 2650 } 2651 if iNdEx >= l { 2652 return io.ErrUnexpectedEOF 2653 } 2654 b := dAtA[iNdEx] 2655 iNdEx++ 2656 v |= (int(b) & 0x7F) << shift 2657 if b < 0x80 { 2658 break 2659 } 2660 } 2661 m.Success = bool(v != 0) 2662 case 2: 2663 if wireType != 2 { 2664 return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) 2665 } 2666 var stringLen uint64 2667 for shift := uint(0); ; shift += 7 { 2668 if shift >= 64 { 2669 return ErrIntOverflowRpc 2670 } 2671 if iNdEx >= l { 2672 return io.ErrUnexpectedEOF 2673 } 2674 b := dAtA[iNdEx] 2675 iNdEx++ 2676 stringLen |= (uint64(b) & 0x7F) << shift 2677 if b < 0x80 { 2678 break 2679 } 2680 } 2681 intStringLen := int(stringLen) 2682 if intStringLen < 0 { 2683 return ErrInvalidLengthRpc 2684 } 2685 postIndex := iNdEx + intStringLen 2686 if postIndex > l { 2687 return io.ErrUnexpectedEOF 2688 } 2689 m.Status = string(dAtA[iNdEx:postIndex]) 2690 iNdEx = postIndex 2691 case 3: 2692 if wireType != 2 { 2693 return fmt.Errorf("proto: wrong wireType = %d for field Member", wireType) 2694 } 2695 var msglen int 2696 for shift := uint(0); ; shift += 7 { 2697 if shift >= 64 { 2698 return ErrIntOverflowRpc 2699 } 2700 if iNdEx >= l { 2701 return io.ErrUnexpectedEOF 2702 } 2703 b := dAtA[iNdEx] 2704 iNdEx++ 2705 msglen |= (int(b) & 0x7F) << shift 2706 if b < 0x80 { 2707 break 2708 } 2709 } 2710 if msglen < 0 { 2711 return ErrInvalidLengthRpc 2712 } 2713 postIndex := iNdEx + msglen 2714 if postIndex > l { 2715 return io.ErrUnexpectedEOF 2716 } 2717 if m.Member == nil { 2718 m.Member = &Member{} 2719 } 2720 if err := m.Member.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { 2721 return err 2722 } 2723 iNdEx = postIndex 2724 case 4: 2725 if wireType != 2 { 2726 return fmt.Errorf("proto: wrong wireType = %d for field SnapshotInfo", wireType) 2727 } 2728 var msglen int 2729 for shift := uint(0); ; shift += 7 { 2730 if shift >= 64 { 2731 return ErrIntOverflowRpc 2732 } 2733 if iNdEx >= l { 2734 return io.ErrUnexpectedEOF 2735 } 2736 b := dAtA[iNdEx] 2737 iNdEx++ 2738 msglen |= (int(b) & 0x7F) << shift 2739 if b < 0x80 { 2740 break 2741 } 2742 } 2743 if msglen < 0 { 2744 return ErrInvalidLengthRpc 2745 } 2746 postIndex := iNdEx + msglen 2747 if postIndex > l { 2748 return io.ErrUnexpectedEOF 2749 } 2750 if m.SnapshotInfo == nil { 2751 m.SnapshotInfo = &SnapshotInfo{} 2752 } 2753 if err := m.SnapshotInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { 2754 return err 2755 } 2756 iNdEx = postIndex 2757 default: 2758 iNdEx = preIndex 2759 skippy, err := skipRpc(dAtA[iNdEx:]) 2760 if err != nil { 2761 return err 2762 } 2763 if skippy < 0 { 2764 return ErrInvalidLengthRpc 2765 } 2766 if (iNdEx + skippy) > l { 2767 return io.ErrUnexpectedEOF 2768 } 2769 iNdEx += skippy 2770 } 2771 } 2772 2773 if iNdEx > l { 2774 return io.ErrUnexpectedEOF 2775 } 2776 return nil 2777 } 2778 func (m *Member) Unmarshal(dAtA []byte) error { 2779 l := len(dAtA) 2780 iNdEx := 0 2781 for iNdEx < l { 2782 preIndex := iNdEx 2783 var wire uint64 2784 for shift := uint(0); ; shift += 7 { 2785 if shift >= 64 { 2786 return ErrIntOverflowRpc 2787 } 2788 if iNdEx >= l { 2789 return io.ErrUnexpectedEOF 2790 } 2791 b := dAtA[iNdEx] 2792 iNdEx++ 2793 wire |= (uint64(b) & 0x7F) << shift 2794 if b < 0x80 { 2795 break 2796 } 2797 } 2798 fieldNum := int32(wire >> 3) 2799 wireType := int(wire & 0x7) 2800 if wireType == 4 { 2801 return fmt.Errorf("proto: Member: wiretype end group for non-group") 2802 } 2803 if fieldNum <= 0 { 2804 return fmt.Errorf("proto: Member: illegal tag %d (wire type %d)", fieldNum, wire) 2805 } 2806 switch fieldNum { 2807 case 1: 2808 if wireType != 2 { 2809 return fmt.Errorf("proto: wrong wireType = %d for field EtcdExecPath", wireType) 2810 } 2811 var stringLen uint64 2812 for shift := uint(0); ; shift += 7 { 2813 if shift >= 64 { 2814 return ErrIntOverflowRpc 2815 } 2816 if iNdEx >= l { 2817 return io.ErrUnexpectedEOF 2818 } 2819 b := dAtA[iNdEx] 2820 iNdEx++ 2821 stringLen |= (uint64(b) & 0x7F) << shift 2822 if b < 0x80 { 2823 break 2824 } 2825 } 2826 intStringLen := int(stringLen) 2827 if intStringLen < 0 { 2828 return ErrInvalidLengthRpc 2829 } 2830 postIndex := iNdEx + intStringLen 2831 if postIndex > l { 2832 return io.ErrUnexpectedEOF 2833 } 2834 m.EtcdExecPath = string(dAtA[iNdEx:postIndex]) 2835 iNdEx = postIndex 2836 case 11: 2837 if wireType != 2 { 2838 return fmt.Errorf("proto: wrong wireType = %d for field AgentAddr", wireType) 2839 } 2840 var stringLen uint64 2841 for shift := uint(0); ; shift += 7 { 2842 if shift >= 64 { 2843 return ErrIntOverflowRpc 2844 } 2845 if iNdEx >= l { 2846 return io.ErrUnexpectedEOF 2847 } 2848 b := dAtA[iNdEx] 2849 iNdEx++ 2850 stringLen |= (uint64(b) & 0x7F) << shift 2851 if b < 0x80 { 2852 break 2853 } 2854 } 2855 intStringLen := int(stringLen) 2856 if intStringLen < 0 { 2857 return ErrInvalidLengthRpc 2858 } 2859 postIndex := iNdEx + intStringLen 2860 if postIndex > l { 2861 return io.ErrUnexpectedEOF 2862 } 2863 m.AgentAddr = string(dAtA[iNdEx:postIndex]) 2864 iNdEx = postIndex 2865 case 12: 2866 if wireType != 2 { 2867 return fmt.Errorf("proto: wrong wireType = %d for field FailpointHTTPAddr", wireType) 2868 } 2869 var stringLen uint64 2870 for shift := uint(0); ; shift += 7 { 2871 if shift >= 64 { 2872 return ErrIntOverflowRpc 2873 } 2874 if iNdEx >= l { 2875 return io.ErrUnexpectedEOF 2876 } 2877 b := dAtA[iNdEx] 2878 iNdEx++ 2879 stringLen |= (uint64(b) & 0x7F) << shift 2880 if b < 0x80 { 2881 break 2882 } 2883 } 2884 intStringLen := int(stringLen) 2885 if intStringLen < 0 { 2886 return ErrInvalidLengthRpc 2887 } 2888 postIndex := iNdEx + intStringLen 2889 if postIndex > l { 2890 return io.ErrUnexpectedEOF 2891 } 2892 m.FailpointHTTPAddr = string(dAtA[iNdEx:postIndex]) 2893 iNdEx = postIndex 2894 case 101: 2895 if wireType != 2 { 2896 return fmt.Errorf("proto: wrong wireType = %d for field BaseDir", wireType) 2897 } 2898 var stringLen uint64 2899 for shift := uint(0); ; shift += 7 { 2900 if shift >= 64 { 2901 return ErrIntOverflowRpc 2902 } 2903 if iNdEx >= l { 2904 return io.ErrUnexpectedEOF 2905 } 2906 b := dAtA[iNdEx] 2907 iNdEx++ 2908 stringLen |= (uint64(b) & 0x7F) << shift 2909 if b < 0x80 { 2910 break 2911 } 2912 } 2913 intStringLen := int(stringLen) 2914 if intStringLen < 0 { 2915 return ErrInvalidLengthRpc 2916 } 2917 postIndex := iNdEx + intStringLen 2918 if postIndex > l { 2919 return io.ErrUnexpectedEOF 2920 } 2921 m.BaseDir = string(dAtA[iNdEx:postIndex]) 2922 iNdEx = postIndex 2923 case 102: 2924 if wireType != 2 { 2925 return fmt.Errorf("proto: wrong wireType = %d for field EtcdLogPath", wireType) 2926 } 2927 var stringLen uint64 2928 for shift := uint(0); ; shift += 7 { 2929 if shift >= 64 { 2930 return ErrIntOverflowRpc 2931 } 2932 if iNdEx >= l { 2933 return io.ErrUnexpectedEOF 2934 } 2935 b := dAtA[iNdEx] 2936 iNdEx++ 2937 stringLen |= (uint64(b) & 0x7F) << shift 2938 if b < 0x80 { 2939 break 2940 } 2941 } 2942 intStringLen := int(stringLen) 2943 if intStringLen < 0 { 2944 return ErrInvalidLengthRpc 2945 } 2946 postIndex := iNdEx + intStringLen 2947 if postIndex > l { 2948 return io.ErrUnexpectedEOF 2949 } 2950 m.EtcdLogPath = string(dAtA[iNdEx:postIndex]) 2951 iNdEx = postIndex 2952 case 201: 2953 if wireType != 0 { 2954 return fmt.Errorf("proto: wrong wireType = %d for field EtcdClientProxy", wireType) 2955 } 2956 var v int 2957 for shift := uint(0); ; shift += 7 { 2958 if shift >= 64 { 2959 return ErrIntOverflowRpc 2960 } 2961 if iNdEx >= l { 2962 return io.ErrUnexpectedEOF 2963 } 2964 b := dAtA[iNdEx] 2965 iNdEx++ 2966 v |= (int(b) & 0x7F) << shift 2967 if b < 0x80 { 2968 break 2969 } 2970 } 2971 m.EtcdClientProxy = bool(v != 0) 2972 case 202: 2973 if wireType != 0 { 2974 return fmt.Errorf("proto: wrong wireType = %d for field EtcdPeerProxy", wireType) 2975 } 2976 var v int 2977 for shift := uint(0); ; shift += 7 { 2978 if shift >= 64 { 2979 return ErrIntOverflowRpc 2980 } 2981 if iNdEx >= l { 2982 return io.ErrUnexpectedEOF 2983 } 2984 b := dAtA[iNdEx] 2985 iNdEx++ 2986 v |= (int(b) & 0x7F) << shift 2987 if b < 0x80 { 2988 break 2989 } 2990 } 2991 m.EtcdPeerProxy = bool(v != 0) 2992 case 301: 2993 if wireType != 2 { 2994 return fmt.Errorf("proto: wrong wireType = %d for field EtcdClientEndpoint", wireType) 2995 } 2996 var stringLen uint64 2997 for shift := uint(0); ; shift += 7 { 2998 if shift >= 64 { 2999 return ErrIntOverflowRpc 3000 } 3001 if iNdEx >= l { 3002 return io.ErrUnexpectedEOF 3003 } 3004 b := dAtA[iNdEx] 3005 iNdEx++ 3006 stringLen |= (uint64(b) & 0x7F) << shift 3007 if b < 0x80 { 3008 break 3009 } 3010 } 3011 intStringLen := int(stringLen) 3012 if intStringLen < 0 { 3013 return ErrInvalidLengthRpc 3014 } 3015 postIndex := iNdEx + intStringLen 3016 if postIndex > l { 3017 return io.ErrUnexpectedEOF 3018 } 3019 m.EtcdClientEndpoint = string(dAtA[iNdEx:postIndex]) 3020 iNdEx = postIndex 3021 case 302: 3022 if wireType != 2 { 3023 return fmt.Errorf("proto: wrong wireType = %d for field Etcd", wireType) 3024 } 3025 var msglen int 3026 for shift := uint(0); ; shift += 7 { 3027 if shift >= 64 { 3028 return ErrIntOverflowRpc 3029 } 3030 if iNdEx >= l { 3031 return io.ErrUnexpectedEOF 3032 } 3033 b := dAtA[iNdEx] 3034 iNdEx++ 3035 msglen |= (int(b) & 0x7F) << shift 3036 if b < 0x80 { 3037 break 3038 } 3039 } 3040 if msglen < 0 { 3041 return ErrInvalidLengthRpc 3042 } 3043 postIndex := iNdEx + msglen 3044 if postIndex > l { 3045 return io.ErrUnexpectedEOF 3046 } 3047 if m.Etcd == nil { 3048 m.Etcd = &Etcd{} 3049 } 3050 if err := m.Etcd.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { 3051 return err 3052 } 3053 iNdEx = postIndex 3054 case 303: 3055 if wireType != 2 { 3056 return fmt.Errorf("proto: wrong wireType = %d for field EtcdOnSnapshotRestore", wireType) 3057 } 3058 var msglen int 3059 for shift := uint(0); ; shift += 7 { 3060 if shift >= 64 { 3061 return ErrIntOverflowRpc 3062 } 3063 if iNdEx >= l { 3064 return io.ErrUnexpectedEOF 3065 } 3066 b := dAtA[iNdEx] 3067 iNdEx++ 3068 msglen |= (int(b) & 0x7F) << shift 3069 if b < 0x80 { 3070 break 3071 } 3072 } 3073 if msglen < 0 { 3074 return ErrInvalidLengthRpc 3075 } 3076 postIndex := iNdEx + msglen 3077 if postIndex > l { 3078 return io.ErrUnexpectedEOF 3079 } 3080 if m.EtcdOnSnapshotRestore == nil { 3081 m.EtcdOnSnapshotRestore = &Etcd{} 3082 } 3083 if err := m.EtcdOnSnapshotRestore.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { 3084 return err 3085 } 3086 iNdEx = postIndex 3087 case 401: 3088 if wireType != 2 { 3089 return fmt.Errorf("proto: wrong wireType = %d for field ClientCertData", wireType) 3090 } 3091 var stringLen uint64 3092 for shift := uint(0); ; shift += 7 { 3093 if shift >= 64 { 3094 return ErrIntOverflowRpc 3095 } 3096 if iNdEx >= l { 3097 return io.ErrUnexpectedEOF 3098 } 3099 b := dAtA[iNdEx] 3100 iNdEx++ 3101 stringLen |= (uint64(b) & 0x7F) << shift 3102 if b < 0x80 { 3103 break 3104 } 3105 } 3106 intStringLen := int(stringLen) 3107 if intStringLen < 0 { 3108 return ErrInvalidLengthRpc 3109 } 3110 postIndex := iNdEx + intStringLen 3111 if postIndex > l { 3112 return io.ErrUnexpectedEOF 3113 } 3114 m.ClientCertData = string(dAtA[iNdEx:postIndex]) 3115 iNdEx = postIndex 3116 case 402: 3117 if wireType != 2 { 3118 return fmt.Errorf("proto: wrong wireType = %d for field ClientCertPath", wireType) 3119 } 3120 var stringLen uint64 3121 for shift := uint(0); ; shift += 7 { 3122 if shift >= 64 { 3123 return ErrIntOverflowRpc 3124 } 3125 if iNdEx >= l { 3126 return io.ErrUnexpectedEOF 3127 } 3128 b := dAtA[iNdEx] 3129 iNdEx++ 3130 stringLen |= (uint64(b) & 0x7F) << shift 3131 if b < 0x80 { 3132 break 3133 } 3134 } 3135 intStringLen := int(stringLen) 3136 if intStringLen < 0 { 3137 return ErrInvalidLengthRpc 3138 } 3139 postIndex := iNdEx + intStringLen 3140 if postIndex > l { 3141 return io.ErrUnexpectedEOF 3142 } 3143 m.ClientCertPath = string(dAtA[iNdEx:postIndex]) 3144 iNdEx = postIndex 3145 case 403: 3146 if wireType != 2 { 3147 return fmt.Errorf("proto: wrong wireType = %d for field ClientKeyData", wireType) 3148 } 3149 var stringLen uint64 3150 for shift := uint(0); ; shift += 7 { 3151 if shift >= 64 { 3152 return ErrIntOverflowRpc 3153 } 3154 if iNdEx >= l { 3155 return io.ErrUnexpectedEOF 3156 } 3157 b := dAtA[iNdEx] 3158 iNdEx++ 3159 stringLen |= (uint64(b) & 0x7F) << shift 3160 if b < 0x80 { 3161 break 3162 } 3163 } 3164 intStringLen := int(stringLen) 3165 if intStringLen < 0 { 3166 return ErrInvalidLengthRpc 3167 } 3168 postIndex := iNdEx + intStringLen 3169 if postIndex > l { 3170 return io.ErrUnexpectedEOF 3171 } 3172 m.ClientKeyData = string(dAtA[iNdEx:postIndex]) 3173 iNdEx = postIndex 3174 case 404: 3175 if wireType != 2 { 3176 return fmt.Errorf("proto: wrong wireType = %d for field ClientKeyPath", wireType) 3177 } 3178 var stringLen uint64 3179 for shift := uint(0); ; shift += 7 { 3180 if shift >= 64 { 3181 return ErrIntOverflowRpc 3182 } 3183 if iNdEx >= l { 3184 return io.ErrUnexpectedEOF 3185 } 3186 b := dAtA[iNdEx] 3187 iNdEx++ 3188 stringLen |= (uint64(b) & 0x7F) << shift 3189 if b < 0x80 { 3190 break 3191 } 3192 } 3193 intStringLen := int(stringLen) 3194 if intStringLen < 0 { 3195 return ErrInvalidLengthRpc 3196 } 3197 postIndex := iNdEx + intStringLen 3198 if postIndex > l { 3199 return io.ErrUnexpectedEOF 3200 } 3201 m.ClientKeyPath = string(dAtA[iNdEx:postIndex]) 3202 iNdEx = postIndex 3203 case 405: 3204 if wireType != 2 { 3205 return fmt.Errorf("proto: wrong wireType = %d for field ClientTrustedCAData", wireType) 3206 } 3207 var stringLen uint64 3208 for shift := uint(0); ; shift += 7 { 3209 if shift >= 64 { 3210 return ErrIntOverflowRpc 3211 } 3212 if iNdEx >= l { 3213 return io.ErrUnexpectedEOF 3214 } 3215 b := dAtA[iNdEx] 3216 iNdEx++ 3217 stringLen |= (uint64(b) & 0x7F) << shift 3218 if b < 0x80 { 3219 break 3220 } 3221 } 3222 intStringLen := int(stringLen) 3223 if intStringLen < 0 { 3224 return ErrInvalidLengthRpc 3225 } 3226 postIndex := iNdEx + intStringLen 3227 if postIndex > l { 3228 return io.ErrUnexpectedEOF 3229 } 3230 m.ClientTrustedCAData = string(dAtA[iNdEx:postIndex]) 3231 iNdEx = postIndex 3232 case 406: 3233 if wireType != 2 { 3234 return fmt.Errorf("proto: wrong wireType = %d for field ClientTrustedCAPath", wireType) 3235 } 3236 var stringLen uint64 3237 for shift := uint(0); ; shift += 7 { 3238 if shift >= 64 { 3239 return ErrIntOverflowRpc 3240 } 3241 if iNdEx >= l { 3242 return io.ErrUnexpectedEOF 3243 } 3244 b := dAtA[iNdEx] 3245 iNdEx++ 3246 stringLen |= (uint64(b) & 0x7F) << shift 3247 if b < 0x80 { 3248 break 3249 } 3250 } 3251 intStringLen := int(stringLen) 3252 if intStringLen < 0 { 3253 return ErrInvalidLengthRpc 3254 } 3255 postIndex := iNdEx + intStringLen 3256 if postIndex > l { 3257 return io.ErrUnexpectedEOF 3258 } 3259 m.ClientTrustedCAPath = string(dAtA[iNdEx:postIndex]) 3260 iNdEx = postIndex 3261 case 501: 3262 if wireType != 2 { 3263 return fmt.Errorf("proto: wrong wireType = %d for field PeerCertData", wireType) 3264 } 3265 var stringLen uint64 3266 for shift := uint(0); ; shift += 7 { 3267 if shift >= 64 { 3268 return ErrIntOverflowRpc 3269 } 3270 if iNdEx >= l { 3271 return io.ErrUnexpectedEOF 3272 } 3273 b := dAtA[iNdEx] 3274 iNdEx++ 3275 stringLen |= (uint64(b) & 0x7F) << shift 3276 if b < 0x80 { 3277 break 3278 } 3279 } 3280 intStringLen := int(stringLen) 3281 if intStringLen < 0 { 3282 return ErrInvalidLengthRpc 3283 } 3284 postIndex := iNdEx + intStringLen 3285 if postIndex > l { 3286 return io.ErrUnexpectedEOF 3287 } 3288 m.PeerCertData = string(dAtA[iNdEx:postIndex]) 3289 iNdEx = postIndex 3290 case 502: 3291 if wireType != 2 { 3292 return fmt.Errorf("proto: wrong wireType = %d for field PeerCertPath", wireType) 3293 } 3294 var stringLen uint64 3295 for shift := uint(0); ; shift += 7 { 3296 if shift >= 64 { 3297 return ErrIntOverflowRpc 3298 } 3299 if iNdEx >= l { 3300 return io.ErrUnexpectedEOF 3301 } 3302 b := dAtA[iNdEx] 3303 iNdEx++ 3304 stringLen |= (uint64(b) & 0x7F) << shift 3305 if b < 0x80 { 3306 break 3307 } 3308 } 3309 intStringLen := int(stringLen) 3310 if intStringLen < 0 { 3311 return ErrInvalidLengthRpc 3312 } 3313 postIndex := iNdEx + intStringLen 3314 if postIndex > l { 3315 return io.ErrUnexpectedEOF 3316 } 3317 m.PeerCertPath = string(dAtA[iNdEx:postIndex]) 3318 iNdEx = postIndex 3319 case 503: 3320 if wireType != 2 { 3321 return fmt.Errorf("proto: wrong wireType = %d for field PeerKeyData", wireType) 3322 } 3323 var stringLen uint64 3324 for shift := uint(0); ; shift += 7 { 3325 if shift >= 64 { 3326 return ErrIntOverflowRpc 3327 } 3328 if iNdEx >= l { 3329 return io.ErrUnexpectedEOF 3330 } 3331 b := dAtA[iNdEx] 3332 iNdEx++ 3333 stringLen |= (uint64(b) & 0x7F) << shift 3334 if b < 0x80 { 3335 break 3336 } 3337 } 3338 intStringLen := int(stringLen) 3339 if intStringLen < 0 { 3340 return ErrInvalidLengthRpc 3341 } 3342 postIndex := iNdEx + intStringLen 3343 if postIndex > l { 3344 return io.ErrUnexpectedEOF 3345 } 3346 m.PeerKeyData = string(dAtA[iNdEx:postIndex]) 3347 iNdEx = postIndex 3348 case 504: 3349 if wireType != 2 { 3350 return fmt.Errorf("proto: wrong wireType = %d for field PeerKeyPath", wireType) 3351 } 3352 var stringLen uint64 3353 for shift := uint(0); ; shift += 7 { 3354 if shift >= 64 { 3355 return ErrIntOverflowRpc 3356 } 3357 if iNdEx >= l { 3358 return io.ErrUnexpectedEOF 3359 } 3360 b := dAtA[iNdEx] 3361 iNdEx++ 3362 stringLen |= (uint64(b) & 0x7F) << shift 3363 if b < 0x80 { 3364 break 3365 } 3366 } 3367 intStringLen := int(stringLen) 3368 if intStringLen < 0 { 3369 return ErrInvalidLengthRpc 3370 } 3371 postIndex := iNdEx + intStringLen 3372 if postIndex > l { 3373 return io.ErrUnexpectedEOF 3374 } 3375 m.PeerKeyPath = string(dAtA[iNdEx:postIndex]) 3376 iNdEx = postIndex 3377 case 505: 3378 if wireType != 2 { 3379 return fmt.Errorf("proto: wrong wireType = %d for field PeerTrustedCAData", wireType) 3380 } 3381 var stringLen uint64 3382 for shift := uint(0); ; shift += 7 { 3383 if shift >= 64 { 3384 return ErrIntOverflowRpc 3385 } 3386 if iNdEx >= l { 3387 return io.ErrUnexpectedEOF 3388 } 3389 b := dAtA[iNdEx] 3390 iNdEx++ 3391 stringLen |= (uint64(b) & 0x7F) << shift 3392 if b < 0x80 { 3393 break 3394 } 3395 } 3396 intStringLen := int(stringLen) 3397 if intStringLen < 0 { 3398 return ErrInvalidLengthRpc 3399 } 3400 postIndex := iNdEx + intStringLen 3401 if postIndex > l { 3402 return io.ErrUnexpectedEOF 3403 } 3404 m.PeerTrustedCAData = string(dAtA[iNdEx:postIndex]) 3405 iNdEx = postIndex 3406 case 506: 3407 if wireType != 2 { 3408 return fmt.Errorf("proto: wrong wireType = %d for field PeerTrustedCAPath", wireType) 3409 } 3410 var stringLen uint64 3411 for shift := uint(0); ; shift += 7 { 3412 if shift >= 64 { 3413 return ErrIntOverflowRpc 3414 } 3415 if iNdEx >= l { 3416 return io.ErrUnexpectedEOF 3417 } 3418 b := dAtA[iNdEx] 3419 iNdEx++ 3420 stringLen |= (uint64(b) & 0x7F) << shift 3421 if b < 0x80 { 3422 break 3423 } 3424 } 3425 intStringLen := int(stringLen) 3426 if intStringLen < 0 { 3427 return ErrInvalidLengthRpc 3428 } 3429 postIndex := iNdEx + intStringLen 3430 if postIndex > l { 3431 return io.ErrUnexpectedEOF 3432 } 3433 m.PeerTrustedCAPath = string(dAtA[iNdEx:postIndex]) 3434 iNdEx = postIndex 3435 case 601: 3436 if wireType != 2 { 3437 return fmt.Errorf("proto: wrong wireType = %d for field SnapshotPath", wireType) 3438 } 3439 var stringLen uint64 3440 for shift := uint(0); ; shift += 7 { 3441 if shift >= 64 { 3442 return ErrIntOverflowRpc 3443 } 3444 if iNdEx >= l { 3445 return io.ErrUnexpectedEOF 3446 } 3447 b := dAtA[iNdEx] 3448 iNdEx++ 3449 stringLen |= (uint64(b) & 0x7F) << shift 3450 if b < 0x80 { 3451 break 3452 } 3453 } 3454 intStringLen := int(stringLen) 3455 if intStringLen < 0 { 3456 return ErrInvalidLengthRpc 3457 } 3458 postIndex := iNdEx + intStringLen 3459 if postIndex > l { 3460 return io.ErrUnexpectedEOF 3461 } 3462 m.SnapshotPath = string(dAtA[iNdEx:postIndex]) 3463 iNdEx = postIndex 3464 case 602: 3465 if wireType != 2 { 3466 return fmt.Errorf("proto: wrong wireType = %d for field SnapshotInfo", wireType) 3467 } 3468 var msglen int 3469 for shift := uint(0); ; shift += 7 { 3470 if shift >= 64 { 3471 return ErrIntOverflowRpc 3472 } 3473 if iNdEx >= l { 3474 return io.ErrUnexpectedEOF 3475 } 3476 b := dAtA[iNdEx] 3477 iNdEx++ 3478 msglen |= (int(b) & 0x7F) << shift 3479 if b < 0x80 { 3480 break 3481 } 3482 } 3483 if msglen < 0 { 3484 return ErrInvalidLengthRpc 3485 } 3486 postIndex := iNdEx + msglen 3487 if postIndex > l { 3488 return io.ErrUnexpectedEOF 3489 } 3490 if m.SnapshotInfo == nil { 3491 m.SnapshotInfo = &SnapshotInfo{} 3492 } 3493 if err := m.SnapshotInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { 3494 return err 3495 } 3496 iNdEx = postIndex 3497 default: 3498 iNdEx = preIndex 3499 skippy, err := skipRpc(dAtA[iNdEx:]) 3500 if err != nil { 3501 return err 3502 } 3503 if skippy < 0 { 3504 return ErrInvalidLengthRpc 3505 } 3506 if (iNdEx + skippy) > l { 3507 return io.ErrUnexpectedEOF 3508 } 3509 iNdEx += skippy 3510 } 3511 } 3512 3513 if iNdEx > l { 3514 return io.ErrUnexpectedEOF 3515 } 3516 return nil 3517 } 3518 func (m *Tester) Unmarshal(dAtA []byte) error { 3519 l := len(dAtA) 3520 iNdEx := 0 3521 for iNdEx < l { 3522 preIndex := iNdEx 3523 var wire uint64 3524 for shift := uint(0); ; shift += 7 { 3525 if shift >= 64 { 3526 return ErrIntOverflowRpc 3527 } 3528 if iNdEx >= l { 3529 return io.ErrUnexpectedEOF 3530 } 3531 b := dAtA[iNdEx] 3532 iNdEx++ 3533 wire |= (uint64(b) & 0x7F) << shift 3534 if b < 0x80 { 3535 break 3536 } 3537 } 3538 fieldNum := int32(wire >> 3) 3539 wireType := int(wire & 0x7) 3540 if wireType == 4 { 3541 return fmt.Errorf("proto: Tester: wiretype end group for non-group") 3542 } 3543 if fieldNum <= 0 { 3544 return fmt.Errorf("proto: Tester: illegal tag %d (wire type %d)", fieldNum, wire) 3545 } 3546 switch fieldNum { 3547 case 1: 3548 if wireType != 2 { 3549 return fmt.Errorf("proto: wrong wireType = %d for field DataDir", wireType) 3550 } 3551 var stringLen uint64 3552 for shift := uint(0); ; shift += 7 { 3553 if shift >= 64 { 3554 return ErrIntOverflowRpc 3555 } 3556 if iNdEx >= l { 3557 return io.ErrUnexpectedEOF 3558 } 3559 b := dAtA[iNdEx] 3560 iNdEx++ 3561 stringLen |= (uint64(b) & 0x7F) << shift 3562 if b < 0x80 { 3563 break 3564 } 3565 } 3566 intStringLen := int(stringLen) 3567 if intStringLen < 0 { 3568 return ErrInvalidLengthRpc 3569 } 3570 postIndex := iNdEx + intStringLen 3571 if postIndex > l { 3572 return io.ErrUnexpectedEOF 3573 } 3574 m.DataDir = string(dAtA[iNdEx:postIndex]) 3575 iNdEx = postIndex 3576 case 2: 3577 if wireType != 2 { 3578 return fmt.Errorf("proto: wrong wireType = %d for field Network", wireType) 3579 } 3580 var stringLen uint64 3581 for shift := uint(0); ; shift += 7 { 3582 if shift >= 64 { 3583 return ErrIntOverflowRpc 3584 } 3585 if iNdEx >= l { 3586 return io.ErrUnexpectedEOF 3587 } 3588 b := dAtA[iNdEx] 3589 iNdEx++ 3590 stringLen |= (uint64(b) & 0x7F) << shift 3591 if b < 0x80 { 3592 break 3593 } 3594 } 3595 intStringLen := int(stringLen) 3596 if intStringLen < 0 { 3597 return ErrInvalidLengthRpc 3598 } 3599 postIndex := iNdEx + intStringLen 3600 if postIndex > l { 3601 return io.ErrUnexpectedEOF 3602 } 3603 m.Network = string(dAtA[iNdEx:postIndex]) 3604 iNdEx = postIndex 3605 case 3: 3606 if wireType != 2 { 3607 return fmt.Errorf("proto: wrong wireType = %d for field Addr", wireType) 3608 } 3609 var stringLen uint64 3610 for shift := uint(0); ; shift += 7 { 3611 if shift >= 64 { 3612 return ErrIntOverflowRpc 3613 } 3614 if iNdEx >= l { 3615 return io.ErrUnexpectedEOF 3616 } 3617 b := dAtA[iNdEx] 3618 iNdEx++ 3619 stringLen |= (uint64(b) & 0x7F) << shift 3620 if b < 0x80 { 3621 break 3622 } 3623 } 3624 intStringLen := int(stringLen) 3625 if intStringLen < 0 { 3626 return ErrInvalidLengthRpc 3627 } 3628 postIndex := iNdEx + intStringLen 3629 if postIndex > l { 3630 return io.ErrUnexpectedEOF 3631 } 3632 m.Addr = string(dAtA[iNdEx:postIndex]) 3633 iNdEx = postIndex 3634 case 11: 3635 if wireType != 0 { 3636 return fmt.Errorf("proto: wrong wireType = %d for field DelayLatencyMs", wireType) 3637 } 3638 m.DelayLatencyMs = 0 3639 for shift := uint(0); ; shift += 7 { 3640 if shift >= 64 { 3641 return ErrIntOverflowRpc 3642 } 3643 if iNdEx >= l { 3644 return io.ErrUnexpectedEOF 3645 } 3646 b := dAtA[iNdEx] 3647 iNdEx++ 3648 m.DelayLatencyMs |= (uint32(b) & 0x7F) << shift 3649 if b < 0x80 { 3650 break 3651 } 3652 } 3653 case 12: 3654 if wireType != 0 { 3655 return fmt.Errorf("proto: wrong wireType = %d for field DelayLatencyMsRv", wireType) 3656 } 3657 m.DelayLatencyMsRv = 0 3658 for shift := uint(0); ; shift += 7 { 3659 if shift >= 64 { 3660 return ErrIntOverflowRpc 3661 } 3662 if iNdEx >= l { 3663 return io.ErrUnexpectedEOF 3664 } 3665 b := dAtA[iNdEx] 3666 iNdEx++ 3667 m.DelayLatencyMsRv |= (uint32(b) & 0x7F) << shift 3668 if b < 0x80 { 3669 break 3670 } 3671 } 3672 case 13: 3673 if wireType != 0 { 3674 return fmt.Errorf("proto: wrong wireType = %d for field UpdatedDelayLatencyMs", wireType) 3675 } 3676 m.UpdatedDelayLatencyMs = 0 3677 for shift := uint(0); ; shift += 7 { 3678 if shift >= 64 { 3679 return ErrIntOverflowRpc 3680 } 3681 if iNdEx >= l { 3682 return io.ErrUnexpectedEOF 3683 } 3684 b := dAtA[iNdEx] 3685 iNdEx++ 3686 m.UpdatedDelayLatencyMs |= (uint32(b) & 0x7F) << shift 3687 if b < 0x80 { 3688 break 3689 } 3690 } 3691 case 21: 3692 if wireType != 0 { 3693 return fmt.Errorf("proto: wrong wireType = %d for field RoundLimit", wireType) 3694 } 3695 m.RoundLimit = 0 3696 for shift := uint(0); ; shift += 7 { 3697 if shift >= 64 { 3698 return ErrIntOverflowRpc 3699 } 3700 if iNdEx >= l { 3701 return io.ErrUnexpectedEOF 3702 } 3703 b := dAtA[iNdEx] 3704 iNdEx++ 3705 m.RoundLimit |= (int32(b) & 0x7F) << shift 3706 if b < 0x80 { 3707 break 3708 } 3709 } 3710 case 22: 3711 if wireType != 0 { 3712 return fmt.Errorf("proto: wrong wireType = %d for field ExitOnCaseFail", wireType) 3713 } 3714 var v int 3715 for shift := uint(0); ; shift += 7 { 3716 if shift >= 64 { 3717 return ErrIntOverflowRpc 3718 } 3719 if iNdEx >= l { 3720 return io.ErrUnexpectedEOF 3721 } 3722 b := dAtA[iNdEx] 3723 iNdEx++ 3724 v |= (int(b) & 0x7F) << shift 3725 if b < 0x80 { 3726 break 3727 } 3728 } 3729 m.ExitOnCaseFail = bool(v != 0) 3730 case 23: 3731 if wireType != 0 { 3732 return fmt.Errorf("proto: wrong wireType = %d for field EnablePprof", wireType) 3733 } 3734 var v int 3735 for shift := uint(0); ; shift += 7 { 3736 if shift >= 64 { 3737 return ErrIntOverflowRpc 3738 } 3739 if iNdEx >= l { 3740 return io.ErrUnexpectedEOF 3741 } 3742 b := dAtA[iNdEx] 3743 iNdEx++ 3744 v |= (int(b) & 0x7F) << shift 3745 if b < 0x80 { 3746 break 3747 } 3748 } 3749 m.EnablePprof = bool(v != 0) 3750 case 31: 3751 if wireType != 0 { 3752 return fmt.Errorf("proto: wrong wireType = %d for field CaseDelayMs", wireType) 3753 } 3754 m.CaseDelayMs = 0 3755 for shift := uint(0); ; shift += 7 { 3756 if shift >= 64 { 3757 return ErrIntOverflowRpc 3758 } 3759 if iNdEx >= l { 3760 return io.ErrUnexpectedEOF 3761 } 3762 b := dAtA[iNdEx] 3763 iNdEx++ 3764 m.CaseDelayMs |= (uint32(b) & 0x7F) << shift 3765 if b < 0x80 { 3766 break 3767 } 3768 } 3769 case 32: 3770 if wireType != 0 { 3771 return fmt.Errorf("proto: wrong wireType = %d for field CaseShuffle", wireType) 3772 } 3773 var v int 3774 for shift := uint(0); ; shift += 7 { 3775 if shift >= 64 { 3776 return ErrIntOverflowRpc 3777 } 3778 if iNdEx >= l { 3779 return io.ErrUnexpectedEOF 3780 } 3781 b := dAtA[iNdEx] 3782 iNdEx++ 3783 v |= (int(b) & 0x7F) << shift 3784 if b < 0x80 { 3785 break 3786 } 3787 } 3788 m.CaseShuffle = bool(v != 0) 3789 case 33: 3790 if wireType != 2 { 3791 return fmt.Errorf("proto: wrong wireType = %d for field Cases", wireType) 3792 } 3793 var stringLen uint64 3794 for shift := uint(0); ; shift += 7 { 3795 if shift >= 64 { 3796 return ErrIntOverflowRpc 3797 } 3798 if iNdEx >= l { 3799 return io.ErrUnexpectedEOF 3800 } 3801 b := dAtA[iNdEx] 3802 iNdEx++ 3803 stringLen |= (uint64(b) & 0x7F) << shift 3804 if b < 0x80 { 3805 break 3806 } 3807 } 3808 intStringLen := int(stringLen) 3809 if intStringLen < 0 { 3810 return ErrInvalidLengthRpc 3811 } 3812 postIndex := iNdEx + intStringLen 3813 if postIndex > l { 3814 return io.ErrUnexpectedEOF 3815 } 3816 m.Cases = append(m.Cases, string(dAtA[iNdEx:postIndex])) 3817 iNdEx = postIndex 3818 case 34: 3819 if wireType != 2 { 3820 return fmt.Errorf("proto: wrong wireType = %d for field FailpointCommands", wireType) 3821 } 3822 var stringLen uint64 3823 for shift := uint(0); ; shift += 7 { 3824 if shift >= 64 { 3825 return ErrIntOverflowRpc 3826 } 3827 if iNdEx >= l { 3828 return io.ErrUnexpectedEOF 3829 } 3830 b := dAtA[iNdEx] 3831 iNdEx++ 3832 stringLen |= (uint64(b) & 0x7F) << shift 3833 if b < 0x80 { 3834 break 3835 } 3836 } 3837 intStringLen := int(stringLen) 3838 if intStringLen < 0 { 3839 return ErrInvalidLengthRpc 3840 } 3841 postIndex := iNdEx + intStringLen 3842 if postIndex > l { 3843 return io.ErrUnexpectedEOF 3844 } 3845 m.FailpointCommands = append(m.FailpointCommands, string(dAtA[iNdEx:postIndex])) 3846 iNdEx = postIndex 3847 case 41: 3848 if wireType != 2 { 3849 return fmt.Errorf("proto: wrong wireType = %d for field RunnerExecPath", wireType) 3850 } 3851 var stringLen uint64 3852 for shift := uint(0); ; shift += 7 { 3853 if shift >= 64 { 3854 return ErrIntOverflowRpc 3855 } 3856 if iNdEx >= l { 3857 return io.ErrUnexpectedEOF 3858 } 3859 b := dAtA[iNdEx] 3860 iNdEx++ 3861 stringLen |= (uint64(b) & 0x7F) << shift 3862 if b < 0x80 { 3863 break 3864 } 3865 } 3866 intStringLen := int(stringLen) 3867 if intStringLen < 0 { 3868 return ErrInvalidLengthRpc 3869 } 3870 postIndex := iNdEx + intStringLen 3871 if postIndex > l { 3872 return io.ErrUnexpectedEOF 3873 } 3874 m.RunnerExecPath = string(dAtA[iNdEx:postIndex]) 3875 iNdEx = postIndex 3876 case 42: 3877 if wireType != 2 { 3878 return fmt.Errorf("proto: wrong wireType = %d for field ExternalExecPath", wireType) 3879 } 3880 var stringLen uint64 3881 for shift := uint(0); ; shift += 7 { 3882 if shift >= 64 { 3883 return ErrIntOverflowRpc 3884 } 3885 if iNdEx >= l { 3886 return io.ErrUnexpectedEOF 3887 } 3888 b := dAtA[iNdEx] 3889 iNdEx++ 3890 stringLen |= (uint64(b) & 0x7F) << shift 3891 if b < 0x80 { 3892 break 3893 } 3894 } 3895 intStringLen := int(stringLen) 3896 if intStringLen < 0 { 3897 return ErrInvalidLengthRpc 3898 } 3899 postIndex := iNdEx + intStringLen 3900 if postIndex > l { 3901 return io.ErrUnexpectedEOF 3902 } 3903 m.ExternalExecPath = string(dAtA[iNdEx:postIndex]) 3904 iNdEx = postIndex 3905 case 101: 3906 if wireType != 2 { 3907 return fmt.Errorf("proto: wrong wireType = %d for field Stressers", wireType) 3908 } 3909 var stringLen uint64 3910 for shift := uint(0); ; shift += 7 { 3911 if shift >= 64 { 3912 return ErrIntOverflowRpc 3913 } 3914 if iNdEx >= l { 3915 return io.ErrUnexpectedEOF 3916 } 3917 b := dAtA[iNdEx] 3918 iNdEx++ 3919 stringLen |= (uint64(b) & 0x7F) << shift 3920 if b < 0x80 { 3921 break 3922 } 3923 } 3924 intStringLen := int(stringLen) 3925 if intStringLen < 0 { 3926 return ErrInvalidLengthRpc 3927 } 3928 postIndex := iNdEx + intStringLen 3929 if postIndex > l { 3930 return io.ErrUnexpectedEOF 3931 } 3932 m.Stressers = append(m.Stressers, string(dAtA[iNdEx:postIndex])) 3933 iNdEx = postIndex 3934 case 102: 3935 if wireType != 2 { 3936 return fmt.Errorf("proto: wrong wireType = %d for field Checkers", wireType) 3937 } 3938 var stringLen uint64 3939 for shift := uint(0); ; shift += 7 { 3940 if shift >= 64 { 3941 return ErrIntOverflowRpc 3942 } 3943 if iNdEx >= l { 3944 return io.ErrUnexpectedEOF 3945 } 3946 b := dAtA[iNdEx] 3947 iNdEx++ 3948 stringLen |= (uint64(b) & 0x7F) << shift 3949 if b < 0x80 { 3950 break 3951 } 3952 } 3953 intStringLen := int(stringLen) 3954 if intStringLen < 0 { 3955 return ErrInvalidLengthRpc 3956 } 3957 postIndex := iNdEx + intStringLen 3958 if postIndex > l { 3959 return io.ErrUnexpectedEOF 3960 } 3961 m.Checkers = append(m.Checkers, string(dAtA[iNdEx:postIndex])) 3962 iNdEx = postIndex 3963 case 201: 3964 if wireType != 0 { 3965 return fmt.Errorf("proto: wrong wireType = %d for field StressKeySize", wireType) 3966 } 3967 m.StressKeySize = 0 3968 for shift := uint(0); ; shift += 7 { 3969 if shift >= 64 { 3970 return ErrIntOverflowRpc 3971 } 3972 if iNdEx >= l { 3973 return io.ErrUnexpectedEOF 3974 } 3975 b := dAtA[iNdEx] 3976 iNdEx++ 3977 m.StressKeySize |= (int32(b) & 0x7F) << shift 3978 if b < 0x80 { 3979 break 3980 } 3981 } 3982 case 202: 3983 if wireType != 0 { 3984 return fmt.Errorf("proto: wrong wireType = %d for field StressKeySizeLarge", wireType) 3985 } 3986 m.StressKeySizeLarge = 0 3987 for shift := uint(0); ; shift += 7 { 3988 if shift >= 64 { 3989 return ErrIntOverflowRpc 3990 } 3991 if iNdEx >= l { 3992 return io.ErrUnexpectedEOF 3993 } 3994 b := dAtA[iNdEx] 3995 iNdEx++ 3996 m.StressKeySizeLarge |= (int32(b) & 0x7F) << shift 3997 if b < 0x80 { 3998 break 3999 } 4000 } 4001 case 203: 4002 if wireType != 0 { 4003 return fmt.Errorf("proto: wrong wireType = %d for field StressKeySuffixRange", wireType) 4004 } 4005 m.StressKeySuffixRange = 0 4006 for shift := uint(0); ; shift += 7 { 4007 if shift >= 64 { 4008 return ErrIntOverflowRpc 4009 } 4010 if iNdEx >= l { 4011 return io.ErrUnexpectedEOF 4012 } 4013 b := dAtA[iNdEx] 4014 iNdEx++ 4015 m.StressKeySuffixRange |= (int32(b) & 0x7F) << shift 4016 if b < 0x80 { 4017 break 4018 } 4019 } 4020 case 204: 4021 if wireType != 0 { 4022 return fmt.Errorf("proto: wrong wireType = %d for field StressKeySuffixRangeTxn", wireType) 4023 } 4024 m.StressKeySuffixRangeTxn = 0 4025 for shift := uint(0); ; shift += 7 { 4026 if shift >= 64 { 4027 return ErrIntOverflowRpc 4028 } 4029 if iNdEx >= l { 4030 return io.ErrUnexpectedEOF 4031 } 4032 b := dAtA[iNdEx] 4033 iNdEx++ 4034 m.StressKeySuffixRangeTxn |= (int32(b) & 0x7F) << shift 4035 if b < 0x80 { 4036 break 4037 } 4038 } 4039 case 205: 4040 if wireType != 0 { 4041 return fmt.Errorf("proto: wrong wireType = %d for field StressKeyTxnOps", wireType) 4042 } 4043 m.StressKeyTxnOps = 0 4044 for shift := uint(0); ; shift += 7 { 4045 if shift >= 64 { 4046 return ErrIntOverflowRpc 4047 } 4048 if iNdEx >= l { 4049 return io.ErrUnexpectedEOF 4050 } 4051 b := dAtA[iNdEx] 4052 iNdEx++ 4053 m.StressKeyTxnOps |= (int32(b) & 0x7F) << shift 4054 if b < 0x80 { 4055 break 4056 } 4057 } 4058 case 301: 4059 if wireType != 0 { 4060 return fmt.Errorf("proto: wrong wireType = %d for field StressClients", wireType) 4061 } 4062 m.StressClients = 0 4063 for shift := uint(0); ; shift += 7 { 4064 if shift >= 64 { 4065 return ErrIntOverflowRpc 4066 } 4067 if iNdEx >= l { 4068 return io.ErrUnexpectedEOF 4069 } 4070 b := dAtA[iNdEx] 4071 iNdEx++ 4072 m.StressClients |= (int32(b) & 0x7F) << shift 4073 if b < 0x80 { 4074 break 4075 } 4076 } 4077 case 302: 4078 if wireType != 0 { 4079 return fmt.Errorf("proto: wrong wireType = %d for field StressQPS", wireType) 4080 } 4081 m.StressQPS = 0 4082 for shift := uint(0); ; shift += 7 { 4083 if shift >= 64 { 4084 return ErrIntOverflowRpc 4085 } 4086 if iNdEx >= l { 4087 return io.ErrUnexpectedEOF 4088 } 4089 b := dAtA[iNdEx] 4090 iNdEx++ 4091 m.StressQPS |= (int32(b) & 0x7F) << shift 4092 if b < 0x80 { 4093 break 4094 } 4095 } 4096 default: 4097 iNdEx = preIndex 4098 skippy, err := skipRpc(dAtA[iNdEx:]) 4099 if err != nil { 4100 return err 4101 } 4102 if skippy < 0 { 4103 return ErrInvalidLengthRpc 4104 } 4105 if (iNdEx + skippy) > l { 4106 return io.ErrUnexpectedEOF 4107 } 4108 iNdEx += skippy 4109 } 4110 } 4111 4112 if iNdEx > l { 4113 return io.ErrUnexpectedEOF 4114 } 4115 return nil 4116 } 4117 func (m *Etcd) Unmarshal(dAtA []byte) error { 4118 l := len(dAtA) 4119 iNdEx := 0 4120 for iNdEx < l { 4121 preIndex := iNdEx 4122 var wire uint64 4123 for shift := uint(0); ; shift += 7 { 4124 if shift >= 64 { 4125 return ErrIntOverflowRpc 4126 } 4127 if iNdEx >= l { 4128 return io.ErrUnexpectedEOF 4129 } 4130 b := dAtA[iNdEx] 4131 iNdEx++ 4132 wire |= (uint64(b) & 0x7F) << shift 4133 if b < 0x80 { 4134 break 4135 } 4136 } 4137 fieldNum := int32(wire >> 3) 4138 wireType := int(wire & 0x7) 4139 if wireType == 4 { 4140 return fmt.Errorf("proto: Etcd: wiretype end group for non-group") 4141 } 4142 if fieldNum <= 0 { 4143 return fmt.Errorf("proto: Etcd: illegal tag %d (wire type %d)", fieldNum, wire) 4144 } 4145 switch fieldNum { 4146 case 1: 4147 if wireType != 2 { 4148 return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) 4149 } 4150 var stringLen uint64 4151 for shift := uint(0); ; shift += 7 { 4152 if shift >= 64 { 4153 return ErrIntOverflowRpc 4154 } 4155 if iNdEx >= l { 4156 return io.ErrUnexpectedEOF 4157 } 4158 b := dAtA[iNdEx] 4159 iNdEx++ 4160 stringLen |= (uint64(b) & 0x7F) << shift 4161 if b < 0x80 { 4162 break 4163 } 4164 } 4165 intStringLen := int(stringLen) 4166 if intStringLen < 0 { 4167 return ErrInvalidLengthRpc 4168 } 4169 postIndex := iNdEx + intStringLen 4170 if postIndex > l { 4171 return io.ErrUnexpectedEOF 4172 } 4173 m.Name = string(dAtA[iNdEx:postIndex]) 4174 iNdEx = postIndex 4175 case 2: 4176 if wireType != 2 { 4177 return fmt.Errorf("proto: wrong wireType = %d for field DataDir", wireType) 4178 } 4179 var stringLen uint64 4180 for shift := uint(0); ; shift += 7 { 4181 if shift >= 64 { 4182 return ErrIntOverflowRpc 4183 } 4184 if iNdEx >= l { 4185 return io.ErrUnexpectedEOF 4186 } 4187 b := dAtA[iNdEx] 4188 iNdEx++ 4189 stringLen |= (uint64(b) & 0x7F) << shift 4190 if b < 0x80 { 4191 break 4192 } 4193 } 4194 intStringLen := int(stringLen) 4195 if intStringLen < 0 { 4196 return ErrInvalidLengthRpc 4197 } 4198 postIndex := iNdEx + intStringLen 4199 if postIndex > l { 4200 return io.ErrUnexpectedEOF 4201 } 4202 m.DataDir = string(dAtA[iNdEx:postIndex]) 4203 iNdEx = postIndex 4204 case 3: 4205 if wireType != 2 { 4206 return fmt.Errorf("proto: wrong wireType = %d for field WALDir", wireType) 4207 } 4208 var stringLen uint64 4209 for shift := uint(0); ; shift += 7 { 4210 if shift >= 64 { 4211 return ErrIntOverflowRpc 4212 } 4213 if iNdEx >= l { 4214 return io.ErrUnexpectedEOF 4215 } 4216 b := dAtA[iNdEx] 4217 iNdEx++ 4218 stringLen |= (uint64(b) & 0x7F) << shift 4219 if b < 0x80 { 4220 break 4221 } 4222 } 4223 intStringLen := int(stringLen) 4224 if intStringLen < 0 { 4225 return ErrInvalidLengthRpc 4226 } 4227 postIndex := iNdEx + intStringLen 4228 if postIndex > l { 4229 return io.ErrUnexpectedEOF 4230 } 4231 m.WALDir = string(dAtA[iNdEx:postIndex]) 4232 iNdEx = postIndex 4233 case 11: 4234 if wireType != 0 { 4235 return fmt.Errorf("proto: wrong wireType = %d for field HeartbeatIntervalMs", wireType) 4236 } 4237 m.HeartbeatIntervalMs = 0 4238 for shift := uint(0); ; shift += 7 { 4239 if shift >= 64 { 4240 return ErrIntOverflowRpc 4241 } 4242 if iNdEx >= l { 4243 return io.ErrUnexpectedEOF 4244 } 4245 b := dAtA[iNdEx] 4246 iNdEx++ 4247 m.HeartbeatIntervalMs |= (int64(b) & 0x7F) << shift 4248 if b < 0x80 { 4249 break 4250 } 4251 } 4252 case 12: 4253 if wireType != 0 { 4254 return fmt.Errorf("proto: wrong wireType = %d for field ElectionTimeoutMs", wireType) 4255 } 4256 m.ElectionTimeoutMs = 0 4257 for shift := uint(0); ; shift += 7 { 4258 if shift >= 64 { 4259 return ErrIntOverflowRpc 4260 } 4261 if iNdEx >= l { 4262 return io.ErrUnexpectedEOF 4263 } 4264 b := dAtA[iNdEx] 4265 iNdEx++ 4266 m.ElectionTimeoutMs |= (int64(b) & 0x7F) << shift 4267 if b < 0x80 { 4268 break 4269 } 4270 } 4271 case 21: 4272 if wireType != 2 { 4273 return fmt.Errorf("proto: wrong wireType = %d for field ListenClientURLs", wireType) 4274 } 4275 var stringLen uint64 4276 for shift := uint(0); ; shift += 7 { 4277 if shift >= 64 { 4278 return ErrIntOverflowRpc 4279 } 4280 if iNdEx >= l { 4281 return io.ErrUnexpectedEOF 4282 } 4283 b := dAtA[iNdEx] 4284 iNdEx++ 4285 stringLen |= (uint64(b) & 0x7F) << shift 4286 if b < 0x80 { 4287 break 4288 } 4289 } 4290 intStringLen := int(stringLen) 4291 if intStringLen < 0 { 4292 return ErrInvalidLengthRpc 4293 } 4294 postIndex := iNdEx + intStringLen 4295 if postIndex > l { 4296 return io.ErrUnexpectedEOF 4297 } 4298 m.ListenClientURLs = append(m.ListenClientURLs, string(dAtA[iNdEx:postIndex])) 4299 iNdEx = postIndex 4300 case 22: 4301 if wireType != 2 { 4302 return fmt.Errorf("proto: wrong wireType = %d for field AdvertiseClientURLs", wireType) 4303 } 4304 var stringLen uint64 4305 for shift := uint(0); ; shift += 7 { 4306 if shift >= 64 { 4307 return ErrIntOverflowRpc 4308 } 4309 if iNdEx >= l { 4310 return io.ErrUnexpectedEOF 4311 } 4312 b := dAtA[iNdEx] 4313 iNdEx++ 4314 stringLen |= (uint64(b) & 0x7F) << shift 4315 if b < 0x80 { 4316 break 4317 } 4318 } 4319 intStringLen := int(stringLen) 4320 if intStringLen < 0 { 4321 return ErrInvalidLengthRpc 4322 } 4323 postIndex := iNdEx + intStringLen 4324 if postIndex > l { 4325 return io.ErrUnexpectedEOF 4326 } 4327 m.AdvertiseClientURLs = append(m.AdvertiseClientURLs, string(dAtA[iNdEx:postIndex])) 4328 iNdEx = postIndex 4329 case 23: 4330 if wireType != 0 { 4331 return fmt.Errorf("proto: wrong wireType = %d for field ClientAutoTLS", wireType) 4332 } 4333 var v int 4334 for shift := uint(0); ; shift += 7 { 4335 if shift >= 64 { 4336 return ErrIntOverflowRpc 4337 } 4338 if iNdEx >= l { 4339 return io.ErrUnexpectedEOF 4340 } 4341 b := dAtA[iNdEx] 4342 iNdEx++ 4343 v |= (int(b) & 0x7F) << shift 4344 if b < 0x80 { 4345 break 4346 } 4347 } 4348 m.ClientAutoTLS = bool(v != 0) 4349 case 24: 4350 if wireType != 0 { 4351 return fmt.Errorf("proto: wrong wireType = %d for field ClientCertAuth", wireType) 4352 } 4353 var v int 4354 for shift := uint(0); ; shift += 7 { 4355 if shift >= 64 { 4356 return ErrIntOverflowRpc 4357 } 4358 if iNdEx >= l { 4359 return io.ErrUnexpectedEOF 4360 } 4361 b := dAtA[iNdEx] 4362 iNdEx++ 4363 v |= (int(b) & 0x7F) << shift 4364 if b < 0x80 { 4365 break 4366 } 4367 } 4368 m.ClientCertAuth = bool(v != 0) 4369 case 25: 4370 if wireType != 2 { 4371 return fmt.Errorf("proto: wrong wireType = %d for field ClientCertFile", wireType) 4372 } 4373 var stringLen uint64 4374 for shift := uint(0); ; shift += 7 { 4375 if shift >= 64 { 4376 return ErrIntOverflowRpc 4377 } 4378 if iNdEx >= l { 4379 return io.ErrUnexpectedEOF 4380 } 4381 b := dAtA[iNdEx] 4382 iNdEx++ 4383 stringLen |= (uint64(b) & 0x7F) << shift 4384 if b < 0x80 { 4385 break 4386 } 4387 } 4388 intStringLen := int(stringLen) 4389 if intStringLen < 0 { 4390 return ErrInvalidLengthRpc 4391 } 4392 postIndex := iNdEx + intStringLen 4393 if postIndex > l { 4394 return io.ErrUnexpectedEOF 4395 } 4396 m.ClientCertFile = string(dAtA[iNdEx:postIndex]) 4397 iNdEx = postIndex 4398 case 26: 4399 if wireType != 2 { 4400 return fmt.Errorf("proto: wrong wireType = %d for field ClientKeyFile", wireType) 4401 } 4402 var stringLen uint64 4403 for shift := uint(0); ; shift += 7 { 4404 if shift >= 64 { 4405 return ErrIntOverflowRpc 4406 } 4407 if iNdEx >= l { 4408 return io.ErrUnexpectedEOF 4409 } 4410 b := dAtA[iNdEx] 4411 iNdEx++ 4412 stringLen |= (uint64(b) & 0x7F) << shift 4413 if b < 0x80 { 4414 break 4415 } 4416 } 4417 intStringLen := int(stringLen) 4418 if intStringLen < 0 { 4419 return ErrInvalidLengthRpc 4420 } 4421 postIndex := iNdEx + intStringLen 4422 if postIndex > l { 4423 return io.ErrUnexpectedEOF 4424 } 4425 m.ClientKeyFile = string(dAtA[iNdEx:postIndex]) 4426 iNdEx = postIndex 4427 case 27: 4428 if wireType != 2 { 4429 return fmt.Errorf("proto: wrong wireType = %d for field ClientTrustedCAFile", wireType) 4430 } 4431 var stringLen uint64 4432 for shift := uint(0); ; shift += 7 { 4433 if shift >= 64 { 4434 return ErrIntOverflowRpc 4435 } 4436 if iNdEx >= l { 4437 return io.ErrUnexpectedEOF 4438 } 4439 b := dAtA[iNdEx] 4440 iNdEx++ 4441 stringLen |= (uint64(b) & 0x7F) << shift 4442 if b < 0x80 { 4443 break 4444 } 4445 } 4446 intStringLen := int(stringLen) 4447 if intStringLen < 0 { 4448 return ErrInvalidLengthRpc 4449 } 4450 postIndex := iNdEx + intStringLen 4451 if postIndex > l { 4452 return io.ErrUnexpectedEOF 4453 } 4454 m.ClientTrustedCAFile = string(dAtA[iNdEx:postIndex]) 4455 iNdEx = postIndex 4456 case 31: 4457 if wireType != 2 { 4458 return fmt.Errorf("proto: wrong wireType = %d for field ListenPeerURLs", wireType) 4459 } 4460 var stringLen uint64 4461 for shift := uint(0); ; shift += 7 { 4462 if shift >= 64 { 4463 return ErrIntOverflowRpc 4464 } 4465 if iNdEx >= l { 4466 return io.ErrUnexpectedEOF 4467 } 4468 b := dAtA[iNdEx] 4469 iNdEx++ 4470 stringLen |= (uint64(b) & 0x7F) << shift 4471 if b < 0x80 { 4472 break 4473 } 4474 } 4475 intStringLen := int(stringLen) 4476 if intStringLen < 0 { 4477 return ErrInvalidLengthRpc 4478 } 4479 postIndex := iNdEx + intStringLen 4480 if postIndex > l { 4481 return io.ErrUnexpectedEOF 4482 } 4483 m.ListenPeerURLs = append(m.ListenPeerURLs, string(dAtA[iNdEx:postIndex])) 4484 iNdEx = postIndex 4485 case 32: 4486 if wireType != 2 { 4487 return fmt.Errorf("proto: wrong wireType = %d for field AdvertisePeerURLs", wireType) 4488 } 4489 var stringLen uint64 4490 for shift := uint(0); ; shift += 7 { 4491 if shift >= 64 { 4492 return ErrIntOverflowRpc 4493 } 4494 if iNdEx >= l { 4495 return io.ErrUnexpectedEOF 4496 } 4497 b := dAtA[iNdEx] 4498 iNdEx++ 4499 stringLen |= (uint64(b) & 0x7F) << shift 4500 if b < 0x80 { 4501 break 4502 } 4503 } 4504 intStringLen := int(stringLen) 4505 if intStringLen < 0 { 4506 return ErrInvalidLengthRpc 4507 } 4508 postIndex := iNdEx + intStringLen 4509 if postIndex > l { 4510 return io.ErrUnexpectedEOF 4511 } 4512 m.AdvertisePeerURLs = append(m.AdvertisePeerURLs, string(dAtA[iNdEx:postIndex])) 4513 iNdEx = postIndex 4514 case 33: 4515 if wireType != 0 { 4516 return fmt.Errorf("proto: wrong wireType = %d for field PeerAutoTLS", wireType) 4517 } 4518 var v int 4519 for shift := uint(0); ; shift += 7 { 4520 if shift >= 64 { 4521 return ErrIntOverflowRpc 4522 } 4523 if iNdEx >= l { 4524 return io.ErrUnexpectedEOF 4525 } 4526 b := dAtA[iNdEx] 4527 iNdEx++ 4528 v |= (int(b) & 0x7F) << shift 4529 if b < 0x80 { 4530 break 4531 } 4532 } 4533 m.PeerAutoTLS = bool(v != 0) 4534 case 34: 4535 if wireType != 0 { 4536 return fmt.Errorf("proto: wrong wireType = %d for field PeerClientCertAuth", wireType) 4537 } 4538 var v int 4539 for shift := uint(0); ; shift += 7 { 4540 if shift >= 64 { 4541 return ErrIntOverflowRpc 4542 } 4543 if iNdEx >= l { 4544 return io.ErrUnexpectedEOF 4545 } 4546 b := dAtA[iNdEx] 4547 iNdEx++ 4548 v |= (int(b) & 0x7F) << shift 4549 if b < 0x80 { 4550 break 4551 } 4552 } 4553 m.PeerClientCertAuth = bool(v != 0) 4554 case 35: 4555 if wireType != 2 { 4556 return fmt.Errorf("proto: wrong wireType = %d for field PeerCertFile", wireType) 4557 } 4558 var stringLen uint64 4559 for shift := uint(0); ; shift += 7 { 4560 if shift >= 64 { 4561 return ErrIntOverflowRpc 4562 } 4563 if iNdEx >= l { 4564 return io.ErrUnexpectedEOF 4565 } 4566 b := dAtA[iNdEx] 4567 iNdEx++ 4568 stringLen |= (uint64(b) & 0x7F) << shift 4569 if b < 0x80 { 4570 break 4571 } 4572 } 4573 intStringLen := int(stringLen) 4574 if intStringLen < 0 { 4575 return ErrInvalidLengthRpc 4576 } 4577 postIndex := iNdEx + intStringLen 4578 if postIndex > l { 4579 return io.ErrUnexpectedEOF 4580 } 4581 m.PeerCertFile = string(dAtA[iNdEx:postIndex]) 4582 iNdEx = postIndex 4583 case 36: 4584 if wireType != 2 { 4585 return fmt.Errorf("proto: wrong wireType = %d for field PeerKeyFile", wireType) 4586 } 4587 var stringLen uint64 4588 for shift := uint(0); ; shift += 7 { 4589 if shift >= 64 { 4590 return ErrIntOverflowRpc 4591 } 4592 if iNdEx >= l { 4593 return io.ErrUnexpectedEOF 4594 } 4595 b := dAtA[iNdEx] 4596 iNdEx++ 4597 stringLen |= (uint64(b) & 0x7F) << shift 4598 if b < 0x80 { 4599 break 4600 } 4601 } 4602 intStringLen := int(stringLen) 4603 if intStringLen < 0 { 4604 return ErrInvalidLengthRpc 4605 } 4606 postIndex := iNdEx + intStringLen 4607 if postIndex > l { 4608 return io.ErrUnexpectedEOF 4609 } 4610 m.PeerKeyFile = string(dAtA[iNdEx:postIndex]) 4611 iNdEx = postIndex 4612 case 37: 4613 if wireType != 2 { 4614 return fmt.Errorf("proto: wrong wireType = %d for field PeerTrustedCAFile", wireType) 4615 } 4616 var stringLen uint64 4617 for shift := uint(0); ; shift += 7 { 4618 if shift >= 64 { 4619 return ErrIntOverflowRpc 4620 } 4621 if iNdEx >= l { 4622 return io.ErrUnexpectedEOF 4623 } 4624 b := dAtA[iNdEx] 4625 iNdEx++ 4626 stringLen |= (uint64(b) & 0x7F) << shift 4627 if b < 0x80 { 4628 break 4629 } 4630 } 4631 intStringLen := int(stringLen) 4632 if intStringLen < 0 { 4633 return ErrInvalidLengthRpc 4634 } 4635 postIndex := iNdEx + intStringLen 4636 if postIndex > l { 4637 return io.ErrUnexpectedEOF 4638 } 4639 m.PeerTrustedCAFile = string(dAtA[iNdEx:postIndex]) 4640 iNdEx = postIndex 4641 case 41: 4642 if wireType != 2 { 4643 return fmt.Errorf("proto: wrong wireType = %d for field InitialCluster", wireType) 4644 } 4645 var stringLen uint64 4646 for shift := uint(0); ; shift += 7 { 4647 if shift >= 64 { 4648 return ErrIntOverflowRpc 4649 } 4650 if iNdEx >= l { 4651 return io.ErrUnexpectedEOF 4652 } 4653 b := dAtA[iNdEx] 4654 iNdEx++ 4655 stringLen |= (uint64(b) & 0x7F) << shift 4656 if b < 0x80 { 4657 break 4658 } 4659 } 4660 intStringLen := int(stringLen) 4661 if intStringLen < 0 { 4662 return ErrInvalidLengthRpc 4663 } 4664 postIndex := iNdEx + intStringLen 4665 if postIndex > l { 4666 return io.ErrUnexpectedEOF 4667 } 4668 m.InitialCluster = string(dAtA[iNdEx:postIndex]) 4669 iNdEx = postIndex 4670 case 42: 4671 if wireType != 2 { 4672 return fmt.Errorf("proto: wrong wireType = %d for field InitialClusterState", wireType) 4673 } 4674 var stringLen uint64 4675 for shift := uint(0); ; shift += 7 { 4676 if shift >= 64 { 4677 return ErrIntOverflowRpc 4678 } 4679 if iNdEx >= l { 4680 return io.ErrUnexpectedEOF 4681 } 4682 b := dAtA[iNdEx] 4683 iNdEx++ 4684 stringLen |= (uint64(b) & 0x7F) << shift 4685 if b < 0x80 { 4686 break 4687 } 4688 } 4689 intStringLen := int(stringLen) 4690 if intStringLen < 0 { 4691 return ErrInvalidLengthRpc 4692 } 4693 postIndex := iNdEx + intStringLen 4694 if postIndex > l { 4695 return io.ErrUnexpectedEOF 4696 } 4697 m.InitialClusterState = string(dAtA[iNdEx:postIndex]) 4698 iNdEx = postIndex 4699 case 43: 4700 if wireType != 2 { 4701 return fmt.Errorf("proto: wrong wireType = %d for field InitialClusterToken", wireType) 4702 } 4703 var stringLen uint64 4704 for shift := uint(0); ; shift += 7 { 4705 if shift >= 64 { 4706 return ErrIntOverflowRpc 4707 } 4708 if iNdEx >= l { 4709 return io.ErrUnexpectedEOF 4710 } 4711 b := dAtA[iNdEx] 4712 iNdEx++ 4713 stringLen |= (uint64(b) & 0x7F) << shift 4714 if b < 0x80 { 4715 break 4716 } 4717 } 4718 intStringLen := int(stringLen) 4719 if intStringLen < 0 { 4720 return ErrInvalidLengthRpc 4721 } 4722 postIndex := iNdEx + intStringLen 4723 if postIndex > l { 4724 return io.ErrUnexpectedEOF 4725 } 4726 m.InitialClusterToken = string(dAtA[iNdEx:postIndex]) 4727 iNdEx = postIndex 4728 case 51: 4729 if wireType != 0 { 4730 return fmt.Errorf("proto: wrong wireType = %d for field SnapshotCount", wireType) 4731 } 4732 m.SnapshotCount = 0 4733 for shift := uint(0); ; shift += 7 { 4734 if shift >= 64 { 4735 return ErrIntOverflowRpc 4736 } 4737 if iNdEx >= l { 4738 return io.ErrUnexpectedEOF 4739 } 4740 b := dAtA[iNdEx] 4741 iNdEx++ 4742 m.SnapshotCount |= (int64(b) & 0x7F) << shift 4743 if b < 0x80 { 4744 break 4745 } 4746 } 4747 case 52: 4748 if wireType != 0 { 4749 return fmt.Errorf("proto: wrong wireType = %d for field QuotaBackendBytes", wireType) 4750 } 4751 m.QuotaBackendBytes = 0 4752 for shift := uint(0); ; shift += 7 { 4753 if shift >= 64 { 4754 return ErrIntOverflowRpc 4755 } 4756 if iNdEx >= l { 4757 return io.ErrUnexpectedEOF 4758 } 4759 b := dAtA[iNdEx] 4760 iNdEx++ 4761 m.QuotaBackendBytes |= (int64(b) & 0x7F) << shift 4762 if b < 0x80 { 4763 break 4764 } 4765 } 4766 case 63: 4767 if wireType != 0 { 4768 return fmt.Errorf("proto: wrong wireType = %d for field PreVote", wireType) 4769 } 4770 var v int 4771 for shift := uint(0); ; shift += 7 { 4772 if shift >= 64 { 4773 return ErrIntOverflowRpc 4774 } 4775 if iNdEx >= l { 4776 return io.ErrUnexpectedEOF 4777 } 4778 b := dAtA[iNdEx] 4779 iNdEx++ 4780 v |= (int(b) & 0x7F) << shift 4781 if b < 0x80 { 4782 break 4783 } 4784 } 4785 m.PreVote = bool(v != 0) 4786 case 64: 4787 if wireType != 0 { 4788 return fmt.Errorf("proto: wrong wireType = %d for field InitialCorruptCheck", wireType) 4789 } 4790 var v int 4791 for shift := uint(0); ; shift += 7 { 4792 if shift >= 64 { 4793 return ErrIntOverflowRpc 4794 } 4795 if iNdEx >= l { 4796 return io.ErrUnexpectedEOF 4797 } 4798 b := dAtA[iNdEx] 4799 iNdEx++ 4800 v |= (int(b) & 0x7F) << shift 4801 if b < 0x80 { 4802 break 4803 } 4804 } 4805 m.InitialCorruptCheck = bool(v != 0) 4806 default: 4807 iNdEx = preIndex 4808 skippy, err := skipRpc(dAtA[iNdEx:]) 4809 if err != nil { 4810 return err 4811 } 4812 if skippy < 0 { 4813 return ErrInvalidLengthRpc 4814 } 4815 if (iNdEx + skippy) > l { 4816 return io.ErrUnexpectedEOF 4817 } 4818 iNdEx += skippy 4819 } 4820 } 4821 4822 if iNdEx > l { 4823 return io.ErrUnexpectedEOF 4824 } 4825 return nil 4826 } 4827 func skipRpc(dAtA []byte) (n int, err error) { 4828 l := len(dAtA) 4829 iNdEx := 0 4830 for iNdEx < l { 4831 var wire uint64 4832 for shift := uint(0); ; shift += 7 { 4833 if shift >= 64 { 4834 return 0, ErrIntOverflowRpc 4835 } 4836 if iNdEx >= l { 4837 return 0, io.ErrUnexpectedEOF 4838 } 4839 b := dAtA[iNdEx] 4840 iNdEx++ 4841 wire |= (uint64(b) & 0x7F) << shift 4842 if b < 0x80 { 4843 break 4844 } 4845 } 4846 wireType := int(wire & 0x7) 4847 switch wireType { 4848 case 0: 4849 for shift := uint(0); ; shift += 7 { 4850 if shift >= 64 { 4851 return 0, ErrIntOverflowRpc 4852 } 4853 if iNdEx >= l { 4854 return 0, io.ErrUnexpectedEOF 4855 } 4856 iNdEx++ 4857 if dAtA[iNdEx-1] < 0x80 { 4858 break 4859 } 4860 } 4861 return iNdEx, nil 4862 case 1: 4863 iNdEx += 8 4864 return iNdEx, nil 4865 case 2: 4866 var length int 4867 for shift := uint(0); ; shift += 7 { 4868 if shift >= 64 { 4869 return 0, ErrIntOverflowRpc 4870 } 4871 if iNdEx >= l { 4872 return 0, io.ErrUnexpectedEOF 4873 } 4874 b := dAtA[iNdEx] 4875 iNdEx++ 4876 length |= (int(b) & 0x7F) << shift 4877 if b < 0x80 { 4878 break 4879 } 4880 } 4881 iNdEx += length 4882 if length < 0 { 4883 return 0, ErrInvalidLengthRpc 4884 } 4885 return iNdEx, nil 4886 case 3: 4887 for { 4888 var innerWire uint64 4889 var start int = iNdEx 4890 for shift := uint(0); ; shift += 7 { 4891 if shift >= 64 { 4892 return 0, ErrIntOverflowRpc 4893 } 4894 if iNdEx >= l { 4895 return 0, io.ErrUnexpectedEOF 4896 } 4897 b := dAtA[iNdEx] 4898 iNdEx++ 4899 innerWire |= (uint64(b) & 0x7F) << shift 4900 if b < 0x80 { 4901 break 4902 } 4903 } 4904 innerWireType := int(innerWire & 0x7) 4905 if innerWireType == 4 { 4906 break 4907 } 4908 next, err := skipRpc(dAtA[start:]) 4909 if err != nil { 4910 return 0, err 4911 } 4912 iNdEx = start + next 4913 } 4914 return iNdEx, nil 4915 case 4: 4916 return iNdEx, nil 4917 case 5: 4918 iNdEx += 4 4919 return iNdEx, nil 4920 default: 4921 return 0, fmt.Errorf("proto: illegal wireType %d", wireType) 4922 } 4923 } 4924 panic("unreachable") 4925 } 4926 4927 var ( 4928 ErrInvalidLengthRpc = fmt.Errorf("proto: negative length found during unmarshaling") 4929 ErrIntOverflowRpc = fmt.Errorf("proto: integer overflow") 4930 ) 4931 4932 func init() { proto.RegisterFile("rpcpb/rpc.proto", fileDescriptorRpc) } 4933 4934 var fileDescriptorRpc = []byte{ 4935 // 2808 bytes of a gzipped FileDescriptorProto 4936 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x59, 0xdb, 0x73, 0xdb, 0xc6, 4937 0xf5, 0x16, 0x44, 0x5d, 0x57, 0x37, 0x68, 0x65, 0xd9, 0xf0, 0x4d, 0x90, 0xe1, 0x38, 0x3f, 0x59, 4938 0x09, 0xec, 0xfc, 0xec, 0x4c, 0x2e, 0x4e, 0x13, 0x07, 0xa4, 0x20, 0x8b, 0x15, 0x44, 0xd2, 0x4b, 4939 0xc8, 0x76, 0x9e, 0x38, 0x10, 0xb9, 0x92, 0x30, 0xa6, 0x00, 0x06, 0x58, 0x2a, 0x52, 0xfe, 0x81, 4940 0xbe, 0xf6, 0x3e, 0xed, 0x4c, 0x9f, 0xfa, 0xdc, 0xb4, 0xff, 0x86, 0x73, 0x6b, 0xd3, 0xf6, 0xa9, 4941 0xed, 0x0c, 0xa7, 0x4d, 0x5f, 0xfa, 0xd4, 0x07, 0x4e, 0x6f, 0xe9, 0x53, 0x67, 0x77, 0x01, 0x71, 4942 0x01, 0x90, 0x92, 0x9e, 0xa4, 0x3d, 0xe7, 0xfb, 0xbe, 0x3d, 0xbb, 0x67, 0xb1, 0xe7, 0x00, 0x04, 4943 0x73, 0x41, 0xab, 0xde, 0xda, 0xb9, 0x1b, 0xb4, 0xea, 0x77, 0x5a, 0x81, 0x4f, 0x7c, 0x38, 0xca, 4944 0x0c, 0x57, 0xf4, 0x3d, 0x97, 0xec, 0xb7, 0x77, 0xee, 0xd4, 0xfd, 0x83, 0xbb, 0x7b, 0xfe, 0x9e, 4945 0x7f, 0x97, 0x79, 0x77, 0xda, 0xbb, 0x6c, 0xc4, 0x06, 0xec, 0x3f, 0xce, 0xd2, 0xbe, 0x23, 0x81, 4946 0x71, 0x84, 0x3f, 0x6c, 0xe3, 0x90, 0xc0, 0x3b, 0x60, 0xb2, 0xdc, 0xc2, 0x81, 0x43, 0x5c, 0xdf, 4947 0x53, 0xa4, 0x65, 0x69, 0x65, 0xf6, 0x9e, 0x7c, 0x87, 0xa9, 0xde, 0x39, 0xb1, 0xa3, 0x1e, 0x04, 4948 0xde, 0x02, 0x63, 0x5b, 0xf8, 0x60, 0x07, 0x07, 0xca, 0xf0, 0xb2, 0xb4, 0x32, 0x75, 0x6f, 0x26, 4949 0x02, 0x73, 0x23, 0x8a, 0x9c, 0x14, 0x66, 0xe3, 0x90, 0xe0, 0x40, 0xc9, 0x25, 0x60, 0xdc, 0x88, 4950 0x22, 0xa7, 0xf6, 0xb7, 0x61, 0x30, 0x5d, 0xf5, 0x9c, 0x56, 0xb8, 0xef, 0x93, 0xa2, 0xb7, 0xeb, 4951 0xc3, 0x25, 0x00, 0xb8, 0x42, 0xc9, 0x39, 0xc0, 0x2c, 0x9e, 0x49, 0x24, 0x58, 0xe0, 0x2a, 0x90, 4952 0xf9, 0xa8, 0xd0, 0x74, 0xb1, 0x47, 0xb6, 0x91, 0x15, 0x2a, 0xc3, 0xcb, 0xb9, 0x95, 0x49, 0x94, 4953 0xb1, 0x43, 0xad, 0xa7, 0x5d, 0x71, 0xc8, 0x3e, 0x8b, 0x64, 0x12, 0x25, 0x6c, 0x54, 0x2f, 0x1e, 4954 0xaf, 0xbb, 0x4d, 0x5c, 0x75, 0x3f, 0xc6, 0xca, 0x08, 0xc3, 0x65, 0xec, 0xf0, 0x55, 0x30, 0x1f, 4955 0xdb, 0x6c, 0x9f, 0x38, 0x4d, 0x06, 0x1e, 0x65, 0xe0, 0xac, 0x43, 0x54, 0x66, 0xc6, 0x4d, 0x7c, 4956 0xac, 0x8c, 0x2d, 0x4b, 0x2b, 0x39, 0x94, 0xb1, 0x8b, 0x91, 0x6e, 0x38, 0xe1, 0xbe, 0x32, 0xce, 4957 0x70, 0x09, 0x9b, 0xa8, 0x87, 0xf0, 0xa1, 0x1b, 0xd2, 0x7c, 0x4d, 0x24, 0xf5, 0x62, 0x3b, 0x84, 4958 0x60, 0xc4, 0xf6, 0xfd, 0xe7, 0xca, 0x24, 0x0b, 0x8e, 0xfd, 0xaf, 0xfd, 0x4c, 0x02, 0x13, 0x08, 4959 0x87, 0x2d, 0xdf, 0x0b, 0x31, 0x54, 0xc0, 0x78, 0xb5, 0x5d, 0xaf, 0xe3, 0x30, 0x64, 0x7b, 0x3c, 4960 0x81, 0xe2, 0x21, 0xbc, 0x08, 0xc6, 0xaa, 0xc4, 0x21, 0xed, 0x90, 0xe5, 0x77, 0x12, 0x45, 0x23, 4961 0x21, 0xef, 0xb9, 0xd3, 0xf2, 0xfe, 0x66, 0x32, 0x9f, 0x6c, 0x2f, 0xa7, 0xee, 0x2d, 0x44, 0x60, 4962 0xd1, 0x85, 0x12, 0x40, 0xed, 0x4f, 0xd3, 0xf1, 0x04, 0xf0, 0x5d, 0x30, 0x6d, 0x92, 0x7a, 0xc3, 4963 0x3c, 0xc2, 0x75, 0x96, 0x37, 0x76, 0x0a, 0xf2, 0x97, 0xbb, 0x1d, 0x75, 0xf1, 0xd8, 0x39, 0x68, 4964 0x3e, 0xd0, 0x30, 0xa9, 0x37, 0x74, 0x7c, 0x84, 0xeb, 0x7a, 0xcb, 0x21, 0xfb, 0x1a, 0x4a, 0xc0, 4965 0xe1, 0x7d, 0x30, 0x69, 0xec, 0x61, 0x8f, 0x18, 0x8d, 0x46, 0xa0, 0x4c, 0x31, 0xee, 0x62, 0xb7, 4966 0xa3, 0xce, 0x73, 0xae, 0x43, 0x5d, 0xba, 0xd3, 0x68, 0x04, 0x1a, 0xea, 0xe1, 0xa0, 0x05, 0xe6, 4967 0xd7, 0x1d, 0xb7, 0xd9, 0xf2, 0x5d, 0x8f, 0x6c, 0xd8, 0x76, 0x85, 0x91, 0xa7, 0x19, 0x79, 0xa9, 4968 0xdb, 0x51, 0xaf, 0x70, 0xf2, 0x6e, 0x0c, 0xd1, 0xf7, 0x09, 0x69, 0x45, 0x2a, 0x59, 0x22, 0xd4, 4969 0xc1, 0x78, 0xde, 0x09, 0xf1, 0x9a, 0x1b, 0x28, 0x98, 0x69, 0x2c, 0x74, 0x3b, 0xea, 0x1c, 0xd7, 4970 0xd8, 0x71, 0x42, 0xac, 0x37, 0xdc, 0x40, 0x43, 0x31, 0x06, 0x3e, 0x00, 0x53, 0x74, 0x05, 0x96, 4971 0xbf, 0xc7, 0xd6, 0xbb, 0xcb, 0x28, 0x4a, 0xb7, 0xa3, 0x5e, 0x10, 0xd6, 0xdb, 0xf4, 0xf7, 0xa2, 4972 0xe5, 0x8a, 0x60, 0xf8, 0x08, 0xcc, 0xd1, 0x21, 0x3f, 0xf6, 0x95, 0xc0, 0x3f, 0x3a, 0x56, 0x3e, 4973 0x65, 0x29, 0xcd, 0x5f, 0xeb, 0x76, 0x54, 0x45, 0x10, 0xa8, 0x33, 0x88, 0xde, 0xa2, 0x18, 0x0d, 4974 0xa5, 0x59, 0xd0, 0x00, 0x33, 0xd4, 0x54, 0xc1, 0x38, 0xe0, 0x32, 0x9f, 0x71, 0x99, 0x2b, 0xdd, 4975 0x8e, 0x7a, 0x51, 0x90, 0x69, 0x61, 0x1c, 0xc4, 0x22, 0x49, 0x06, 0xac, 0x00, 0xd8, 0x53, 0x35, 4976 0xbd, 0x06, 0xdb, 0x14, 0xe5, 0x13, 0x76, 0x90, 0xf2, 0x6a, 0xb7, 0xa3, 0x5e, 0xcd, 0x86, 0x83, 4977 0x23, 0x98, 0x86, 0xfa, 0x70, 0xe1, 0xff, 0x83, 0x11, 0x6a, 0x55, 0x7e, 0xc9, 0x2f, 0x9b, 0xa9, 4978 0xe8, 0x1c, 0x51, 0x5b, 0x7e, 0xae, 0xdb, 0x51, 0xa7, 0x7a, 0x82, 0x1a, 0x62, 0x50, 0x98, 0x07, 4979 0x8b, 0xf4, 0x6f, 0xd9, 0xeb, 0x3d, 0x15, 0x21, 0xf1, 0x03, 0xac, 0xfc, 0x2a, 0xab, 0x81, 0xfa, 4980 0x43, 0xe1, 0x1a, 0x98, 0xe5, 0x81, 0x14, 0x70, 0x40, 0xd6, 0x1c, 0xe2, 0x28, 0xdf, 0x63, 0x97, 4981 0x47, 0xfe, 0x6a, 0xb7, 0xa3, 0x5e, 0xe2, 0x73, 0x46, 0xf1, 0xd7, 0x71, 0x40, 0xf4, 0x86, 0x43, 4982 0x1c, 0x0d, 0xa5, 0x38, 0x49, 0x15, 0x96, 0xd9, 0xef, 0x9f, 0xaa, 0xc2, 0xb3, 0x9b, 0xe2, 0xd0, 4983 0xbc, 0x70, 0xcb, 0x26, 0x3e, 0x66, 0xa1, 0xfc, 0x80, 0x8b, 0x08, 0x79, 0x89, 0x44, 0x9e, 0xe3, 4984 0xe3, 0x28, 0x92, 0x24, 0x23, 0x21, 0xc1, 0xe2, 0xf8, 0xe1, 0x69, 0x12, 0x3c, 0x8c, 0x24, 0x03, 4985 0xda, 0x60, 0x81, 0x1b, 0xec, 0xa0, 0x1d, 0x12, 0xdc, 0x28, 0x18, 0x2c, 0x96, 0x1f, 0x71, 0xa1, 4986 0x1b, 0xdd, 0x8e, 0x7a, 0x3d, 0x21, 0x44, 0x38, 0x4c, 0xaf, 0x3b, 0x51, 0x48, 0xfd, 0xe8, 0x7d, 4987 0x54, 0x59, 0x78, 0x3f, 0x3e, 0x87, 0x2a, 0x8f, 0xb2, 0x1f, 0x1d, 0xbe, 0x07, 0xa6, 0xe9, 0x99, 4988 0x3c, 0xc9, 0xdd, 0x3f, 0x73, 0xe9, 0x0b, 0x84, 0x9d, 0x61, 0x21, 0x73, 0x09, 0xbc, 0xc8, 0x67, 4989 0xe1, 0xfc, 0xeb, 0x14, 0x7e, 0x74, 0x01, 0x89, 0x78, 0xf8, 0x0e, 0x98, 0xa2, 0xe3, 0x38, 0x5f, 4990 0xff, 0xce, 0xa5, 0x9f, 0x67, 0x46, 0xef, 0x65, 0x4b, 0x44, 0x0b, 0x64, 0x36, 0xf7, 0x7f, 0x06, 4991 0x93, 0xa3, 0xcb, 0x40, 0x40, 0xc3, 0x12, 0x98, 0xa7, 0xc3, 0x64, 0x8e, 0xbe, 0xc9, 0xa5, 0x9f, 4992 0x3f, 0x26, 0x91, 0xc9, 0x50, 0x96, 0x9a, 0xd1, 0x63, 0x21, 0xfd, 0xf7, 0x4c, 0x3d, 0x1e, 0x59, 4993 0x96, 0x4a, 0x6f, 0xf6, 0x44, 0x45, 0xfe, 0xc3, 0x48, 0x7a, 0x75, 0x61, 0xe4, 0x8e, 0x37, 0x36, 4994 0x51, 0xac, 0xdf, 0x4a, 0x15, 0x97, 0x3f, 0x9e, 0xbb, 0xba, 0xfc, 0x7c, 0x3a, 0xee, 0x47, 0xe8, 4995 0xdd, 0x4c, 0xd7, 0x46, 0xef, 0x66, 0x29, 0x7d, 0x37, 0xd3, 0x8d, 0x88, 0xee, 0xe6, 0x08, 0x03, 4996 0x5f, 0x05, 0xe3, 0x25, 0x4c, 0x3e, 0xf2, 0x83, 0xe7, 0xbc, 0x20, 0xe6, 0x61, 0xb7, 0xa3, 0xce, 4997 0x72, 0xb8, 0xc7, 0x1d, 0x1a, 0x8a, 0x21, 0xf0, 0x26, 0x18, 0x61, 0x95, 0x83, 0x6f, 0x91, 0x70, 4998 0x43, 0xf1, 0x52, 0xc1, 0x9c, 0xb0, 0x00, 0x66, 0xd7, 0x70, 0xd3, 0x39, 0xb6, 0x1c, 0x82, 0xbd, 4999 0xfa, 0xf1, 0x56, 0xc8, 0xaa, 0xd4, 0x8c, 0x78, 0x2d, 0x34, 0xa8, 0x5f, 0x6f, 0x72, 0x80, 0x7e, 5000 0x10, 0x6a, 0x28, 0x45, 0x81, 0xdf, 0x06, 0x72, 0xd2, 0x82, 0x0e, 0x59, 0xbd, 0x9a, 0x11, 0xeb, 5001 0x55, 0x5a, 0x46, 0x0f, 0x0e, 0x35, 0x94, 0xe1, 0xc1, 0x0f, 0xc0, 0xe2, 0x76, 0xab, 0xe1, 0x10, 5002 0xdc, 0x48, 0xc5, 0x35, 0xc3, 0x04, 0x6f, 0x76, 0x3b, 0xaa, 0xca, 0x05, 0xdb, 0x1c, 0xa6, 0x67, 5003 0xe3, 0xeb, 0xaf, 0x00, 0xdf, 0x00, 0x00, 0xf9, 0x6d, 0xaf, 0x61, 0xb9, 0x07, 0x2e, 0x51, 0x16, 5004 0x97, 0xa5, 0x95, 0xd1, 0xfc, 0xc5, 0x6e, 0x47, 0x85, 0x5c, 0x2f, 0xa0, 0x3e, 0xbd, 0x49, 0x9d, 5005 0x1a, 0x12, 0x90, 0x30, 0x0f, 0x66, 0xcd, 0x23, 0x97, 0x94, 0xbd, 0x82, 0x13, 0x62, 0x5a, 0x60, 5006 0x95, 0x8b, 0x99, 0x6a, 0x74, 0xe4, 0x12, 0xdd, 0xf7, 0x74, 0x5a, 0x94, 0xdb, 0x01, 0xd6, 0x50, 5007 0x8a, 0x01, 0xdf, 0x06, 0x53, 0xa6, 0xe7, 0xec, 0x34, 0x71, 0xa5, 0x15, 0xf8, 0xbb, 0xca, 0x25, 5008 0x26, 0x70, 0xa9, 0xdb, 0x51, 0x17, 0x22, 0x01, 0xe6, 0xd4, 0x5b, 0xd4, 0x4b, 0xab, 0x6a, 0x0f, 5009 0x4b, 0x2b, 0x32, 0x95, 0x61, 0x8b, 0xd9, 0x0a, 0x15, 0x95, 0xed, 0x83, 0x70, 0x4c, 0xeb, 0xac, 5010 0x88, 0xb3, 0x4d, 0xa0, 0x8b, 0x17, 0xc1, 0x74, 0x5a, 0x3a, 0xac, 0xee, 0xb7, 0x77, 0x77, 0x9b, 5011 0x58, 0x59, 0x4e, 0x4f, 0xcb, 0xb8, 0x21, 0xf7, 0x46, 0xd4, 0x08, 0x0b, 0x5f, 0x06, 0xa3, 0x74, 5012 0x18, 0x2a, 0x37, 0x68, 0x4b, 0x9b, 0x97, 0xbb, 0x1d, 0x75, 0xba, 0x47, 0x0a, 0x35, 0xc4, 0xdd, 5013 0x70, 0x53, 0xe8, 0x56, 0x0a, 0xfe, 0xc1, 0x81, 0xe3, 0x35, 0x42, 0x45, 0x63, 0x9c, 0xeb, 0xdd, 5014 0x8e, 0x7a, 0x39, 0xdd, 0xad, 0xd4, 0x23, 0x8c, 0xd8, 0xac, 0xc4, 0x3c, 0x7a, 0x1c, 0x51, 0xdb, 5015 0xf3, 0x70, 0x70, 0xd2, 0x70, 0xdd, 0x4e, 0x57, 0xa9, 0x80, 0xf9, 0xc5, 0x96, 0x2b, 0x45, 0x81, 5016 0x45, 0x20, 0x9b, 0x47, 0x04, 0x07, 0x9e, 0xd3, 0x3c, 0x91, 0x59, 0x65, 0x32, 0x42, 0x40, 0x38, 5017 0x42, 0x88, 0x42, 0x19, 0x1a, 0xbc, 0x07, 0x26, 0xab, 0x24, 0xc0, 0x61, 0x88, 0x83, 0x50, 0xc1, 5018 0x6c, 0x51, 0x17, 0xba, 0x1d, 0x55, 0x8e, 0x2e, 0x88, 0xd8, 0xa5, 0xa1, 0x1e, 0x0c, 0xde, 0x05, 5019 0x13, 0x85, 0x7d, 0x5c, 0x7f, 0x4e, 0x29, 0xbb, 0x8c, 0x22, 0x3c, 0xd5, 0xf5, 0xc8, 0xa3, 0xa1, 5020 0x13, 0x10, 0x2d, 0x89, 0x9c, 0xbd, 0x89, 0x8f, 0x59, 0x1f, 0xcf, 0x9a, 0xa6, 0x51, 0xf1, 0x7c, 5021 0xf1, 0x99, 0xd8, 0x55, 0x1b, 0xba, 0x1f, 0x63, 0x0d, 0x25, 0x19, 0xf0, 0x31, 0x80, 0x09, 0x83, 5022 0xe5, 0x04, 0x7b, 0x98, 0x77, 0x4d, 0xa3, 0xf9, 0xe5, 0x6e, 0x47, 0xbd, 0xd6, 0x57, 0x47, 0x6f, 5023 0x52, 0x9c, 0x86, 0xfa, 0x90, 0xe1, 0x53, 0x70, 0xa1, 0x67, 0x6d, 0xef, 0xee, 0xba, 0x47, 0xc8, 5024 0xf1, 0xf6, 0xb0, 0xf2, 0x39, 0x17, 0xd5, 0xba, 0x1d, 0x75, 0x29, 0x2b, 0xca, 0x80, 0x7a, 0x40, 5025 0x91, 0x1a, 0xea, 0x2b, 0x00, 0x1d, 0x70, 0xa9, 0x9f, 0xdd, 0x3e, 0xf2, 0x94, 0x2f, 0xb8, 0xf6, 5026 0xcb, 0xdd, 0x8e, 0xaa, 0x9d, 0xaa, 0xad, 0x93, 0x23, 0x4f, 0x43, 0x83, 0x74, 0xe0, 0x06, 0x98, 5027 0x3b, 0x71, 0xd9, 0x47, 0x5e, 0xb9, 0x15, 0x2a, 0x5f, 0x72, 0x69, 0xe1, 0x04, 0x08, 0xd2, 0xe4, 5028 0xc8, 0xd3, 0xfd, 0x56, 0xa8, 0xa1, 0x34, 0x0d, 0xbe, 0x1f, 0xe7, 0x86, 0x17, 0xf7, 0x90, 0x77, 5029 0x90, 0xa3, 0x62, 0x01, 0x8e, 0x74, 0x78, 0x5b, 0x10, 0x9e, 0xa4, 0x26, 0x22, 0xc0, 0xd7, 0xe3, 5030 0x23, 0xf4, 0xb8, 0x52, 0xe5, 0xbd, 0xe3, 0xa8, 0xf8, 0x0e, 0x10, 0xb1, 0x3f, 0x6c, 0xf5, 0x0e, 5031 0xd1, 0xe3, 0x4a, 0x55, 0xfb, 0x66, 0x86, 0x77, 0x9b, 0xf4, 0x16, 0xef, 0xbd, 0x7e, 0x8a, 0xb7, 5032 0xb8, 0xe7, 0x1c, 0x60, 0x0d, 0x31, 0xa7, 0x58, 0x47, 0x86, 0xcf, 0x51, 0x47, 0x56, 0xc1, 0xd8, 5033 0x53, 0xc3, 0xa2, 0xe8, 0x5c, 0xba, 0x8c, 0x7c, 0xe4, 0x34, 0x39, 0x38, 0x42, 0xc0, 0x32, 0x58, 5034 0xd8, 0xc0, 0x4e, 0x40, 0x76, 0xb0, 0x43, 0x8a, 0x1e, 0xc1, 0xc1, 0xa1, 0xd3, 0x8c, 0xaa, 0x44, 5035 0x4e, 0xdc, 0xcd, 0xfd, 0x18, 0xa4, 0xbb, 0x11, 0x4a, 0x43, 0xfd, 0x98, 0xb0, 0x08, 0xe6, 0xcd, 5036 0x26, 0xae, 0xd3, 0x17, 0x78, 0xdb, 0x3d, 0xc0, 0x7e, 0x9b, 0x6c, 0x85, 0xac, 0x5a, 0xe4, 0xc4, 5037 0xa7, 0x1c, 0x47, 0x10, 0x9d, 0x70, 0x8c, 0x86, 0xb2, 0x2c, 0xfa, 0xa0, 0x5b, 0x6e, 0x48, 0xb0, 5038 0x27, 0xbc, 0x80, 0x2f, 0xa6, 0x6f, 0x9e, 0x26, 0x43, 0xc4, 0x2d, 0x7e, 0x3b, 0x68, 0x86, 0x1a, 5039 0xca, 0xd0, 0x20, 0x02, 0x0b, 0x46, 0xe3, 0x10, 0x07, 0xc4, 0x0d, 0xb1, 0xa0, 0x76, 0x91, 0xa9, 5040 0x09, 0x0f, 0x90, 0x13, 0x83, 0x92, 0x82, 0xfd, 0xc8, 0xf0, 0xed, 0xb8, 0xd5, 0x35, 0xda, 0xc4, 5041 0xb7, 0xad, 0x6a, 0x74, 0xeb, 0x0b, 0xb9, 0x71, 0xda, 0xc4, 0xd7, 0x09, 0x15, 0x48, 0x22, 0xe9, 5042 0x3d, 0xd8, 0x6b, 0xbd, 0x8d, 0x36, 0xd9, 0x57, 0x14, 0xc6, 0x1d, 0xd0, 0xad, 0x3b, 0xed, 0x54, 5043 0xb7, 0x4e, 0x29, 0xf0, 0x5b, 0xa2, 0xc8, 0xba, 0xdb, 0xc4, 0xca, 0x65, 0x96, 0x6e, 0xe1, 0x06, 5044 0x63, 0xec, 0x5d, 0x97, 0x5e, 0xfe, 0x29, 0x6c, 0x2f, 0xfa, 0x4d, 0x7c, 0xcc, 0xc8, 0x57, 0xd2, 5045 0x27, 0x8b, 0x3e, 0x39, 0x9c, 0x9b, 0x44, 0x42, 0x2b, 0xd3, 0x4a, 0x33, 0x81, 0xab, 0xe9, 0x46, 5046 0x5f, 0x68, 0xd3, 0xb8, 0x4e, 0x3f, 0x1a, 0xdd, 0x0b, 0x9e, 0x2e, 0xda, 0xc3, 0xb1, 0xac, 0xa8, 5047 0x2c, 0x2b, 0xc2, 0x5e, 0x44, 0x39, 0x66, 0xbd, 0x1f, 0x4f, 0x48, 0x8a, 0x02, 0x6d, 0x30, 0x7f, 5048 0x92, 0xa2, 0x13, 0x9d, 0x65, 0xa6, 0x23, 0xdc, 0x36, 0xae, 0xe7, 0x12, 0xd7, 0x69, 0xea, 0xbd, 5049 0x2c, 0x0b, 0x92, 0x59, 0x01, 0x5a, 0x9a, 0xe9, 0xff, 0x71, 0x7e, 0x6f, 0xb0, 0x1c, 0xa5, 0xfb, 5050 0xe3, 0x5e, 0x92, 0x45, 0x30, 0x7d, 0x41, 0x65, 0x9d, 0x7a, 0x32, 0xcd, 0x1a, 0x93, 0x10, 0x0e, 5051 0x1c, 0x6f, 0xef, 0x33, 0xb9, 0xee, 0xc3, 0xa5, 0x1d, 0x6d, 0xdc, 0xfb, 0xb3, 0xfd, 0xbe, 0x39, 5052 0xf8, 0x55, 0x81, 0x6f, 0x77, 0x02, 0x1e, 0x2f, 0x26, 0x4e, 0xf7, 0x4b, 0x03, 0x9b, 0x7d, 0x4e, 5053 0x16, 0xc1, 0x70, 0x2b, 0xd5, 0x9c, 0x33, 0x85, 0x5b, 0x67, 0xf5, 0xe6, 0x5c, 0x28, 0xcb, 0xa4, 5054 0x1d, 0x57, 0x91, 0xa7, 0xa2, 0xd0, 0x6c, 0xb3, 0x2f, 0x77, 0xb7, 0xd3, 0x67, 0x27, 0x4e, 0x55, 5055 0x9d, 0x03, 0x34, 0x94, 0x62, 0xd0, 0x27, 0x3a, 0x69, 0xa9, 0x12, 0x87, 0xe0, 0xa8, 0x11, 0x10, 5056 0x36, 0x38, 0x25, 0xa4, 0x87, 0x14, 0xa6, 0xa1, 0x7e, 0xe4, 0xac, 0xa6, 0xed, 0x3f, 0xc7, 0x9e, 5057 0xf2, 0xca, 0x59, 0x9a, 0x84, 0xc2, 0x32, 0x9a, 0x8c, 0x0c, 0x1f, 0x82, 0x99, 0xf8, 0xf5, 0xa0, 5058 0xe0, 0xb7, 0x3d, 0xa2, 0xdc, 0x67, 0x77, 0xa1, 0x58, 0x60, 0xe2, 0xf7, 0x90, 0x3a, 0xf5, 0xd3, 5059 0x02, 0x23, 0xe2, 0xa1, 0x05, 0xe6, 0x1f, 0xb7, 0x7d, 0xe2, 0xe4, 0x9d, 0xfa, 0x73, 0xec, 0x35, 5060 0xf2, 0xc7, 0x04, 0x87, 0xca, 0xeb, 0x4c, 0x44, 0x68, 0xbf, 0x3f, 0xa4, 0x10, 0x7d, 0x87, 0x63, 5061 0xf4, 0x1d, 0x0a, 0xd2, 0x50, 0x96, 0x48, 0x4b, 0x49, 0x25, 0xc0, 0x4f, 0x7c, 0x82, 0x95, 0x87, 5062 0xe9, 0xeb, 0xaa, 0x15, 0x60, 0xfd, 0xd0, 0xa7, 0xbb, 0x13, 0x63, 0xc4, 0x1d, 0xf1, 0x83, 0xa0, 5063 0xdd, 0x22, 0xac, 0xab, 0x51, 0xde, 0x4f, 0x1f, 0xe3, 0x93, 0x1d, 0xe1, 0x28, 0x9d, 0xf5, 0x41, 5064 0xc2, 0x8e, 0x08, 0xe4, 0xd5, 0x9f, 0xe6, 0x84, 0xef, 0xc0, 0x70, 0x0e, 0x4c, 0x95, 0xca, 0x76, 5065 0xad, 0x6a, 0x1b, 0xc8, 0x36, 0xd7, 0xe4, 0x21, 0x78, 0x11, 0xc0, 0x62, 0xa9, 0x68, 0x17, 0x0d, 5066 0x8b, 0x1b, 0x6b, 0xa6, 0x5d, 0x58, 0x93, 0x01, 0x94, 0xc1, 0x34, 0x32, 0x05, 0xcb, 0x14, 0xb5, 5067 0x54, 0x8b, 0x8f, 0x6c, 0x13, 0x6d, 0x71, 0xcb, 0x05, 0xb8, 0x0c, 0xae, 0x55, 0x8b, 0x8f, 0x1e, 5068 0x6f, 0x17, 0x39, 0xa6, 0x66, 0x94, 0xd6, 0x6a, 0xc8, 0xdc, 0x2a, 0x3f, 0x31, 0x6b, 0x6b, 0x86, 5069 0x6d, 0xc8, 0x8b, 0x70, 0x1e, 0xcc, 0x54, 0x8d, 0x27, 0x66, 0xad, 0x5a, 0x32, 0x2a, 0xd5, 0x8d, 5070 0xb2, 0x2d, 0x2f, 0xc1, 0x1b, 0xe0, 0x3a, 0x15, 0x2e, 0x23, 0xb3, 0x16, 0x4f, 0xb0, 0x8e, 0xca, 5071 0x5b, 0x3d, 0x88, 0x0a, 0x2f, 0x83, 0xc5, 0xfe, 0xae, 0x65, 0xca, 0xce, 0x4c, 0x69, 0xa0, 0xc2, 5072 0x46, 0x31, 0x9e, 0x73, 0x05, 0xde, 0x05, 0xaf, 0x9c, 0x16, 0x15, 0x1b, 0x57, 0xed, 0x72, 0xa5, 5073 0x66, 0x3c, 0x32, 0x4b, 0xb6, 0x7c, 0x1b, 0x5e, 0x07, 0x97, 0xf3, 0x96, 0x51, 0xd8, 0xdc, 0x28, 5074 0x5b, 0x66, 0xad, 0x62, 0x9a, 0xa8, 0x56, 0x29, 0x23, 0xbb, 0x66, 0x3f, 0xab, 0xa1, 0x67, 0x72, 5075 0x03, 0xaa, 0xe0, 0xea, 0x76, 0x69, 0x30, 0x00, 0xc3, 0x2b, 0x60, 0x71, 0xcd, 0xb4, 0x8c, 0x0f, 5076 0x32, 0xae, 0x17, 0x12, 0xbc, 0x06, 0x2e, 0x6d, 0x97, 0xfa, 0x7b, 0x3f, 0x95, 0x56, 0xff, 0x0e, 5077 0xc0, 0x08, 0xed, 0xfb, 0xa1, 0x02, 0x2e, 0xc4, 0x7b, 0x5b, 0x2e, 0x99, 0xb5, 0xf5, 0xb2, 0x65, 5078 0x95, 0x9f, 0x9a, 0x48, 0x1e, 0x8a, 0x56, 0x93, 0xf1, 0xd4, 0xb6, 0x4b, 0x76, 0xd1, 0xaa, 0xd9, 5079 0xa8, 0xf8, 0xe8, 0x91, 0x89, 0x7a, 0x3b, 0x24, 0x41, 0x08, 0x66, 0x63, 0x82, 0x65, 0x1a, 0x6b, 5080 0x26, 0x92, 0x87, 0xe1, 0x6d, 0x70, 0x2b, 0x69, 0x1b, 0x44, 0xcf, 0x89, 0xf4, 0xc7, 0xdb, 0x65, 5081 0xb4, 0xbd, 0x25, 0x8f, 0xd0, 0x43, 0x13, 0xdb, 0x0c, 0xcb, 0x92, 0x47, 0xe1, 0x4d, 0xa0, 0xc6, 5082 0x5b, 0x2c, 0xec, 0x6e, 0x22, 0x72, 0x00, 0x1f, 0x80, 0x37, 0xce, 0x00, 0x0d, 0x8a, 0x62, 0x8a, 5083 0xa6, 0xa4, 0x0f, 0x37, 0x5a, 0xcf, 0x34, 0x7c, 0x1d, 0xbc, 0x36, 0xd0, 0x3d, 0x48, 0x74, 0x06, 5084 0xae, 0x83, 0x7c, 0x1f, 0x16, 0x5f, 0x65, 0x64, 0xe1, 0xe7, 0x32, 0x12, 0x8a, 0xa9, 0xd1, 0x21, 5085 0x2c, 0x20, 0xc3, 0x2e, 0x6c, 0xc8, 0xb3, 0x70, 0x15, 0xbc, 0x3c, 0xf0, 0x38, 0x24, 0x37, 0xa1, 5086 0x01, 0x0d, 0xf0, 0xee, 0xf9, 0xb0, 0x83, 0xc2, 0xc6, 0xf0, 0x25, 0xb0, 0x3c, 0x58, 0x22, 0xda, 5087 0x92, 0x5d, 0xf8, 0x0e, 0x78, 0xf3, 0x2c, 0xd4, 0xa0, 0x29, 0xf6, 0x4e, 0x9f, 0x22, 0x3a, 0x06, 5088 0xfb, 0xf4, 0xd9, 0x1b, 0x8c, 0xa2, 0x07, 0xc3, 0x85, 0xff, 0x07, 0xb4, 0xbe, 0x87, 0x3d, 0xb9, 5089 0x2d, 0x2f, 0x24, 0x78, 0x07, 0xdc, 0x46, 0x46, 0x69, 0xad, 0xbc, 0x55, 0x3b, 0x07, 0xfe, 0x53, 5090 0x09, 0xbe, 0x07, 0xde, 0x3e, 0x1b, 0x38, 0x68, 0x81, 0x9f, 0x49, 0xd0, 0x04, 0xef, 0x9f, 0x7b, 5091 0xbe, 0x41, 0x32, 0x9f, 0x4b, 0xf0, 0x06, 0xb8, 0xd6, 0x9f, 0x1f, 0xe5, 0xe1, 0x0b, 0x09, 0xae, 5092 0x80, 0x9b, 0xa7, 0xce, 0x14, 0x21, 0xbf, 0x94, 0xe0, 0x5b, 0xe0, 0xfe, 0x69, 0x90, 0x41, 0x61, 5093 0xfc, 0x5a, 0x82, 0x0f, 0xc1, 0x83, 0x73, 0xcc, 0x31, 0x48, 0xe0, 0x37, 0xa7, 0xac, 0x23, 0x4a, 5094 0xf6, 0x57, 0x67, 0xaf, 0x23, 0x42, 0xfe, 0x56, 0x82, 0x4b, 0xe0, 0x72, 0x7f, 0x08, 0x3d, 0x13, 5095 0xbf, 0x93, 0xe0, 0x2d, 0xb0, 0x7c, 0xaa, 0x12, 0x85, 0xfd, 0x5e, 0x82, 0x0a, 0x58, 0x28, 0x95, 5096 0x6b, 0xeb, 0x46, 0xd1, 0xaa, 0x3d, 0x2d, 0xda, 0x1b, 0xb5, 0xaa, 0x8d, 0xcc, 0x6a, 0x55, 0xfe, 5097 0xc5, 0x30, 0x0d, 0x25, 0xe1, 0x29, 0x95, 0x23, 0x67, 0x6d, 0xbd, 0x8c, 0x6a, 0x56, 0xf1, 0x89, 5098 0x59, 0xa2, 0xc8, 0x4f, 0x86, 0xe1, 0x1c, 0x00, 0x14, 0x56, 0x29, 0x17, 0x4b, 0x76, 0x55, 0xfe, 5099 0x6e, 0x0e, 0xce, 0x80, 0x09, 0xf3, 0x99, 0x6d, 0xa2, 0x92, 0x61, 0xc9, 0xff, 0xc8, 0xad, 0x1e, 5100 0x80, 0x89, 0xf8, 0xd3, 0x02, 0x1c, 0x03, 0xc3, 0x9b, 0x4f, 0xe4, 0x21, 0x38, 0x09, 0x46, 0x2d, 5101 0xd3, 0xa8, 0x9a, 0xb2, 0x04, 0x17, 0xc0, 0x9c, 0x69, 0x99, 0x05, 0xbb, 0x58, 0x2e, 0xd5, 0xd0, 5102 0x76, 0xa9, 0xc4, 0x2e, 0x4f, 0x19, 0x4c, 0x3f, 0xa5, 0x4f, 0x7e, 0x6c, 0xc9, 0xc1, 0x45, 0x30, 5103 0x6f, 0x95, 0x0b, 0x9b, 0x35, 0x64, 0x14, 0x4c, 0x14, 0x9b, 0x47, 0x28, 0x90, 0x09, 0xc5, 0x96, 5104 0xd1, 0xd5, 0x3c, 0x18, 0x8f, 0xbe, 0x4b, 0xc0, 0x29, 0x30, 0xbe, 0xf9, 0xa4, 0xb6, 0x61, 0x54, 5105 0x37, 0xe4, 0xa1, 0x1e, 0xd2, 0x7c, 0x56, 0x29, 0x22, 0x3a, 0x33, 0x00, 0x63, 0x27, 0x13, 0x4e, 5106 0x83, 0x89, 0x52, 0xb9, 0x56, 0xd8, 0x30, 0x0b, 0x9b, 0x72, 0xee, 0xde, 0x43, 0x30, 0x69, 0x07, 5107 0x8e, 0x17, 0xb6, 0xfc, 0x80, 0xc0, 0x7b, 0xe2, 0x60, 0x36, 0xfa, 0x3a, 0x1a, 0xfd, 0xe0, 0x7b, 5108 0x65, 0xee, 0x64, 0xcc, 0x7f, 0x0b, 0xd4, 0x86, 0x56, 0xa4, 0xd7, 0xa4, 0xfc, 0x85, 0x17, 0x7f, 5109 0x59, 0x1a, 0x7a, 0xf1, 0xf5, 0x92, 0xf4, 0xd5, 0xd7, 0x4b, 0xd2, 0x9f, 0xbf, 0x5e, 0x92, 0x7e, 5110 0xf2, 0xd7, 0xa5, 0xa1, 0x9d, 0x31, 0xf6, 0x83, 0xf1, 0xfd, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 5111 0x5c, 0x9f, 0x8c, 0x37, 0x79, 0x1e, 0x00, 0x00, 5112 }