github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/pingcap/go-themis/util_test.go (about) 1 package themis 2 3 import ( 4 "flag" 5 "strings" 6 7 "github.com/insionng/yougam/libraries/ngaut/log" 8 "github.com/insionng/yougam/libraries/pingcap/go-hbase" 9 "github.com/insionng/yougam/libraries/pingcap/go-themis/oracle/oracles" 10 ) 11 12 const ( 13 themisTestTableName string = "themis_test" 14 ) 15 16 var ( 17 testRow = []byte("test_row") 18 cf = []byte("cf") 19 q = []byte("q") 20 ) 21 22 var ( 23 zk = flag.String("zk", "localhost", "hbase zookeeper info") 24 globalOracle = oracles.NewLocalOracle() 25 ) 26 27 func newTxn(c hbase.HBaseClient, cfg TxnConfig) Txn { 28 txn, err := NewTxnWithConf(c, cfg, globalOracle) 29 if err != nil { 30 log.Fatal(err) 31 } 32 return txn 33 } 34 35 func getTestZkHosts() []string { 36 zks := strings.Split(*zk, ",") 37 if len(zks) == 0 { 38 log.Fatal("invalid zk") 39 } 40 return zks 41 } 42 43 func createHBaseClient() (hbase.HBaseClient, error) { 44 flag.Parse() 45 cli, err := hbase.NewClient(getTestZkHosts(), "/hbase") 46 if err != nil { 47 return nil, err 48 } 49 return cli, nil 50 } 51 52 func createNewTableAndDropOldTable(cli hbase.HBaseClient, tblName string, family string, splits [][]byte) error { 53 err := dropTable(cli, tblName) 54 if err != nil { 55 return err 56 } 57 t := hbase.NewTableDesciptor(tblName) 58 cf := hbase.NewColumnFamilyDescriptor(family) 59 cf.AddAttr("THEMIS_ENABLE", "true") 60 t.AddColumnDesc(cf) 61 err = cli.CreateTable(t, splits) 62 if err != nil { 63 return err 64 } 65 return nil 66 } 67 68 func dropTable(cli hbase.HBaseClient, tblName string) error { 69 b, err := cli.TableExists(tblName) 70 if err != nil { 71 return err 72 } 73 if !b { 74 log.Info("table not exist") 75 return nil 76 } 77 78 err = cli.DisableTable(tblName) 79 if err != nil { 80 return err 81 } 82 err = cli.DropTable(tblName) 83 if err != nil { 84 return err 85 } 86 return nil 87 } 88 89 func init() { 90 // disable unittest annoying log 91 log.SetLevelByString("error") 92 }