本文整理汇总了Golang中database/cassandra.ColumnParent类的典型用法代码示例。如果您正苦于以下问题:Golang ColumnParent类的具体用法?Golang ColumnParent怎么用?Golang ColumnParent使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ColumnParent类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: EnumerateTrashedMembers
// Get a list of all members which are currently in the trash.
func (m *MembershipDB) EnumerateTrashedMembers(prev string, num int32) ([]*MemberWithKey, error) {
var cp *cassandra.ColumnParent = cassandra.NewColumnParent()
var pred *cassandra.SlicePredicate = cassandra.NewSlicePredicate()
var r *cassandra.KeyRange = cassandra.NewKeyRange()
var kss []*cassandra.KeySlice
var ks *cassandra.KeySlice
var rv []*MemberWithKey
var err error
// Fetch the protobuf column of the application column family.
cp.ColumnFamily = "membership_archive"
pred.ColumnNames = [][]byte{
[]byte("pb_data"),
}
if len(prev) > 0 {
var uuid cassandra.UUID
if uuid, err = cassandra.ParseUUID(prev); err != nil {
return rv, err
}
r.StartKey = append([]byte(archivePrefix), []byte(uuid)...)
} else {
r.StartKey = []byte(archivePrefix)
}
r.EndKey = []byte(archiveEnd)
r.Count = num
kss, err = m.conn.GetRangeSlices(cp, pred, r, cassandra.ConsistencyLevel_ONE)
if err != nil {
return rv, err
}
for _, ks = range kss {
var member *MemberWithKey
var scol *cassandra.ColumnOrSuperColumn
var uuid cassandra.UUID = cassandra.UUIDFromBytes(
ks.Key[len(archivePrefix):])
if len(ks.Columns) == 0 {
continue
}
for _, scol = range ks.Columns {
var col *cassandra.Column = scol.Column
if string(col.Name) == "pb_data" {
var agreement = new(MembershipAgreement)
member = new(MemberWithKey)
err = proto.Unmarshal(col.Value, agreement)
proto.Merge(&member.Member, agreement.GetMemberData())
member.Key = uuid.String()
}
}
if member != nil {
rv = append(rv, member)
}
}
return rv, nil
}
开发者ID:starshipfactory,项目名称:membersys,代码行数:61,代码来源:db.go
示例2: GetMemberDetailByUsername
// Retrieve a specific members detailed membership data, but fetch it by the
// user name of the member.
func (m *MembershipDB) GetMemberDetailByUsername(username string) (
*MembershipAgreement, error) {
var member *MembershipAgreement = new(MembershipAgreement)
var cp *cassandra.ColumnParent = cassandra.NewColumnParent()
var pred *cassandra.SlicePredicate = cassandra.NewSlicePredicate()
var kr *cassandra.KeyRange = cassandra.NewKeyRange()
var expr *cassandra.IndexExpression = cassandra.NewIndexExpression()
var r []*cassandra.KeySlice
var ks *cassandra.KeySlice
var err error
expr.ColumnName = []byte("username")
expr.Op = cassandra.IndexOperator_EQ
expr.Value = []byte(username)
cp.ColumnFamily = "members"
pred.ColumnNames = [][]byte{[]byte("pb_data")}
kr.StartKey = []byte(memberPrefix)
kr.EndKey = []byte(memberEnd)
kr.RowFilter = []*cassandra.IndexExpression{expr}
r, err = m.conn.GetRangeSlices(
cp, pred, kr, cassandra.ConsistencyLevel_ONE)
if err != nil {
return nil, err
}
for _, ks = range r {
var cos *cassandra.ColumnOrSuperColumn
for _, cos = range ks.Columns {
var col = cos.Column
if string(col.Name) == "pb_data" {
member = new(MembershipAgreement)
err = proto.Unmarshal(col.Value, member)
return member, nil
} else {
return nil, errors.New("Unexpected column " +
string(col.Name))
}
}
}
return nil, errors.New("Not found")
}
开发者ID:starshipfactory,项目名称:membersys,代码行数:48,代码来源:db.go
示例3: ServeHTTP
func (self *ProductSearchAPI) ServeHTTP(w http.ResponseWriter, req *http.Request) {
var err error
var query string = req.FormValue("q")
var rawdata []byte
var res CategorizedSearchResult
numRequests.Add(1)
numAPIRequests.Add(1)
// Check the user is in the reqeuested scope.
if !self.authenticator.IsAuthenticatedScope(req, self.scope) {
numDisallowedScope.Add(1)
http.Error(w,
"You are not in the right group to access this resource",
http.StatusForbidden)
return
}
if len(query) >= 3 {
var product_results [][]byte
var cp *cassandra.ColumnParent = cassandra.NewColumnParent()
var pred *cassandra.SlicePredicate = cassandra.NewSlicePredicate()
var kr *cassandra.KeyRange = cassandra.NewKeyRange()
var colmap map[string][]*cassandra.ColumnOrSuperColumn
var slices []*cassandra.KeySlice
var ire *cassandra.InvalidRequestException
var ue *cassandra.UnavailableException
var te *cassandra.TimedOutException
var endkey []byte = []byte(query)
var r *SearchResult
var pos int = len(endkey) - 1
// Handle overflows
for endkey[pos] == 255 && pos > 0 {
endkey[pos] = 0
pos--
}
// Produce endkey by incrementing the last byte of the start key.
endkey[pos]++
// Search for projects with the given name.
cp.ColumnFamily = "products_byname"
pred.ColumnNames = [][]byte{[]byte("product")}
kr.StartKey = []byte(query)
kr.EndKey = endkey
kr.Count = 32 // Limit to 32 results.
slices, ire, ue, te, err = self.client.GetRangeSlices(
cp, pred, kr, cassandra.ConsistencyLevel_ONE)
if ire != nil {
log.Print("Error fetching products_byname: ", ire.Why)
numCassandraErrors.Add("invalid-request", 1)
http.Error(w, ire.Why, http.StatusInternalServerError)
return
}
if ue != nil {
log.Print("Cassandra unavailable when fetching products_byname")
numCassandraErrors.Add("invalid-request", 1)
http.Error(w, "Database unavailable", http.StatusInternalServerError)
return
}
if te != nil {
log.Print("Cassandra timed out when fetching products_byname")
numCassandraErrors.Add("timeout", 1)
http.Error(w, "Database timed out", http.StatusInternalServerError)
return
}
if err != nil {
log.Print("OS error when fetching products_byname: ", err)
numCassandraErrors.Add("generic-error", 1)
http.Error(w, "OS error talking to database",
http.StatusInternalServerError)
return
}
for _, slice := range slices {
for _, csc := range slice.Columns {
var col *cassandra.Column = csc.Column
if col == nil || !col.IsSetValue() {
continue
}
if string(col.Name) != "product" {
log.Print("Bizarre products_byname row ",
string(slice.Key), " (", slice.Key, "), has ",
string(col.Name), " (", col.Name, ")")
continue
}
r = new(SearchResult)
r.Name = string(slice.Key)
r.Uuid = UUID(col.Value).String()
res.Products = append(res.Products, r)
}
}
// Search for projects with the given name.
cp.ColumnFamily = "products_bybarcode"
//.........这里部分代码省略.........
开发者ID:starshipfactory,项目名称:starstock,代码行数:101,代码来源:productsearch.go
示例4: ServeHTTP
func (self *ProductViewAPI) ServeHTTP(w http.ResponseWriter, req *http.Request) {
var cp *cassandra.ColumnParent
var pred *cassandra.SlicePredicate
var res []*cassandra.ColumnOrSuperColumn
var csc *cassandra.ColumnOrSuperColumn
var ire *cassandra.InvalidRequestException
var ue *cassandra.UnavailableException
var te *cassandra.TimedOutException
var prod Product
var err error
var uuidstr string = req.FormValue("id")
var ts int64 = 0
var uuid UUID
var rawdata []byte
numRequests.Add(1)
numAPIRequests.Add(1)
// Check the user is in the reqeuested scope.
if !self.authenticator.IsAuthenticatedScope(req, self.scope) {
numDisallowedScope.Add(1)
http.Error(w,
"You are not in the right group to access this resource",
http.StatusForbidden)
return
}
if len(uuidstr) <= 0 {
http.Error(w, "Requested UUID empty", http.StatusNotAcceptable)
return
}
uuid, err = ParseUUID(uuidstr)
if err != nil {
http.Error(w, "Requested UUID invalid", http.StatusNotAcceptable)
return
}
cp = cassandra.NewColumnParent()
cp.ColumnFamily = "products"
pred = cassandra.NewSlicePredicate()
pred.ColumnNames = [][]byte{
[]byte("name"), []byte("price"), []byte("vendor"),
[]byte("barcodes"), []byte("stock"),
}
res, ire, ue, te, err = self.client.GetSlice([]byte(uuid), cp, pred,
cassandra.ConsistencyLevel_ONE)
if ire != nil {
log.Print("Invalid request: ", ire.Why)
productViewErrors.Add(ire.Why, 1)
return
}
if ue != nil {
log.Print("Unavailable")
productViewErrors.Add("unavailable", 1)
return
}
if te != nil {
log.Print("Request to database backend timed out")
productViewErrors.Add("timeout", 1)
return
}
if err != nil {
log.Print("Generic error: ", err)
productViewErrors.Add(err.Error(), 1)
return
}
for _, csc = range res {
var col = csc.Column
var cname string
if !csc.IsSetColumn() {
continue
}
cname = string(col.Name)
if col.IsSetTimestamp() && col.Timestamp > ts {
ts = col.Timestamp
}
if cname == "name" {
prod.Name = string(col.Value)
} else if cname == "price" {
var buf *bytes.Buffer = bytes.NewBuffer(col.Value)
err = binary.Read(buf, binary.BigEndian, &prod.Price)
if err != nil {
log.Print("Row ", uuid.String(), " price is invalid")
productViewErrors.Add("corrupted-price", 1)
}
} else if cname == "vendor" {
prod.VendorId = UUID(col.Value).String()
} else if cname == "barcodes" {
var bc Barcodes
err = proto.Unmarshal(col.Value, &bc)
if err != nil {
log.Print("Row ", uuid.String(), " barcode is invalid")
productViewErrors.Add("corrupted-barcode", 1)
//.........这里部分代码省略.........
开发者ID:starshipfactory,项目名称:starstock,代码行数:101,代码来源:productedit.go
示例5: main
func main() {
var cf string = "members"
var config_file string
var config_contents []byte
var config membersys.MemberCreatorConfig
var greatestUid uint64 = 1000
var now time.Time
var noop, verbose bool
var welcome *membersys.WelcomeMail
var ld *ldap.Conn
var sreq *ldap.SearchRequest
var lres *ldap.SearchResult
var entry *ldap.Entry
var tlsconfig tls.Config
var mmap map[string]map[string][]*cassandra.Mutation
var db *cassandra.RetryCassandraClient
var cp *cassandra.ColumnParent
var pred *cassandra.SlicePredicate
var kr *cassandra.KeyRange
var kss []*cassandra.KeySlice
var ks *cassandra.KeySlice
var err error
flag.StringVar(&config_file, "config", "",
"Path to the member creator configuration file")
flag.BoolVar(&noop, "dry-run", false, "Do a dry run")
flag.BoolVar(&verbose, "verbose", false,
"Whether or not to display verbose messages")
flag.Parse()
if len(config_file) == 0 {
flag.Usage()
return
}
config_contents, err = ioutil.ReadFile(config_file)
if err != nil {
log.Fatal("Unable to read ", config_file, ": ", err)
}
err = proto.Unmarshal(config_contents, &config)
if err != nil {
err = proto.UnmarshalText(string(config_contents), &config)
}
if err != nil {
log.Fatal("Unable to parse ", config_file, ": ", err)
}
if config.WelcomeMailConfig != nil {
welcome, err = membersys.NewWelcomeMail(
config.WelcomeMailConfig)
if err != nil {
log.Fatal("Error creating WelcomeMail: ", err)
}
}
tlsconfig.MinVersion = tls.VersionTLS12
tlsconfig.ServerName, _, err = net.SplitHostPort(
config.LdapConfig.GetServer())
if err != nil {
log.Fatal("Can't split ", config.LdapConfig.GetServer(),
" into host and port: ", err)
}
if config.LdapConfig.CaCertificate != nil {
var certData []byte
certData, err = ioutil.ReadFile(config.LdapConfig.GetCaCertificate())
if err != nil {
log.Fatal("Unable to read certificate from ",
config.LdapConfig.GetCaCertificate(), ": ", err)
}
tlsconfig.RootCAs = x509.NewCertPool()
tlsconfig.RootCAs.AppendCertsFromPEM(certData)
}
now = time.Now()
if !noop {
ld, err = ldap.DialTLS("tcp", config.LdapConfig.GetServer(),
&tlsconfig)
if err != nil {
log.Fatal("Error connecting to LDAP server ",
config.LdapConfig.GetServer(), ": ", err)
}
err = ld.Bind(config.LdapConfig.GetSuperUser()+","+
config.LdapConfig.GetBase(), config.LdapConfig.GetSuperPassword())
if err != nil {
log.Fatal("Unable to bind as ", config.LdapConfig.GetSuperUser()+
","+config.LdapConfig.GetBase(), " to ",
config.LdapConfig.GetServer(), ": ", err)
}
defer ld.Close()
sreq = ldap.NewSearchRequest(
config.LdapConfig.GetBase(), ldap.ScopeWholeSubtree,
//.........这里部分代码省略.........
开发者ID:starshipfactory,项目名称:membersys,代码行数:101,代码来源:member_creator.go
最后编辑: kuteng 文档更新时间: 2021-08-23 19:14 作者:kuteng