Many small updates and fixes:
[monitor.git] / config.d / init-bootman-sequence.py
1 #!/usr/bin/python
2 from monitor.database.info.model import *
3
4 def getSequences():
5
6                 # TODO: This can be replaced with a DB definition at a future time.
7                 #               This would make it possible for an admin to introduce new
8                 #               patterns without touching code.
9                 
10                 sequences = {}
11                 # restart_bootmanager_boot
12                 for n in ["bminit-cfg-auth-getplc-update-installinit-validate-rebuildinitrd-netcfg-update3-disk-update4-done",
13                                 "bminit-cfg-auth-getplc-installinit-validate-rebuildinitrd-netcfg-update3-disk-update4-update3-exception-protoerror-update-protoerror-debug-done",
14                                 "bminit-cfg-auth-getplc-installinit-validate-rebuildinitrd-netcfg-disk-update4-update3-update3-implementerror-bootupdatefail-update-debug-done",
15
16                                 "bminit-cfg-auth-getplc-installinit-validate-rebuildinitrd-netcfg-disk-update4-update3-update3-exception-protoerror-update-protoerror-debug-done",
17
18                                 "bminit-cfg-auth-getplc-installinit-validate-rebuildinitrd-netcfg-exception-protoerror-protoerror2-protoerror-protoerror2-debug-validate-done",
19                                 "bminit-cfg-auth-getplc-installinit-validate-rebuildinitrd-netcfg-update3-disk-update4-update3-exception-protoerror-update-debug-done",
20                                 "bminit-cfg-auth-getplc-installinit-validate-rebuildinitrd-netcfg-disk-update4-update3-exception-chrootfail-update-debug-done",
21                                 "bminit-cfg-auth-getplc-installinit-validate-rebuildinitrd-netcfg-disk-update4-update3-update3-exception-protoerror-protoerror-debug-validate-done",
22                                 "bminit-cfg-auth-protoerror-exception-update-debug-validate-exception-done",
23                                 "bminit-cfg-auth-getplc-update-debug-done",
24                                 "bminit-cfg-auth-protoerror2-debug-done",
25                                 "bminit-cfg-auth-getplc-exception-protoerror-update-protoerror-debug-done",
26                                 "bminit-cfg-auth-protoerror-exception-update-protoerror-debug-done",
27                                 "bminit-cfg-auth-protoerror-exception-update-bootupdatefail-authfail-debug-done",
28                                 "bminit-cfg-auth-protoerror-exception-update-debug-done",
29                                 "bminit-cfg-auth-getplc-exception-protoerror-update-debug-done",
30                                 "bminit-cfg-auth-getplc-implementerror-update-debug-done",
31                                 "bminit-cfg-auth-authfail2-protoerror2-debug-done",
32                 "bminit-cfg-auth-protoerror-protoerror2-exception-debug-validate-done",
33                                 ]:
34                         sequences.update({n : "restart_bootmanager_boot"})
35
36                 #       conn.restart_bootmanager('reinstall')
37                 for n in [ "bminit-cfg-auth-getplc-installinit-validate-exception-modulefail-update-debug-done",
38                                 "bminit-cfg-auth-getplc-update-installinit-validate-exception-modulefail-update-debug-done",
39                                 "bminit-cfg-auth-getplc-installinit-validate-bmexceptmount-exception-noinstall-update-debug-done",
40                                 "bminit-cfg-auth-getplc-update-installinit-validate-bmexceptmount-exception-noinstall-update-debug-done",
41                                 "bminit-cfg-auth-getplc-installinit-validate-bmexceptvgscan-exception-noinstall-update-debug-done",
42                                 "bminit-cfg-auth-getplc-update-installinit-validate-exception-noinstall-update-debug-done",
43                                 "bminit-cfg-auth-getplc-hardware-installinit-installdisk-bziperror-exception-update-debug-done",
44                                 "bminit-cfg-auth-getplc-update-hardware-installinit-installdisk-installbootfs-exception-update-debug-done",
45                                 "bminit-cfg-auth-getplc-update-installinit-validate-bmexceptvgscan-exception-noinstall-update-debug-done",
46                                 "bminit-cfg-auth-getplc-hardware-installinit-installdisk-installbootfs-exception-update-debug-done",
47                                 "bminit-cfg-auth-getplc-update-installinit-validate-rebuildinitrd-netcfg-update3-implementerror-nofilereference-update-debug-done",
48                                 "bminit-cfg-auth-getplc-update-hardware-installinit-installdisk-exception-mkfsfail-update-debug-done",
49                                 "bminit-cfg-auth-getplc-installinit-validate-rebuildinitrd-exception-chrootfail-update-debug-done",
50                                 "bminit-cfg-auth-getplc-update-installinit-validate-rebuildinitrd-netcfg-disk-update4-exception-chrootfail-update-debug-done",
51                                 "bminit-cfg-auth-getplc-update-hardware-installinit-installdisk-installbootfs-installcfg-installstop-update-installinit-validate-rebuildinitrd-netcfg-disk-update4-update3-update3-kernelcopyfail-exception-update-debug-done",
52                                 "bminit-cfg-auth-getplc-hardware-installinit-installdisk-installbootfs-installcfg-installstop-update-installinit-validate-rebuildinitrd-netcfg-disk-update4-update3-update3-kernelcopyfail-exception-update-debug-done",
53                                 "bminit-cfg-auth-getplc-installinit-validate-exception-noinstall-update-debug-done",
54                                 # actual solution appears to involve removing the bad files, and
55                                 # continually trying to boot the node.
56                                 "bminit-cfg-auth-getplc-update-installinit-validate-rebuildinitrd-netcfg-disk-update4-update3-update3-implementerror-update-debug-done",
57                                 "bminit-cfg-auth-getplc-installinit-validate-exception-bmexceptmount-exception-noinstall-update-debug-done",
58                                 "bminit-cfg-auth-getplc-update-installinit-validate-exception-bmexceptmount-exception-noinstall-update-debug-done",
59                                 "bminit-cfg-auth-getplc-update-installinit-validate-bmexceptvgscan-exception-noinstall-update-debug-validate-bmexceptvgscan-done",
60                                 "bminit-cfg-auth-getplc-update-installinit-validate-exception-noinstall-update-debug-validate-done",
61                                 "bminit-cfg-auth-getplc-installinit-validate-bmexceptvgscan-exception-noinstall-update-debug-validate-bmexceptvgscan-done",
62                                 "bminit-cfg-auth-getplc-installinit-validate-bmexceptvgscan-exception-noinstall-debug-validate-bmexceptvgscan-done",
63                                 "bminit-cfg-auth-getplc-update-installinit-validate-bmexceptvgscan-exception-noinstall-debug-validate-bmexceptvgscan-done",
64                                 "bminit-cfg-auth-getplc-update-installinit-validate-exception-missingkernel-debug-validate-done",
65                                 "bminit-cfg-auth-getplc-update-installinit-validate-rebuildinitrd-netcfg-disk-update4-update3-update3-implementerror-nospace-debug-validate-done",
66                 "bminit-cfg-auth-getplc-update-installinit-validate-netcfg-disk-update4-update3-rebuildinitrd-update3-implementerror-nospace-debug-validate-done",
67                                 "bminit-cfg-auth-getplc-update-installinit-validate-rebuildinitrd-netcfg-disk-update4-update3-update3-nospace-nospace-nospace-nospace-nospace-nospace-nospace-nospace-implementerror-nospace-debug-validate-done",
68                                 ]:
69                         sequences.update({n : "restart_bootmanager_rins"})
70
71                 # repair_node_keys
72                 for n in ["bminit-cfg-auth-bootcheckfail-authfail-exception-update-bootupdatefail-authfail-debug-validate-exception-done",
73                                         "bminit-cfg-auth-bootcheckfail-authfail-exception-update-bootupdatefail-authfail-debug-done",
74                                         "bminit-cfg-auth-bootcheckfail-authfail-exception-update-debug-validate-exception-done",
75                                         "bminit-cfg-auth-bootcheckfail-authfail-exception-authfail-debug-validate-exception-done",
76                                         "bminit-cfg-auth-authfail-debug-done",
77                                         "bminit-cfg-auth-authfail2-authfail-debug-done",
78                                 ]:
79                         sequences.update({n: "repair_node_keys"})
80
81                 #   conn.restart_node('reinstall')
82                 for n in ["bminit-cfg-auth-getplc-update-installinit-validate-rebuildinitrd-exception-chrootfail-update-debug-done",
83                                 "bminit-cfg-auth-getplc-update-installinit-validate-rebuildinitrd-netcfg-update3-disk-update4-exception-chrootfail-update-debug-done",
84                                 "bminit-cfg-auth-getplc-hardware-installinit-installdisk-installbootfs-installcfg-exception-chrootfail-update-debug-done",
85                                 "bminit-cfg-auth-getplc-installinit-validate-rebuildinitrd-writeerror-exception-chrootfail-update-debug-done",
86                                 "bminit-cfg-auth-getplc-update-hardware-installinit-exception-bmexceptrmfail-update-debug-done",
87                                 "bminit-cfg-auth-getplc-hardware-installinit-exception-bmexceptrmfail-update-debug-done",
88                                 "bminit-cfg-auth-getplc-installinit-validate-rebuildinitrd-netcfg-update3-disk-update4-update3-implementerror-bootupdatefail-update-debug-done",
89                                 "bminit-cfg-auth-getplc-installinit-validate-rebuildinitrd-netcfg-update3-implementerror-readonlyfs-update-debug-done",
90                                 "bminit-cfg-auth-getplc-update-installinit-validate-rebuildinitrd-netcfg-update3-nospace-exception-update-debug-done",
91                                 "bminit-cfg-auth-getplc-installinit-validate-rebuildinitrd-netcfg-update3-implementerror-nospace-update-debug-done",
92                                 "bminit-cfg-auth-getplc-installinit-validate-rebuildinitrd-netcfg-update3-implementerror-update-debug-done",
93                                 "bminit-cfg-auth-getplc-update-hardware-installinit-installdisk-installbootfs-exception-downloadfail-update-debug-done",
94                                 ]:
95                         sequences.update({n : "restart_node_rins"})
96
97                 #       restart_node_boot
98                 for n in ["bminit-cfg-auth-getplc-implementerror-bootupdatefail-update-debug-done",
99                                  "bminit-cfg-auth-implementerror-bootcheckfail-update-debug-done",
100                                  "bminit-cfg-auth-implementerror-bootcheckfail-update-implementerror-bootupdatefail-done",
101                                  "bminit-cfg-auth-getplc-update-installinit-validate-rebuildinitrd-netcfg-update3-implementerror-nospace-update-debug-done",
102                                  "bminit-cfg-auth-getplc-hardware-installinit-installdisk-installbootfs-exception-downloadfail-update-debug-done",
103                                  "bminit-cfg-auth-getplc-update-installinit-validate-implementerror-update-debug-done",
104                                  "bminit-cfg-auth-getplc-exception-update-bootupdatefail-debug-done",
105                                  ]:
106                         sequences.update({n: "restart_node_boot"})
107
108                 # fsck_repair
109                 for n in ["bminit-cfg-auth-getplc-update-installinit-validate-fsckabort-exception-fsckfail-bmexceptmount-exception-noinstall-update-debug-validate-fsckabort-exception-fsckfail-bmexceptmount-done",
110                                   "bminit-cfg-auth-getplc-installinit-validate-exception-fsckfail-exception-noinstall-update-debug-validate-exception-fsckfail-done",
111                                   "bminit-cfg-auth-getplc-update-installinit-validate-exception-fsckfail-exception-noinstall-update-debug-validate-exception-fsckfail-done",
112                                   "bminit-cfg-auth-getplc-update-installinit-validate-exception-fsckfail2-exception-noinstall-update-debug-validate-exception-fsckfail2-done",
113                                   "bminit-cfg-auth-getplc-installinit-validate-exception-fsckfail2-exception-debug-validate-done",
114                                   "bminit-cfg-auth-getplc-installinit-validate-exception-fsckfail2-exception-debug-validate-exception-fsckfail2-done",
115                                   "bminit-cfg-auth-getplc-installinit-validate-exception-fsckfail2-exception-debug-validate-exception-fsckfail-done",
116                                   "bminit-cfg-auth-getplc-update-installinit-validate-fsckabort-exception-fsckfail-exception-debug-validate-fsckabort-exception-fsckfail-done",
117                                   "bminit-cfg-auth-getplc-update-installinit-validate-exception-fsckfail2-exception-debug-validate-exception-fsckfail2-done",
118                                   "bminit-cfg-auth-getplc-installinit-validate-exception-fsckfail-exception-debug-validate-exception-fsckfail2-done",
119                                   "bminit-cfg-auth-getplc-installinit-validate-exception-fsckfail-exception-debug-validate-exception-fsckfail-done",
120                                   "bminit-cfg-auth-getplc-installinit-validate-exception-fsckfail-exception-debug-validate-done",
121                                   "bminit-cfg-auth-getplc-update-installinit-validate-exception-fsckfail-exception-debug-validate-exception-fsckfail-done",
122                                   "bminit-cfg-auth-getplc-update-debug-validate-exception-fsckfail-done",
123                                 ]:
124                         sequences.update({n : "fsck_repair"})
125
126                 # nodeconfig_notice
127                 for n in ["bminit-cfg-exception-nocfg-update-bootupdatefail-nonode-debug-done",
128                                   "bminit-cfg-exception-update-bootupdatefail-nonode-debug-done",
129                                   "bminit-cfg-exception-update-bootupdatefail-nonode-debug-validate-exception-done",
130                                   "bminit-cfg-exception-nocfg-update-bootupdatefail-nonode-debug-validate-exception-done",
131                                   "bminit-cfg-auth-bootcheckfail-nonode-exception-update-bootupdatefail-nonode-debug-done",
132                                   "bminit-cfg-exception-noconfig-nonode-debug-validate-exception-done",
133                                   "bminit-cfg-exception-noconfig-update-debug-validate-exception-done",
134                                   "bminit-cfg-exception-noparseconfig-debug-validate-exception-done",
135                                   "bminit-cfg-exception-noconfig-debug-validate-exception-done",
136                                   "bminit-cfg-auth-authfail2-nonode-debug-done",
137                                 ]:
138                         sequences.update({n : "nodeconfig_notice"})
139
140                 for n in [ "bminit-cfg-exception-nodehostname-update-debug-done", 
141                                    "bminit-cfg-update-exception-nodehostname-update-debug-validate-exception-done",
142                                    "bminit-cfg-update-exception-nodehostname-update-debug-done", 
143                                    "bminit-cfg-exception-nodehostname-debug-validate-bmexceptvgscan-done",
144                                    "bminit-cfg-exception-nodehostname-debug-validate-exception-done",
145                                 ]:
146                         sequences.update({n : "nodenetwork_email"})
147
148                 # noblockdevice_notice
149                 for n in ["bminit-cfg-auth-getplc-update-hardware-exception-noblockdev-hardwarerequirefail-update-debug-done",
150                                 "bminit-cfg-auth-getplc-update-hardware-noblockdev-exception-hardwarerequirefail-update-debug-validate-bmexceptvgscan-done",
151                                 "bminit-cfg-auth-getplc-hardware-exception-noblockdev-hardwarerequirefail-update-debug-done",
152                                 "bminit-cfg-auth-getplc-update-hardware-noblockdev-exception-hardwarerequirefail-update-debug-done",
153                                 "bminit-cfg-auth-getplc-hardware-noblockdev-exception-hardwarerequirefail-update-debug-done",
154                                 "bminit-cfg-auth-getplc-hardware-noblockdev-exception-hardwarerequirefail-debug-validate-bmexceptvgscan-done",
155                                 "bminit-cfg-auth-getplc-update-hardware-noblockdev-exception-hardwarerequirefail-debug-validate-bmexceptvgscan-done",
156                                 ]:
157                         sequences.update({n : "noblockdevice_notice"})
158
159                 # update_bootcd_email
160                 for n in [ "bminit-cfg-auth-getplc-hardware-exception-hardwarerequirefail-update-debug-done",
161                                 ]:
162                         sequences.update({n : "update_bootcd_email"})
163
164                 for n in [ "bminit-cfg-auth-getplc-installinit-validate-rebuildinitrd-netcfg-update3-implementerror-nofilereference-update-debug-done",
165                                 ]:
166                         sequences.update({n: "unknownsequence_notice"})
167
168                 # minimalhardware_notice
169                 for n in [ "bminit-cfg-auth-getplc-hardware-exception-disktoosmall-hardwarerequirefail-update-debug-done",
170                                         "bminit-cfg-auth-getplc-hardware-disktoosmall-exception-hardwarerequirefail-update-debug-done",
171                                         "bminit-cfg-auth-getplc-update-hardware-exception-hardwarerequirefail-debug-validate-bmexceptvgscan-done",
172                                         "bminit-cfg-auth-getplc-hardware-exception-hardwarerequirefail-debug-validate-bmexceptvgscan-done",
173                                 ]:
174                         sequences.update({n: "minimalhardware_notice"})
175
176                 # baddisk_notice
177                 sequences.update({"bminit-cfg-auth-getplc-update-hardware-exception-hardwarerequirefail-update-debug-done" : "baddisk_notice"})
178
179                 # baddns_notice
180                 for n in [ 
181                  "bminit-cfg-update-implementerror-bootupdatefail-dnserror-update-implementerror-bootupdatefail-dnserror-done",
182                         "bminit-cfg-auth-implementerror-bootcheckfail-dnserror-update-implementerror-bootupdatefail-dnserror-done",
183                         ]:
184                         sequences.update( { n : "baddns_notice"})
185
186                 return sequences
187
188 sequences = getSequences()
189
190 for s in sequences:
191         bms = BootmanSequenceRecord.get_by(sequence=s)
192         if not bms:
193                 bms = BootmanSequenceRecord(sequence=s, action=sequences[s])
194                 bms.flush()
195
196 session.flush()