Free cookie consent management tool by TermsFeed Policy Generator

source: branches/HeuristicLab.Hive-3.3/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/Facades/ServerConsoleFacade.cs @ 5213

Last change on this file since 5213 was 5213, checked in by cneumuel, 13 years ago

#1260

  • changed HiveEngine to be compatible with recent changes of engine
File size: 11.1 KB
Line 
1#region License Information
2/* HeuristicLab
3 * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
4 *
5 * This file is part of HeuristicLab.
6 *
7 * HeuristicLab is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * HeuristicLab is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
19 */
20#endregion
21
22using System;
23using System.Collections.Generic;
24using System.Security.Permissions;
25using HeuristicLab.Hive.Contracts;
26using HeuristicLab.Hive.Contracts.BusinessObjects;
27using HeuristicLab.Hive.Contracts.Interfaces;
28using HeuristicLab.Hive.Contracts.ResponseObjects;
29using HeuristicLab.Hive.Server.DataAccess;
30using System.ServiceModel;
31
32namespace HeuristicLab.Hive.Server.Core {
33  [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, ConcurrencyMode = ConcurrencyMode.Multiple)]
34  public class ServerConsoleFacade : IServerConsoleFacade {
35    private ISlaveManager slaveManager = ServiceLocator.GetSlaveManager();
36
37    private IJobManager jobManager = ServiceLocator.GetJobManager();
38
39    private IContextFactory contextFactory = ServiceLocator.GetContextFactory();
40
41    public Guid sessionID = Guid.Empty;
42
43    public ServerConsoleFacade() {
44    }
45
46    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
47    public Response Login() {
48      Response resp = new Response();
49      return resp;
50    }
51
52    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
53    public ResponseList<SlaveDto> GetAllSlaves() {
54      using (contextFactory.GetContext(false)) {
55        return slaveManager.GetAllSlaves();
56      }
57    }
58
59    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
60    public ResponseList<SlaveGroupDto> GetAllSlaveGroups() {
61      using (contextFactory.GetContext(false)) {
62        return slaveManager.GetAllSlaveGroups();
63      }
64    }
65
66    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
67    public ResponseList<UpTimeStatisticsDto> GetAllUpTimeStatistics() {
68      using (contextFactory.GetContext(false)) {
69        return slaveManager.GetAllUpTimeStatistics();
70      }
71    }
72
73    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
74    public ResponseObject<SlaveGroupDto> AddSlaveGroup(SlaveGroupDto slaveGroup) {
75      using (contextFactory.GetContext()) {
76        return slaveManager.AddSlaveGroup(slaveGroup);
77      }
78    }
79
80    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
81    public Response AddResourceToGroup(Guid slaveGroupId, ResourceDto resource) {
82      using (contextFactory.GetContext()) {
83        return slaveManager.AddResourceToGroup(slaveGroupId, resource);
84      }
85    }
86
87    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
88    public Response DeleteResourceFromGroup(Guid slaveGroupId, Guid resourceId) {
89      using (contextFactory.GetContext()) {
90        return slaveManager.DeleteResourceFromGroup(slaveGroupId, resourceId);
91      }
92    }
93
94    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
95    public ResponseList<JobDto> GetAllJobs() {
96      using (contextFactory.GetContext(false)) {
97        return jobManager.GetAllJobs();
98      }
99    }
100
101    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
102    public ResponseList<JobDto> GetAllJobsWithFilter(JobState jobState, int offset, int count) {
103      using (contextFactory.GetContext(false)) {
104        return jobManager.GetAllJobsWithFilter(jobState, offset, count);
105      }
106    }
107
108    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
109    public ResponseObject<JobDto> GetJobById(Guid jobId) {
110      using (contextFactory.GetContext(false)) {
111        return jobManager.GetJobById(jobId);
112      }
113    }
114
115    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
116    public ResponseObject<JobDto> GetJobByIdWithDetails(Guid jobId) {
117      using (contextFactory.GetContext(false)) {
118        return jobManager.GetJobByIdWithDetails(jobId);
119      }
120    }
121
122    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
123    public ResponseObject<JobDto> AddNewJob(SerializedJob job) {
124      using (contextFactory.GetContext()) {
125        return jobManager.AddNewJob(job);
126      }
127    }
128
129    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
130    public ResponseObject<SerializedJob> GetLastSerializedResult(Guid jobId) {
131      using (contextFactory.GetContext(false)) {
132        return jobManager.GetLastSerializedResult(jobId);
133      }
134    }
135
136    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
137    public ResponseObject<SerializedJob> GetSnapshotResult(Guid jobId) {
138      using (contextFactory.GetContext(false)) {
139        return jobManager.GetSnapshotResult(jobId);
140      }
141    }
142
143    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
144    public ResponseObject<JobResultList> GetJobResults(IEnumerable<Guid> jobIds) {
145      using (contextFactory.GetContext(false)) {
146        return jobManager.GetJobResults(jobIds);
147      }
148    }
149
150    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
151    public Response RequestSnapshot(Guid jobId) {
152      using (contextFactory.GetContext()) {
153        return jobManager.RequestSnapshot(jobId);
154      }
155    }
156
157    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
158    public Response AbortJob(Guid jobId) {
159      using (contextFactory.GetContext()) {
160        return jobManager.AbortJob(jobId);
161      }
162    }
163
164    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
165    public ResponseObject<SlaveGroupDtoList> GetAllGroupsOfResource(Guid resourceId) {
166      using (contextFactory.GetContext(false)) {
167        return slaveManager.GetAllGroupsOfResource(resourceId);
168      }
169    }
170
171    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
172    public Response DeleteSlaveGroup(Guid slaveGroupId) {
173      using (contextFactory.GetContext()) {
174        return slaveManager.DeleteSlaveGroup(slaveGroupId);
175      }
176    }
177
178    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
179    public ResponseList<ProjectDto> GetAllProjects() {
180      using (contextFactory.GetContext(false)) {
181        return jobManager.GetAllProjects();
182      }
183    }
184
185    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
186    public Response CreateProject(ProjectDto project) {
187      using (contextFactory.GetContext()) {
188        return jobManager.CreateProject(project);
189      }
190    }
191
192    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
193    public Response ChangeProject(ProjectDto project) {
194      using (contextFactory.GetContext()) {
195        return jobManager.ChangeProject(project);
196      }
197    }
198
199    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
200    public Response DeleteProject(Guid projectId) {
201      using (contextFactory.GetContext()) {
202        return jobManager.DeleteProject(projectId);
203      }
204    }
205
206    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
207    public ResponseList<JobDto> GetJobsByProject(Guid projectId) {
208      using (contextFactory.GetContext(false)) {
209        return jobManager.GetJobsByProject(projectId);
210      }
211    }
212
213    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
214    public ResponseList<AppointmentDto> GetUptimeCalendarForResource(Guid guid) {
215      using (contextFactory.GetContext(false)) {
216        return slaveManager.GetUptimeCalendarForResource(guid);
217      }
218    }
219
220    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
221    public Response SetUptimeCalendarForResource(Guid guid, IEnumerable<AppointmentDto> appointments, bool isForced) {
222      using (contextFactory.GetContext()) {
223        return slaveManager.SetUptimeCalendarForResource(guid, appointments, isForced);
224      }
225    }
226
227    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
228    public ResponseObject<JobDto> AddJobWithGroupStrings(SerializedJob job, IEnumerable<string> resources) {
229      using (contextFactory.GetContext()) {
230        return jobManager.AddJobWithGroupStrings(job, resources);
231      }
232    }
233
234    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
235    public ResponseObject<JobResultList> GetChildJobResults(Guid? parentJobId, bool recursive, bool includeParent) {
236      using (contextFactory.GetContext(false)) {
237        return jobManager.GetChildJobResults(parentJobId, recursive, includeParent);
238      }
239    }
240
241    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
242    public ResponseObject<JobDto> AddChildJob(Guid parentJobId, SerializedJob serializedJob) {
243      using (contextFactory.GetContext()) {
244        return jobManager.AddChildJob(parentJobId, serializedJob);
245      }
246    }
247
248    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
249    public ResponseObject<JobDto> PauseJob(SerializedJob serializedJob) {
250      using (contextFactory.GetContext()) {
251        return jobManager.PauseJob(serializedJob);
252      }
253    }
254
255    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
256    public ResponseObject<HiveExperimentDtoList> GetHiveExperiments() {
257      using (contextFactory.GetContext(false)) {
258        return jobManager.GetHiveExperiments();
259      }
260    }
261
262    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
263    public ResponseObject<HiveExperimentDto> UpdateHiveExperiment(HiveExperimentDto hiveExperimentDto) {
264      using (contextFactory.GetContext()) {
265        return jobManager.UpdateHiveExperiment(hiveExperimentDto);
266      }
267    }
268
269    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
270    public Response DeleteHiveExperiment(Guid hiveExperimentId) {
271      using (contextFactory.GetContext()) {
272        return jobManager.DeleteHiveExperiment(hiveExperimentId);
273      }
274    }
275
276    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
277    public Response DeleteChildJobs(Guid jobId) {
278      using (contextFactory.GetContext()) {
279        return jobManager.DeleteChildJobs(jobId);
280      }
281    }
282
283    [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)]
284    public Response DeleteJob(Guid jobId) {
285      using (contextFactory.GetContext()) {
286        return jobManager.DeleteJob(jobId);
287      }
288    }
289  }
290}
Note: See TracBrowser for help on using the repository browser.