Subversion Repositories computer_asset_manager_v1

Rev

Rev 6 | Rev 12 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6 rodolico 1
<?php
2
/*
3
 * This file is just an easy way to create the YAML configuration file.
4
 * You, as a PHP programmer, are probably more familiar with PHP than 
5
 * YAML, so create an array, $configuration, below, then run this
6
 * script (ie, php sysinfoRead.conf-creator.php). A properly formatted
7
 * YAML configuration stream will be sent to STDOUT, where you can
8
 * capture it.
9
 * OF COURSE, you can definitely hand code the YAML. It is actually much
10
 * simpler than doing the PHP, but not if you're familiar with PHP
11
 * and not so good with YAML.
11 rodolico 12
 * Requires php-pear and libyaml under Debian Wheezy
13
 *
14
 * apt-get install php-pear php5-dev libyaml-dev libyaml-0-2 libyaml-0-2-dbg
15
 * pecl install yaml
16
 * echo 'extension=yaml.so' >> /etc/php5/cli/php.ini
17
 * echo 'extension=yaml.so' >> /etc/apache2/cli/php.ini
18
 *
6 rodolico 19
 */
11 rodolico 20
 
21
/* 
22
   I use a nowdoc to define this large block of code which evaluates an ini file.  
23
   (see http://php.net/manual/en/language.types.string.php#language.types.string.syntax.nowdoc
24
   nowdoc's don't really work in an array, or at least I have not been able
25
   to figure out the syntax, so I use the following to get the code into the variable
26
   $eval_ini, then put that into the $configuration array.
27
   Also, nowdoc's are pretty sloppy looking, so another reason to do it here :)
28
*/
29
$eval_ini = <<<'END'
30
$data = array();
31
preg_match( '/\[report date\](.*)[\r\n]/', $body, $_date );
32
preg_match( '/\[client name\](.*)[\r\n]/', $body, $_client );
33
preg_match( '/\[hostname\](.*)[\r\n]/', $body, $_host );
34
$data['report']['date'] = str_replace(array("\n", "\r"), '', $_date[1]);
35
$data['report']['client'] = str_replace(array("\n", "\r"), '', $_client[1]);
36
$data['system']['hostname'] = str_replace(array("\n", "\r"), '', $_host[1]);
37
return $data;
38
END;
39
// end of the nowdoc, now on to the regular stuff 
40
 
