]> granicus.if.org Git - icinga2/commitdiff
Update scripts.
authorGunnar Beutner <gunnar.beutner@netways.de>
Thu, 8 May 2014 12:05:36 +0000 (14:05 +0200)
committerGunnar Beutner <gunnar.beutner@netways.de>
Thu, 8 May 2014 12:06:21 +0000 (14:06 +0200)
Refs #6107

contrib/make-agent-config.py
pki/icinga2-setup-agent.cmake
tools/icinga2-discover-agent.cmake
tools/icinga2-list-agents.cmake
tools/icinga2-setup-agent/AgentWizard.Designer.cs

index a22d85ab673e434e0c9b6fc90288e0b2ae75de4f..61ec4c2382d4a45aeca7a5bf08547ab9a47564bc 100755 (executable)
@@ -27,7 +27,8 @@ for agent, agent_info in inventory.items():
     print "}"
     print ""
     print "object Zone \"%s\" {" % (agent_info["zone"])
-    print "  parent = \"%s\"" % (agent_info["parent_zone"])
+    if "parent_zone" in agent_info:
+        print "  parent = \"%s\"" % (agent_info["parent_zone"])
     print "  endpoints = [ \"%s\" ]" % (agent)
     print "}"
     print ""
index 6e5ef65f5c8f0ae4006655df3a8bfbfa9be50eb7..f121197e395157bb2b4edd1bb8aee74247110b92 100644 (file)
@@ -74,7 +74,7 @@ if [ -n "$1" ]; then
 
        if [ "$listener" = "y" ]; then
                while true; do
-                       echo -n "Which TCP port should the agent listen on? [8483] "
+                       echo -n "Which TCP port should the agent listen on? [5665] "
                        if ! read listener_port; then
                                exit 1
                        fi
@@ -83,7 +83,7 @@ if [ -n "$1" ]; then
                done
 
                if [ -z "$listener_port" ]; then
-                       listener_port=8483
+                       listener_port=5665
                fi
        fi
 
index 7ff76fd4ef9c05b52264ad5ec3e1e46b90eb2eb9..b60f908270a8d0c5f736cccef19db0fd15c5d793 100644 (file)
@@ -1,97 +1,4 @@
 #!/usr/bin/env python
-# Copyright (c) 2014 Yusuke Shinyama
-# 
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-
-from __future__ import print_function
-
-##  NetstringParser
-##
-class NetstringParser(object):
-    """
-    Decodes a netstring to a list of Python strings.
-
-    >>> parser = NetstringParser()
-    >>> parser.feed('3:456,')
-    >>> parser.results
-    ['456']
-    >>> NetstringParser.parse('3:abc,4:defg,')
-    ['abc', 'defg']
-    """
-    
-    def __init__(self):
-        self.results = []
-        self.reset()
-        return
-
-    def reset(self):
-        self._data = ''
-        self._length = 0
-        self._parse = self._parse_len
-        return
-        
-    def feed(self, s):
-        i = 0
-        while i < len(s):
-            i = self._parse(s, i)
-        return
-        
-    def _parse_len(self, s, i):
-        while i < len(s):
-            c = s[i]
-            if c < '0' or '9' < c:
-                self._parse = self._parse_sep
-                break
-            self._length *= 10
-            self._length += ord(c)-48
-            i += 1
-        return i
-        
-    def _parse_sep(self, s, i):
-        if s[i] != ':': raise SyntaxError(i)
-        self._parse = self._parse_data
-        return i+1
-        
-    def _parse_data(self, s, i):
-        n = min(self._length, len(s)-i)
-        self._data += s[i:i+n]
-        self._length -= n
-        if self._length == 0:
-            self._parse = self._parse_end
-        return i+n
-        
-    def _parse_end(self, s, i):
-        if s[i] != ',': raise SyntaxError(i)
-        self.add_data(self._data)
-        self.reset()
-        return i+1
-
-    def add_data(self, data):
-        self.results.append(data)
-        return
-
-    @classmethod
-    def parse(klass, s):
-        self = klass()
-        self.feed(s)
-        return self.results
-
 # Icinga 2
 # Copyright (C) 2012-2014 Icinga Development Team (http://www.icinga.org)
 #
