f37 -> f39
[infrastructure.git] / nagios / AutomaticConfig / GetConfig.py
1 import os, sys, time, string
2 from optparse import OptionParser
3 import xmlrpclib
4
5
6 class GetConfig:
7
8     subversion_id = "$Id$"
9
10     def __init__ (self):
11         self.url="https://localhost:443/PLCAPI/"
12         self.server=xmlrpclib.Server(self.url,allow_none=True)
13         self.path="/etc/nagios/config-sample/"
14         self.path1="/etc/nagios/"
15
16     def create_hostgroup(self, file, nodes_infos):
17         f1=open(file,"a")
18         i=0
19         j=0
20         memberhost=""
21         alias=[]
22         list=[]
23         site_name=nodes_infos[0]['Site_name']##initialize the first site name
24         
25         while 1:
26             if(i<len(nodes_infos) and site_name==nodes_infos[i]['Site_name']):
27                 memberhost=memberhost+nodes_infos[i]['node_hostname']+","
28                 i=i+1
29             elif (i<len(nodes_infos) and site_name!=nodes_infos[i]['Site_name']):
30                 alias.append(site_name)
31                 list.append(memberhost)
32                 memberhost=""
33                 memberhost=memberhost+nodes_infos[i]['node_hostname']+","
34                 site_name=nodes_infos[i]['Site_name']  
35                 alias.append(site_name)
36                 i=i+1 
37                 
38             elif (i>=len(nodes_infos)):
39                 alias.append(site_name)
40                 list.append(memberhost)
41                 break
42         
43         
44         print list
45         print alias
46         while (j < len(list)):
47             f1.write("\ndefine hostgroup { \n")
48             f1.write("hostgroup_name                     "+str(j)+"\n")
49             f1.write("alias                         %s\n"%alias[j])
50             f1.write("members                       %s\n } \n"%list[j])
51             j=j+1
52         f1.close()
53         
54     def generate_file(self,sample_file, file,login,nodes_infos):
55         
56         f1=open(self.path+sample_file,"rb")
57         f2=open(self.path1+file,"wb")
58         f2.write(f1.read())
59         f1.close()
60         f2.close()
61         if (login=="h"):
62             self.create_host(self.path1+file,nodes_infos)
63         elif (login=="s"):
64             self.create_service(self.path1+file,nodes_infos)
65         elif (login=="g"):
66             self.create_hostgroup(self.path1+file, nodes_infos)
67     
68                     
69                     
70     def create_host(self,file,nodes_infos):
71         f1=open(file,"a")
72         i=0
73         while (i<len(nodes_infos)):
74             f1.write("\n define host { \n")
75             f1.write("host_name                     %s\n"%nodes_infos[i]['node_hostname'])
76             f1.write("use                               linux-server\n")
77             f1.write("alias                         %s\n"%nodes_infos[i]['node_hostname'])
78             f1.write("address                       %s\n } \n"%nodes_infos[i]['node_ip'])
79             i=i+1
80         f1.close()
81
82             
83     def create_service(self,file,nodes_infos):
84         i=0
85         f1=open(file,"a")
86         f2=open("ServiceName","r")
87         while (i<len(nodes_infos)):
88             while 1:
89                 txt=f2.readline()
90                 service=txt.strip()
91                 if txt=='':
92                     f2.seek(0)
93                     break
94                 f1.write("\ndefine service { \n")
95                 f1.write("host_name                     %s\n"%nodes_infos[i]['node_hostname'])
96                 f1.write("use                         remote-service\n")
97                 f1.write("service_description           %s\n"%service)
98                 f1.write("check_command                 %s!%s \n } \n"%(service,nodes_infos[i]['node_hostname']))
99             i=i+1
100         f2.close()
101         f1.close()