QConf Go Doc - Qihoo360/QConf GitHub Wiki

QConf Go Doc

Usage

  • Download the code and add its location to GOPATH environment variable.
  • Install go_qconf
go install infra/go_qconf
  • Import qconf package in your code file.
import "infra/go_qconf"

API Doc

QConf access functions


GetConf

value, err := go_qconf.GetConf(path, idc)

Description

get configure value

Parameters

path - key of configuration.

idc - from which idc to get the value,empty string if want to get from local idc

Return Value

value of the configuation

err, shold be checked for nil before use of value

Example

  value, err_conf := go_qconf.GetConf(key, "")
  if err_conf != nil{
       if err_conf == go_qconf.ErrQconfNotFound{
            fmt.Printf("Is ErrQconfNotFound\n")
       }
       fmt.Println(err_conf)
   }

GetBatchKeys()

batch_keys, err := go_qconf.GetBatchKeys(key, "")

Description

get all children nodes'key

Parameters

path - key of configuration.

idc - from which idc to get the keys,empty string if want to get from local idc

Return Value

batch_keys: go slice of the node's keys

err, shold be checked for nil before you use batch_keys

Example

    batch_keys, err_batch_keys := go_qconf.GetBatchKeys(key, "")
    if err_batch_keys != nil{
        fmt.Println(err_batch_keys)
    } 

GetBatchConf

batch_conf, err := go_qconf.GetBatchConf(key, "")

Description

get all children nodes' key and value

Parameters

path - key of configuration.

idc - from which idc to get the confs,empty string if want to get from local idc

Return Value

batch_conf: go map of the children configuration

err, shold be checked for nil before you use batch_conf

Example

   batch_conf, err_batch_conf := go_qconf.GetBatchConf(key, "")
   if err_batch_conf != nil{
       fmt.Println(err_batch_conf)
   }

GetAllHost

hosts, err_hosts := go_qconf.GetAllHost(host_key, idc)

Description

get all available services under given key

Parameters

path - key of configuration.

idc - from which idc to get the hosts,empty string if want to get from local idc

Return Value

go slice of all available services

err, shold be checked for nil before you use batch_conf

Example

    hosts, err_hosts := go_qconf.GetAllHost(host_key, idc)
    if err_hosts != nil{
        fmt.Println(err_hosts)
    }

GetHost

host, err := go_qconf.GetHost(key, idc)

Description

get one available service

Parameters

path - key of configuration.

idc - from which idc to get the host,empty string if want to get from local idc

Return Value

host, one available service

err,shold be checked for nil before you use host

Example

    host, err_host := go_qconf.GetHost(key, idc)
    if err_host != nil{
        fmt.Println(err_host)
    }

Example


package main

import (
      "fmt"
      "infra/go_qconf"
)
func main(){
      value, err_conf := go_qconf.GetConf("/demo/test/confs/conf1/conf11", "")
      if err_conf != nil{
          fmt.Println(err_conf)
      } else {
          fmt.Printf("value is %v\n", value)
      }

      host, err_host := go_qconf.GetHost("/demo/test/hosts/host1", "")
      if err_host != nil{
          fmt.Println(err_host)
      } else {
          fmt.Printf("one host is %v\n", host)
      }

      hosts, err_hosts := go_qconf.GetAllHost("/demo/test/hosts/host1", "")
      if err_hosts != nil{
          fmt.Println(err_hosts)
      } else {
          for i := 0; i < len(hosts); i++ {
              cur := hosts[i]
              fmt.Println(cur)
          }
      }

      batch_conf, err_batch_conf := go_qconf.GetBatchConf("/demo/test/confs/conf1", "")
      if err_batch_conf != nil{
          fmt.Println(err_batch_conf)
      } else {
          fmt.Printf("%v\n", batch_conf)
      }

      batch_keys, err_batch_keys := go_qconf.GetBatchKeys("/demo/test/confs/conf1", "")
      if err_batch_keys != nil{
          fmt.Println(err_batch_keys)
      } else {
          fmt.Printf("%v\n", batch_keys)
      }

}