~cbehrens/openstack-guest-agents/lp764221

« back to all changes in this revision

Viewing changes to src/xenserver/windows/src/Rackspace.Cloud.Server.Agent/Actions/ServiceStarter.cs

  • Committer: Antony Messerli
  • Date: 2011-03-02 21:56:51 UTC
  • Revision ID: amesserl@rackspace.com-20110302215651-0clqh49spumg13c6
Initial commit Rackspace Windows Guest Agent

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
using System;
 
2
using System.ServiceProcess;
 
3
using Rackspace.Cloud.Server.Common.Logging;
 
4
 
 
5
namespace Rackspace.Cloud.Server.Agent.Actions
 
6
{
 
7
    public interface IServiceStarter
 
8
    {
 
9
        void Start(string serviceName);
 
10
    }
 
11
 
 
12
    public class ServiceStarter : IServiceStarter
 
13
    {
 
14
        private readonly ILogger _logger;
 
15
 
 
16
        public ServiceStarter(ILogger logger)
 
17
        {
 
18
            _logger = logger;
 
19
        }
 
20
 
 
21
        public void Start(string serviceName)
 
22
        {
 
23
            _logger.Log(String.Format("Starting '{0}' Service ...", serviceName));
 
24
            var serviceController = new ServiceController(serviceName);
 
25
            if (serviceController.Status == ServiceControllerStatus.Running)
 
26
            {
 
27
                _logger.Log(String.Format("'{0}' service already started.", serviceName));
 
28
                return;
 
29
            }
 
30
 
 
31
            serviceController.Start();
 
32
            serviceController.WaitForStatus(ServiceControllerStatus.Running);
 
33
 
 
34
            serviceController.Close();
 
35
            _logger.Log(String.Format("Service '{0}' started and now running ...", serviceName));
 
36
        }
 
37
    }
 
38
}
 
 
b'\\ No newline at end of file'