Beispiel #1
0
 public static void AddTarget(string hostName)
 {
     TMAPI.AddTarget(hostName);
 }
        public override bool DeployBuild(BuildNode Build, IDeploymentSession Callback, CancellationToken Token)
        {
            try
            {
                this.Build    = Build;
                this.Callback = Callback;
                this.Token    = Token;

                OrbisCtrlProc = new OrbisCtrl(this, Logger, Callback, Token);

                if (!ResetProgress())
                {
                    return(CheckCancelationRequestAndReport());
                }

                Build.Progress++;

                // Add PS4 to Neighborhood.
                ITarget Target = TargetManager.AddTarget(Address);

                SetMappedDirectory(Target);

                LogDeviceDetails(Target);

                Build.Progress++;

                if (Target.PowerStatus != ePowerStatus.POWER_STATUS_ON)
                {
                    Target.PowerOn();
                }

                if (!OrbisCtrlProc.Execute("pkill"))
                {
                    return(false);
                }

                int ExitCode = 0;
                while (!OrbisCtrlProc.HasExited(out ExitCode))
                {
                    if (Token.IsCancellationRequested)
                    {
                        OrbisCtrlProc.Kill();

                        Callback.OnBuildDeployedAborted(this, Build);

                        return(false);
                    }

                    Logger.Info(string.Format("Waiting for PS4 process to exit on PS4 device {0}", Address));
                }

                Build.Progress++;

                if (!InstallPackage())
                {
                    return(CheckCancelationRequestAndReport());
                }

                Build.Progress++;

                Callback.OnBuildDeployed(this, Build);
            }
            catch (Exception e)
            {
                Callback.OnBuildDeployedError(this, Build, e.Message);

                Logger.Error(string.Format("Failed to deploy build to PS4 device '{0}'. Ex: {1}", Address, e.Message));
            }
            return(false);
        }