From 537e569a62c109352cb2cba31fd0e2a77a1ba555 Mon Sep 17 00:00:00 2001 From: Mihaela Stoica Date: Tue, 27 Jun 2017 13:48:54 +0100 Subject: [PATCH 01/10] CP-21161: Do not call the disk-space plugin cleanup functions on Ely and above hosts - Ensure that the disk-space plugin functions are not called on Ely or greater hosts, except for the 'get_avail_host_disk_space' function, which is still needed Signed-off-by: Mihaela Stoica --- .../Diagnostics/Checks/PatchPrecheckCheck.cs | 11 +++++--- .../PatchingWizard_UploadPage.cs | 2 +- .../GetDiskSpaceRequirementsAction.cs | 26 +++++++++++-------- 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/XenAdmin/Diagnostics/Checks/PatchPrecheckCheck.cs b/XenAdmin/Diagnostics/Checks/PatchPrecheckCheck.cs index deeb5a2f7..7700a96db 100644 --- a/XenAdmin/Diagnostics/Checks/PatchPrecheckCheck.cs +++ b/XenAdmin/Diagnostics/Checks/PatchPrecheckCheck.cs @@ -258,6 +258,7 @@ namespace XenAdmin.Diagnostics.Checks case "PATCH_PRECHECK_FAILED_OUT_OF_SPACE": System.Diagnostics.Trace.Assert(Helpers.CreamOrGreater(Host.Connection)); // If not Cream or greater, we shouldn't get this error + System.Diagnostics.Trace.Assert(!Helpers.ElyOrGreater(Host.Connection)); // If Ely or greater, we shouldn't get this error long.TryParse(found, out foundSpace); long.TryParse(required, out requiredSpace); @@ -287,9 +288,11 @@ namespace XenAdmin.Diagnostics.Checks return new HostOutOfSpaceProblem(this, Host, Update, diskSpaceReq); case "OUT_OF_SPACE": - if (Helpers.CreamOrGreater(Host.Connection)) + if (Helpers.CreamOrGreater(Host.Connection) && (Patch != null || Update != null)) { - var action = new GetDiskSpaceRequirementsAction(Host, Patch, true); + var action = Patch != null + ? new GetDiskSpaceRequirementsAction(Host, Patch, true) + : new GetDiskSpaceRequirementsAction(Host, Update.Name, Update.installation_size, true); try { action.RunExternal(action.Session); @@ -299,7 +302,9 @@ namespace XenAdmin.Diagnostics.Checks log.WarnFormat("Could not get disk space requirements"); } if (action.Succeeded) - return new HostOutOfSpaceProblem(this, Host, Patch, action.DiskSpaceRequirements); + return Patch != null + ? new HostOutOfSpaceProblem(this, Host, Patch, action.DiskSpaceRequirements) + : new HostOutOfSpaceProblem(this, Host, Update, action.DiskSpaceRequirements); } break; } diff --git a/XenAdmin/Wizards/PatchingWizard/PatchingWizard_UploadPage.cs b/XenAdmin/Wizards/PatchingWizard/PatchingWizard_UploadPage.cs index 094573afc..475f5e933 100644 --- a/XenAdmin/Wizards/PatchingWizard/PatchingWizard_UploadPage.cs +++ b/XenAdmin/Wizards/PatchingWizard/PatchingWizard_UploadPage.cs @@ -292,7 +292,7 @@ namespace XenAdmin.Wizards.PatchingWizard canUpload = true; diskSpaceRequirements = null; var diskSpaceActions = new List(); - foreach (Host master in SelectedMasters.Where(master => Helpers.CreamOrGreater(master.Connection))) + foreach (Host master in SelectedMasters.Where(master => Helpers.CreamOrGreater(master.Connection) && !Helpers.ElyOrGreater(master.Connection))) { AsyncAction action = null; switch (SelectedUpdateType) diff --git a/XenModel/Actions/Pool_Patch/GetDiskSpaceRequirementsAction.cs b/XenModel/Actions/Pool_Patch/GetDiskSpaceRequirementsAction.cs index 11f946955..6ca6484ae 100644 --- a/XenModel/Actions/Pool_Patch/GetDiskSpaceRequirementsAction.cs +++ b/XenModel/Actions/Pool_Patch/GetDiskSpaceRequirementsAction.cs @@ -33,6 +33,7 @@ using System; using System.Collections.Generic; using System.IO; using System.Text; +using XenAdmin.Core; using XenAPI; @@ -107,18 +108,21 @@ namespace XenAdmin.Actions // get required disk space long requiredDiskSpace = updateSize; - try + if (!Helpers.ElyOrGreater(Host)) // for ElyOrGreater we don't need to call get_required_space, because it will always return updateSize { - var args = new Dictionary(); - args.Add("size", updateSize.ToString()); + try + { + var args = new Dictionary(); + args.Add("size", updateSize.ToString()); - result = Host.call_plugin(Session, Host.opaque_ref, "disk-space", "get_required_space", args); - requiredDiskSpace = Convert.ToInt64(result); - } - catch (Failure failure) - { - log.WarnFormat("Plugin call disk-space.get_required_space on {0} failed with {1}", Host.Name, failure.Message); - requiredDiskSpace = 0; + result = Host.call_plugin(Session, Host.opaque_ref, "disk-space", "get_required_space", args); + requiredDiskSpace = Convert.ToInt64(result); + } + catch (Failure failure) + { + log.WarnFormat("Plugin call disk-space.get_required_space on {0} failed with {1}", Host.Name, failure.Message); + requiredDiskSpace = 0; + } } // get available disk space @@ -136,7 +140,7 @@ namespace XenAdmin.Actions // get reclaimable disk space (excluding current patch) long reclaimableDiskSpace = 0; - if (availableDiskSpace < requiredDiskSpace) + if (availableDiskSpace < requiredDiskSpace && !Helpers.ElyOrGreater(Host)) // for ElyOrGreater we shouldn't call get_reclaimable_disk_space { try { From b87a711b5f60e36dad3b21b0e61e0c8b03d4a5be Mon Sep 17 00:00:00 2001 From: Mihaela Stoica Date: Tue, 4 Jul 2017 16:27:14 +0100 Subject: [PATCH 02/10] Revert the changes to the XenAPI/Relations Signed-off-by: Mihaela Stoica --- XenModel/XenAPI/Relation.cs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/XenModel/XenAPI/Relation.cs b/XenModel/XenAPI/Relation.cs index 70d5c388d..7f05d0e20 100644 --- a/XenModel/XenAPI/Relation.cs +++ b/XenModel/XenAPI/Relation.cs @@ -153,10 +153,6 @@ namespace XenAPI new Relation("hosts", "host", "updates"), }); - relations.Add(typeof(Proxy_PCI), new Relation[] { - new Relation("virtual_functions", "PCI", "physical_function"), - }); - relations.Add(typeof(Proxy_Host), new Relation[] { new Relation("features", "Feature", "host"), new Relation("PGPUs", "PGPU", "host"), From 4878e5e3aced9c0a3bc050c607da3379e336da44 Mon Sep 17 00:00:00 2001 From: Gabor Apati-Nagy Date: Thu, 29 Jun 2017 11:44:17 +0100 Subject: [PATCH 03/10] CA-257922: Cancelling Server Status Report does not clean up Fixed code to do the cleanup even if the saving has been cancelled Signed-off-by: Gabor Apati-Nagy --- XenModel/Actions/ZipStatusReportAction.cs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/XenModel/Actions/ZipStatusReportAction.cs b/XenModel/Actions/ZipStatusReportAction.cs index 7fc31afae..252a6daaa 100644 --- a/XenModel/Actions/ZipStatusReportAction.cs +++ b/XenModel/Actions/ZipStatusReportAction.cs @@ -188,6 +188,8 @@ namespace XenAdmin.Actions } catch (CancelledException) { + CleanupFiles(extractTempDir, true); + throw; } catch (Exception exn) @@ -207,7 +209,7 @@ namespace XenAdmin.Actions } } - private void CleanupFiles(string extractTempDir) + private void CleanupFiles(string extractTempDir, bool deleteDestFile = false) { // We completed successfully: delete temporary files log.Debug("Deleting temporary files"); @@ -230,6 +232,18 @@ namespace XenAdmin.Actions { log.Warn("Could not delete temporary extracted files directory", exn); } + + try + { + if (deleteDestFile) + { + File.Delete(_destFile); + } + } + catch (Exception ex) + { + log.Warn("Could not delete destination file", ex); + } } /// From 8bdbb122c82f80dfabd14aa7485f9413d925baa6 Mon Sep 17 00:00:00 2001 From: Mihaela Stoica Date: Thu, 6 Jul 2017 14:09:07 +0100 Subject: [PATCH 04/10] CA-259276: Error when trying to install an update via JA XenCenter Signed-off-by: Mihaela Stoica --- XenAdmin/Branding.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/XenAdmin/Branding.cs b/XenAdmin/Branding.cs index df7ec20ea..31d8d2e46 100755 --- a/XenAdmin/Branding.cs +++ b/XenAdmin/Branding.cs @@ -57,7 +57,7 @@ namespace XenAdmin get { var s = SEARCH; - return s != "[" + "xensearch]" ? s : InvisibleMessages.XEN_SEARCH; + return s != "[" + "xensearch]" ? s.ToLowerInvariant() : InvisibleMessages.XEN_SEARCH.ToLowerInvariant(); } } @@ -66,7 +66,7 @@ namespace XenAdmin get { var s = UPDATE; - return s != "[" + "xsupdate]" ? s : InvisibleMessages.XEN_UPDATE; + return s != "[" + "xsupdate]" ? s.ToLowerInvariant() : InvisibleMessages.XEN_UPDATE.ToLowerInvariant(); } } @@ -75,7 +75,7 @@ namespace XenAdmin get { var s = UPDATEISO; - return s != "[" + "iso]" ? s : InvisibleMessages.ISO_UPDATE; + return s != "[" + "iso]" ? s.ToLowerInvariant() : InvisibleMessages.ISO_UPDATE.ToLowerInvariant(); } } From 37b925a274f120a295f621b85c45091daf848c55 Mon Sep 17 00:00:00 2001 From: Gabor Apati-Nagy Date: Tue, 11 Jul 2017 13:23:17 +0100 Subject: [PATCH 05/10] CA-258357: Modified the build script to build the MSI installer (#1686) * CA-258357: Modified the build script to build the MSI installer Signed-off-by: Gabor Apati-Nagy * CA-258357: Modified the build script to build the MSI installer Removed duplicate Signed-off-by: Gabor Apati-Nagy * CA-258357: Modified the build script to build the MSI installer Changed the autorun.inf file to point to the msi installer Signed-off-by: Gabor Apati-Nagy --- devtools/copyrightcheck/copyrightcheck.sh | 2 +- .../XenCenterSetupBootstrapper.xml | 45 -------------- .../XenCenterSetupBootstrapper_l10n.xml | 62 ------------------- mk/ISO_files/AUTORUN.INF | 2 +- mk/build-installers.sh | 18 +----- mk/package-and-sign.sh | 5 -- mk/re-branding.sh | 4 -- mk/xenadmin-build.sh | 13 +--- 8 files changed, 7 insertions(+), 144 deletions(-) delete mode 100644 dotNetInstaller/XenCenterSetupBootstrapper.xml delete mode 100644 dotNetInstaller/XenCenterSetupBootstrapper_l10n.xml diff --git a/devtools/copyrightcheck/copyrightcheck.sh b/devtools/copyrightcheck/copyrightcheck.sh index 63dea9b77..c0b9093e4 100644 --- a/devtools/copyrightcheck/copyrightcheck.sh +++ b/devtools/copyrightcheck/copyrightcheck.sh @@ -37,7 +37,7 @@ echo "INFO: copyrightcheck" dir="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" src="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )/../.." && pwd )" -output=$( /usr/bin/find "$src/XenAdmin" "$src/XenModel" "$src/XenOvfApi" "$src/XenOvfTransport" "$src/mk" "$src/Branding" "$src/XenServerHealthCheckTests" "$src/devtools" "$src/dotNetInstaller" -not -ipath '*obj/*' -type f \( -iname \*.cs -o -iname \*.sh \) -not -ipath '*Designer*' -exec grep -L "Copyright (c) Citrix Systems, Inc." {} \;) +output=$( /usr/bin/find "$src/XenAdmin" "$src/XenModel" "$src/XenOvfApi" "$src/XenOvfTransport" "$src/mk" "$src/Branding" "$src/XenServerHealthCheckTests" "$src/devtools" -not -ipath '*obj/*' -type f \( -iname \*.cs -o -iname \*.sh \) -not -ipath '*Designer*' -exec grep -L "Copyright (c) Citrix Systems, Inc." {} \;) echo "$output" | sed -e "s,$src/,,g" diff --git a/dotNetInstaller/XenCenterSetupBootstrapper.xml b/dotNetInstaller/XenCenterSetupBootstrapper.xml deleted file mode 100644 index 044100859..000000000 --- a/dotNetInstaller/XenCenterSetupBootstrapper.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dotNetInstaller/XenCenterSetupBootstrapper_l10n.xml b/dotNetInstaller/XenCenterSetupBootstrapper_l10n.xml deleted file mode 100644 index 19e477e1b..000000000 --- a/dotNetInstaller/XenCenterSetupBootstrapper_l10n.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mk/ISO_files/AUTORUN.INF b/mk/ISO_files/AUTORUN.INF index dd47adf66..dc4b60a79 100644 --- a/mk/ISO_files/AUTORUN.INF +++ b/mk/ISO_files/AUTORUN.INF @@ -29,5 +29,5 @@ ; SUCH DAMAGE. [AutoRun] -shellexecute=[XenCenter]Setup.exe +shellexecute=[XenCenter].msi icon=[XenCenter].ico diff --git a/mk/build-installers.sh b/mk/build-installers.sh index 075bada7d..be87b6b79 100644 --- a/mk/build-installers.sh +++ b/mk/build-installers.sh @@ -125,20 +125,8 @@ cd ${WIX} && wscript WiSubStg.vbs ${BRANDING_BRAND_CONSOLE}.l10n.msi zh-tw.mst 1 #sign again the combined msi because it seems the embedding breaks the signature cd ${WIX} && chmod a+rw ${BRANDING_BRAND_CONSOLE}.l10n.msi && ${REPO}/sign.bat ${BRANDING_BRAND_CONSOLE}.l10n.msi -#create bundle exe installers - msi installers embedded -cp ${WIX}/out${BRANDING_BRAND_CONSOLE}/${BRANDING_BRAND_CONSOLE}.msi ${DOTNETINST} -cp ${WIX}/${BRANDING_BRAND_CONSOLE}.l10n.msi ${DOTNETINST} - -cd ${DOTNETINST} && ./InstallerLinker.exe "/Output:${BRANDING_BRAND_CONSOLE}Setup.exe" "/Template:dotNetInstaller.exe" "/Configuration:XenCenterSetupBootstrapper.xml" "/e+" "/v+" -cd ${DOTNETINST} && ./InstallerLinker.exe "/Output:${BRANDING_BRAND_CONSOLE}Setup.l10n.exe" "/Template:dotNetInstaller.exe" "/Configuration:XenCenterSetupBootstrapper_l10n.xml" "/e+" "/v+" - -sign_files() -{ - for file in $1 - do - chmod a+rw ${file} && ${REPO}/sign.bat ${file} - done -} -sign_files "${BRANDING_BRAND_CONSOLE}Setup.exe ${BRANDING_BRAND_CONSOLE}Setup.l10n.exe" +#copy the msi installers +cp ${WIX}/out${BRANDING_BRAND_CONSOLE}/${BRANDING_BRAND_CONSOLE}.msi ${OUTPUT_DIR} +cp ${WIX}/${BRANDING_BRAND_CONSOLE}.l10n.msi ${OUTPUT_DIR} set +u diff --git a/mk/package-and-sign.sh b/mk/package-and-sign.sh index d71764dc2..34ef61aee 100644 --- a/mk/package-and-sign.sh +++ b/mk/package-and-sign.sh @@ -36,7 +36,6 @@ ROOT="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )/../.." && pwd )" REPO="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )/.." && pwd )" OUTPUT_DIR=${ROOT}/output -DOTNETINST=${REPO}/dotNetInstaller BRANDING_BRAND_CONSOLE=[XenCenter] BRANDING_COMPANY_NAME_SHORT=[Citrix] @@ -63,10 +62,6 @@ fi echo "INFO: Build and sign the installers..." . ${REPO}/mk/build-installers.sh -#collect output and extra files to the OUTPUT_DIR -cp ${DOTNETINST}/${BRANDING_BRAND_CONSOLE}Setup.exe ${OUTPUT_DIR} -cp ${DOTNETINST}/${BRANDING_BRAND_CONSOLE}Setup.l10n.exe ${OUTPUT_DIR} - echo "INFO: Build phase succeeded at " date diff --git a/mk/re-branding.sh b/mk/re-branding.sh index 70c33a754..6e3b77614 100755 --- a/mk/re-branding.sh +++ b/mk/re-branding.sh @@ -162,10 +162,6 @@ rebranding_global ${REPO}/XenOvfApi/app.config RESX_rebranding ${REPO}/XenOvfTransport/Messages rebranding_global ${REPO}/XenOvfTransport/app.config -#dotNetInstaller -rebranding_global ${REPO}/dotNetInstaller/XenCenterSetupBootstrapper.xml -rebranding_global ${REPO}/dotNetInstaller/XenCenterSetupBootstrapper_l10n.xml - #mk rebranding_global ${REPO}/mk/ISO_files/AUTORUN.INF rebranding_global ${REPO}/mk/package-and-sign.sh diff --git a/mk/xenadmin-build.sh b/mk/xenadmin-build.sh index c7fde8d4d..5dc990b45 100755 --- a/mk/xenadmin-build.sh +++ b/mk/xenadmin-build.sh @@ -120,13 +120,6 @@ version_installer() version_installer ${WIX}/XenCenter.wxs version_installer ${WIX}/XenCenter.l10n.wxs -#copy dotNetInstaller files -DOTNETINST=${REPO}/dotNetInstaller -cd ${DOTNETINST} -DOTNETINSTALLER_FILEPATH="$(which dotNetInstaller.exe)" -DOTNETINSTALLER_DIRPATH=${DOTNETINSTALLER_FILEPATH%/*} -cp -R "${DOTNETINSTALLER_DIRPATH}"/* ${DOTNETINST} - echo "INFO: Collecting unsigned files..." mkdir_clean ${OUTPUT_DIR}/XenAdminUnsigned cp -R ${REPO}/* ${OUTPUT_DIR}/XenAdminUnsigned @@ -156,22 +149,20 @@ cp ${REPO}/XenAdmin/bin/Release/{CommandLib.pdb,${BRANDING_BRAND_CONSOLE}.pdb,Xe ISO_DIR=${SCRATCH_DIR}/iso-staging mkdir_clean ${ISO_DIR} -install -m 755 ${DOTNETINST}/${BRANDING_BRAND_CONSOLE}Setup.exe ${ISO_DIR}/${BRANDING_BRAND_CONSOLE}Setup.exe +install -m 755 ${OUTPUT_DIR}/${BRANDING_BRAND_CONSOLE}.msi ${ISO_DIR}/${BRANDING_BRAND_CONSOLE}.msi cp ${REPO}/mk/ISO_files/AUTORUN.INF ${ISO_DIR} cp ${REPO}/Branding/Images/AppIcon.ico ${ISO_DIR}/${BRANDING_BRAND_CONSOLE}.ico #CP-18097 tar cjf ${OUTPUT_DIR}/${BRANDING_BRAND_CONSOLE}.installer.tar.bz2 -C ${ISO_DIR} . -install -m 755 ${DOTNETINST}/${BRANDING_BRAND_CONSOLE}Setup.exe ${OUTPUT_DIR}/${BRANDING_BRAND_CONSOLE}Setup.exe L10N_ISO_DIR=${SCRATCH_DIR}/l10n-iso-staging mkdir_clean ${L10N_ISO_DIR} # -o root -g root -install -m 755 ${DOTNETINST}/${BRANDING_BRAND_CONSOLE}Setup.l10n.exe ${L10N_ISO_DIR}/${BRANDING_BRAND_CONSOLE}Setup.exe +install -m 755 ${OUTPUT_DIR}/${BRANDING_BRAND_CONSOLE}.l10n.msi ${L10N_ISO_DIR}/${BRANDING_BRAND_CONSOLE}.msi cp ${REPO}/mk/ISO_files/AUTORUN.INF ${L10N_ISO_DIR} cp ${REPO}/Branding/Images/AppIcon.ico ${L10N_ISO_DIR}/${BRANDING_BRAND_CONSOLE}.ico #CP-18097 tar cjf ${OUTPUT_DIR}/${BRANDING_BRAND_CONSOLE}.installer.l10n.tar.bz2 -C ${L10N_ISO_DIR} . -install -m 755 ${DOTNETINST}/${BRANDING_BRAND_CONSOLE}Setup.l10n.exe ${OUTPUT_DIR}/${BRANDING_BRAND_CONSOLE}Setup.l10n.exe #now package the pdbs cd ${OUTPUT_DIR} && tar cjf XenCenter.Symbols.tar.bz2 --remove-files *.pdb From 94be8f0f016e7d1560a24cc937e363c6e1f0b1c3 Mon Sep 17 00:00:00 2001 From: Gabor Apati-Nagy Date: Tue, 11 Jul 2017 17:05:24 +0100 Subject: [PATCH 06/10] CA-258357: Modified the build script to build the MSI installer Added a download link Signed-off-by: Gabor Apati-Nagy --- WixInstaller/XenCenter.l10n.diff | 2 +- WixInstaller/XenCenter.wxs | 2 +- WixInstaller/en-us.wxl | 2 +- WixInstaller/ja-jp.wxl | 2 +- WixInstaller/zh-cn.wxl | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/WixInstaller/XenCenter.l10n.diff b/WixInstaller/XenCenter.l10n.diff index f18c4c449..a0970b2b5 100644 --- a/WixInstaller/XenCenter.l10n.diff +++ b/WixInstaller/XenCenter.l10n.diff @@ -210,7 +210,7 @@ -- +- + diff --git a/WixInstaller/XenCenter.wxs b/WixInstaller/XenCenter.wxs index 52bd17ecc..027b22d79 100644 --- a/WixInstaller/XenCenter.wxs +++ b/WixInstaller/XenCenter.wxs @@ -310,7 +310,7 @@ - + diff --git a/WixInstaller/en-us.wxl b/WixInstaller/en-us.wxl index 31625d971..0c79d4452 100644 --- a/WixInstaller/en-us.wxl +++ b/WixInstaller/en-us.wxl @@ -11,7 +11,7 @@ [XenServer] Update File [XenServer] OEM Update File [XenCenter] Saved Search - .NET Framework 4 is required for this installation. + Microsoft .NET Framework 4.6 or later is required for this installation. Please install it from: https://www.microsoft.com/net/download/framework README.TXT Enables monitoring of the health of your Citrix XenServer pools by periodically uploading data from the servers to Citrix Insight Services. Enables monitoring of the health of your Citrix XenServer pools. diff --git a/WixInstaller/ja-jp.wxl b/WixInstaller/ja-jp.wxl index 720247a15..5da970555 100644 --- a/WixInstaller/ja-jp.wxl +++ b/WixInstaller/ja-jp.wxl @@ -11,7 +11,7 @@ [XenServer] アップデート ファイル [XenServer] OEM アップデート ファイル [XenCenter] 保存済みの検索 - このインストールには .NET Framework 4 が必要です。 + このインストールには .NET Framework 4.6 が必要です。 README.TXT サーバーから Citrix Insight Services に定期的にデータをアップロードすることにより、Citrix XenServer プールのヘルス状態の監視を有効にします。 Citrix XenServer プールのヘルス状態の監視を有効にします。 diff --git a/WixInstaller/zh-cn.wxl b/WixInstaller/zh-cn.wxl index 78f48deef..354366ab1 100644 --- a/WixInstaller/zh-cn.wxl +++ b/WixInstaller/zh-cn.wxl @@ -11,7 +11,7 @@ [XenServer] 更新文件 [XenServer] OEM 更新文件 [XenCenter] 保存的搜索 - 此安装需要 .NET Framework 4。 + 此安装需要 .NET Framework 4.6。 声明.TXT 通过定期将数据从服务器上载到 Citrix Insight Services,实现对 Citrix XenServer 池的运行状况监视。 允许监视 Citrix XenServer 池的运行状况。 From 04fbadb1b77856bfb24b85e9509defaa8bedf17d Mon Sep 17 00:00:00 2001 From: Mihaela Stoica Date: Tue, 11 Jul 2017 19:58:38 +0100 Subject: [PATCH 07/10] CA-258357: Create the output directory before trying to write into it --- mk/package-and-sign.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mk/package-and-sign.sh b/mk/package-and-sign.sh index 34ef61aee..74fa99b93 100644 --- a/mk/package-and-sign.sh +++ b/mk/package-and-sign.sh @@ -52,6 +52,8 @@ mkdir_clean() rm -rf $1 && mkdir -p $1 } +mkdir_clean ${OUTPUT_DIR} + #overwrite sign file SIGN_FILE=${ROOT}/sign.bat if [ -f ${SIGN_FILE} ]; then From e12daf5a00538d2a9cec56d9e6efedffcbe17f8b Mon Sep 17 00:00:00 2001 From: Mihaela Stoica Date: Thu, 13 Jul 2017 14:20:43 +0100 Subject: [PATCH 08/10] CA-259659: Revise the update homogeneity pool join rule (#1692) * CA-259659: Revise the update homogeneity pool join rule - only check the updates on the master and the new slave Signed-off-by: Mihaela Stoica * CA-259659: Revise the update homogeneity pool join rule - simplify the algorithm that checks the updates on the master and the slave Signed-off-by: Mihaela Stoica --- XenModel/PoolJoinRules.cs | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/XenModel/PoolJoinRules.cs b/XenModel/PoolJoinRules.cs index e5252c202..6d186ae3c 100644 --- a/XenModel/PoolJoinRules.cs +++ b/XenModel/PoolJoinRules.cs @@ -399,7 +399,7 @@ namespace XenAdmin.Core /// /// Check whether all updates that request homogeneity are in fact homogeneous - /// across the proposed pool. This is used in CanJoinPool and prevents the pool from being created + /// between master and slave. This is used in CanJoinPool and prevents the pool from being created /// private static bool DifferentHomogeneousUpdates(Host slave, Host master) { @@ -409,23 +409,10 @@ namespace XenAdmin.Core if (!Helpers.ElyOrGreater(slave) || !Helpers.ElyOrGreater(master)) return false; - List allHosts = new List(master.Connection.Cache.Hosts); - allHosts.Add(slave); + var masterUpdates = master.AppliedUpdates().Where(update => update.enforce_homogeneity).Select(update => update.uuid).ToList(); + var slaveUpdates = slave.AppliedUpdates().Where(update => update.enforce_homogeneity).Select(update => update.uuid).ToList(); - // Collect the updates that should be homogeneous - var homogeneousUpdates = new Dictionary(); - foreach (var host in allHosts) - { - foreach (var update in (host.AppliedUpdates().Where(update => update.enforce_homogeneity))) - { - if (homogeneousUpdates.ContainsKey(update.uuid)) - homogeneousUpdates[update.uuid]++; - else - homogeneousUpdates.Add(update.uuid, 1); - } - } - - return homogeneousUpdates.Any(update => update.Value != allHosts.Count); + return masterUpdates.Count != slaveUpdates.Count || !masterUpdates.All(slaveUpdates.Contains); } private static bool SameLinuxPack(Host slave, Host master) From 8209633f3cf5f565af87a9f78ded412b7d21d4be Mon Sep 17 00:00:00 2001 From: Ji Jiang Date: Mon, 17 Jul 2017 12:42:22 +0100 Subject: [PATCH 09/10] CA-210164: Fix the time format displays differently on "Health Check Enrollment" window The time format displays differently on "Health Check Enrollment" window after upload a Health Check report Sign off by: Ji Jiang --- XenModel/Messages.zh-CN.resx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/XenModel/Messages.zh-CN.resx b/XenModel/Messages.zh-CN.resx index e656adcdd..b76bad549 100755 --- a/XenModel/Messages.zh-CN.resx +++ b/XenModel/Messages.zh-CN.resx @@ -3601,7 +3601,7 @@ yyyy年M月d日 - HH:mm + tt h:mm HH:mm:ss From 257a6daef2646cd7885374697755f783f8422258 Mon Sep 17 00:00:00 2001 From: Konstantina Chremmou Date: Wed, 19 Jul 2017 09:22:27 +0100 Subject: [PATCH 10/10] Removed duplicate resource. Signed-off-by: Konstantina Chremmou --- .../XenAPI/FriendlyErrorNames.Designer.cs | 108 ++++++++++++++++-- XenModel/XenAPI/FriendlyErrorNames.resx | 11 +- 2 files changed, 103 insertions(+), 16 deletions(-) diff --git a/XenModel/XenAPI/FriendlyErrorNames.Designer.cs b/XenModel/XenAPI/FriendlyErrorNames.Designer.cs index 674b8e5f2..6b29c7d83 100644 --- a/XenModel/XenAPI/FriendlyErrorNames.Designer.cs +++ b/XenModel/XenAPI/FriendlyErrorNames.Designer.cs @@ -132,6 +132,24 @@ namespace XenAPI { } } + /// + /// Looks up a localized string similar to The host failed to enable external authentication.. + /// + public static string AUTH_ENABLE_FAILED_INVALID_ACCOUNT { + get { + return ResourceManager.GetString("AUTH_ENABLE_FAILED_INVALID_ACCOUNT", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The host failed to enable external authentication.. + /// + public static string AUTH_ENABLE_FAILED_INVALID_OU { + get { + return ResourceManager.GetString("AUTH_ENABLE_FAILED_INVALID_OU", resourceCulture); + } + } + /// /// Looks up a localized string similar to Failed to enable external authentication, permission on the AD server was denied.. /// @@ -2148,6 +2166,15 @@ namespace XenAPI { } } + /// + /// Looks up a localized string similar to This host has no PIF on the given network.. + /// + public static string PIF_NOT_PRESENT { + get { + return ResourceManager.GetString("PIF_NOT_PRESENT", resourceCulture); + } + } + /// /// Looks up a localized string similar to Operation cannot proceed while a tunnel exists on this interface.. /// @@ -2256,6 +2283,15 @@ namespace XenAPI { } } + /// + /// Looks up a localized string similar to Failed to enable external authentication, the supplied account was invalid.. + /// + public static string POOL_AUTH_ENABLE_FAILED_INVALID_ACCOUNT { + get { + return ResourceManager.GetString("POOL_AUTH_ENABLE_FAILED_INVALID_ACCOUNT", resourceCulture); + } + } + /// /// Looks up a localized string similar to The pool failed to enable external authentication.. /// @@ -2291,15 +2327,6 @@ namespace XenAPI { return ResourceManager.GetString("POOL_AUTH_ENABLE_FAILED_WRONG_CREDENTIALS", resourceCulture); } } - - /// - /// Looks up a localized string similar to Failed to enable external authentication, the supplied account was invalid.. - /// - public static string POOL_AUTH_ENABLE_FAILED_INVALID_ACCOUNT { - get { - return ResourceManager.GetString("POOL_AUTH_ENABLE_FAILED_INVALID_ACCOUNT", resourceCulture); - } - } /// /// Looks up a localized string similar to The external authentication configuration of the server joining the pool must match the pool's own external authentication configuration.. @@ -2355,6 +2382,24 @@ namespace XenAPI { } } + /// + /// Looks up a localized string similar to The host joining the pool must have the same API version as the pool master.. + /// + public static string POOL_JOINING_HOST_MUST_HAVE_SAME_API_VERSION { + get { + return ResourceManager.GetString("POOL_JOINING_HOST_MUST_HAVE_SAME_API_VERSION", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The host joining the pool must have the same database schema as the pool master.. + /// + public static string POOL_JOINING_HOST_MUST_HAVE_SAME_DB_SCHEMA { + get { + return ResourceManager.GetString("POOL_JOINING_HOST_MUST_HAVE_SAME_DB_SCHEMA", resourceCulture); + } + } + /// /// Looks up a localized string similar to The server joining the pool must have the same product version as the pool master.. /// @@ -3818,6 +3863,33 @@ namespace XenAPI { } } + /// + /// Looks up a localized string similar to Unable to activate changed block tracking.. + /// + public static string SR_BACKEND_FAILURE_457 { + get { + return ResourceManager.GetString("SR_BACKEND_FAILURE_457", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unable to deactivate changed block tracking.. + /// + public static string SR_BACKEND_FAILURE_458 { + get { + return ResourceManager.GetString("SR_BACKEND_FAILURE_458", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Changed block tracking log is in an inconsistent state.. + /// + public static string SR_BACKEND_FAILURE_459 { + get { + return ResourceManager.GetString("SR_BACKEND_FAILURE_459", resourceCulture); + } + } + /// /// Looks up a localized string similar to The VDI is not available. /// @@ -4511,6 +4583,15 @@ namespace XenAPI { } } + /// + /// Looks up a localized string similar to Cannot contact the other host using TLS on the specified address and port. + /// + public static string TLS_CONNECTION_FAILED { + get { + return ResourceManager.GetString("TLS_CONNECTION_FAILED", resourceCulture); + } + } + /// /// Looks up a localized string similar to The request was rejected because the server is too busy.. /// @@ -5159,6 +5240,15 @@ namespace XenAPI { } } + /// + /// Looks up a localized string similar to VM cannot be resumed because it has no suspend VDI. + /// + public static string VM_HAS_NO_SUSPEND_VDI { + get { + return ResourceManager.GetString("VM_HAS_NO_SUSPEND_VDI", resourceCulture); + } + } + /// /// Looks up a localized string similar to This operation could not be performed because the VM has one or more PCI devices passed through.. /// diff --git a/XenModel/XenAPI/FriendlyErrorNames.resx b/XenModel/XenAPI/FriendlyErrorNames.resx index 0b39ae067..98c090721 100644 --- a/XenModel/XenAPI/FriendlyErrorNames.resx +++ b/XenModel/XenAPI/FriendlyErrorNames.resx @@ -112,10 +112,10 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 An activation key can only be applied when the edition is set to 'free'. @@ -859,7 +859,7 @@ Failed to enable external authentication, a duplicate hostname was detected. - The pool failed to enable external authentication. + Failed to enable external authentication, the supplied account was invalid. The pool failed to enable external authentication. @@ -873,9 +873,6 @@ Failed to enable external authentication, the supplied credentials were invalid. - - Failed to enable external authentication, the supplied account was invalid. - The external authentication configuration of the server joining the pool must match the pool's own external authentication configuration. @@ -2096,4 +2093,4 @@ Authorized Roles: {1} The server failed to unmarshal the XMLRPC message; it was expecting one element and received something else. - + \ No newline at end of file