You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by ne...@apache.org on 2017/04/12 21:44:02 UTC
[12/13] incubator-trafficcontrol git commit: Add TM2 nagios
peerpoller checking all TMs in TO
Add TM2 nagios peerpoller checking all TMs in TO
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/2fdd9317
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/2fdd9317
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/2fdd9317
Branch: refs/heads/master
Commit: 2fdd9317a407fb6dfe924714630483c8b760c1a3
Parents: 5a6cf95
Author: Robert Butts <ro...@gmail.com>
Authored: Wed Mar 15 11:15:46 2017 -0600
Committer: Dave Neuman <ne...@apache.org>
Committed: Wed Apr 12 15:43:31 2017 -0600
----------------------------------------------------------------------
.../tools/nagios-validate-offline.go | 19 +++++++
.../tools/nagios-validate-peerpoller.go | 57 +++++++++++++++-----
2 files changed, 64 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/2fdd9317/traffic_monitor_golang/traffic_monitor/tools/nagios-validate-offline.go
----------------------------------------------------------------------
diff --git a/traffic_monitor_golang/traffic_monitor/tools/nagios-validate-offline.go b/traffic_monitor_golang/traffic_monitor/tools/nagios-validate-offline.go
index a54b8c5..ec2b9bd 100644
--- a/traffic_monitor_golang/traffic_monitor/tools/nagios-validate-offline.go
+++ b/traffic_monitor_golang/traffic_monitor/tools/nagios-validate-offline.go
@@ -1,3 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package main
import (
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/2fdd9317/traffic_monitor_golang/traffic_monitor/tools/nagios-validate-peerpoller.go
----------------------------------------------------------------------
diff --git a/traffic_monitor_golang/traffic_monitor/tools/nagios-validate-peerpoller.go b/traffic_monitor_golang/traffic_monitor/tools/nagios-validate-peerpoller.go
index 5e9c9fd..6af1a51 100644
--- a/traffic_monitor_golang/traffic_monitor/tools/nagios-validate-peerpoller.go
+++ b/traffic_monitor_golang/traffic_monitor/tools/nagios-validate-peerpoller.go
@@ -1,3 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package main
import (
@@ -5,32 +24,46 @@ import (
"fmt"
"github.com/apache/incubator-trafficcontrol/traffic_monitor_golang/common/nagios"
"github.com/apache/incubator-trafficcontrol/traffic_monitor_golang/traffic_monitor/tmcheck"
+ to "github.com/apache/incubator-trafficcontrol/traffic_ops/client"
)
const UserAgent = "tm-peerpoller-validator/0.1"
func main() {
- tmURI := flag.String("tm", "", "The Traffic Monitor URI, whose Peer Poller to validate")
- // toUser := flag.String("touser", "", "The Traffic Ops user")
- // toPass := flag.String("topass", "", "The Traffic Ops password")
- // includeOffline := flag.Bool("includeOffline", false, "Whether to include Offline Monitors")
+ toURI := flag.String("to", "", "The Traffic Ops URI, whose CRConfig to validate")
+ toUser := flag.String("touser", "", "The Traffic Ops user")
+ toPass := flag.String("topass", "", "The Traffic Ops password")
+ includeOffline := flag.Bool("includeOffline", false, "Whether to include Offline Monitors")
help := flag.Bool("help", false, "Usage info")
helpBrief := flag.Bool("h", false, "Usage info")
flag.Parse()
- if *help || *helpBrief {
+ if *help || *helpBrief || *toURI == "" {
fmt.Printf("Usage: ./nagios-validate-peerpoller -to https://traffic-ops.example.net -touser bill -topass thelizard -includeOffline true\n")
return
}
- // toClient, err := to.LoginWithAgent(*toURI, *toUser, *toPass, true, UserAgent, false, tmcheck.RequestTimeout)
- // if err != nil {
- // fmt.Printf("Error logging in to Traffic Ops: %v\n", err)
- // return
- // }
+ toClient, err := to.LoginWithAgent(*toURI, *toUser, *toPass, true, UserAgent, false, tmcheck.RequestTimeout)
+ if err != nil {
+ fmt.Printf("Error logging in to Traffic Ops: %v\n", err)
+ return
+ }
+
+ monitorErrs, err := tmcheck.ValidateAllPeerPollers(toClient, *includeOffline)
- err := tmcheck.ValidatePeerPoller(*tmURI)
if err != nil {
- nagios.Exit(nagios.Critical, fmt.Sprintf("Error validating monitor peer poller: %v", err))
+ nagios.Exit(nagios.Critical, fmt.Sprintf("Error validating monitor peer pollers: %v", err))
}
+
+ errStr := ""
+ for monitor, err := range monitorErrs {
+ if err != nil {
+ errStr += fmt.Sprintf("error validating offline status for monitor %v : %v\n", monitor, err.Error())
+ }
+ }
+
+ if errStr != "" {
+ nagios.Exit(nagios.Critical, errStr)
+ }
+
nagios.Exit(nagios.Ok, "")
}