-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/34356/
-----------------------------------------------------------
Review request for Ambari and Oleg Nechiporenko.
Bugs: AMBARI-11216
https://issues.apache.org/jira/browse/AMBARI-11216
Repository: ambari
Description
-------
{{App.ServiceConfigProperty}} class has this property called {{defaultValue}}
which is overloaded and confusing. We want to refactor it into distinct
properties called {{savedValue}} and {{recommendedValue}}.
*Background*
Originally this property represented the default value provided by the
{{/api/v1/stacks}} endpoint so that when installing cluster the {{value}} could
be accurately populated. Later to support the _Undo_ action we put the values
saved in {{/api/v1/clusters/c1/configurations}} into the same {{defaultValue}}
property. So if {{/api/v1/stacks}} had value '1', and user saved '2', then
{{defaultValue}} would become '2'. If ever {{value}} differed from
{{defaultValue}}, then _Undo_ action and other logics would trigger.
*Problem*
With the increasing usage of {{/recommendations}} endpoint for config's dynamic
values and value-attributes, the {{defaultValue}} is getting complex to
understand and comprehend. We generally tend to update {{defaultValue}}
whenever {{value}} is updated - which is hard to explain. For example in the
add-service wizard we [suppress any updates to
core-site.xml|https://github.com/apache/ambari/blob/trunk/ambari-web/app/controllers/wizard/step8_controller.js#L864]
because we cannot tell when core-site.xml configs were changed from what is
saved on server.
*Proposal*
Each config should have 3 values, as they are 3 different entities:
# {{value}} - Represents the value shown in UI only to the user
# {{savedValue}} - Represents the value saved in Ambari DB in
{{/api/v1/clusters/c1/configurations}}. Should only be set when loading configs
from API.
# {{recommendedValue}} - Represents the value either provided by
{{/api/v1/stacks}} or by {{/recommendations}}.
This will cleanly differentiate the purpose of each variable. This will have an
effect on the logic used like {{#isNotDefaultValue}} and {{#isOverrideChanged}}
etc.
Undo action should be whenever {{value}} != {{savedValue}}.
Set recommended action should be whenever {{value}} != {{recommendedValue}}
Add-service wizard should basically save only those config-types which have
{{value}} != {{savedValue}} etc.
The change might be as simple as renaming {{defaultValue}} to {{savedValue}},
but the semantics will be clearer to understand and code.
Diffs
-----
ambari-web/app/controllers/main/admin/highAvailability/nameNode/step3_controller.js
83b3ee704082692da05f6bd8689fe4040160b85c
ambari-web/app/controllers/main/admin/highAvailability/resourceManager/step3_controller.js
7a2e250b84e12ee4248cd18207f12c006d61c73f
ambari-web/app/controllers/main/admin/kerberos.js
702d585faac40951d8720293dd6c18ebec6d9255
ambari-web/app/controllers/main/admin/kerberos/step4_controller.js
47a41078b4094374a12e6fd8bb10e54722d6c9fd
ambari-web/app/controllers/main/service/info/configs.js
abd7048f7435492ea30a18db2f325f95f3dafbb3
ambari-web/app/controllers/wizard.js 22d3bbcd4773fb886794a926330f3cb5d2db481a
ambari-web/app/controllers/wizard/step7_controller.js
bc716b510fa3f505f006e64de039d259f4e5b9d9
ambari-web/app/controllers/wizard/step8_controller.js
256972368dfc0ae99afef96cd40f12d3400f041a
ambari-web/app/data/BIGTOP/site_properties.js
a8109b5c905bcbaf55d3dae847907431c3d2a6d8
ambari-web/app/data/HDP2.2/site_properties.js
41861a7e2ec5b3f87baeb52669c98611fce0c40b
ambari-web/app/data/HDP2.3/site_properties.js
e46d600dc747e5cc813ca4c2b4f28c054a51e53b
ambari-web/app/data/HDP2/custom_configs.js
ba1376b77e32c593a484583fd0560f843d9fc643
ambari-web/app/data/HDP2/ha_properties.js
6599f77cd85727402b74618b83f0455f3d9e8f8d
ambari-web/app/data/HDP2/rm_ha_properties.js
ef77b1e81d8ebc8710385893190ff0f8efca6a3d
ambari-web/app/data/HDP2/secure_properties.js
2bdb4baee2e10aeae15b5a4a90e5b4673c866afe
ambari-web/app/data/HDP2/site_properties.js
e818799478195e00dfddd1a2dfb5b71097393cca
ambari-web/app/data/PHD/site_properties.js
9a2aa4b62210a2fa9177c233e95e591a8edfb506
ambari-web/app/mappers/configs/config_versions_mapper.js
aad5a3b2f683ccf220eff4eb0a94a4f9aea23ca8
ambari-web/app/mappers/configs/stack_config_properties_mapper.js
3d24df8be42c68a4c3370b4365590d5026a0a54c
ambari-web/app/messages.js a93ab1f6ab4cf21a09384c00c8c01aad991ffab2
ambari-web/app/mixins/common/configs/configs_saver.js
944133bd5688f2edfff92c7d1eff29a243078561
ambari-web/app/mixins/common/configs/enhanced_configs.js
853a1abc4231b6964a237285f97c922a9421ae98
ambari-web/app/models/configs/config_property.js
facaaf414bfc657d6909384d485c549f00d2eb3b
ambari-web/app/models/configs/objects/service_config.js
fe4c8f0d1d526d2ad8e91565c5aeff91ab7d30d2
ambari-web/app/models/configs/objects/service_config_property.js
c8971ec299f07b469100b57dfb3bf6abbd1d6353
ambari-web/app/models/configs/stack_config_property.js
5f660497ec929deec9fce2e0522c280c5f6291b6
ambari-web/app/templates/common/modal_popups/dependent_configs_list.hbs
c42d50d7120d0a0f8bcb5808e9952f3a11c07a2d
ambari-web/app/utils/config.js 518405160de2922a0ad5cdbdaa6d4e83e420dbe8
ambari-web/app/utils/configs/config_property_helper.js
07226c58cc480e38f589d8b275607b04bc865eaf
ambari-web/app/views.js 6af5d2f386efae6e8dcd51080903b931f82f03e9
ambari-web/app/views/common/configs/service_configs_by_category_view.js
5cfc3e90e31fe5ad232d0d9c14deaf7ee057ffa1
ambari-web/app/views/common/configs/widgets/checkbox_config_widget_view.js
03d3d3fbe4cff5a2d698a5f85f849e80ee59526c
ambari-web/app/views/common/configs/widgets/combo_config_widget_view.js
a9346ab7b426ea26e1ea29c0162417c04a322661
ambari-web/app/views/common/configs/widgets/config_widget_view.js
0b3939cc6fa07f5baec1f71e5e08a6f2e259b882
ambari-web/app/views/common/configs/widgets/directory_config_widget_view.js
be589b016565c12fee8f31b9377b5e18c27a4868
ambari-web/app/views/common/configs/widgets/list_config_widget_view.js
149f87de1da5125b42c18ba1ad27b25f561915aa
ambari-web/app/views/common/configs/widgets/plain_config_text_field.js
27d6b3bc57a83376af223b0e7192c4ac8e7db49c
ambari-web/app/views/common/configs/widgets/slider_config_widget_view.js
e618020b75714b1b9b0d2e333d6a979260e4c624
ambari-web/app/views/common/configs/widgets/time_interval_spinner_view.js
fb5879dbac72992302b81eb04cec11c1d58f4304
ambari-web/app/views/common/configs/widgets/toggle_config_widget_view.js
8aec220edc98b0bf6839f1c82da530329235eab3
ambari-web/app/views/common/controls_view.js
6dd82b7bf7a8cba845091cac9eaa9304a08f5981
ambari-web/app/views/common/modal_popups/prompt_popup.js
df454890240ba26010498d83fbee5abdfd936b7f
ambari-web/test/controllers/main/admin/highAvailability/resourceManager/step3_controller_test.js
21416d62d0cd1d7620a5005853135b2920b21411
ambari-web/test/controllers/main/admin/kerberos/step4_controller_test.js
b45a3a485479e5dde799bfbbfb3a70ccafc1eb92
ambari-web/test/controllers/main/service/info/config_test.js
7d46d9d12fb6e4811971772db88b3e9f71d496e3
ambari-web/test/controllers/wizard/step7_test.js
044ebbb6315a6bde4edd0fe8ef3f224bdc80289b
ambari-web/test/controllers/wizard/step8_test.js
432f8e0196fb9e8417bba30240ab0d8856d14b56
ambari-web/test/controllers/wizard_test.js
9b9c06f9b66cd3bdde08a35d257de37d1e8bff11
ambari-web/test/data/HDP2/site_properties_test.js
0336f923a8342b7f709bf5d57befd34fff598faa
ambari-web/test/mappers/configs/config_versions_mapper_test.js
4e590fee660cf6d08745fb22c2efe6290da46ee7
ambari-web/test/mappers/configs/stack_config_properties_mapper_test.js
416a14fca637eef572d07b7a05fa5ac3bd936159
ambari-web/test/mock_data_setup/configs_mock_data.js
0136f9b10f0e0ab04a668e5fa71386bd1951d006
ambari-web/test/models/configs/config_property_test.js
84cae0b000086240c3fcdffe753a0a15fb26a20a
ambari-web/test/models/configs/objects/service_config_property_test.js
a71e838204a7f41b1dca97e224d289eb9c6fd613
ambari-web/test/utils/config_test.js ccc693186718036ca5ded5ac4a91e41c27e11646
ambari-web/test/utils/configs/config_property_helper_test.js
d66f4022de4b3be1481f48fd52f8fa4d274f1c18
ambari-web/test/views/common/configs/service_configs_by_category_view_test.js
7c14dac218324774379f9ac7a0d6c2fcb7563871
ambari-web/test/views/common/configs/widgets/list_config_widget_view_test.js
3e301d68854b27e420f11fb7b5f98d0b6506e546
ambari-web/test/views/common/configs/widgets/slider_config_widget_view_test.js
fba4493b84073e19dfdc61230baeb3ffaec4860c
ambari-web/test/views/common/configs/widgets/toggle_config_widget_view_test.js
76e033026f3b5dd7b29152937edfe8d73c2db076
ambari-web/test/views/common/controls_view_test.js
463edb9302246d99d084726987c5e0d9c87a78fb
Diff: https://reviews.apache.org/r/34356/diff/
Testing
-------
6116 tests complete (10 seconds)
86 tests pending
Thanks,
Andriy Babiichuk