本文整理汇总了Golang中github.com/zenoss/glog.V函数的典型用法代码示例。如果您正苦于以下问题:Golang V函数的具体用法?Golang V怎么用?Golang V使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了V函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: GetServiceBindMounts
// GetServiceBindMounts returns the service bindmounts
func (a *HostAgent) GetServiceBindMounts(serviceID string, bindmounts *map[string]string) error {
glog.V(4).Infof("ControlPlaneAgent.GetServiceBindMounts(serviceID:%s)", serviceID)
*bindmounts = make(map[string]string, 0)
var tenantID string
if err := a.GetTenantId(serviceID, &tenantID); err != nil {
return err
}
var service service.Service
if err := a.GetService(serviceID, &service); err != nil {
return err
}
response := map[string]string{}
for _, volume := range service.Volumes {
if volume.Type != "" && volume.Type != "dfs" {
continue
}
resourcePath, err := a.setupVolume(tenantID, &service, volume)
if err != nil {
return err
}
glog.V(4).Infof("retrieved bindmount resourcePath:%s containerPath:%s", resourcePath, volume.ContainerPath)
response[resourcePath] = volume.ContainerPath
}
*bindmounts = response
return nil
}
示例2: restGetAllRunning
func restGetAllRunning(w *rest.ResponseWriter, r *rest.Request, client *node.ControlClient) {
var services []dao.RunningService
err := client.GetRunningServices(&empty, &services)
if err != nil {
glog.Errorf("Could not get services: %v", err)
restServerError(w, err)
return
}
if services == nil {
glog.V(3).Info("Services was nil, returning empty list instead")
services = []dao.RunningService{}
}
for ii, rsvc := range services {
var svc service.Service
if err := client.GetService(rsvc.ServiceID, &svc); err != nil {
glog.Errorf("Could not get services: %v", err)
restServerError(w, err)
}
fillBuiltinMetrics(&svc)
services[ii].MonitoringProfile = svc.MonitoringProfile
}
services = append(services, getIRS()...)
glog.V(2).Infof("Return %d running services", len(services))
w.WriteJson(&services)
}
示例3: Snapshots
// Snapshots returns the current snapshots on the volume (sorted by date)
func (c *BtrfsConn) Snapshots() ([]string, error) {
c.Lock()
defer c.Unlock()
glog.V(2).Infof("listing snapshots of volume:%v and c.name:%s ", c.root, c.name)
output, err := runcmd(c.sudoer, "subvolume", "list", "-s", c.root)
if err != nil {
glog.Errorf("Could not list subvolumes of %s: %s", c.root, err)
return nil, err
}
var files []os.FileInfo
for _, line := range strings.Split(string(output), "\n") {
glog.V(2).Infof("line: %s", line)
if parts := strings.Split(line, "path"); len(parts) == 2 {
label := strings.TrimSpace(parts[1])
label = strings.TrimPrefix(label, "volumes/")
glog.V(2).Infof("looking for tenant:%s in label:'%s'", c.name, label)
if strings.HasPrefix(label, c.name+"_") {
file, err := os.Stat(filepath.Join(c.root, label))
if err != nil {
glog.Errorf("Could not stat snapshot %s: %s", label, err)
return nil, err
}
files = append(files, file)
glog.V(2).Infof("found snapshot:%s", label)
}
}
}
return volume.FileInfoSlice(files).Labels(), nil
}
示例4: Lead
func Lead(dao dao.ControlPlane, conn *zk.Conn, zkEvent <-chan zk.Event) {
shutdown_mode := false
for {
if shutdown_mode {
glog.V(1).Info("Shutdown mode encountered.")
break
}
time.Sleep(time.Second)
func() error {
select {
case evt := <-zkEvent:
// shut this thing down
shutdown_mode = true
glog.V(0).Info("Got a zkevent, leaving lead: ", evt)
return nil
default:
glog.V(0).Info("Processing leader duties")
// passthru
}
watchServices(dao, conn)
return nil
}()
}
}
示例5: elasticsearchHealthCheck
// elasticsearchHealthCheck() determines if elasticsearch is healthy
func elasticsearchHealthCheck(port int) HealthCheckFunction {
return func(halt <-chan struct{}) error {
lastError := time.Now()
minUptime := time.Second * 2
baseUrl := fmt.Sprintf("http://localhost:%d", port)
for {
healthResponse, err := getElasticHealth(baseUrl)
if err == nil && (healthResponse.Status == "green" || healthResponse.Status == "yellow") {
break
} else {
lastError = time.Now()
glog.V(1).Infof("Still trying to connect to elasticsearch at %s: %v: %s", baseUrl, err, healthResponse.Status)
}
if time.Since(lastError) > minUptime {
break
}
select {
case <-halt:
glog.V(1).Infof("Quit healthcheck for elasticsearch at %s", baseUrl)
return nil
default:
time.Sleep(time.Second)
}
}
glog.V(1).Infof("elasticsearch running browser at %s/_plugin/head/", baseUrl)
return nil
}
}
示例6: addInstance
// addInstance creates a new service state and host instance
func addInstance(conn client.Connection, state ss.ServiceState) error {
glog.V(2).Infof("Adding instance %+v", state)
// check the object
if err := state.ValidEntity(); err != nil {
glog.Errorf("Could not validate service state %+v: %s", state, err)
return err
}
// CC-1050: we need to trigger the scheduler in case we only have a
// partial create.
svclock := newStateLock(conn, state.ServiceID)
if err := svclock.Lock(); err != nil {
glog.Errorf("Could not set lock on service %s: %s", state.ServiceID, err)
return err
}
defer svclock.Unlock()
lock := newInstanceLock(conn, state.ID)
if err := lock.Lock(); err != nil {
glog.Errorf("Could not set lock for service instance %s for service %s on host %s: %s", state.ID, state.ServiceID, state.HostID, err)
return err
}
glog.V(2).Infof("Acquired lock for instance %s", state.ID)
defer lock.Unlock()
var err error
defer func() {
if err != nil {
conn.Delete(hostpath(state.HostID, state.ID))
conn.Delete(servicepath(state.ServiceID, state.ID))
rmInstanceLock(conn, state.ID)
}
}()
// Create node on the service
spath := servicepath(state.ServiceID, state.ID)
snode := &ServiceStateNode{ServiceState: &state}
if err = conn.Create(spath, snode); err != nil {
glog.Errorf("Could not create service state %s for service %s: %s", state.ID, state.ServiceID, err)
return err
} else if err = conn.Set(spath, snode); err != nil {
glog.Errorf("Could not set service state %s for node %+v: %s", state.ID, snode, err)
return err
}
// Create node on the host
hpath := hostpath(state.HostID, state.ID)
hnode := NewHostState(&state)
glog.V(2).Infof("Host node: %+v", hnode)
if err = conn.Create(hpath, hnode); err != nil {
glog.Errorf("Could not create host state %s for host %s: %s", state.ID, state.HostID, err)
return err
} else if err = conn.Set(hpath, hnode); err != nil {
glog.Errorf("Could not set host state %s for node %+v: %s", state.ID, hnode, err)
return err
}
glog.V(2).Infof("Releasing lock for instance %s", state.ID)
return nil
}
示例7: purgeOldsessionTs
func purgeOldsessionTs() {
// use a closure to facilitate safe locking regardless of when the purge function returns
doPurge := func() {
if len(sessions) == 0 {
return
}
sessionsLock.Lock()
defer sessionsLock.Unlock()
glog.V(1).Info("Searching for expired sessions")
cutoff := time.Now().UTC().Unix() - int64((30 * time.Minute).Seconds())
toDel := []string{}
for key, value := range sessions {
if value.access.UTC().Unix() < cutoff {
toDel = append(toDel, key)
}
}
for _, key := range toDel {
glog.V(0).Infof("Deleting session %s (exceeded max age)", key)
delete(sessions, key)
}
}
for {
time.Sleep(time.Second * 60)
doPurge()
}
}
示例8: setItem
//Set node to the key in registry. Returns the path of the node in the registry
func (r *registryType) setItem(conn client.Connection, key string, nodeID string, node client.Node) (string, error) {
if err := r.ensureKey(conn, key); err != nil {
return "", err
}
//TODO: make ephemeral
path := r.getPath(key, nodeID)
exists, err := zzk.PathExists(conn, path)
if err != nil {
return "", err
}
if exists {
glog.V(3).Infof("Set to %s: %#v", path, node)
epn := EndpointNode{}
if err := conn.Get(path, &epn); err != nil {
return "", err
}
node.SetVersion(epn.Version())
if err := conn.Set(path, node); err != nil {
return "", err
}
} else {
if addPath, err := r.addItem(conn, key, nodeID, node); err != nil {
return "", err
} else {
path = addPath
}
glog.V(3).Infof("Add to %s: %#v", path, node)
}
return path, nil
}
示例9: watch
func watch(conn client.Connection, path string, cancel <-chan bool, processChildren ProcessChildrenFunc, errorHandler WatchError) error {
exists, err := zzk.PathExists(conn, path)
if err != nil {
return err
}
if !exists {
return client.ErrNoNode
}
for {
glog.V(1).Infof("watching children at path: %s", path)
nodeIDs, event, err := conn.ChildrenW(path)
glog.V(1).Infof("child watch for path %s returned: %#v", path, nodeIDs)
if err != nil {
glog.Errorf("Could not watch %s: %s", path, err)
defer errorHandler(path, err)
return err
}
processChildren(conn, path, nodeIDs...)
select {
case ev := <-event:
glog.V(1).Infof("watch event %+v at path: %s", ev, path)
case <-cancel:
glog.V(1).Infof("watch cancel at path: %s", path)
return nil
}
}
glog.V(1).Infof("no longer watching children at path: %s", path)
return nil
}
示例10: GetServiceLogs
func (this *ControlPlaneDao) GetServiceLogs(serviceID string, logs *string) error {
glog.V(3).Info("ControlPlaneDao.GetServiceLogs serviceID=", serviceID)
var serviceStates []servicestate.ServiceState
if err := this.GetServiceStates(serviceID, &serviceStates); err != nil {
glog.Errorf("ControlPlaneDao.GetServiceLogs failed: %v", err)
return err
}
if len(serviceStates) == 0 {
glog.V(1).Info("Unable to find any running services for service:", serviceID)
return nil
}
serviceState := serviceStates[0]
endpoint := fmt.Sprintf("%s:%d", serviceState.HostIP, this.rpcPort)
agentClient, err := agent.NewClient(endpoint)
if err != nil {
glog.Errorf("could not create client to %s", endpoint)
return err
}
defer agentClient.Close()
if mylogs, err := agentClient.GetDockerLogs(serviceState.DockerID); err != nil {
glog.Errorf("could not get docker logs from agent client: %s", err)
return err
} else {
*logs = mylogs
}
return nil
}
示例11: postStats
func (sr StatsReporter) postStats(stats []byte) error {
statsreq, err := http.NewRequest("POST", sr.destination, bytes.NewBuffer(stats))
if err != nil {
glog.V(3).Info("Couldn't create stats request: ", err)
return err
}
statsreq.Header["User-Agent"] = []string{"Zenoss Metric Publisher"}
statsreq.Header["Content-Type"] = []string{"application/json"}
if glog.V(4) {
glog.Info(string(stats))
}
resp, reqerr := http.DefaultClient.Do(statsreq)
if reqerr != nil {
glog.V(3).Info("Couldn't post stats: ", reqerr)
return reqerr
}
if strings.Contains(resp.Status, "200") == false {
glog.V(3).Info("Non-success: ", resp.Status)
return fmt.Errorf("Couldn't post stats: ", resp.Status)
}
resp.Body.Close()
return nil
}
示例12: ValidEntity
//ValidEntity validates Host fields
func (h *Host) ValidEntity() error {
glog.V(4).Info("Validating host")
//if err := validation.ValidHostID(entity.ID); err != nil {
// return fmt.Errorf("invalid hostid:'%s' for host Name:'%s' IP:%s", entity.ID, entity.Name, entity.IPAddr)
//}
trimmedID := strings.TrimSpace(h.ID)
violations := validation.NewValidationError()
violations.Add(validation.NotEmpty("Host.ID", h.ID))
violations.Add(validation.ValidHostID(h.ID))
violations.Add(validation.StringsEqual(h.ID, trimmedID, "leading and trailing spaces not allowed for host id"))
violations.Add(validation.ValidPort(h.RPCPort))
violations.Add(validation.NotEmpty("Host.PoolID", h.PoolID))
violations.Add(validation.IsIP(h.IPAddr))
//TODO: what should we be validating here? It doesn't seem to work for
glog.V(4).Infof("Validating IPAddr %v for host %s", h.IPAddr, h.ID)
ipAddr, err := net.ResolveIPAddr("ip4", h.IPAddr)
if err != nil {
glog.Errorf("Could not resolve: %s to an ip4 address: %v", h.IPAddr, err)
violations.Add(err)
} else if ipAddr.IP.IsLoopback() {
glog.Errorf("Can not use %s as host address because it is a loopback address", h.IPAddr)
violations.Add(errors.New("host ip can not be a loopback address"))
}
if len(violations.Errors) > 0 {
return violations
}
return nil
}
示例13: cmdScriptRun
// cmdScriptRun serviced script run filename
func (c *ServicedCli) cmdScriptRun(ctx *cli.Context) {
args := ctx.Args()
if len(args) != 1 {
fmt.Fprintln(os.Stderr, "Incorrect Usage.\n\n")
if !ctx.Bool("help") {
fmt.Fprintf(os.Stderr, "Incorrect Usage.\n\n")
}
cli.ShowSubcommandHelp(ctx)
return
}
var svc *service.Service
if svcID := ctx.String("service"); svcID != "" {
//verify service or translate to ID
var err error
svc, err = c.searchForService(svcID)
if err != nil {
fmt.Fprintln(os.Stderr, err)
c.exit(1)
return
}
if svc == nil {
fmt.Fprintf(os.Stderr, "service %s not found\n", svcID)
c.exit(1)
return
}
}
fileName := args[0]
config := &script.Config{}
if svc != nil {
config.ServiceID = svc.ID
}
// exec unix script command to log output
if isWithin := os.Getenv("IS_WITHIN_UNIX_SCRIPT"); isWithin != "TRUE" {
os.Setenv("IS_WITHIN_UNIX_SCRIPT", "TRUE") // prevent inception problem
// DO NOT EXIT ON ANY ERRORS - continue without logging
logdir := utils.ServicedLogDir()
if userrec, err := user.Current(); err != nil {
fmt.Fprintf(os.Stderr, "Unable to retrieve userid to log output: %s", err)
} else {
logfile := time.Now().Format(fmt.Sprintf("%s/script-2006-01-02-150405-%s.log", logdir, userrec.Username))
// unix exec ourselves
cmd := []string{"/usr/bin/script", "--append", "--return", "--flush",
"-c", strings.Join(os.Args, " "), logfile}
fmt.Fprintf(os.Stderr, "Logging to logfile: %s\n", logfile)
glog.V(1).Infof("syscall.exec unix script with command: %+v", cmd)
if err := syscall.Exec(cmd[0], cmd[0:], os.Environ()); err != nil {
fmt.Fprintf(os.Stderr, "Unable to log output with command:%+v err:%s\n", cmd, err)
}
}
}
glog.V(1).Infof("runScript filename:%s %+v\n", fileName, config)
runScript(c, ctx, fileName, config)
}
示例14: MonitorResourcePool
func MonitorResourcePool(shutdown <-chan interface{}, conn client.Connection, poolID string) <-chan *pool.ResourcePool {
monitor := make(chan *pool.ResourcePool)
go func() {
defer close(monitor)
if err := zzk.Ready(shutdown, conn, poolpath(poolID)); err != nil {
glog.V(2).Infof("Could not watch pool %s: %s", poolID, err)
return
}
for {
var node PoolNode
event, err := conn.GetW(poolpath(poolID), &node)
if err != nil {
glog.V(2).Infof("Could not get pool %s: %s", poolID, err)
return
}
select {
case monitor <- node.ResourcePool:
case <-shutdown:
return
}
select {
case <-event:
case <-shutdown:
return
}
}
}()
return monitor
}
示例15: processChildrenAndWait
func (a *HostAgent) processChildrenAndWait(conn *zk.Conn) bool {
processing := make(map[string]chan int)
ssDone := make(chan stateResult, 25)
hostPath := zzk.HostPath(a.hostId)
for {
children, _, zkEvent, err := conn.ChildrenW(hostPath)
if err != nil {
glog.V(0).Infoln("Unable to read children, retrying.")
time.Sleep(3 * time.Second)
return true
}
a.startMissingChildren(conn, children, processing, ssDone)
select {
case errc := <-a.closing:
glog.V(1).Info("Agent received interrupt")
err = waitForSsNodes(processing, ssDone)
errc <- err
return false
case ssResult := <-ssDone:
glog.V(1).Infof("Goroutine finished %s", ssResult.id)
delete(processing, ssResult.id)
case evt := <-zkEvent:
glog.V(1).Info("Agent event: ", evt)
}
}
}