Example #1
0
        private bool Initialize(string snapshot)
        {
            bool result = true;

            if (mTesting == false)
            {
                mBusy = true;

                // Refresh data in case the VM name has changed.....
                mData = VMInstanceData.SelectByIP(mData.IPAddress);

                // Stop the heartbeat timer because rolling it back might cause it to actually miss a heartbeat.
                StopHeartbeatTimer();
                PowerCLI powerCLI = PowerCLI.Instance(mNetworkCredentials);
                result = powerCLI.RollbackVM(mData.VMName, snapshot, mLogFile);
                if (result == false)
                {
                    DatabaseLog.Insert("Rollback failed on VM " + mData.VMName, "There might be an issue with PowerCLI. Please check the logs.", 1);
                }
                StartHeartbeatTimer();
                mBusy = false;
            }

            return(result);
        }
Example #2
0
        private bool CreateSnapshot(string snapshot)
        {
            if (snapshot.ToLower() == "service")
            {
                Log("Not allowed to create Service snapshot.", true);
                return(false);
            }

            bool result = true;

            if (mTesting == false)
            {
                Log("Creating snapshot " + snapshot, true);
                StopHeartbeatTimer();
                PowerCLI powerCLI = PowerCLI.Instance(mNetworkCredentials);
                result = powerCLI.CreateSnapshot(mData.VMName, snapshot, mLogFile);
                if (result == false)
                {
                    DatabaseLog.Insert("CreateSnapshot failed on VM " + mData.VMName, "There might be an issue with PowerCLI. Please check the logs.", 1);
                }
                StartHeartbeatTimer();
            }

            return(result);
        }
Example #3
0
        private void Print(string message, Level level)
        {
            // formating teks
            var dtnow = DateTime.Now;
            var text  = $"{dtnow.ToLongTimeString()} » {level} » {_header} » {message}";

            // ganti warna teks
            switch (level)
            {
            case Level.Info:
                Console.ForegroundColor = ConsoleColor.Cyan;
                break;

            case Level.Ignore:
                Console.ForegroundColor = ConsoleColor.Green;
                if (!ShowDebug)
                {
                    return;
                }
                break;

            case Level.Warning:
                Console.ForegroundColor = ConsoleColor.Yellow;
                break;

            case Level.Error:
                Console.ForegroundColor = ConsoleColor.Red;
                break;

            default:
                Console.ResetColor();
                if (!ShowDebug)
                {
                    return;
                }
                break;
            }

            // tampilkan log ke console
            Console.WriteLine(text.ToSingleLine());
            Console.ResetColor();

            // masukkan ke database
            var data = new LogData
            {
                DateTime = $"{dtnow.ToShortDateString()} {dtnow.ToLongTimeString()}",
                Level    = level.ToString(),
                Header   = _header,
                Message  = message
            };

            _db.Insert(data);
        }
Example #4
0
        private bool RebootVM()
        {
            bool result = true;

            if (mTesting == false)
            {
                // Refresh data in case the VM name has changed.....
                mData = VMInstanceData.SelectByIP(mData.IPAddress);

                Log("Rebooting VM " + mData.VMName);
                StopHeartbeatTimer();
                PowerCLI powerCLI = PowerCLI.Instance(mNetworkCredentials);
                result = powerCLI.Reboot(mData.VMName, mLogFile);
                if (result == false)
                {
                    DatabaseLog.Insert("Rebooting failed for VM " + mData.VMName, "There might be an issue with PowerCLI. Please check the logs.", 1);
                }
                StartHeartbeatTimer();
            }

            return(result);
        }