Hi all,
I want to change how Brooklyn populates its catalog at startup. I want
it to install the "initial catalog", and then add the items from
persisted state.
See the PR at [1].
---
Currently, if there is any persisted state then we ignore the "initial
catalog" and use only the persisted state.
However, that causes problems when upgrading Brooklyn. We have to tell
the user [2] to start Brooklyn and then to manually add the "initial
catalog" by running:
br catalog add /opt/brooklyn/catalog/catalog.bom
---
One reason we did it that way was in case the user deliberately deleted
something from that initial catalog. By relying on only the persisted
state, we don't re-add what they removed.
However, that feels like optimising for the wrong thing: we make things
harder for everyone (i.e. they all have to run the extra `br catalog
add` command on upgrade) in case some people wanted to change what was
in the initial catalog.
---
Much longer term, I want to separate out the management and upgrade of
the catalog from that of an AMP server. As an enterprise user, when
upgrading Brooklyn (e.g. from 0.12.0 to 1.0.0) I would like to get my
catalog ready for use with the new version before attempting to start up
all my entities. This is particularly important if the catalog contains
any Java code compiled against against the old Brooklyn version
(especially if it's the user's own custom code). However, that is a much
bigger topic that needs more thought. I plan to write up a proposal for
that at some point.
Aled
[1] https://github.com/apache/brooklyn-server/pull/852
[1] https://brooklyn.apache.org/v/latest/ops/upgrade.html