Statistiques
| Révision :

root / src / gZFS / zreplicas.java @ 21

Historique | Voir | Annoter | Télécharger (12,78 ko)

1 14 kreverch
package gZFS;
2 14 kreverch
3 14 kreverch
import java.text.DateFormat;
4 14 kreverch
import java.text.ParseException;
5 14 kreverch
import java.text.SimpleDateFormat;
6 14 kreverch
import java.util.Calendar;
7 14 kreverch
import java.util.Date;
8 14 kreverch
import java.util.GregorianCalendar;
9 14 kreverch
import java.util.Hashtable;
10 14 kreverch
11 14 kreverch
public class zreplicas {
12 14 kreverch
        public Hashtable<String,zProperties> zProperties = new Hashtable<String, zProperties>();
13 14 kreverch
        public Hashtable<String,zProperties> zSchedulerProperties = new Hashtable<String, zProperties>();
14 14 kreverch
15 14 kreverch
        private Hashtable<Object, Object> cronMinute = new Hashtable<Object, Object>();
16 14 kreverch
        private Hashtable<Object, Object> cronHour= new Hashtable<Object, Object>();
17 14 kreverch
        private Hashtable<Object, Object> cronMonth= new Hashtable<Object, Object>();
18 14 kreverch
        private Hashtable<Object, Object> cronDayOfMonth = new Hashtable<Object, Object>();
19 14 kreverch
        private Hashtable<Object, Object> cronDayOfWeek = new Hashtable<Object, Object>();
20 14 kreverch
21 14 kreverch
        zreplicas(){
22 14 kreverch
                String valueForHash = null;
23 14 kreverch
                for (int i=1;i<61;i++){
24 14 kreverch
25 14 kreverch
                        if ( i<10){
26 14 kreverch
                                valueForHash="0"+String.valueOf(i);
27 14 kreverch
                        }else{
28 14 kreverch
                                valueForHash=String.valueOf(i);
29 14 kreverch
                        }
30 14 kreverch
                        cronMinute.put(String.valueOf(i), valueForHash);
31 14 kreverch
                        if ( i ==1){
32 14 kreverch
                                cronMinute.put("*", "All");
33 14 kreverch
                        }else{
34 14 kreverch
                                cronMinute.put("*/"+i, "Every "+valueForHash+" Minutes");
35 14 kreverch
                        }
36 14 kreverch
                }
37 14 kreverch
38 14 kreverch
                for (int i=0;i<24;i++){
39 14 kreverch
                        if ( i<10){
40 14 kreverch
                                valueForHash="0"+String.valueOf(i);
41 14 kreverch
                        }else{
42 14 kreverch
                                valueForHash=String.valueOf(i);
43 14 kreverch
                        }
44 14 kreverch
                        cronHour.put(String.valueOf(i), valueForHash);
45 14 kreverch
                        if ( i ==1){
46 14 kreverch
                                cronHour.put("*", "All");
47 14 kreverch
                        }else{
48 14 kreverch
                                cronHour.put("*/"+i, "Every "+valueForHash+" Hours");
49 14 kreverch
                        }
50 14 kreverch
                }
51 14 kreverch
52 14 kreverch
                cronMonth.put("01", "January");
53 14 kreverch
                cronMonth.put("02", "February");
54 14 kreverch
                cronMonth.put("03", "March");
55 14 kreverch
                cronMonth.put("04", "April");
56 14 kreverch
                cronMonth.put("05", "May");
57 14 kreverch
                cronMonth.put("06", "June");
58 14 kreverch
                cronMonth.put("07", "July");
59 14 kreverch
                cronMonth.put("08", "August");
60 14 kreverch
                cronMonth.put("09", "September");
61 14 kreverch
                cronMonth.put("10", "October");
62 14 kreverch
                cronMonth.put("11", "November");
63 14 kreverch
                cronMonth.put("12", "December");
64 14 kreverch
                cronMonth.put("*", "All");
65 14 kreverch
66 14 kreverch
                cronDayOfWeek.put("0", "Sunday");
67 14 kreverch
                cronDayOfWeek.put("1", "Monday");
68 14 kreverch
                cronDayOfWeek.put("2", "Tuesday");
69 14 kreverch
                cronDayOfWeek.put("3", "Wednesday");
70 14 kreverch
                cronDayOfWeek.put("4", "Thursday");
71 14 kreverch
                cronDayOfWeek.put("5", "Friday");
72 14 kreverch
                cronDayOfWeek.put("6", "Saturday");
73 14 kreverch
                cronDayOfWeek.put("*", "All");
74 14 kreverch
75 14 kreverch
76 14 kreverch
                for (int i=1;i<31;i++){
77 14 kreverch
                        if ( i<10){
78 14 kreverch
                                valueForHash="0"+String.valueOf(i);
79 14 kreverch
                        }else{
80 14 kreverch
                                valueForHash=String.valueOf(i);
81 14 kreverch
                        }
82 14 kreverch
                        cronDayOfMonth.put(String.valueOf(i), valueForHash);
83 14 kreverch
                        if ( i ==1){
84 14 kreverch
                                cronDayOfMonth.put("*", "All");
85 14 kreverch
                        }else{
86 14 kreverch
                                cronDayOfMonth.put("*/"+i, "Every "+valueForHash+" Days");
87 14 kreverch
                        }
88 14 kreverch
                }
89 14 kreverch
90 14 kreverch
                Hashtable<Object, Object> permitValueNameVolFS = new Hashtable<Object, Object>();
91 14 kreverch
                zProperties zPropertyNameVolFS = new zProperties();
92 14 kreverch
                permitValueNameVolFS.clear();
93 14 kreverch
                zPropertyNameVolFS.setNameProperty("name");
94 14 kreverch
                zPropertyNameVolFS.setLabelProperty("Name Volume/FileSystem replicated");
95 14 kreverch
                zPropertyNameVolFS.setType("noupdateable");
96 14 kreverch
                zPropertyNameVolFS.setValue("");
97 14 kreverch
                zPropertyNameVolFS.setPermitValue(null);
98 14 kreverch
                zPropertyNameVolFS.setMultivalues(null);
99 14 kreverch
                zSchedulerProperties.put("name", zPropertyNameVolFS);
100 14 kreverch
101 14 kreverch
                Hashtable<Object, Object> permitValueFileConf = new Hashtable<Object, Object>();
102 14 kreverch
                zProperties zPropertyFileConf = new zProperties();
103 14 kreverch
                permitValueFileConf.clear();
104 14 kreverch
                zPropertyFileConf.setNameProperty("fileconf");
105 14 kreverch
                zPropertyFileConf.setLabelProperty("Configuration File");
106 14 kreverch
                zPropertyFileConf.setType("noupdateable");
107 14 kreverch
                zPropertyFileConf.setValue("");
108 14 kreverch
                zPropertyFileConf.setPermitValue(null);
109 14 kreverch
                zPropertyFileConf.setMultivalues(null);
110 14 kreverch
                zSchedulerProperties.put("fileconf", zPropertyFileConf);
111 14 kreverch
112 14 kreverch
                Hashtable<Object, Object> permitValueNameReplica = new Hashtable<Object, Object>();
113 14 kreverch
                zProperties zPropertyNameReplica = new zProperties();
114 14 kreverch
                permitValueNameReplica.clear();
115 14 kreverch
                zPropertyNameReplica.setNameProperty("namereplica");
116 14 kreverch
                zPropertyNameReplica.setLabelProperty("Replica Name");
117 14 kreverch
                zPropertyNameReplica.setType("noupdateable");
118 14 kreverch
                zPropertyNameReplica.setValue("");
119 14 kreverch
                zPropertyNameReplica.setPermitValue(null);
120 14 kreverch
                zPropertyNameReplica.setMultivalues(null);
121 14 kreverch
                zSchedulerProperties.put("namereplica", zPropertyNameReplica);
122 14 kreverch
123 14 kreverch
                Hashtable<Object, Object> permitValueNbReplicas = new Hashtable<Object, Object>();
124 14 kreverch
                zProperties zPropertyNbReplicas = new zProperties();
125 14 kreverch
                permitValueNbReplicas.clear();
126 14 kreverch
                zPropertyNbReplicas.setNameProperty("nbreplica");
127 14 kreverch
                zPropertyNbReplicas.setLabelProperty("Number replicas to keep");
128 14 kreverch
                zPropertyNbReplicas.setType("freeentry");
129 14 kreverch
                zPropertyNbReplicas.setValue("");
130 14 kreverch
                zPropertyNbReplicas.setPermitValue(null);
131 14 kreverch
                zPropertyNbReplicas.setMultivalues(null);
132 14 kreverch
                zSchedulerProperties.put("nbreplica", zPropertyNbReplicas);
133 14 kreverch
134 14 kreverch
                Hashtable<Object, Object> permitValueLastSnapshotReplicated = new Hashtable<Object, Object>();
135 14 kreverch
                zProperties zPropertyLastSnapshotReplicated = new zProperties();
136 14 kreverch
                permitValueLastSnapshotReplicated.clear();
137 14 kreverch
                zPropertyLastSnapshotReplicated.setNameProperty("lastsnapshotreplicated");
138 14 kreverch
                zPropertyLastSnapshotReplicated.setLabelProperty("Last Snapshot Replicated");
139 14 kreverch
                zPropertyLastSnapshotReplicated.setType("noupdateable");
140 14 kreverch
                zPropertyLastSnapshotReplicated.setValue("");
141 14 kreverch
                zPropertyLastSnapshotReplicated.setPermitValue(null);
142 14 kreverch
                zPropertyLastSnapshotReplicated.setMultivalues(null);
143 14 kreverch
                zSchedulerProperties.put("lastsnapshotreplicated", zPropertyLastSnapshotReplicated);
144 14 kreverch
145 14 kreverch
                Hashtable<Object, Object> permitValueMinutesOfSReplicas = new Hashtable<Object, Object>();
146 14 kreverch
                zProperties zPropertyMinutesOfSReplicas = new zProperties();
147 14 kreverch
                permitValueMinutesOfSReplicas.clear();
148 14 kreverch
                zPropertyMinutesOfSReplicas.setNameProperty("minutesofreplicas");
149 14 kreverch
                zPropertyMinutesOfSReplicas.setLabelProperty("Minutes of replication [0-60]");
150 14 kreverch
                zPropertyMinutesOfSReplicas.setType("nofreeentry");
151 14 kreverch
                zPropertyMinutesOfSReplicas.setValue("");
152 14 kreverch
                zPropertyMinutesOfSReplicas.setPermitValue(cronMinute);
153 14 kreverch
                zPropertyMinutesOfSReplicas.setMultivalues(null);
154 14 kreverch
                zSchedulerProperties.put("minutesofreplicas", zPropertyMinutesOfSReplicas);
155 14 kreverch
156 14 kreverch
                Hashtable<Object, Object> permitValueReplicaServer = new Hashtable<Object, Object>();
157 14 kreverch
                zProperties zPropertyReplicaServer = new zProperties();
158 14 kreverch
                permitValueReplicaServer.clear();
159 14 kreverch
                zPropertyReplicaServer.setNameProperty("server");
160 14 kreverch
                zPropertyReplicaServer.setLabelProperty("Server For Replication");
161 14 kreverch
                zPropertyReplicaServer.setType("nofreeentry");
162 14 kreverch
                zPropertyReplicaServer.setValue("");
163 14 kreverch
                zPropertyReplicaServer.setPermitValue(null);
164 14 kreverch
                zPropertyReplicaServer.setMultivalues(null);
165 14 kreverch
                zSchedulerProperties.put("server", zPropertyReplicaServer);
166 14 kreverch
167 14 kreverch
                Hashtable<Object, Object> permitValueReplicaPool = new Hashtable<Object, Object>();
168 14 kreverch
                zProperties zPropertyReplicaPool = new zProperties();
169 14 kreverch
                permitValueReplicaPool.clear();
170 14 kreverch
                zPropertyReplicaPool.setNameProperty("replicapool");
171 14 kreverch
                zPropertyReplicaPool.setLabelProperty("Pool For Replication");
172 14 kreverch
                zPropertyReplicaPool.setType("nofreeentry");
173 14 kreverch
                zPropertyReplicaPool.setValue("");
174 14 kreverch
                zPropertyReplicaPool.setPermitValue(null);
175 14 kreverch
                zPropertyReplicaPool.setMultivalues(null);
176 14 kreverch
                zSchedulerProperties.put("replicapool", zPropertyReplicaPool);
177 14 kreverch
178 14 kreverch
179 14 kreverch
                Hashtable<Object, Object> permitValueReplicasHours = new Hashtable<Object, Object>();
180 14 kreverch
                zProperties zPropertyReplicasHours = new zProperties();
181 14 kreverch
                permitValueReplicasHours.clear();
182 14 kreverch
                zPropertyReplicasHours.setNameProperty("hoursofreplicas");
183 14 kreverch
                zPropertyReplicasHours.setLabelProperty("Hour of replication [0-23]");
184 14 kreverch
                zPropertyReplicasHours.setType("nofreeentry");
185 14 kreverch
                zPropertyReplicasHours.setValue("");
186 14 kreverch
                zPropertyReplicasHours.setPermitValue(cronHour);
187 14 kreverch
                zPropertyReplicasHours.setMultivalues(null);
188 14 kreverch
                zSchedulerProperties.put("hoursofreplicas", zPropertyReplicasHours);
189 14 kreverch
190 14 kreverch
                Hashtable<Object, Object> permitValueDayOfWeekReplicas = new Hashtable<Object, Object>();
191 14 kreverch
                zProperties zPropertyDayOfWeekReplicas = new zProperties();
192 14 kreverch
                permitValueDayOfWeekReplicas.clear();
193 14 kreverch
                zPropertyDayOfWeekReplicas.setNameProperty("dayofweekreplicas");
194 14 kreverch
                zPropertyDayOfWeekReplicas.setLabelProperty("Day of week of Replication [0-6] 0 for Sunday");
195 14 kreverch
                zPropertyDayOfWeekReplicas.setType("nofreeentry");
196 14 kreverch
                zPropertyDayOfWeekReplicas.setValue("");
197 14 kreverch
                zPropertyDayOfWeekReplicas.setPermitValue(cronDayOfWeek);
198 14 kreverch
                zPropertyDayOfWeekReplicas.setMultivalues(null);
199 14 kreverch
                zSchedulerProperties.put("dayofweekreplicas", zPropertyDayOfWeekReplicas);
200 14 kreverch
201 14 kreverch
                Hashtable<Object, Object> permitValueDayOfMonthReplicas = new Hashtable<Object, Object>();
202 14 kreverch
                zProperties zPropertyDayOfMonthReplicas = new zProperties();
203 14 kreverch
                permitValueDayOfMonthReplicas.clear();
204 14 kreverch
                zPropertyDayOfMonthReplicas.setNameProperty("dayofmonthreplicas");
205 14 kreverch
                zPropertyDayOfMonthReplicas.setLabelProperty("Day of Month of Snapshots [1-30]");
206 14 kreverch
                zPropertyDayOfMonthReplicas.setType("nofreeentry");
207 14 kreverch
                zPropertyDayOfMonthReplicas.setValue("");
208 14 kreverch
                zPropertyDayOfMonthReplicas.setPermitValue(cronDayOfMonth);
209 14 kreverch
                zPropertyDayOfMonthReplicas.setMultivalues(null);
210 14 kreverch
                zSchedulerProperties.put("dayofmonthreplicas", zPropertyDayOfMonthReplicas);
211 14 kreverch
212 14 kreverch
                Hashtable<Object, Object> permitValueMonthReplicas = new Hashtable<Object, Object>();
213 14 kreverch
                zProperties zPropertyMonthReplicas = new zProperties();
214 14 kreverch
                permitValueMonthReplicas.clear();
215 14 kreverch
                zPropertyMonthReplicas.setNameProperty("monthreplicas");
216 14 kreverch
                zPropertyMonthReplicas.setLabelProperty("Month");
217 14 kreverch
                zPropertyMonthReplicas.setType("nofreeentry");
218 14 kreverch
                zPropertyMonthReplicas.setValue("");
219 14 kreverch
                zPropertyMonthReplicas.setPermitValue(cronMonth);
220 14 kreverch
                zPropertyMonthReplicas.setMultivalues(null);
221 14 kreverch
                zSchedulerProperties.put("monthreplicas", zPropertyMonthReplicas);
222 14 kreverch
223 14 kreverch
                /*Hashtable<Object, Object> permitValueFreqSnapshots = new Hashtable<Object, Object>();
224 14 kreverch
                zProperties zPropertyFreqSnapshots = new zProperties();
225 14 kreverch
                permitValueFreqSnapshots.clear();
226 14 kreverch
                zPropertyFreqSnapshots.setNameProperty("frequency");
227 14 kreverch
                zPropertyFreqSnapshots.setLabelProperty("Frequency");
228 14 kreverch
                zPropertyFreqSnapshots.setType("internaluse");
229 14 kreverch
                zPropertyFreqSnapshots.setValue("");
230 14 kreverch
                zPropertyFreqSnapshots.setPermitValue(null);
231 14 kreverch
                zSchedulerProperties.put("frequency", zPropertyFreqSnapshots);*/
232 14 kreverch
233 14 kreverch
234 14 kreverch
        }
235 14 kreverch
236 14 kreverch
        public void formatCronValue(String frequency, String DaySnapshot){
237 14 kreverch
                String cronValue ="";
238 14 kreverch
239 14 kreverch
                if (frequency.contains("Hours")){
240 14 kreverch
                        this.zSchedulerProperties.get("minutesofsnaphots").setValue("*");
241 14 kreverch
                        this.zSchedulerProperties.get("hoursofsnaphots").setValue("*/"+frequency.replaceAll("Every", "").replaceAll("Hours", ""));
242 14 kreverch
                        this.zSchedulerProperties.get("dayofmonthsnapshots").setValue("*");
243 14 kreverch
                        this.zSchedulerProperties.get("monthsnapshots").setValue("*");
244 14 kreverch
                        this.zSchedulerProperties.get("dayofweeksnapshots").setValue("*");
245 14 kreverch
246 14 kreverch
                }else{
247 14 kreverch
                        this.zSchedulerProperties.get("hour").setValue(this.zSchedulerProperties.get("time").getValue().split(":")[0]);
248 14 kreverch
                        this.zSchedulerProperties.get("minutes").setValue(this.zSchedulerProperties.get("time").getValue().split(":")[1]);
249 14 kreverch
                        if (frequency.contains("Days")){
250 14 kreverch
                                this.zSchedulerProperties.get("dayofmonthsnapshots").setValue("*/"+frequency.replaceAll("Every", "").replaceAll("Days", ""));
251 14 kreverch
                                this.zSchedulerProperties.get("monthsnapshots").setValue("*");
252 14 kreverch
                                this.zSchedulerProperties.get("dayofweeksnapshots").setValue("*");
253 14 kreverch
254 14 kreverch
                        }else{
255 14 kreverch
                                if (frequency.contains("Months")){
256 14 kreverch
                                        this.zSchedulerProperties.get("dayofmonthsnapshots").setValue(this.zSchedulerProperties.get("dayofmonthsnapshots").getValue());
257 14 kreverch
                                        this.zSchedulerProperties.get("monthsnapshots").setValue("*/"+frequency.replaceAll("Every", "").replaceAll("Months", ""));
258 14 kreverch
                                        this.zSchedulerProperties.get("dayofweeksnapshots").setValue("*");
259 14 kreverch
260 14 kreverch
                                }else{
261 14 kreverch
                                        if (frequency.contains("Hour")){
262 14 kreverch
                                                this.zSchedulerProperties.get("minutes").setValue("*");
263 14 kreverch
                                                this.zSchedulerProperties.get("hours").setValue("*/"+frequency.replaceAll("Every", "").replaceAll("Hour", ""));
264 14 kreverch
                                                this.zSchedulerProperties.get("dayofmonthsnapshots").setValue("*");
265 14 kreverch
                                                this.zSchedulerProperties.get("monthsnapshots").setValue("*");
266 14 kreverch
                                                this.zSchedulerProperties.get("dayofweeksnapshots").setValue("*");
267 14 kreverch
                                        }else{
268 14 kreverch
                                                if (frequency.contains("Day")){
269 14 kreverch
                                                        this.zSchedulerProperties.get("dayofmonthsnapshots").setValue("*/"+frequency.replaceAll("Every", "").replaceAll("Day", ""));
270 14 kreverch
                                                        this.zSchedulerProperties.get("monthsnapshots").setValue("*");
271 14 kreverch
                                                        this.zSchedulerProperties.get("dayofweeksnapshots").setValue("*");
272 14 kreverch
                                                }else{
273 14 kreverch
                                                        if (frequency.contains("Month")){
274 14 kreverch
                                                                this.zSchedulerProperties.get("dayofmonthsnapshots").setValue(this.zSchedulerProperties.get("dayofmonthsnapshots").getValue());
275 14 kreverch
                                                                this.zSchedulerProperties.get("monthsnapshots").setValue("*/"+frequency.replaceAll("Every", "").replaceAll("Month", ""));
276 14 kreverch
                                                                this.zSchedulerProperties.get("dayofweeksnapshots").setValue("*");
277 14 kreverch
                                                        }
278 14 kreverch
                                                }
279 14 kreverch
                                        }
280 14 kreverch
                                }
281 14 kreverch
                        }
282 14 kreverch
                }
283 14 kreverch
        }
284 14 kreverch
285 14 kreverch
        public static int getIntDayOfWeek(String dayOfWeek)
286 14 kreverch
        {
287 14 kreverch
                try
288 14 kreverch
                {
289 14 kreverch
                        DateFormat formatter ;
290 14 kreverch
                        Date date ;
291 14 kreverch
                        formatter = new SimpleDateFormat("EEE");
292 14 kreverch
                        date = (Date)formatter.parse(dayOfWeek);
293 14 kreverch
                        GregorianCalendar g = new GregorianCalendar();
294 14 kreverch
                        g.setTime(date);
295 14 kreverch
                        return g.get(Calendar.DAY_OF_WEEK);
296 14 kreverch
                }
297 14 kreverch
                catch (ParseException e)
298 14 kreverch
                {
299 14 kreverch
                        System.out.println("Exception :"+e);
300 14 kreverch
                }
301 14 kreverch
                return 0;
302 14 kreverch
        }
303 14 kreverch
304 14 kreverch
305 14 kreverch
306 14 kreverch
307 14 kreverch
308 14 kreverch
}