Rackspace.Cloud.Server.Agent.Commands.ResetNetwork.Execute C# (CSharp) Method

Execute() public method

public Execute ( string keyValue ) : ExecutableResult
keyValue string
return ExecutableResult
        public ExecutableResult Execute(string keyValue)
        {
            var network = _xenNetworkInformation.Get();

            _setNetworkInterface.Execute(network.Interfaces.Values.ToList());
            _setNetworkRoutes.Execute(network);

            var providerData = _xenProviderDataInformation.Get();
            var userMetadata = _xenUserMetadata.GetKeys();
            _setProviderData.Execute(providerData, userMetadata);

            if (string.IsNullOrEmpty(keyValue) || !keyValue.StartsWith("nohostname"))
            {
                var hostname = _xenStore.ReadVmData("hostname");
                var hostnameResult = _setHostname.SetHostname(hostname);
                return new ExecutableResult() { ExitCode = hostnameResult };
            }

            return new ExecutableResult() { ExitCode = "0" };
        }

Usage Example

        public void Setup()
        {
            xenNetworkInformation = MockRepository.GenerateMock<IXenNetworkInformation>();
            setNetworkInterface = MockRepository.GenerateMock<ISetNetworkInterface>();
            setNetworkRoutes = MockRepository.GenerateMock<ISetNetworkRoutes>();

            networkInterface = new NetworkInterface();
            network = new Network();
            network.Interfaces.Add("fakemac", networkInterface);
            command = new ResetNetwork(setNetworkInterface, xenNetworkInformation, setNetworkRoutes);
            xenNetworkInformation.Stub(x => x.Get()).Return(network);

            result = command.Execute(null);
        }