@@ -109,6 +16,7 @@ class NetstringParser(object):
 # along with this program; if not, write to the Free Software Foundation
 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 
+from __future__ import print_function
 import socket, ssl, sys, json, os, hashlib, time
 
 def warning(*objs):
@@ -122,7 +30,7 @@ host = sys.argv[1]
 if len(sys.argv) > 2:
     port = int(sys.argv[2])
 else:
-    port = 8483
+    port = 5665
 
 agentpki = "@CMAKE_INSTALL_FULL_SYSCONFDIR@/icinga2/pki/agent"
 keyfile = agentpki + "/agent.key"
@@ -158,38 +66,15 @@ if cn == None:
     warning("Agent certificate does not have a commonName:", repr(subject))
     sys.exit(1)
 
-ssl_sock.write('20:{"method":"get_crs"},')
-
-nsp = NetstringParser()
-while True:
-    data = ssl_sock.read()
-    if not data:
-        break
-    nsp.feed(data)
-
 ssl_sock.close()
 
-if len(nsp.results) != 1:
-    warning("Agent returned invalid response: ", repr(nsp.results))
-    sys.exit(1)
-
-response = json.loads(nsp.results[0])
-method = response['method']
-
-if method != "push_crs":
-    warning("Agent did not return any check results. Make sure you're using the master certificate.")
-    sys.exit(1)
-
-params = response["params"]
-params["seen"] = time.time()
-
-inventory_file = "@CMAKE_INSTALL_FULL_LOCALSTATEDIR@/lib/icinga2/agent/inventory/" + hashlib.sha256(cn).hexdigest()
-fp = open(inventory_file, "w")
-inventory_info = { "identity": cn, "params": params }
-json.dump(inventory_info, fp)
+repository_file = "@CMAKE_INSTALL_FULL_LOCALSTATEDIR@/lib/icinga2/api/repository/" + hashlib.sha256(cn).hexdigest()
+fp = open(repository_file, "w")
+repository_info = { "endpoint": cn, "seen": time.time(), "zone": cn, "repository": {} }
+json.dump(repository_info, fp)
 fp.close()
 
-peer_file = "@CMAKE_INSTALL_FULL_LOCALSTATEDIR@/lib/icinga2/agent/inventory/" + hashlib.sha256(cn).hexdigest() + ".peer"
+peer_file = "@CMAKE_INSTALL_FULL_LOCALSTATEDIR@/lib/icinga2/agent/repository/" + hashlib.sha256(cn).hexdigest() + ".peer"
 fp = open(peer_file, "w")
 peer_info = { "agent_host": host, "agent_port": port }
 json.dump(peer_info, fp)
index 4dbcdd309e5fb1e65cad5be9c88d91399bd6f62d..7cdbd0fbb11ad78c8b3410b2f9bc17df29ceae24 100644 (file)
@@ -59,7 +59,7 @@ else:
         else:
             peer_addr = "no peer address"
 
-        print "* %s (zone: %s, parent zone: %s, %s, last seen: %s)" % (agent, agent_info["zone"], agent_info["parent_zone"], peer_addr, datetime.fromtimestamp(agent_info["seen"]))
+        print "* %s (%s, last seen: %s)" % (agent, peer_addr, datetime.fromtimestamp(agent_info["seen"]))
 
         for host, services in agent_info["repository"].items():
             print "    * %s" % (host)
index d604709e1cf8f6834d54a85a76370422f404a31e..694195774ce40220b0a3695dc33ef9f03fc11fa8 100644 (file)
                        this.txtPeerPort.Name = "txtPeerPort";
                        this.txtPeerPort.Size = new System.Drawing.Size(84, 20);
                        this.txtPeerPort.TabIndex = 2;
-                       this.txtPeerPort.Text = "8483";
+                       this.txtPeerPort.Text = "5665";
                        // 
                        // lblPeerPort
                        // 
                        this.txtListenerPort.Name = "txtListenerPort";
                        this.txtListenerPort.Size = new System.Drawing.Size(84, 20);
                        this.txtListenerPort.TabIndex = 1;
-                       this.txtListenerPort.Text = "8483";
+                       this.txtListenerPort.Text = "5665";
                        // 
                        // lblListenerPort
                        //