// for testing func main() { flag.Parse() log.SetFlags(log.Ltime | log.Lshortfile) api.Domain = *eshost response, _ := core.Index(true, "twitter", "tweet", "1", NewTweet("kimchy", "Search is cool")) indices.Flush() log.Printf("Index OK: %v", response.Ok) searchresponse, err := core.SearchRequest(true, "twitter", "tweet", "{\"query\" : {\"term\" : { \"user\" : \"kimchy\" }}}", "", 0) if err != nil { log.Println("error during search:" + err.Error()) log.Fatal(err) } // try marshalling to tweet type var t Tweet json.Unmarshal(searchresponse.Hits.Hits[0].Source, t) log.Printf("Search Found: %s", t) response, _ = core.Get(true, "twitter", "tweet", "1") log.Printf("Get: %v", response.Exists) exists, _ := core.Exists(true, "twitter", "tweet", "1") log.Printf("Exists: %v", exists) indices.Flush() countResponse, _ := core.Count(true, "twitter", "tweet") log.Printf("Count: %v", countResponse.Count) response, _ = core.Delete(true, "twitter", "tweet", "1", -1, "") log.Printf("Delete OK: %v", response.Ok) response, _ = core.Get(true, "twitter", "tweet", "1") log.Printf("Get: %v", response.Exists) healthResponse, _ := cluster.Health(true) log.Printf("Health: %v", healthResponse.Status) cluster.State("transient", "discovery.zen.minimum_master_nodes", 2) }
// for testing func main() { flag.Parse() log.SetFlags(log.Ltime | log.Lshortfile) api.Domain = *eshost core.VerboseLogging = true response, _ := core.Index("twitter", "tweet", "1", nil, NewTweet("kimchy", "Search is cool")) indices.Flush() log.Printf("Index OK: %v", response.Ok) searchresponse, err := core.SearchRequest("twitter", "tweet", nil, "{\"query\" : {\"term\" : { \"user\" : \"kimchy\" }}}") if err != nil { log.Println("error during search:" + err.Error()) log.Fatal(err) } // try marshalling to tweet type var t Tweet bytes, err := searchresponse.Hits.Hits[0].Source.MarshalJSON() if err != nil { log.Fatalf("err calling marshalJson:%v", err) } json.Unmarshal(bytes, t) log.Printf("Search Found: %s", t) response, _ = core.Get("twitter", "tweet", "1", nil) log.Printf("Get: %v", response.Exists) exists, _ := core.Exists("twitter", "tweet", "1", nil) log.Printf("Exists: %v", exists) indices.Flush() countResponse, _ := core.Count("twitter", "tweet", nil) log.Printf("Count: %v", countResponse.Count) response, _ = core.Delete("twitter", "tweet", "1", map[string]interface{}{"version": -1, "routing": ""}) log.Printf("Delete OK: %v", response.Ok) response, _ = core.Get("twitter", "tweet", "1", nil) log.Printf("Get: %v", response.Exists) healthResponse, _ := cluster.Health() log.Printf("Health: %v", healthResponse.Status) cluster.UpdateSettings("transient", "discovery.zen.minimum_master_nodes", 2) }
func (publisher *PublisherType) PublishTopology(params ...string) error { var localAddrs []string = params if len(params) == 0 { addrs, err := LocalAddrs() if err != nil { ERR("Getting local IP addresses fails with: %s", err) return err } localAddrs = addrs } // delete old IP addresses searchJson := fmt.Sprintf("{query: {term: {name: %s}}}", strconv.Quote(publisher.name)) res, err := core.SearchRequest("packetbeat-topology", "server-ip", nil, searchJson) if err == nil { for _, server := range res.Hits.Hits { var top Topology err = json.Unmarshal([]byte(*server.Source), &top) if err != nil { ERR("Failed to unmarshal json data: %s", err) } if !stringInSlice(top.Ip, localAddrs) { res, err := core.Delete("packetbeat-topology", "server-ip" /*id*/, top.Ip, nil) if err != nil { ERR("Failed to delete the old IP address from packetbeat-topology") } if !res.Ok { ERR("Fail to delete old topology entry") } } } } // add new IP addresses for _, addr := range localAddrs { // check if the IP is already in the elasticsearch, before adding it found, err := core.Exists("packetbeat-topology", "server-ip" /*id*/, addr, nil) if err != nil { ERR("core.Exists fails with: %s", err) } else { if !found { res, err := core.Index("packetbeat-topology", "server-ip" /*id*/, addr, nil, Topology{publisher.name, addr}) if err != nil { return err } if !res.Ok { ERR("Fail to add new topology entry") } } } } DEBUG("publish", "Topology: name=%s, ips=%s", publisher.name, strings.Join(localAddrs, " ")) // initialize local topology map publisher.TopologyMap = make(map[string]string) return nil }
func (d *Datastore) Has(key ds.Key) (exists bool, err error) { id := d.KeyHash(key) return core.Exists(false, d.Index(key), key.Type(), id) }