Esempio n. 1
0
        public override CommandResult Execute(string parameter)
        {
            logger.Trace("ServiceCommand executes with parameter: " + parameter);

            minerConfig       = MinerConfig.GetInstance();
            serviceProvider   = ComposeServiceProvider(minerConfig.InstanceType);
            serviceInstanceId = minerConfig.InstanceId;

            logger.Trace($"InstanceType: {minerConfig.InstanceType}. InstanceId: {serviceInstanceId}");

            string operationName = parameter;

            switch (operationName)
            {
            case "start": return(Start());

            case "stop": return(Stop());

            case "install": return(Install());

            case "uninstall": return(Uninstall());

            case "detect": return(Detect());

            default:
                throw new TargetExecutionException(DaemonErrorCode.COMMAND_PARAM_ERROR, "Unknown operation type for service: " + operationName);
            }
        }
        public EthMinerService()
        {
            InitializeComponent();

            minerConfig = MinerConfig.GetInstance();

            namedPipeServerTask = new Task(() =>
            {
                NamedPipeServerMain();
            });
        }
Esempio n. 3
0
        public override CommandResult Execute(string parameter)
        {
            try
            {
                ServiceProvider serviceProvider = ComposeServiceProvider(MinerConfig.GetInstance().InstanceType);
                int             instanceId      = MinerConfig.GetInstance().InstanceId;

                serviceInstance = serviceProvider.AquaireInstance(instanceId);

                ReportOutput outputResult = new ReportOutput();
                outputResult.Status = ReportOutput.StatusEnum.Unknown;

                if (!serviceInstance.IsServiceExist())
                {
                    outputResult.Status = ReportOutput.StatusEnum.NotInstalled;
                }
                else if (!serviceInstance.IsServiceRunning())
                {
                    outputResult.Status = ReportOutput.StatusEnum.Stopped;
                }
                else
                {
                    // Retrieve the miner status from NamedPipe
                    QueryServiceStatusByNamedPipe(outputResult);
                }

                return(CommandResult.CreateResult(outputResult));
            }
            catch (TargetExecutionException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw new TargetExecutionException(DaemonErrorCode.UNKNOWN_ERROR, ex);
            }
        }