Advertisement
Guest User

Untitled

a guest
Aug 16th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "context"
  5. "fmt"
  6. "sync"
  7.  
  8. "google.golang.org/grpc"
  9.  
  10. "github.com/coreos/etcd/clientv3"
  11. )
  12.  
  13. func test(c *clientv3.Client, wg *sync.WaitGroup, i int) {
  14. defer wg.Done()
  15. ctx := context.TODO()
  16.  
  17. role := fmt.Sprintf("test-role-%d", i)
  18. user := fmt.Sprintf("test-user-%d", i)
  19.  
  20. _, err := c.RoleAdd(ctx, role)
  21. if err != nil {
  22. panic(err)
  23. }
  24.  
  25. _, err = c.RoleGrantPermission(ctx, role, "", clientv3.GetPrefixRangeEnd(""), clientv3.PermissionType(clientv3.PermReadWrite))
  26. if err != nil {
  27. panic(err)
  28. }
  29.  
  30. _, err = c.UserAdd(ctx, user, "123")
  31. if err != nil {
  32. panic(err)
  33. }
  34.  
  35. //for _ = range time.Tick(time.Second) {
  36. key := "test-key"
  37. val := "testval"
  38.  
  39. _, err = c.Txn(ctx).If(
  40. clientv3.Compare(clientv3.Value(key), "=", val),
  41. ).Else(
  42. clientv3.OpPut(key, val),
  43. ).Commit()
  44.  
  45. if err != nil {
  46. panic(err)
  47. }
  48. //}
  49.  
  50. }
  51.  
  52. func main() {
  53. c, err := clientv3.New(clientv3.Config{
  54. Endpoints: []string{"127.0.0.1:2379"},
  55. Username: "root",
  56. Password: "root",
  57. DialOptions: []grpc.DialOption{grpc.WithBlock()},
  58. })
  59. if err != nil {
  60. panic(err)
  61. }
  62.  
  63. concurreny := 10
  64. wg := &sync.WaitGroup{}
  65. wg.Add(concurreny)
  66. for i := 0; i < concurreny; i++ {
  67. go test(c, wg, i)
  68. }
  69.  
  70. wg.Wait()
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement