예제 #1
0
        public result rebootAndStartReadingBIOSConfiguration(hostStateManager_core parent, string nodeIp, ManualResetEvent signalOnStart)
        {
            lock (_threads)
            {
                if (_threads.ContainsKey(nodeIp))
                {
                    if (!_threads[nodeIp].isFinished)
                    {
                        throw new Exception("Blade " + nodeIp + " has not yet finished a previous operation");
                    }
                    _threads.Remove(nodeIp);
                }
                mockedBiosThreadParams newParams = new mockedBiosThreadParams
                {
                    isFinished    = false,
                    nodeIP        = nodeIp,
                    db            = parent.db,
                    deadline      = DateTime.Now + biosOperationTime,
                    signalOnStart = signalOnStart
                };
                _threads.Add(nodeIp, newParams);

                Thread newThread = new Thread(mockedBiosThread)
                {
                    Name = "Mocked BIOS deployment thread"
                };
                newThread.Start(newParams);

                return(new result(resultCode.success));
            }
        }
예제 #2
0
 public result rebootAndStartWritingBIOSConfiguration(hostStateManager_core hostManager, string bladeIP, string biosXML, ManualResetEvent signalOnStartComplete)
 {
     _hostManager = hostManager;
     return(rebootAndStartPerformingBIOSOperation(bladeIP, biosXML, setBIOS, signalOnStartComplete));
 }