// Persist the ideal state
_accessor.setProperty(_keyBuilder.idealStates(resourceId.stringify()), idealState);
// Add resource user config
boolean persistConfig = false;
ResourceConfiguration configuration = new ResourceConfiguration(resourceId);
if (resource.getUserConfig() != null) {
configuration.addNamespacedConfig(resource.getUserConfig());
persistConfig = true;
}
RebalancerConfig rebalancerConfig = resource.getRebalancerConfig();
if (rebalancerConfig != null) {
// only persist if this is not easily convertible to an ideal state
configuration.addNamespacedConfig(new RebalancerConfigHolder(rebalancerConfig)
.toNamespacedConfig());
persistConfig = true;
}
ProvisionerConfig provisionerConfig = resource.getProvisionerConfig();
if (provisionerConfig != null) {
configuration.addNamespacedConfig(new ProvisionerConfigHolder(provisionerConfig)
.toNamespacedConfig());
persistConfig = true;
}
if (persistConfig) {
_accessor.setProperty(_keyBuilder.resourceConfig(resourceId.stringify()), configuration);