#region License Information /* HeuristicLab * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL) * * This file is part of HeuristicLab. * * HeuristicLab is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * HeuristicLab is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with HeuristicLab. If not, see . */ #endregion using System; using System.Collections.Generic; using System.Linq; using System.Text; using HeuristicLab.Hive.Contracts.Interfaces; using HeuristicLab.Hive.Contracts.BusinessObjects; using HeuristicLab.Hive.Contracts; using HeuristicLab.Hive.Server.Core.InternalInterfaces; using System.ServiceModel; using HeuristicLab.Hive.Server.DataAccess; using HeuristicLab.Hive.Contracts.ResponseObjects; using System.Security.Permissions; //IIdentity id = ServiceSecurityContext.Current.PrimaryIdentity; //if (!Thread.CurrentPrincipal.IsInRole("Administrator")) { //} else { // // access denied // throw new SecurityException(); //} namespace HeuristicLab.Hive.Server.Core { public class ServerConsoleFacade : IServerConsoleFacade { private ISlaveManager slaveManager = ServiceLocator.GetSlaveManager(); private IJobManager jobManager = ServiceLocator.GetJobManager(); private IContextFactory contextFactory = ServiceLocator.GetContextFactory(); public Guid sessionID = Guid.Empty; public ServerConsoleFacade() { } public Response Login() { Response resp = new Response(); return resp; } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public ResponseList GetAllSlaves() { using (contextFactory.GetContext(false)) { return slaveManager.GetAllSlaves(); } } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public ResponseList GetAllSlaveGroups() { using (contextFactory.GetContext(false)) { return slaveManager.GetAllSlaveGroups(); } } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public ResponseList GetAllUpTimeStatistics() { using (contextFactory.GetContext(false)) { return slaveManager.GetAllUpTimeStatistics(); } } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public ResponseObject AddSlaveGroup(SlaveGroupDto slaveGroup) { using (contextFactory.GetContext()) { return slaveManager.AddSlaveGroup(slaveGroup); } } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public Response AddResourceToGroup(Guid slaveGroupId, ResourceDto resource) { using (contextFactory.GetContext()) { return slaveManager.AddResourceToGroup(slaveGroupId, resource); } } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public Response DeleteResourceFromGroup(Guid slaveGroupId, Guid resourceId) { using (contextFactory.GetContext()) { return slaveManager.DeleteResourceFromGroup(slaveGroupId, resourceId); } } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public ResponseList GetAllJobs() { using (contextFactory.GetContext(false)) { return jobManager.GetAllJobs(); } } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public ResponseList GetAllJobsWithFilter(JobState jobState, int offset, int count) { using (contextFactory.GetContext(false)) { return jobManager.GetAllJobsWithFilter(jobState, offset, count); } } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public ResponseObject GetJobById(Guid jobId) { using (contextFactory.GetContext(false)) { return jobManager.GetJobById(jobId); } } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public ResponseObject GetJobByIdWithDetails(Guid jobId) { using (contextFactory.GetContext(false)) { return jobManager.GetJobByIdWithDetails(jobId); } } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public ResponseObject AddNewJob(SerializedJob job) { using (contextFactory.GetContext()) { return jobManager.AddNewJob(job); } } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public ResponseObject GetLastSerializedResult(Guid jobId, bool requested, bool snapshot) { using (contextFactory.GetContext(false)) { return jobManager.GetLastSerializedResult(jobId, requested, snapshot); } } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public ResponseObject GetJobResults(IEnumerable jobIds) { using (contextFactory.GetContext(false)) { return jobManager.GetJobResults(jobIds); } } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public Response RequestSnapshot(Guid jobId) { using (contextFactory.GetContext()) { return jobManager.RequestSnapshot(jobId); } } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public Response AbortJob(Guid jobId) { using (contextFactory.GetContext()) { return jobManager.AbortJob(jobId); } } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public ResponseObject GetAllGroupsOfResource(Guid resourceId) { using (contextFactory.GetContext(false)) { return slaveManager.GetAllGroupsOfResource(resourceId); } } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public Response DeleteSlaveGroup(Guid slaveGroupId) { using (contextFactory.GetContext()) { return slaveManager.DeleteSlaveGroup(slaveGroupId); } } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public ResponseList GetAllProjects() { using (contextFactory.GetContext(false)) { return jobManager.GetAllProjects(); } } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public Response CreateProject(ProjectDto project) { using (contextFactory.GetContext()) { return jobManager.CreateProject(project); } } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public Response ChangeProject(ProjectDto project) { using (contextFactory.GetContext()) { return jobManager.ChangeProject(project); } } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public Response DeleteProject(Guid projectId) { using (contextFactory.GetContext()) { return jobManager.DeleteProject(projectId); } } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public ResponseList GetJobsByProject(Guid projectId) { using (contextFactory.GetContext(false)) { return jobManager.GetJobsByProject(projectId); } } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public ResponseList GetUptimeCalendarForResource(Guid guid) { using (contextFactory.GetContext(false)) { return slaveManager.GetUptimeCalendarForResource(guid); } } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public Response SetUptimeCalendarForResource(Guid guid, IEnumerable appointments, bool isForced) { using (contextFactory.GetContext()) { return slaveManager.SetUptimeCalendarForResource(guid, appointments, isForced); } } [PrincipalPermission(SecurityAction.Demand, Role = HiveRoles.Administrator)] public ResponseObject AddJobWithGroupStrings(SerializedJob job, IEnumerable resources) { using (contextFactory.GetContext()) { return jobManager.AddJobWithGroupStrings(job, resources); } } } }