SenseNet / sensenet

Open Source Content Services Platform written in .NET
https://sensenet.com
GNU General Public License v2.0
173 stars 111 forks source link

Modify ChoiceField Options using snadmin #120

Open VargaJoe opened 7 years ago

VargaJoe commented 7 years ago

I tried to use EditFieldConfiguration for change Site languages options, but it threw the following exception messages.

With CDATA section: 13:41:11.8783 848 references and permissions updated. 13:41:11.9288 ApplicationException: Phase terminated with error: Error occured during importing, please review the log. at SenseNet.Packaging.PackageManager.ExecuteCurrentPhase(Manifest manifest, ExecutionContext executionContext) in C:\Dev\github\sensenet\src\ContentRepository\Packaging\PackageManager.cs:line 165 at SenseNet.Packaging.PackageManager.Execute(String packagePath, String targetPath, Int32 currentPhase, String[] parameters, TextWriter console) in C:\Dev\github\sensenet\src\ContentRepository\Packaging\PackageManager.cs:line 71 at SenseNet.Tools.SnAdmin.SnAdminRuntime.ExecutePhase(String packagePath, String targetDirectory, Int32 phase, String[] parameters, String logFilePath, Boolean help, Boolean schema) in C:\Dev\github\sensenet\src\Tools\SnAdminRuntime\SnAdminRuntime.cs:line 159 ---- Inner Exception: ApplicationException: Error occured during importing, please review the log. at SenseNet.Packaging.Steps.ImportBase.DoImport(String schemaPath, String fsPath, String repositoryPath) in C:\Dev\github\sensenet\src\ContentRepository\Packaging\Steps\ImportBase.cs:line 52 at SenseNet.Packaging.Steps.Import.Execute(ExecutionContext context) in C:\Dev\github\sensenet\src\ContentRepository\Packaging\Steps\Import.cs:line 35 at SenseNet.Packaging.PackageManager.ExecuteCurrentPhase(Manifest manifest, ExecutionContext executionContext) in C:\Dev\github\sensenet\src\ContentRepository\Packaging\PackageManager.cs:line 112

Without CDATA section: IfContentExists 14:20:59.0472 ApplicationException: Phase terminated with error: Unknown property. Step: SenseNet.Packaging.Steps.EditFieldConfiguration, name: Options. at SenseNet.Packaging.PackageManager.ExecuteCurrentPhase(Manifest manifest, ExecutionContext executionContext) in C:\Dev\github\sensenet\src\ContentRepository\Packaging\PackageManager.cs:line 165 at SenseNet.Packaging.PackageManager.Execute(String packagePath, String targetPath, Int32 currentPhase, String[] parameters, TextWriter console) in C:\Dev\github\sensenet\src\ContentRepository\Packaging\PackageManager.cs:line 71 at SenseNet.Tools.SnAdmin.SnAdminRuntime.ExecutePhase(String packagePath, String targetDirectory, Int32 phase, String[] parameters, String logFilePath, Boolean help, Boolean schema) in C:\Dev\github\sensenet\src\Tools\SnAdminRuntime\SnAdminRuntime.cs:line 159 ---- Inner Exception: InvalidPackageException: Unknown property. Step: SenseNet.Packaging.Steps.EditFieldConfiguration, name: Options. at SenseNet.Packaging.Steps.Step.GetProperty(String name) in C:\Dev\github\sensenet\src\ContentRepository\Packaging\Steps\Step.cs:line 172 at SenseNet.Packaging.Steps.Step.SetProperty(String name, XmlNode value, ExecutionContext executionContext) in C:\Dev\github\sensenet\src\ContentRepository\Packaging\Steps\Step.cs:line 97 at SenseNet.Packaging.Steps.Step.BuildStep(Int32 stepId, String stepName, Dictionary2 parameters, ExecutionContext executionContext) in C:\Dev\github\sensenet\src\ContentRepository\Packaging\Steps\Step.cs:line 72 at SenseNet.Packaging.PackageManager.ExecuteSteps(List1 stepElements, ExecutionContext executionContext) in C:\Dev\github\sensenet\src\ContentRepository\Packaging\PackageManager.cs:line 174 at SenseNet.Packaging.PackageManager.ExecuteCurrentPhase(Manifest manifest, ExecutionContext executionContext) in C:\Dev\github\sensenet\src\ContentRepository\Packaging\PackageManager.cs:line 112

tusmester commented 7 years ago

Joe tried to modify the Options xml node in every possible way: with or w/out CDATA, with or w/out the outer Options node, and it did not work.

The problem probably is that the step tries to modify the InnerXml of the Options node, but it encodes the provided xml fragment and treats it as a string...

Further investigation is required.

tusmester commented 3 years ago

I vote for icebox. We try to move towards auto-patching and not executing these full snadmin packages if possible.