本文整理汇总了Golang中github.com/romana/rlog.Infof函数的典型用法代码示例。如果您正苦于以下问题:Golang Infof函数的具体用法?Golang Infof怎么用?Golang Infof使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Infof函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: process
// process is a goroutine that consumes resource update events coming from
// Kubernetes and:
// 1. On receiving an added or deleted event:
// i. add it to the queue
// ii. on a timer event, send the events to handleNetworkPolicyEvents and empty the queue
// 2. On receiving a done event, exit the goroutine
func (l *KubeListener) process(in <-chan Event, done chan struct{}) {
log.Infof("KubeListener: process(): Entered with in %v, done %v", in, done)
timer := time.Tick(processorTickTime * time.Second)
var networkPolicyEvents []Event
go func() {
for {
select {
case <-timer:
if len(networkPolicyEvents) > 0 {
log.Infof("Calling network policy handler for scheduled %d events", len(networkPolicyEvents))
handleNetworkPolicyEvents(networkPolicyEvents, l)
networkPolicyEvents = nil
}
case e := <-in:
log.Infof("KubeListener: process(): Got %v", e)
switch obj := e.Object.(type) {
case *v1beta1.NetworkPolicy:
log.Tracef(trace.Inside, "Scheduing network policy action, now scheduled %d actions", len(networkPolicyEvents))
networkPolicyEvents = append(networkPolicyEvents, e)
case *v1.Namespace:
log.Tracef(trace.Inside, "Processor received namespace")
handleNamespaceEvent(e, l)
default:
log.Errorf("Processor received an event of unkonwn type %s, ignoring object %s", reflect.TypeOf(obj), obj)
}
case <-done:
log.Infof("KubeListener: process(): Got done")
return
}
}
}()
return
}
示例2: Init
// Init implements Firewall interface
func (i *IPTsaveFirewall) Init(exec utilexec.Executable, store FirewallStore, nc NetConfig) error {
log.Infof("In Init()")
fwstore := firewallStore{}
fwstore.DbStore = store.GetDb()
fwstore.mu = store.GetMutex()
i.Store = fwstore
i.os = exec
i.networkConfig = nc
// Read current iptables config.
output, err := i.os.Exec(iptablesSaveBin, []string{})
if err != nil {
log.Infof("In Init(), failed to call iptables-save, %s", err)
return err
}
// Parse iptables-save output.
i.CurrentState = &iptsave.IPtables{}
i.CurrentState.Parse(bytes.NewReader(output))
// Inirialize desired state filter table.
i.DesiredState = &iptsave.IPtables{}
i.DesiredState.Tables = append(i.DesiredState.Tables, &iptsave.IPtable{Name: "filter"})
log.Tracef(trace.Inside, "In Init(), iptables rules loaded\n, %s", i.CurrentState.Render())
return nil
}
示例3: HandleDefaultPolicy
// HandleDefaultPolicy handles isolation flag on a namespace by creating/deleting
// default network policy. See http://kubernetes.io/docs/user-guide/networkpolicies/
func HandleDefaultPolicy(o *v1.Namespace, l *KubeListener) {
var defaultDeny bool
annotationKey := "net.beta.kubernetes.io/networkpolicy"
if np, ok := o.ObjectMeta.Annotations[annotationKey]; ok {
log.Infof("Handling default policy on a namespace %s, policy is now %s \n", o.ObjectMeta.Name, np)
// Annotations are stored in the Annotations map as raw JSON.
// So we need to parse it.
isolationPolicy := struct {
Ingress struct {
Isolation string `json:"isolation"`
} `json:"ingress"`
}{}
// TODO change to json.Unmarshal. Stas
err := json.NewDecoder(strings.NewReader(np)).Decode(&isolationPolicy)
if err != nil {
log.Errorf("In HandleDefaultPolicy :: Error decoding annotation %s: %s", annotationKey, err)
return
}
log.Debugf("Decoded to policy: %v", isolationPolicy)
defaultDeny = isolationPolicy.Ingress.Isolation == "DefaultDeny"
} else {
log.Infof("Handling default policy on a namespace, no annotation detected assuming non isolated namespace\n")
defaultDeny = false
}
if defaultDeny {
deleteDefaultPolicy(o, l)
} else {
addDefaultPolicy(o, l)
}
}
示例4: getConnStrings
// getConnStrings returns the appropriate GORM connection string for
// the given DB.
func (dbStore *DbStore) getConnStrings() []string {
var connStr []string
info := dbStore.Config
switch info.Type {
case "sqlite3":
connStr = append(connStr, info.Database)
log.Infof("DB: Connection string: %s", info.Database)
default:
portStr := fmt.Sprintf(":%d", info.Port)
if info.Port == 0 {
portStr = ":3306"
}
connStr = append(connStr, fmt.Sprintf("%s:%[email protected](%s%s)/%s?parseTime=true",
info.Username, info.Password, info.Host, portStr, info.Database))
log.Infof("DB: Connection string: ****:****@tcp(%s%s)/%s?parseTime=true",
info.Host, portStr, info.Database)
connStr = append(connStr, fmt.Sprintf("%s:%[email protected](/var/run/mysqld/mysqld.sock)/%s?parseTime=true",
info.Username, info.Password, info.Database))
log.Infof("DB: Connection string: ****:****@unix(/var/run/mysqld/mysqld.sock))/%s?parseTime=true",
info.Database)
connStr = append(connStr, fmt.Sprintf("%s:%[email protected](/tmp/mysqld.sock)/%s?parseTime=true",
info.Username, info.Password, info.Database))
log.Infof("DB: Connection string: ****:****@unix(/tmp/mysqld.sock))/%s?parseTime=true",
info.Database)
}
return connStr
}
示例5: addDefaultPolicy
// addDefaultPolicy adds the default policy which is to allow
// all ingres.
func addDefaultPolicy(o *v1.Namespace, l *KubeListener) {
var err error
// TODO this should be ExternalID, not Name...
policyName := getDefaultPolicyName(o)
// Before adding the default policy, see if it may already exist.
policy := common.Policy{Name: policyName}
policyURL, err := l.restClient.GetServiceUrl("policy")
if err != nil {
log.Errorf("In addDefaultPolicy :: Failed to find policy service: %s\n", err)
log.Errorf("In addDefaultPolicy :: Failed to add default policy: %s\n", policyName)
return
}
policyURL = fmt.Sprintf("%s/find/policies/%s", policyURL, policy.Name)
err = l.restClient.Get(policyURL, &policy)
if err == nil {
// An annotation to set isolation off may be issued multiple
// times and we already have the default policy caused by that in place.
// So we just do not do anything.
log.Infof("In addDefaultPolicy :: Policy %s (%d) already exists, ignoring\n", policy.Name, policy.ID)
return
}
// Find tenant, to properly set up policy
// TODO This really should be by external ID...
tnt, err := l.resolveTenantByName(o.ObjectMeta.Name)
if err != nil {
log.Infof("In addDefaultPolicy :: Error :: failed to resolve tenant %s \n", err)
return
}
romanaPolicy := &common.Policy{
Direction: common.PolicyDirectionIngress,
Name: policyName,
// ExternalID: externalID,
AppliedTo: []common.Endpoint{{TenantNetworkID: &tnt.NetworkID}},
Ingress: []common.RomanaIngress{
common.RomanaIngress{
Peers: []common.Endpoint{{Peer: common.Wildcard}},
Rules: []common.Rule{{Protocol: common.Wildcard}},
},
},
}
err = l.addNetworkPolicy(*romanaPolicy)
switch err := err.(type) {
default:
log.Errorf("In addDefaultPolicy :: Error :: failed to create policy %s: %s\n", policyName, err)
case nil:
log.Debugf("In addDefaultPolicy: Succesfully created policy %s\n", policyName)
case common.HttpError:
if err.StatusCode == http.StatusConflict {
log.Infof("In addDefaultPolicy ::Policy %s already exists.\n", policyName)
} else {
log.Errorf("In addDefaultPolicy :: Error :: failed to create policy %s: %s\n", policyName, err)
}
}
}
示例6: Marshal
func (j formMarshaller) Marshal(v interface{}) ([]byte, error) {
retval := ""
vPtr := reflect.ValueOf(v)
vVal := vPtr.Elem()
vType := reflect.TypeOf(vVal.Interface())
for i := 0; i < vVal.NumField(); i++ {
metaField := vType.Field(i)
field := vVal.Field(i)
formKey := metaField.Tag.Get("form")
if len(retval) > 0 {
retval += "&"
}
retval += formKey + "="
log.Infof("form key of %s is %s\n", metaField.Name, formKey)
str := ""
if metaField.Type == stringType {
str = field.Interface().(string)
} else {
toString := field.MethodByName("String")
log.Infof("Looking for method String on %s: %s\n", field, toString)
if reflect.Zero(reflect.TypeOf(toString)) != toString {
toStringResult := toString.Call(nil)
str = toStringResult[0].String()
} else {
log.Infof("Ignoring field %s of %s\n", metaField.Name, v)
continue
}
}
str = strings.TrimSpace(str)
retval += str
}
return []byte(retval), nil
}
示例7: Initialize
func (l *KubeListener) Initialize(client *common.RestClient) error {
l.restClient = client
// TODO, find a better place to initialize
// the translator. Stas.
PTranslator.Init(l.restClient, l.segmentLabelName, l.tenantLabelName)
tc := PTranslator.GetClient()
if tc == nil {
log.Critical("Failed to initialize rest client for policy translator.")
os.Exit(255)
}
l.lastEventPerNamespace = make(map[string]uint64)
log.Infof("%s: Starting server", l.Name())
nsURL, err := common.CleanURL(fmt.Sprintf("%s/%s/?%s", l.kubeURL, l.namespaceNotificationPath, HttpGetParamWatch))
if err != nil {
return err
}
log.Infof("Starting to listen on %s", nsURL)
done := make(chan struct{})
eventc, err := l.nsWatch(done, nsURL)
if err != nil {
log.Critical("Namespace watcher failed to start", err)
os.Exit(255)
}
// events := l.conductor(nsEvents, done)
l.process(eventc, done)
ProduceNewPolicyEvents(eventc, done, l)
log.Info("All routines started")
return nil
}
示例8: EnsureRule
// EnsureRule implements Firewall interface. It schedules given rule for
// transition in given state and stores it in firewall store.
func (i *IPTsaveFirewall) EnsureRule(rule FirewallRule, opType RuleState) error {
log.Infof("In EnsureRule() with firewall rule %s %s", opType.String(), rule.GetBody())
var ruleExists bool
// This firewall only manages filtering rules so it only operates
// on `filter` table.
table := i.DesiredState.TableByName("filter")
if table == nil {
return fmt.Errorf("In EnsureRule() firewall doesn't have filter table")
}
// Convert iptables rule from Firewall interface into iptsave.IPrule.
tempChain := iptsave.ParseRule(bytes.NewReader([]byte(rule.GetBody())))
ipRule := tempChain.Rules[0]
// Ensure that base chain of the rule is defined in desired state.
chain := table.ChainByName(tempChain.Name)
if chain == nil {
table.Chains = append(table.Chains, tempChain)
chain = tempChain
// we just added a chain with our rule
// into the filter table so we know that
// target rule is in the table.
ruleExists = true
}
// If we didn't put that rule in the table ourselves yet then
// try to find it in existing table.
if !ruleExists {
ruleExists = chain.RuleInChain(ipRule)
}
if ruleExists {
switch opType {
case EnsureAbsent:
log.Infof("In EnsureRule - rule %s exists in current state, removing", rule.GetBody())
chain.DeleteRule(ipRule)
default:
log.Infof("In EnsureRule - nothing to do %s", rule.GetBody())
}
} else {
log.Infof("In EnsureRule - rule %s doesn't exist is current state, %s", rule.GetBody(), opType.String())
switch opType {
case EnsureLast:
chain.AppendRule(ipRule)
case EnsureFirst:
chain.InsertRule(0, ipRule)
default:
log.Infof("In EnsureRule - nothing to do %s", rule.GetBody())
}
}
return nil
}
示例9: isChainExistByName
// isChainExistByName verifies if given iptables chain exists.
// Returns true if chain exists.
func (fw *IPtables) isChainExistByName(chainName string) bool {
args := []string{"-w", "-L", chainName}
output, err := fw.os.Exec(iptablesCmd, args)
if err != nil {
log.Infof("isChainExist(): iptables -L %s returned %s", chainName, err)
return false
}
log.Infof("isChainExist(): iptables -L %s returned %s", chainName, string(output))
return true
}
示例10: syncNetworkPolicies
// syncNetworkPolicies compares a list of kubernetes network policies with romana network policies,
// it returns a list of kubernetes policies that don't have corresponding kubernetes network policy for them,
// and a list of romana policies that used to represent kubernetes policy but corresponding kubernetes policy is gone.
func (l *KubeListener) syncNetworkPolicies(kubePolicies []v1beta1.NetworkPolicy) (kubernetesEvents []Event, romanaPolicies []common.Policy, err error) {
log.Infof("In syncNetworkPolicies with %v", kubePolicies)
policies, err := getAllPoliciesFunc(l.restClient)
if err != nil {
return
}
log.Infof("In syncNetworkPolicies fetched %d romana policies", len(policies))
// Compare kubernetes policies and all romana policies by name.
// TODO Coparing by name is fragile should be `external_id == UID`. Stas.
// Prepare a list of kubernetes policies that don't have corresponding
// romana policy.
var found bool
accountedRomanaPolicies := make(map[int]bool)
for kn, kubePolicy := range kubePolicies {
namespacePolicyNamePrefix := fmt.Sprintf("kube.default.")
found = false
for pn, policy := range policies {
fullPolicyName := fmt.Sprintf("%s%s", namespacePolicyNamePrefix, kubePolicy.ObjectMeta.Name)
if fullPolicyName == policy.Name {
found = true
accountedRomanaPolicies[pn] = true
break
}
}
if !found {
log.Tracef(trace.Inside, "Sync policies detected new kube policy %v", kubePolicies[kn])
kubernetesEvents = append(kubernetesEvents, Event{KubeEventAdded, kubePolicies[kn]})
}
}
// Delete romana policies that don't have corresponding
// kubernetes policy.
// Ignore policies that don't have "kube." prefix in the name.
for k, _ := range policies {
if !strings.HasPrefix(policies[k].Name, "kube.") {
log.Tracef(trace.Inside, "Sync policies skipping policy %s since it doesn't match the prefix `kube.`", policies[k].Name)
continue
}
if !accountedRomanaPolicies[k] {
log.Infof("Sync policies detected that romana policy %d is obsolete - scheduling for deletion", policies[k].ID)
log.Tracef(trace.Inside, "Sync policies detected that romana policy %d is obsolete - scheduling for deletion", policies[k].ID)
romanaPolicies = append(romanaPolicies, policies[k])
}
}
return
}
示例11: SetEndpoint
// SetEndpoint implements Firewall interface. It initializes
// endpoint dependend values of firewall.
func (i *IPTsaveFirewall) SetEndpoint(netif FirewallEndpoint) error {
log.Infof("In SetEndpoint() with endpoint <iface=%s, ip=%s, mac=%s>", netif.GetName(), netif.GetIP(), netif.GetMac())
var err error
i.interfaceName = netif.GetName()
i.u32filter, i.chainPrefix, err = prepareU32Rules(netif.GetIP(), i.networkConfig)
if err != nil {
return err
}
// Assemble firewall rules needed to divert traffic
// to/from the endpoint.
divertFilter := makeDivertRules(netif)
log.Tracef(trace.Inside, "In SetEndpoint() after divertFilter with\n%s", divertFilter.RenderFooter())
// compare list of divert rules and list of current rules
// make a list of chains filled with divert rules that need
// to be created to match current rules.
backendFilter := i.CurrentState.TableByName("filter")
newChains := iptsave.MergeTables(backendFilter, divertFilter)
// schedule divert rules that don't exist yet for installation.
newFilter := i.DesiredState.TableByName("filter")
newFilter.Chains = append(newFilter.Chains, newChains...)
log.Tracef(trace.Inside, "In SetEndpoint after merge\n%s", i.CurrentState.Render())
return err
}
示例12: Init
// Init calls flag.Parse() and, for now, sets up the
// credentials.
func (cs *CliState) Init() error {
cs.flagSet.Parse(os.Args[1:])
config.SetConfigName(".romana") // name of config file (without extension)
config.SetConfigType("yaml")
config.AddConfigPath("$HOME") // adding home directory as first search path
config.AutomaticEnv() // read in environment variables that match
// If a config file is found, read it in.
err := config.ReadInConfig()
if err != nil {
switch err := err.(type) {
case config.ConfigFileNotFoundError:
// For now do nothing
case *os.PathError:
if err.Error() != "open : no such file or directory" {
return err
}
default:
return err
}
}
log.Infof("Using config file: %s", config.ConfigFileUsed())
err = cs.credential.Initialize()
return err
}
示例13: ServeHTTP
func (n notFoundHandler) ServeHTTP(writer http.ResponseWriter, request *http.Request) {
// TODO answer with a 406 here?
accept := request.Header.Get("accept")
// Default to JSON.
contentType := "application/json"
if accept == "*/*" || accept == "" {
// Force json if it can take anything.
accept = "application/json"
}
format, err := negotiation.NegotiateAccept(accept, SupportedContentTypes)
var marshaller Marshaller
defaultMarshaller := ContentTypeMarshallers["application/json"]
if err == nil {
contentType = format.Value
writer.Header().Set("Content-Type", contentType)
marshaller = ContentTypeMarshallers[contentType]
}
// Error in negotiation or marshaller not found.
if err != nil || marshaller == nil {
// This should never happen... Just in case...
log.Infof("No marshaler for [%s] found in %s, %s\n", contentType, ContentTypeMarshallers, ContentTypeMarshallers["application/json"])
writer.WriteHeader(http.StatusUnsupportedMediaType)
sct := SupportedContentTypesMessage
dataOut, _ := defaultMarshaller.Marshal(sct)
writer.Write(dataOut)
return
}
dataOut, _ := marshaller.Marshal(NewError404("URI", request.RequestURI))
writer.Write(dataOut)
return
}
示例14: CreateDefaultRule
// CreateDefaultRule creates iptables rule for a chain with the
// specified target
func (fw *IPtables) CreateDefaultRule(chain int, target string) error {
log.Infof("In CreateDefaultRule() %s rules for chain %d", target, chain)
chainName := fw.chains[chain].ChainName
body := fmt.Sprintf("%s %s %s", chainName, "-j", target)
rule := &IPtablesRule{
Body: body,
State: setRuleInactive.String(),
}
// First create rule record in database.
err0 := fw.addIPtablesRule(rule)
if err0 != nil {
log.Error("In CreateDefaultRule() create db record for iptables rule ", rule.GetBody())
return err0
}
err1 := fw.EnsureRule(rule, EnsureLast)
if err1 != nil {
log.Errorf("In CreateDefaultRule() %s rules failed", target)
return err1
}
// Finally, set 'active' flag in database record.
if err2 := fw.Store.switchIPtablesRule(rule, setRuleActive); err2 != nil {
log.Error("In CreateDefaultRule() iptables rule created but activation failed ", rule.GetBody())
return err2
}
log.Info("In CreateDefaultRule() success")
return nil
}
示例15: ensureIPtablesChain
// ensureIPtablesChain checks if iptables chain in a desired state.
func (fw *IPtables) ensureIPtablesChain(chainName string, opType chainState) error {
log.Infof("In ensureIPtablesChain(): %s %s", opType.String(), chainName)
log.Tracef(trace.Inside, "In ensureIPtablesChain(): Testing chain ", chainName)
exists := fw.isChainExistByName(chainName)
log.Tracef(trace.Inside, "In ensureIPtablesChain(): Test for chain %s returned %b", chainName, exists)
var iptablesAction string
switch opType {
case ensureChainExists:
if exists {
log.Tracef(trace.Inside, "In ensureIPtablesChain(): nothing to do for chain %s", chainName)
return nil
} else {
iptablesAction = "-N"
}
case ensureChainAbsent:
if exists {
iptablesAction = "-D"
} else {
log.Tracef(trace.Inside, "In ensureIPtablesChain(): nothing to do for chain %s", chainName)
return nil
}
}
args := []string{iptablesAction, chainName}
_, err := fw.os.Exec(iptablesCmd, args)
return err
}