Changeset 5826 for branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/SlaveView.cs
- Timestamp:
- 03/24/11 16:15:23 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave.Views/3.4/SlaveView.cs
r5795 r5826 21 21 22 22 using System; 23 using System.Security.Principal; 24 using System.ServiceProcess; 23 25 using System.Threading; 24 26 using System.Threading.Tasks; … … 47 49 public SlaveView() { 48 50 InitializeComponent(); 51 52 if (!CheckRunAsAdmin()) 53 btnRestartService.Enabled = false; 54 btnRestart.Enabled = false; 55 49 56 } 50 57 … … 99 106 #region Event Handlers 100 107 void Content_SlaveStatusChanged(object sender, EventArgs<StatusCommons> e) { 101 txtLog.AppendText("got a status changed object from slave\n");102 108 RenderChart(e.Value); 103 109 } … … 114 120 115 121 private void RenderChart(StatusCommons status) { 122 jobChart.Series[0].Points.Clear(); 116 123 117 124 DataPoint pJobs = new DataPoint(status.Jobs.Count, status.Jobs.Count); … … 120 127 DataPoint pJobsFetched = new DataPoint(status.JobsFetched, status.JobsFetched); 121 128 129 pJobs.LegendText = "Current jobs: " + status.Jobs.Count; 130 pJobs.Color = System.Drawing.Color.Orange; 131 pJobsAborted.LegendText = "Aborted jobs: " + status.JobsAborted; 132 pJobsAborted.Color = System.Drawing.Color.Red; 133 pJobsDone.LegendText = "Finished jobs: " + status.JobsDone; 134 pJobsDone.Color = System.Drawing.Color.Green; 135 pJobsFetched.LegendText = "Fetched jobs: " + status.JobsFetched; 136 pJobsFetched.Color = System.Drawing.Color.Blue; 137 122 138 jobChart.Series[0].Points.Add(pJobs); 123 139 jobChart.Series[0].Points.Add(pJobsAborted); … … 137 153 138 154 private void btnRestart_Click(object sender, System.EventArgs e) { 139 if (Content != null) 155 if (Content != null) { 140 156 Content.RestartCore(); 157 btnRestart.Enabled = false; 158 btnSleep.Enabled = true; 159 } 141 160 } 142 161 143 162 private void btnSleep_Click(object sender, System.EventArgs e) { 144 if (Content != null) 163 if (Content != null) { 145 164 Content.Sleep(); 165 btnRestart.Enabled = true; 166 btnSleep.Enabled = false; 167 } 146 168 } 147 169 … … 150 172 diag.ShowDialog(); 151 173 } 174 175 private void btnRestartService_Click(object sender, EventArgs e) { 176 if (CheckRunAsAdmin()) { 177 RestartService(); 178 } else { 179 MessageBox.Show("You need to run this application as Administrator to restart the service"); 180 } 181 } 182 183 private bool CheckRunAsAdmin() { 184 bool isRunAsAdmin = false; 185 WindowsIdentity user = WindowsIdentity.GetCurrent(); 186 WindowsPrincipal principal = new WindowsPrincipal(user); 187 188 try { 189 isRunAsAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator); 190 } 191 catch { } 192 return isRunAsAdmin; 193 } 194 195 private void RestartService() { 196 string serviceName = "HeuristicLab.Clients.Hive.SlaveCore.SlaveWindowsService"; 197 TimeSpan timeout = TimeSpan.FromMilliseconds(5000); 198 199 ServiceController service = new ServiceController(serviceName); 200 try { 201 if (service.Status == ServiceControllerStatus.Running) { 202 service.Stop(); 203 service.WaitForStatus(ServiceControllerStatus.Stopped, timeout); 204 } 205 206 service.Start(); 207 service.WaitForStatus(ServiceControllerStatus.Running, timeout); 208 } 209 catch (InvalidOperationException ex) { 210 MessageBox.Show("Error starting service: Hive Slave Service not found!\n" + ex.ToString()); 211 } 212 catch (Exception ex) { 213 MessageBox.Show("Error starting service, exception is: \n" + ex.ToString()); 214 } 215 } 152 216 } 153 217 }
Note: See TracChangeset
for help on using the changeset viewer.