SHOW:
|
|
- or go back to the newest paste.
1 | import urllib2 | |
2 | import time | |
3 | import os | |
4 | import datetime | |
5 | import sys | |
6 | #import pdb | |
7 | ||
8 | # %sope % operador.cliente | |
9 | usuario_ = '' | |
10 | pw_ = '' | |
11 | alarm_falhas = [] | |
12 | alarm_desempenho = [] | |
13 | endereco_ = '172.16.24.242' | |
14 | restful_ = 'http://172.16.24.242/spectrum/restful/alarms' | |
15 | ||
16 | - | def parser(parm): |
16 | + | def parser(parm, parm2): |
17 | #pdb.set_trace() | |
18 | global alarm_falhas | |
19 | global alarm_desempenho | |
20 | #separators | |
21 | svalida = str(parm2)[:5] | |
22 | sbloco_inicio = "<alarm-responses>" | |
23 | sbloco_fim = "</alarm-responses>" | |
24 | sbloco_alarm = "</alarm>" | |
25 | smodel_name = "<attribute id=0x1006e>" | |
26 | screation_t = "<attribute id=0x11f4e>" | |
27 | sseverity = "<attribute id=0x11f56>" | |
28 | salarm_title = "<attribute id=0x12b4c>" | |
29 | sip = "<attribute id=0x12d7f>" | |
30 | ssecurity = "<attribute id=0x10009>" | |
31 | sfim = "</attribute>" | |
32 | sseparador = ";" | |
33 | #preparing the parser | |
34 | string_temp1 = str(parm.split(sbloco_inicio)[1]) | |
35 | string_temp2 = str(string_temp1.split(sbloco_fim)[0]) | |
36 | string_temp3 = str(string_temp2).split(sbloco_alarm) | |
37 | string_temp4 = "" | |
38 | list_temp1 = [] | |
39 | list_temp2 = [] | |
40 | loop1_ = 0 | |
41 | #building the list | |
42 | while loop1_ < len(string_temp3): | |
43 | list_temp1.append(str(string_temp3[loop1_])) | |
44 | loop1_ = loop1_ + 1 | |
45 | loop2_ = 0 | |
46 | #cleaning the list | |
47 | while loop2_ < len(list_temp1): | |
48 | temp_ = str(list_temp1[loop2_]) | |
49 | if len(temp_) > 10: | |
50 | temp_1 = int(temp_.find(smodel_name)) + len(smodel_name) | |
51 | temp_2 = int(temp_.find(screation_t)) + len(screation_t) | |
52 | temp_3 = int(temp_.find(sseverity)) + len(sseverity) | |
53 | temp_4 = int(temp_.find(salarm_title)) + len(salarm_title) | |
54 | temp_5 = int(temp_.find(sip)) + len(sip) | |
55 | temp_6 = int(temp_.find(ssecurity)) + len(ssecurity) | |
56 | temp_1 = str(str(temp_[temp_1:]).split(sfim)[0]) + sseparador | |
57 | - | temp_5 = str(str(temp_[temp_5:]).split(sfim)[0]) |
57 | + | |
58 | temp_3 = str(str(temp_[temp_3:]).split(sfim)[0]).replace("1", "Minor").replace("2", "Major").replace("3", "Critical") + sseparador | |
59 | temp_4 = str(str(temp_[temp_4:]).split(sfim)[0]) + sseparador | |
60 | - | alarm_desempenho.append(temp_f) |
60 | + | temp_5 = str(str(temp_[temp_5:]).split(sfim)[0]) + sseparador |
61 | temp_6 = str(str(temp_[temp_6:]).split(sfim)[0]) | |
62 | - | alarm_falhas.append(temp_f) |
62 | + | |
63 | if temp_3.replace(sseparador,"") != "Critical" and temp_4[:4] == "EH -": | |
64 | if svalida == str(temp_6).split("|")[0]: | |
65 | alarm_desempenho.append(temp_f) | |
66 | elif temp_3.replace(sseparador,"") == "Critical" and temp_4.replace(sseparador,"") == "DEVICE HAS STOPPED RESPONDING TO POLLS": | |
67 | if svalida == str(temp_6).split("|")[0]: | |
68 | alarm_falhas.append(temp_f) | |
69 | loop2_ = loop2_ + 1 | |
70 | #return list_temp2 | |
71 | #Model Name | Creation date | Severity | Alarm Title | IP | |
72 | xml_post = """\ | |
73 | <?xml version="1.0" encoding="UTF-8"?> | |
74 | <rs:alarm-request throttlesize="100" | |
75 | xmlns:rs="http://www.ca.com/spectrum/restful/schema/request" | |
76 | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
77 | xsi:schemaLocation="http://www.ca.com/spectrum/restful/schema/request ../../../xsd/Request.xsd "> | |
78 | <rs:attribute-filter><search-criteria xmlns="http://www.ca.com/spectrum/restful/schema/filter"> | |
79 | <filtered-models><equals><attribute id="0x111f54"><value>"3"</value></attribute></equals> | |
80 | </filtered-models></search-criteria></rs:attribute-filter> | |
81 | <rs:requested-attribute id="0x1006e" /> | |
82 | <rs:requested-attribute id="0x11f4e" /> | |
83 | <rs:requested-attribute id="0x11f56" /> | |
84 | <rs:requested-attribute id="0x12b4c" /> | |
85 | <rs:requested-attribute id="0x12d7f" /> | |
86 | <rs:requested-attribute id="0x10009" /> | |
87 | </rs:alarm-request> | |
88 | """ | |
89 | def x(a,b): | |
90 | global usuario_ | |
91 | global pw_ | |
92 | usuario_ = a | |
93 | pw_ = b | |
94 | pwm_ = urllib2.HTTPPasswordMgrWithDefaultRealm() | |
95 | - | parser(str(xml_result).replace(chr(34),"")) |
95 | + | |
96 | auth_ = urllib2.HTTPBasicAuthHandler(pwm_) | |
97 | authf_ = urllib2.build_opener(auth_) | |
98 | urllib2.install_opener(authf_) | |
99 | req_ = urllib2.Request(restful_) | |
100 | req_.add_header('Content-Type', 'application/xml') | |
101 | xml_result = urllib2.urlopen(req_, xml_post).read() | |
102 | parser(str(xml_result).replace(chr(34),""),a) | |
103 | #print alarm_desempenho, alarm_falhas | |
104 | return alarm_desempenho, alarm_falhas | |
105 | if os.path.exists("teste.txt"): | |
106 | os.remove("teste.txt") | |
107 | y = open("teste.txt", "w") | |
108 | y.write(str(alarm_desempenho)) | |
109 | y.close() | |
110 | print "fim" | |
111 | #x("tremgope","tremgope") | |
112 | ||
113 | #print len() #Litsa com os alarmes de desempenho | |
114 | #print len(alarm_falhas) #Lista com os alarmes de falha | |
115 | ||
116 | #(Obviamente soh estou printando a quantidade de elementos das listas nesse exemplo. Precisamos printar o conteudo alarm_desempenho[x]) |