1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.gwe.app.client.web.servlet;
18
19 import java.util.List;
20
21 import javax.servlet.http.HttpServletRequest;
22
23 import org.gwe.api.ServerAPIConnectionException;
24 import org.gwe.api.Session4ClientAPIEnhancer;
25 import org.gwe.app.client.admin.InstallerException;
26 import org.gwe.app.client.web.request.PageModel;
27 import org.gwe.app.client.web.request.Param;
28 import org.gwe.drivers.bundleManagers.BundleType;
29 import org.gwe.persistence.model.HeadResourceInfo;
30 import org.gwe.persistence.model.OrderInfo;
31
32
33
34
35
36 public abstract class GWEClusterSelectedServlet extends GWEServlet {
37
38 public GWEClusterSelectedServlet(String context) {
39 super(context);
40 }
41
42 protected HeadResourceInfo getSelectedCluster(PageModel pageModel) {
43 return getConfig().getGrid().getHeadResource(pageModel.getParam(Param.CLUSTER_ID));
44 }
45
46 protected PageModel createPageModel(HttpServletRequest request) {
47 PageModel pageModel = new PageModel(request, getConfig());
48
49 pageModel.addIdentifiedObject(Param.CLUSTER_ID, getSelectedCluster(pageModel));
50 try {
51 populatePageModel(pageModel);
52 } catch (InstallerException e) {
53
54 e.printStackTrace();
55 } catch (ServerAPIConnectionException e) {
56
57 e.printStackTrace();
58 }
59 return pageModel;
60 }
61
62 private void populatePageModel(PageModel pageModel) throws InstallerException, ServerAPIConnectionException {
63 Session4ClientAPIEnhancer session = getSelectedClusterSession(pageModel);
64 pageModel.put("gweSession", session);
65 specificPageModelPopulation(pageModel, session);
66 addOrderList(pageModel, session);
67 }
68
69 private void addOrderList(PageModel pageModel, Session4ClientAPIEnhancer session) {
70 HeadResourceInfo selectedCluster = getSelectedCluster(pageModel);
71 if (selectedCluster != null) {
72 List<OrderInfo> ordersList = querySelectedClusterOrdersList(session);
73 selectedCluster.setOrdersList(ordersList);
74 }
75 }
76
77 private Session4ClientAPIEnhancer getSelectedClusterSession(PageModel pageModel) throws InstallerException, ServerAPIConnectionException {
78 HeadResourceInfo selectedCluster = getSelectedCluster(pageModel);
79 Boolean installDaemonIfNeeded = pageModel.getParam(Param.INSTALL);
80 BundleType installDaemonIfNeededBundle = BundleType.get(pageModel.getParam(Param.BUNDLE));
81 return getConfig().getSessionsRepository().getSession(selectedCluster, installDaemonIfNeeded, installDaemonIfNeededBundle);
82 }
83
84 private List<OrderInfo> querySelectedClusterOrdersList(Session4ClientAPIEnhancer session) {
85 try {
86 return session.getOrdersList(false);
87 } catch (Exception e) {}
88 return null;
89 }
90
91
92
93
94
95
96
97 protected void specificPageModelPopulation(PageModel pageModel, Session4ClientAPIEnhancer session) {}
98 }