Skip to content
Snippets Groups Projects
IRexScheduler.cs 1.84 KiB
Newer Older
  • Learn to ignore specific revisions
  • Vaclav Svaton's avatar
    Vaclav Svaton committed
    // CSharpServer.cs
    // compile with: /target:library
    // post-build command: regasm CSharpServer.dll /tlb:CSharpServer.tlb
    
    using HaaSMiddleware.DomainObjects.ClusterInformation;
    using HaaSMiddleware.DomainObjects.JobManagement;
    using HaaSMiddleware.DomainObjects.JobManagement.JobInformation;
    using System.Collections.Generic;
    
    namespace HaaSMiddleware.HpcConnectionFramework {
    	public interface IRexScheduler {
    		SubmittedJobInfo SubmitJob(JobSpecification jobSpecification, ClusterAuthenticationCredentials credentials);
    
    		void CancelJob(int scheduledJobId, ClusterAuthenticationCredentials credentials);
    
    		void CancelJob(int scheduledJobId, string message, ClusterAuthenticationCredentials credentials);
    
    		SubmittedJobInfo GetActualJobInfo(int scheduledJobId, ClusterAuthenticationCredentials credentials);
    
    		SubmittedJobInfo[] GetActualJobsInfo(int[] scheduledJobIds, Cluster cluster);
    
    		ClusterNodeUsage GetCurrentClusterNodeUsage(ClusterNodeType nodeType);
    
            List<string> GetAllocatedNodes(SubmittedJobInfo jobInfo);
    
    		bool IsWaitingLimitExceeded(SubmittedJobInfo job, JobSpecification jobSpecification);
    
    		void AllowDirectFileTransferAccessForUserToJob(string publicKey, SubmittedJobInfo jobInfo);
    
    		void RemoveDirectFileTransferAccessForUserToJob(string publicKey, SubmittedJobInfo jobInfo);
    
    		void CreateJobDirectory(SubmittedJobInfo jobInfo);
    
            void DeleteJobDirectory(SubmittedJobInfo jobInfo);
    
            void CopyJobDataToTemp(SubmittedJobInfo jobInfo, string hash, string path);
    
            void CopyJobDataFromTemp(SubmittedJobInfo jobInfo, string hash);
    
            void CreateSshTunnel(long jobId, string localHost, int localPort, string loginHost, string nodeHost, int nodePort, ClusterAuthenticationCredentials credentials);
    
            void RemoveSshTunnel(long jobId, string nodeHost);
    
            bool SshTunnelExist(long jobId, string nodeHost);
        }
    }