本文整理汇总了Golang中github.com/openshift/origin/pkg/diagnostics/types.NewDiagnosticResult函数的典型用法代码示例。如果您正苦于以下问题:Golang NewDiagnosticResult函数的具体用法?Golang NewDiagnosticResult怎么用?Golang NewDiagnosticResult使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewDiagnosticResult函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: Check
func (d *MetricsApiProxy) Check() types.DiagnosticResult {
r := types.NewDiagnosticResult(MetricsApiProxyName)
// see if it has any active endpoints
if endpoints, err := d.KubeClient.Core().Endpoints(MetricsApiProxyProject).Get(MetricsApiProxyService); err != nil {
r.Error("DClu4001", err, fmt.Sprintf("Unexpected error while retrieving %[1]s service endpoints: (%[2]T) %[2]v", MetricsApiProxyService, err))
return r
} else {
active := false
if endpoints.Subsets != nil {
for _, endpoint := range endpoints.Subsets {
if len(endpoint.Addresses) > 0 {
active = true
break
}
}
}
if !active {
r.Error("DClu4002", nil, fmt.Sprintf(errMsgNoHeapsterEndpoints, MetricsApiProxyService, MetricsApiProxyProject))
return r
}
}
// the service should respond; see if we can reach it via API proxy
uri := fmt.Sprintf("/api/v1/proxy/namespaces/%[1]s/services/https:%[2]s:/api/v1/model/metrics", MetricsApiProxyProject, MetricsApiProxyService)
// note in above, project and service name are already URL-safe
result := d.KubeClient.CoreClient.RESTClient.Get().RequestURI(uri).Do()
if err := result.Error(); err != nil {
r.Error("DClu4003", err, fmt.Sprintf(errMsgApiProxyAccess, uri, err))
}
return r
}
开发者ID:LalatenduMohanty,项目名称:origin,代码行数:32,代码来源:metrics.go
示例2: Check
func (d NodeConfigCheck) Check() types.DiagnosticResult {
r := types.NewDiagnosticResult(NodeConfigCheckName)
r.Debug("DH1001", fmt.Sprintf("Looking for node config file at '%s'", d.NodeConfigFile))
nodeConfig, err := configapilatest.ReadAndResolveNodeConfig(d.NodeConfigFile)
if err != nil {
r.Error("DH1002", err, fmt.Sprintf("Could not read node config file '%s':\n(%T) %[2]v", d.NodeConfigFile, err))
return r
}
r.Info("DH1003", fmt.Sprintf("Found a node config file: %[1]s", d.NodeConfigFile))
results := configvalidation.ValidateNodeConfig(nodeConfig, nil)
if len(results.Errors) > 0 {
errText := fmt.Sprintf("Validation of node config file '%s' failed:\n", d.NodeConfigFile)
for _, err := range results.Errors {
errText += fmt.Sprintf("%v\n", err)
}
r.Error("DH1004", nil, errText)
}
if len(results.Warnings) > 0 {
warnText := fmt.Sprintf("Validation of node config file '%s' warned:\n", d.NodeConfigFile)
for _, warn := range results.Warnings {
warnText += fmt.Sprintf("%v\n", warn)
}
r.Warn("DH1005", nil, warnText)
}
return r
}
开发者ID:asiainfoLDP,项目名称:datafactory,代码行数:28,代码来源:check_node_config.go
示例3: Check
// Check is part of the Diagnostic interface; it runs the actual diagnostic logic
func (d *NetworkDiagnostic) Check() types.DiagnosticResult {
d.res = types.NewDiagnosticResult(NetworkDiagnosticName)
var err error
var ok bool
d.pluginName, ok, err = util.GetOpenShiftNetworkPlugin(d.OSClient)
if err != nil {
d.res.Error("DNet2001", err, fmt.Sprintf("Checking network plugin failed. Error: %s", err))
return d.res
}
if !ok {
d.res.Warn("DNet2002", nil, "Skipping network diagnostics check. Reason: Not using openshift network plugin.")
return d.res
}
d.nodes, err = util.GetSchedulableNodes(d.KubeClient)
if err != nil {
d.res.Error("DNet2003", err, fmt.Sprintf("Fetching schedulable nodes failed. Error: %s", err))
return d.res
}
if len(d.nodes) == 0 {
d.res.Warn("DNet2004", nil, "Skipping network checks. Reason: No schedulable/ready nodes found.")
return d.res
}
if len(d.LogDir) == 0 {
d.LogDir = util.NetworkDiagDefaultLogDir
}
d.runNetworkDiagnostic()
return d.res
}
开发者ID:LalatenduMohanty,项目名称:origin,代码行数:32,代码来源:run_pod.go
示例4: Check
func (d *ClusterRoleBindings) Check() types.DiagnosticResult {
r := types.NewDiagnosticResult(ClusterRoleBindingsName)
reconcileOptions := &policycmd.ReconcileClusterRoleBindingsOptions{
Confirmed: false,
Union: false,
Out: ioutil.Discard,
RoleBindingClient: d.ClusterRoleBindingsClient.ClusterRoleBindings(),
}
changedClusterRoleBindings, err := reconcileOptions.ChangedClusterRoleBindings()
if policycmd.IsClusterRoleBindingLookupError(err) {
// we got a partial match, so we log the error that stopped us from getting a full match
// but continue to interpret the partial results that we did get
r.Warn("CRBD1008", err, fmt.Sprintf("Error finding ClusterRoleBindings: %v", err))
} else if err != nil {
r.Error("CRBD1000", err, fmt.Sprintf("Error inspecting ClusterRoleBindings: %v", err))
return r
}
// success
if len(changedClusterRoleBindings) == 0 {
return r
}
for _, changedClusterRoleBinding := range changedClusterRoleBindings {
actualClusterRole, err := d.ClusterRoleBindingsClient.ClusterRoleBindings().Get(changedClusterRoleBinding.Name)
if kerrs.IsNotFound(err) {
r.Error("CRBD1001", nil, fmt.Sprintf("clusterrolebinding/%s is missing.\n\nUse the `oadm policy reconcile-cluster-role-bindings` command to create the role binding.", changedClusterRoleBinding.Name))
continue
}
if err != nil {
r.Error("CRBD1002", err, fmt.Sprintf("Unable to get clusterrolebinding/%s: %v", changedClusterRoleBinding.Name, err))
}
missingSubjects, extraSubjects := policycmd.DiffObjectReferenceLists(changedClusterRoleBinding.Subjects, actualClusterRole.Subjects)
switch {
case len(missingSubjects) > 0:
// Only a warning, because they can remove things like self-provisioner role from system:unauthenticated, and it's not an error
r.Warn("CRBD1003", nil, fmt.Sprintf("clusterrolebinding/%s is missing expected subjects.\n\nUse the `oadm policy reconcile-cluster-role-bindings` command to update the role binding to include expected subjects.", changedClusterRoleBinding.Name))
case len(extraSubjects) > 0:
// Only info, because it is normal to use policy to grant cluster roles to users
r.Info("CRBD1004", fmt.Sprintf("clusterrolebinding/%s has more subjects than expected.\n\nUse the `oadm policy reconcile-cluster-role-bindings` command to update the role binding to remove extra subjects.", changedClusterRoleBinding.Name))
}
for _, missingSubject := range missingSubjects {
r.Info("CRBD1005", fmt.Sprintf("clusterrolebinding/%s is missing subject %v.", changedClusterRoleBinding.Name, missingSubject))
}
for _, extraSubject := range extraSubjects {
r.Info("CRBD1006", fmt.Sprintf("clusterrolebinding/%s has extra subject %v.", changedClusterRoleBinding.Name, extraSubject))
}
r.Debug("CRBD1007", fmt.Sprintf("clusterrolebinding/%s is now %v.", changedClusterRoleBinding.Name, changedClusterRoleBinding))
}
return r
}
开发者ID:legionus,项目名称:origin,代码行数:58,代码来源:rolebindings.go
示例5: Check
// Check is part of the Diagnostic interface; it runs the actual diagnostic logic
func (d PodCheckDns) Check() types.DiagnosticResult {
r := types.NewDiagnosticResult(PodCheckDnsName)
if resolvConf, err := getResolvConf(r); err == nil {
connectAndResolve(resolvConf, r)
resolveSearch(resolvConf, r)
}
return r
}
开发者ID:RomainVabre,项目名称:origin,代码行数:10,代码来源:dns.go
示例6: Check
// Check is part of the Diagnostic interface; it runs the actual diagnostic logic
func (d CheckServiceNetwork) Check() types.DiagnosticResult {
d.res = types.NewDiagnosticResult(CheckServiceNetworkName)
pluginName, ok, err := util.GetOpenShiftNetworkPlugin(d.OSClient)
if err != nil {
d.res.Error("DSvcNet1001", err, fmt.Sprintf("Checking network plugin failed. Error: %s", err))
return d.res
}
if !ok {
d.res.Warn("DSvcNet1002", nil, "Skipping service connectivity test. Reason: Not using openshift network plugin.")
return d.res
}
services, err := getAllServices(d.KubeClient)
if err != nil {
d.res.Error("DSvcNet1003", err, fmt.Sprintf("Getting all services failed. Error: %s", err))
return d.res
}
if len(services) == 0 {
d.res.Warn("DSvcNet1004", nil, "Skipping service connectivity test. Reason: No services found.")
return d.res
}
localPods, _, err := util.GetLocalAndNonLocalDiagnosticPods(d.KubeClient)
if err != nil {
d.res.Error("DSvcNet1005", err, fmt.Sprintf("Getting local and nonlocal pods failed. Error: %s", err))
return d.res
}
if sdnapi.IsOpenShiftMultitenantNetworkPlugin(pluginName) {
netnsList, err := d.OSClient.NetNamespaces().List(kapi.ListOptions{})
if err != nil {
d.res.Error("DSvcNet1006", err, fmt.Sprintf("Getting all network namespaces failed. Error: %s", err))
return d.res
}
d.vnidMap = map[string]uint32{}
for _, netns := range netnsList.Items {
d.vnidMap[netns.NetName] = netns.NetID
}
}
localGlobalPods, localNonGlobalPods := util.GetGlobalAndNonGlobalPods(localPods, d.vnidMap)
// Applicable to flat and multitenant networks
if len(localGlobalPods) > 0 {
d.checkConnection(localGlobalPods, services, "Skipping service connectivity test for global projects. Reason: Couldn't find a global pod.")
}
// Applicable to multitenant network
isMultitenant := (d.vnidMap != nil)
if isMultitenant {
d.checkConnection(localNonGlobalPods, services, "Skipping service connectivity test for non-global projects. Reason: Couldn't find a non-global pod.")
}
return d.res
}
开发者ID:juanluisvaladas,项目名称:origin,代码行数:57,代码来源:service.go
示例7: Check
// Check is part of the Diagnostic interface; it runs the actual diagnostic logic
func (d CheckExternalNetwork) Check() types.DiagnosticResult {
r := types.NewDiagnosticResult(CheckExternalNetworkName)
externalAddress := "www.redhat.com"
kexecer := kexec.New()
if _, err := kexecer.Command("ping", "-c1", "-W2", externalAddress).CombinedOutput(); err != nil {
// Admin may intentionally block access to the external network. If this check fails it doesn't necessarily mean that something is wrong. So just warn in this case.
r.Warn("DExtNet1001", nil, fmt.Sprintf("Pinging external address %q failed. Check if the admin intentionally blocked access to the external network. Error: %s", externalAddress, err))
}
return r
}
开发者ID:juanluisvaladas,项目名称:origin,代码行数:12,代码来源:external.go
示例8: Check
// Check is part of the Diagnostic interface; it runs the actual diagnostic logic
func (d PodCheckAuth) Check() types.DiagnosticResult {
r := types.NewDiagnosticResult(PodCheckAuthName)
token, err := ioutil.ReadFile(d.TokenPath)
if err != nil {
r.Error("DP1001", err, fmt.Sprintf("could not read the service account token: %v", err))
return r
}
d.authenticateToMaster(string(token), r)
d.authenticateToRegistry(string(token), r)
return r
}
开发者ID:LalatenduMohanty,项目名称:origin,代码行数:12,代码来源:auth.go
示例9: Check
func (d *ClusterRouter) Check() types.DiagnosticResult {
r := types.NewDiagnosticResult(ClusterRouterName)
if dc := d.getRouterDC(r); dc != nil {
// Check that it actually has running pod(s) selected
if podList := d.getRouterPods(dc, r); podList != nil {
for _, pod := range podList.Items {
// Check the logs for that pod for common issues (credentials, DNS resolution failure)
d.checkRouterLogs(&pod, r)
}
}
}
return r
}
开发者ID:richm,项目名称:origin,代码行数:13,代码来源:router.go
示例10: Check
func (d *ServiceExternalIPs) Check() types.DiagnosticResult {
r := types.NewDiagnosticResult(ServiceExternalIPsName)
masterConfig, err := hostdiag.GetMasterConfig(r, d.MasterConfigFile)
if err != nil {
r.Info("DH2004", "Unreadable master config; skipping this diagnostic.")
return r
}
admit, reject := []*net.IPNet{}, []*net.IPNet{}
if cidrs := masterConfig.NetworkConfig.ExternalIPNetworkCIDRs; cidrs != nil {
reject, admit, err = admission.ParseCIDRRules(cidrs)
if err != nil {
r.Error("DH2007", err, fmt.Sprintf("Could not parse master config NetworkConfig.ExternalIPNetworkCIDRs: (%[1]T) %[1]v", err))
return r
}
}
services, err := d.KclusterClient.Services("").List(kapi.ListOptions{})
if err != nil {
r.Error("DH2005", err, fmt.Sprintf("Error while listing cluster services: (%[1]T) %[1]v", err))
return r
}
errList := []string{}
for _, service := range services.Items {
if len(service.Spec.ExternalIPs) == 0 {
continue
}
if len(admit) == 0 {
errList = append(errList, fmt.Sprintf("Service %s.%s specifies ExternalIPs %v, but none are permitted.", service.Namespace, service.Name, service.Spec.ExternalIPs))
continue
}
for _, ipString := range service.Spec.ExternalIPs {
ip := net.ParseIP(ipString)
if ip == nil {
continue // we don't really care for the purposes of this diagnostic
}
if admission.NetworkSlice(reject).Contains(ip) || !admission.NetworkSlice(admit).Contains(ip) {
errList = append(errList, fmt.Sprintf("Service %s.%s specifies ExternalIP %s that is not permitted by the master ExternalIPNetworkCIDRs setting.", service.Namespace, service.Name, ipString))
}
}
}
if len(errList) > 0 {
r.Error("DH2006", nil, `The following problems were found with service ExternalIPs in the cluster.
These services were created before the master ExternalIPNetworkCIDRs setting changed to exclude them.
The default ExternalIPNetworkCIDRs now excludes all ExternalIPs on services.
`+strings.Join(errList, "\n"))
}
return r
}
开发者ID:RomainVabre,项目名称:origin,代码行数:50,代码来源:service_externalip.go
示例11: Check
func (d *ClusterRoles) Check() types.DiagnosticResult {
r := types.NewDiagnosticResult(ClusterRolesName)
reconcileOptions := &policycmd.ReconcileClusterRolesOptions{
Confirmed: false,
Union: false,
Out: ioutil.Discard,
RoleClient: d.ClusterRolesClient.ClusterRoles(),
}
changedClusterRoles, err := reconcileOptions.ChangedClusterRoles()
if err != nil {
r.Error("CRD1000", err, fmt.Sprintf("Error inspecting ClusterRoles: %v", err))
return r
}
// success
if len(changedClusterRoles) == 0 {
return r
}
for _, changedClusterRole := range changedClusterRoles {
actualClusterRole, err := d.ClusterRolesClient.ClusterRoles().Get(changedClusterRole.Name)
if kerrs.IsNotFound(err) {
r.Error("CRD1002", nil, fmt.Sprintf("clusterrole/%s is missing.\n\nUse the `oadm policy reconcile-cluster-roles` command to create the role.", changedClusterRole.Name))
continue
}
if err != nil {
r.Error("CRD1001", err, fmt.Sprintf("Unable to get clusterrole/%s: %v", changedClusterRole.Name, err))
}
_, missingRules := rulevalidation.Covers(actualClusterRole.Rules, changedClusterRole.Rules)
if len(missingRules) == 0 {
r.Warn("CRD1003", nil, fmt.Sprintf("clusterrole/%s has changed, but the existing role has more permissions than the new role.\n\nUse the `oadm policy reconcile-cluster-roles` command to update the role to reduce permissions.", changedClusterRole.Name))
_, extraRules := rulevalidation.Covers(changedClusterRole.Rules, actualClusterRole.Rules)
for _, extraRule := range extraRules {
r.Info("CRD1008", fmt.Sprintf("clusterrole/%s has extra permission %v.", changedClusterRole.Name, extraRule))
}
continue
}
r.Error("CRD1005", nil, fmt.Sprintf("clusterrole/%s has changed and the existing role does not have enough permissions.\n\nUse the `oadm policy reconcile-cluster-roles` command to update the role.", changedClusterRole.Name))
for _, missingRule := range missingRules {
r.Info("CRD1007", fmt.Sprintf("clusterrole/%s is missing permission %v.", changedClusterRole.Name, missingRule))
}
r.Debug("CRD1006", fmt.Sprintf("clusterrole/%s is now %v.", changedClusterRole.Name, changedClusterRole))
}
return r
}
开发者ID:asiainfoLDP,项目名称:datafactory,代码行数:50,代码来源:roles.go
示例12: Check
func (d *ClusterRoles) Check() types.DiagnosticResult {
r := types.NewDiagnosticResult(ClusterRolesName)
reconcileOptions := &policycmd.ReconcileClusterRolesOptions{
Confirmed: false,
Union: false,
Out: ioutil.Discard,
RoleClient: d.ClusterRolesClient.ClusterRoles(),
}
changedClusterRoles, _, err := reconcileOptions.ChangedClusterRoles()
if err != nil {
r.Error("CRD1000", err, fmt.Sprintf("Error inspecting ClusterRoles: %v", err))
return r
}
// success
if len(changedClusterRoles) == 0 {
return r
}
for _, changedClusterRole := range changedClusterRoles {
actualClusterRole, err := d.ClusterRolesClient.ClusterRoles().Get(changedClusterRole.Name)
if kerrs.IsNotFound(err) {
r.Error("CRD1002", nil, fmt.Sprintf(clusterRoleMissing, changedClusterRole.Name))
continue
}
if err != nil {
r.Error("CRD1001", err, fmt.Sprintf("Unable to get clusterrole/%s: %v", changedClusterRole.Name, err))
}
_, missingRules := rulevalidation.Covers(actualClusterRole.Rules, changedClusterRole.Rules)
if len(missingRules) == 0 {
r.Info("CRD1003", fmt.Sprintf(clusterRoleReduced, changedClusterRole.Name))
_, extraRules := rulevalidation.Covers(changedClusterRole.Rules, actualClusterRole.Rules)
for _, extraRule := range extraRules {
r.Info("CRD1008", fmt.Sprintf("clusterrole/%s has extra permission %v.", changedClusterRole.Name, extraRule))
}
continue
}
r.Error("CRD1005", nil, fmt.Sprintf(clusterRoleChanged, changedClusterRole.Name))
for _, missingRule := range missingRules {
r.Info("CRD1007", fmt.Sprintf("clusterrole/%s is missing permission %v.", changedClusterRole.Name, missingRule))
}
r.Debug("CRD1006", fmt.Sprintf("clusterrole/%s is now %v.", changedClusterRole.Name, changedClusterRole))
}
return r
}
开发者ID:LalatenduMohanty,项目名称:origin,代码行数:50,代码来源:roles.go
示例13: Check
func (d *ClusterRegistry) Check() types.DiagnosticResult {
r := types.NewDiagnosticResult(ClusterRegistryName)
if service := d.getRegistryService(r); service != nil {
// Check that it actually has pod(s) selected and running
if runningPods := d.getRegistryPods(service, r); len(runningPods) == 0 {
r.Error("DClu1001", nil, fmt.Sprintf(clRegNoRunningPods, registryName))
return r
} else if d.checkRegistryEndpoints(runningPods, r) { // Check that matching endpoint exists on the service
// attempt to create an imagestream and see if it gets the same registry service IP from the service cache
d.verifyRegistryImageStream(service, r)
}
}
return r
}
开发者ID:nbogojevic,项目名称:origin,代码行数:14,代码来源:registry.go
示例14: Check
// Check is part of the Diagnostic interface; it runs the actual diagnostic logic
func (d CollectNetworkInfo) Check() types.DiagnosticResult {
r := types.NewDiagnosticResult(CollectNetworkInfoName)
nodeName, _, err := util.GetLocalNode(d.KubeClient)
if err != nil {
r.Error("DColNet1001", err, fmt.Sprintf("Fetching local node info failed: %s", err))
return r
}
l := util.LogInterface{
Result: r,
Logdir: filepath.Join(util.NetworkDiagDefaultLogDir, util.NetworkDiagNodeLogDirPrefix, nodeName),
}
l.LogNode(d.KubeClient)
return r
}
开发者ID:LalatenduMohanty,项目名称:origin,代码行数:17,代码来源:collect.go
示例15: Check
func (d NodeConfigCheck) Check() types.DiagnosticResult {
r := types.NewDiagnosticResult(NodeConfigCheckName)
r.Debug("DH1001", fmt.Sprintf("Looking for node config file at '%s'", d.NodeConfigFile))
nodeConfig, err := configapilatest.ReadAndResolveNodeConfig(d.NodeConfigFile)
if err != nil {
r.Error("DH1002", err, fmt.Sprintf("Could not read node config file '%s':\n(%T) %[2]v", d.NodeConfigFile, err))
return r
}
r.Info("DH1003", fmt.Sprintf("Found a node config file: %[1]s", d.NodeConfigFile))
for _, err := range configvalidation.ValidateNodeConfig(nodeConfig) {
r.Error("DH1004", err, fmt.Sprintf("Validation of node config file '%s' failed:\n(%T) %[2]v", d.NodeConfigFile, err))
}
return r
}
开发者ID:nitintutlani,项目名称:origin,代码行数:16,代码来源:check_node_config.go
示例16: Check
func (d *MasterNode) Check() types.DiagnosticResult {
r := types.NewDiagnosticResult(MasterNodeName)
nodes, err := d.KubeClient.Nodes().List(kapi.ListOptions{})
if err != nil {
r.Error("DClu3002", err, fmt.Sprintf(clientErrorGettingNodes, err))
return r
}
// Provide the actual net.LookupHost as the DNS resolver:
serverIps, err := resolveServerIP(d.ServerUrl, net.LookupHost)
if err != nil {
r.Error("DClu3007", err, "Error resolving servers IP")
return r
}
return searchNodesForIP(nodes.Items, serverIps)
}
开发者ID:RomainVabre,项目名称:origin,代码行数:18,代码来源:master_node.go
示例17: Check
func (d UnitStatus) Check() types.DiagnosticResult {
r := types.NewDiagnosticResult(UnitStatusName)
unitRequiresUnit(r, d.SystemdUnits["openshift-node"], d.SystemdUnits["iptables"], nodeRequiresIPTables)
unitRequiresUnit(r, d.SystemdUnits["openshift-node"], d.SystemdUnits["docker"], `Nodes use Docker to run containers.`)
unitRequiresUnit(r, d.SystemdUnits["openshift-node"], d.SystemdUnits["openvswitch"], sdUnitSDNreqOVS)
unitRequiresUnit(r, d.SystemdUnits["openshift-master"], d.SystemdUnits["openvswitch"], `Masters use openvswitch for access to cluster SDN networking`)
// all-in-one networking *could* be simpler, so fewer checks
unitRequiresUnit(r, d.SystemdUnits["openshift"], d.SystemdUnits["docker"], `Nodes use Docker to run containers.`)
// Anything that is enabled but not running deserves notice
for name, unit := range d.SystemdUnits {
if unit.Enabled && !unit.Active {
r.Error("DS3001", nil, fmt.Sprintf(sdUnitInactive, name))
}
}
return r
}
开发者ID:nitintutlani,项目名称:origin,代码行数:18,代码来源:unit_status.go
示例18: Check
func (d *NodeDefinitions) Check() types.DiagnosticResult {
r := types.NewDiagnosticResult("NodeDefinition")
nodes, err := d.KubeClient.Core().Nodes().List(kapi.ListOptions{})
if err != nil {
r.Error("DClu0001", err, fmt.Sprintf(clientErrorGettingNodes, err))
return r
}
anyNodesAvail := false
for _, node := range nodes.Items {
var ready *kapi.NodeCondition
for i, condition := range node.Status.Conditions {
switch condition.Type {
// Each condition appears only once. Currently there's only one... used to be more
case kapi.NodeReady:
ready = &node.Status.Conditions[i]
}
}
if ready == nil || ready.Status != kapi.ConditionTrue {
templateData := log.Hash{"node": node.Name}
if ready == nil {
templateData["status"] = "None"
templateData["reason"] = "There is no readiness record."
} else {
templateData["status"] = ready.Status
templateData["reason"] = ready.Reason
}
r.Warn("DClu0002", nil, log.EvalTemplate("DClu0002", nodeNotReady, templateData))
} else if node.Spec.Unschedulable {
r.Warn("DClu0003", nil, log.EvalTemplate("DClu0003", nodeNotSched, log.Hash{"node": node.Name}))
} else {
anyNodesAvail = true
}
}
if !anyNodesAvail {
r.Error("DClu0004", nil, "There were no nodes available to use. No new pods can be scheduled.")
}
return r
}
开发者ID:xgwang-zte,项目名称:origin,代码行数:42,代码来源:node_definitions.go
示例19: Check
// Check is part of the Diagnostic interface; it runs the actual diagnostic logic
func (d CheckNodeNetwork) Check() types.DiagnosticResult {
r := types.NewDiagnosticResult(CheckNodeNetworkName)
_, localIP, err := util.GetLocalNode(d.KubeClient)
if err != nil {
r.Error("DNodeNet1001", err, err.Error())
return r
}
localPods, _, err := util.GetLocalAndNonLocalDiagnosticPods(d.KubeClient)
if err != nil {
r.Error("DNodeNet1002", err, fmt.Sprintf("Getting local and nonlocal pods failed. Error: %s", err))
return r
}
for _, pod := range localPods {
checkNodeConnection(&pod, localIP, r)
}
return r
}
开发者ID:LalatenduMohanty,项目名称:origin,代码行数:21,代码来源:node.go
示例20: Check
func (d UnitStatus) Check() types.DiagnosticResult {
r := types.NewDiagnosticResult(UnitStatusName)
unitRequiresUnit(r, d.SystemdUnits["atomic-openshift-node"], d.SystemdUnits["iptables"], nodeRequiresIPTables)
unitRequiresUnit(r, d.SystemdUnits["atomic-openshift-node"], d.SystemdUnits["docker"], `Nodes use Docker to run containers.`)
unitRequiresUnit(r, d.SystemdUnits["atomic-openshift-node"], d.SystemdUnits["openvswitch"], fmt.Sprintf(sdUnitSDNreqOVS, "atomic-openshift-node"))
unitRequiresUnit(r, d.SystemdUnits["atomic-openshift-master"], d.SystemdUnits["atomic-openshift-node"], `Masters must currently also be nodes for access to cluster SDN networking`)
unitRequiresUnit(r, d.SystemdUnits["origin-node"], d.SystemdUnits["iptables"], nodeRequiresIPTables)
unitRequiresUnit(r, d.SystemdUnits["origin-node"], d.SystemdUnits["docker"], `Nodes use Docker to run containers.`)
unitRequiresUnit(r, d.SystemdUnits["origin-node"], d.SystemdUnits["openvswitch"], fmt.Sprintf(sdUnitSDNreqOVS, "origin-node"))
unitRequiresUnit(r, d.SystemdUnits["origin-master"], d.SystemdUnits["origin-node"], `Masters must currently also be nodes for access to cluster SDN networking`)
// Anything that is enabled but not running deserves notice
for name, unit := range d.SystemdUnits {
if unit.Enabled && !unit.Active {
r.Error("DS3001", nil, fmt.Sprintf(sdUnitInactive, name))
}
}
return r
}
开发者ID:RomainVabre,项目名称:origin,代码行数:21,代码来源:unit_status.go
注:本文中的github.com/openshift/origin/pkg/diagnostics/types.NewDiagnosticResult函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论