6 rodolico 41
// Configuration file for getSysinfoMail.php, parse_sysinfo.php and other files
42
$configuration = array( 
43
      // set this to where the files parsed from mail should be placed.
44
      'outpath' => '/home/rodolico/temp/sysinfo_reports/unprocessed',
45
      'logFile' => '/home/rodolico/temp/sysinfo_reports/errors.log',
46
      'datapath' => '/home/rodolico/temp/sysinfo_reports',
47
      'unprocessed_path' => 'unprocessed',
48
      'getMailScript' => 'getSysinfoMail.php',
49
      'processMailScript' => 'parse_sysinfo.php',
50
 
51
 
52
      // server connection information
53
 
54
      'servers' => array( 
55
                        array ( 
56
                           'servername'      => 'book.dailydata.net', 
57
                           'port'            => 143,
58
                           'ssl'             => false,
59
                           'mailbox'         => '.Processed',
60
                           'username'        => 'serverstats',
61
                           'password'        => 'sachemic',
62
                           'deleteProcessed' => false,
63
                           'enabled'         => false
64
                           ),
65
                        array ( 
66
                           'servername'      => 'book.dailydata.net', 
67
                           'port'            => 143,
68
                           'ssl'             => false,
69
                           'mailbox'         => 'Processed.2011',
70
                           'username'        => 'serverstats',
71
                           'password'        => 'sachemic',
72
                           'deleteProcessed' => true,
73
                           'enabled'         => false
74
                           ),
75
 
76
                        array ( 
77
                           'servername'      => 'book.dailydata.net', 
78
                           'port'            => 143,
79
                           'ssl'             => false,
80
                           'mailbox'         => 'Processed.2012',
81
                           'username'        => 'serverstats',
82
                           'password'        => 'sachemic',
83
                           'deleteProcessed' => true,
84
                           'enabled'         => false
85
                           ),
86
 
87
                        array ( 
88
                           'servername'      => 'book.dailydata.net', 
89
                           'port'            => 143,
90
                           'ssl'             => false,
91
                           'mailbox'         => 'Processed.2013',
92
                           'username'        => 'serverstats',
93
                           'password'        => 'sachemic',
94
                           'deleteProcessed' => true,
95
                           'enabled'         => false
96
                           ),
97
 
98
                        array ( 
99
                           'servername'      => 'book.dailydata.net', 
100
                           'port'            => 143,
101
                           'ssl'             => false,
102
                           'mailbox'         => 'Processed.2014',
103
                           'username'        => 'serverstats',
104
                           'password'        => 'sachemic',
105
                           'deleteProcessed' => true,
106
                           'enabled'         => false
107
                           ),
108
 
109
                        array ( 
110
                           'servername'      => 'book.dailydata.net', 
111
                           'port'            => 143,
112
                           'ssl'             => false,
113
                           'mailbox'         => 'Processed.2015',
114
                           'username'        => 'serverstats',
115
                           'password'        => 'sachemic',
116
                           'deleteProcessed' => true,
117
                           'enabled'         => false
118
                           ),
119
 
120
                        array (
121
                           'servername'      => 'smtp.dailydata.net',
122
                           'port'            => 143,
123
                           'ssl'             => false,
124
                           'mailbox'         => 'INBOX',
125
                           'username'        => 'stats@dailydata.net',
126
                           'password'        => 'los,vce', 
127
                           'deleteProcessed' => false,
128
                           'enabled'         => false
129
                        ),
130
 
131
                        array (
132
                           'servername'      => 'smtp.dailydata.net',
133
                           'port'            => 143,
134
                           'ssl'             => false,
135
                           'mailbox'         => 'INBOX',
136
                           'username'        => 'test@dailydata.net',
137
                           'password'        => 'los,vce', 
138
                           'deleteProcessed' => true,
139
                           'enabled'         => true
140
                        )
141
                     ),
142
 
143
      // these are regex's that define what we want to capture. Everything between startKey and endKey, inclusive
144
      // we then process it with eval, which is an anonymous function accepting one paramter (body) and returning
145
      // the array represented by the associated data definition
146
      'bodyContents' => array( 
147
                      'xml'  => array( 
148
                            'startTag' => '\<sysinfo', 
149
                            'endTag' => '\<\/sysinfo[^>]*\>', 
150
                            // see http://stackoverflow.com/questions/6578832/how-to-convert-xml-into-array-in-php
11 rodolico 151
                            'eval' => 'return(json_decode(json_encode((array)simplexml_load_string($body)),1));',
6 rodolico 152
 
153
                            ),
154
                      'yaml' => array( 
155
                            'startTag' => '\-\-\-',
156
                            'endTag' => '\.\.\.',
11 rodolico 157
                            'eval' => 'return( yaml_parse( $body, 0 ) );',
6 rodolico 158
                            ),
159
                      'ini'  => array( # this is an older format which we don't support, so we'll just write it out
160
                            'startTag' => '\[sysinfo version\]', 
11 rodolico 161
                            'endTag' => '',
162
                            'eval' => $eval_ini,
6 rodolico 163
                            )
164
                    ),
165
 
166
      'datase' => array(
167
         'databaseServer' => 'localhost',
168
         'databaseUsername' => 'camp',
169
         'databasePassword' => 'camp',
170
         'database' => 'camp',
171
      ),
172
      'sendReport' => array(
173
         'emailScript'=>'/opt/sendEmail/sendEmail.pl',
174
         'mailTo'=> 'rodo@dailydata.net',
175
         'mailServer' => 'smtp.dailydata.net:587',
176
         'mailSubject' => 'Sysinfo Report',
177
         'mailFrom' => 'sysinfo@dailydata.net',
178
         'logFile' => '/tmp/mail.log',
179
         'tls' => "'auto'",
180
         'smtpUser' => 'stats@dailydata.net',
181
         'smtpPass' => 'UrLnuCp@G85',
182
      ),
183
 
184
   );
185
 
186
   // here is where we actually generate the YAML
187
   print yaml_emit( $configuration );
188
 
189
 
190
?>