Esempio n. 1
0
        /* Setup the ENV */
        public string UploadPackages(string packagesFolder, string userName, string password)
        {
            ctx.Alw(string.Format("Setup Linux OMI Environment"));
            string osPackageFilesPath = "BuildPlatform_PackageFiles.txt";
            string PackagesFolder     = GetValueByKey("PackagesFolder");
            string buildNumber        = GetValueByKey("BuildNumber");
            string providerFolder     = GetValueByKey("ProviderFolder");
            //string macMachine = GetValueByKey("macMachine");
            string errorMessage = string.Empty;


            string summaryResult = "<?xml version=\"1.0\" encoding=\"utf-16\"?><rootResult xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><LinuxResults>";

            foreach (string from in Linuxs)
            {
                SshHelper rootssh = new SshHelper(from, userName, password);

                //Upload GetOS.sh to linux and run the script
                string osname = GetOSName(rootssh);

                //Uninstall OMI
                ctx.Alw(string.Format("Uninstall OMI on {0}, osname:{1}", from, osname));
                UninstallOMIPackage(rootssh, osname);

                ctx.Alw(string.Format("Setup Negotiate and Kerberos authentication on Linux Server after install OMI on {0}, osname:{1}", from, osname));

                //Build Platform
                string buildPlatform = GetBuildPlatformByOSName(osname);
                ctx.Alw(string.Format("GetBuildPlatformByOSName OMI on {0}, osname:{1},buildPlatform:{2}", from, osname, buildPlatform));
                if (!File.Exists(osPackageFilesPath))
                {
                    this.Abort(ctx, "Need file:" + osPackageFilesPath);
                }

                rootssh.ExecuteCommand("openssl version");
                string opensslversion = rootssh.Result;

                //Upload Packages "share.tar"
                string linuxFile = UploadPythonPackage(rootssh, PackagesFolder, buildPlatform, osname, opensslversion, buildNumber);



                //Install OMI
                InstallOMIPackage(rootssh, osname, linuxFile);

                //Register OMI provider
                ctx.Alw(string.Format("Setup Linux OMI Providers"));
                string provierPath = Path.Combine(providerFolder, buildPlatform);
                UploadRegisterProvider(provierPath, buildPlatform, opensslversion, userName, password, from);
                summaryResult += "<LinuxResult><name>" + from + "</name><result><![CDATA[" + rootssh.Result + "]]></result></LinuxResult>";


                rootssh.VerifyExecuteCommand("/opt/omi/bin/service_control restart");
            }

            summaryResult += "</LinuxResults></rootResult>";

            if (!string.IsNullOrEmpty(errorMessage))
            {
                this.Fail(ctx, errorMessage);
            }

            return(summaryResult);
        }