Exemple #1
0
 /*
  *  Clear environment transactions
  */
 public Task <string> StartClearEnvTransaction(IMachineInfo machine, GammaTXClearEnv clear_step)
 {
     return(Task.Run(() =>
     {
         var trx = GammaClientTXFactory.GetClearEnvTX(machine, clear_step);
         AddTransaction(trx);
         return StartTransactions(trx, machine, clear_step);
     }));
 }
Exemple #2
0
        private Task ClearEnvOnNodes(GammaTXClearEnv tx_code)
        {
            List <Task <string> > tasks = new List <Task <string> >();

            foreach (var machine in from m in NodeMgr.Machines where m.IsSelected && m.Alive == NodeState.Online select m)
            {
                tasks.Add(TxMgr.StartClearEnvTransaction(machine, tx_code));
            }
            return(Task.WhenAll(tasks));
        }
Exemple #3
0
        private void ClearEnv(GammaTXClearEnv tx_code)
        {
            OpResult = string.Empty;
            CanExec  = false;
            Task client_job = ClearEnvOnNodes(tx_code);

            client_job.GetAwaiter().OnCompleted(() =>
            {
                CanExec = true;
            });
        }
Exemple #4
0
        internal static GammaClientTransaction GetClearEnvTX(IMachineInfo machine, GammaTXClearEnv op_code)
        {
            var trx = new GammaClientTransaction()
            {
                Machine        = machine.MachineName,
                TX_TYPE        = GammaTransactionType.CLEARENV,
                TX_SUB_TYPE    = (int)op_code,
                TX_CONTENT     = string.Empty,
                TX_RESULT      = string.Empty,
                TX_RESULT_CODE = GammaTransactionRC.RUNNING,
            };

            GammaClientTXLogger.GetInstance().RegisterTransaction(trx);
            return(trx);
        }
Exemple #5
0
        private Task <string> StartTransactions(IGammaClientTransaction trx, IMachineInfo machine, GammaTXClearEnv clear_step)
        {
            trx.TransactionStarted();
            Task <string> task;

            if (clear_step != GammaTXClearEnv.REBOOT)
            {
                switch (clear_step)
                {
                case GammaTXClearEnv.REG:
                    task = GammaProxyFactory.GetCrsCleanerProxy(machine).RemoveOraKeysAsync();
                    break;

                case GammaTXClearEnv.GROUP:
                    task = GammaProxyFactory.GetCrsCleanerProxy(machine).RmOraGroupAsync();
                    break;

                case GammaTXClearEnv.FILE:
                    task = GammaProxyFactory.GetCrsCleanerProxy(machine).RemoveOraFilesAsync();
                    break;

                case GammaTXClearEnv.DISK:
                    task = GammaProxyFactory.GetCrsCleanerProxy(machine).CleanDiskAsync();
                    break;

                case GammaTXClearEnv.DRIVER:
                    task = GammaProxyFactory.GetCrsCleanerProxy(machine).RemoveDrvLtrAsync();
                    break;

                default:
                    task = GenerateCompletedTask(TX_RESULT_SUC);
                    break;
                }
                BindCmdTaskWithTranscation(task, trx);
            }
            else
            {
                /*
                 *  reboot node transaction no need to Bind, as it will always fails by its mean.
                 */
                var tmp = GammaProxyFactory.GetCrsCleanerProxy(machine).RestartComputerAsync();
                task = tmp.ContinueWith <string>((t) => {
                    trx.TransactionCompleted();
                    return(TX_RESULT_SUC);
                });
            }

            return(task);
        }