[
https://issues.apache.org/jira/browse/BROOKLYN-460?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15946886#comment-15946886
]
ASF GitHub Bot commented on BROOKLYN-460:
-----------------------------------------
Github user bostko commented on a diff in the pull request:
https://github.com/apache/brooklyn-server/pull/612#discussion_r108640523
--- Diff:
camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynEntityDecorationResolver.java
---
@@ -227,7 +234,54 @@ protected Object
getDecorationAttributeJsonValue(ConfigBag attrs) {
@Override
protected void addDecorationFromJsonMap(Map<?, ?> decorationJson,
List<SpecParameter<?>> decorations) {
- throw new IllegalStateException("Not called");
+ throw new
UnsupportedOperationException("SpecParameterResolver.addDecorationFromJsonMap
should never be called.");
+ }
+ }
+
+ public static class TagsResolver extends
BrooklynEntityDecorationResolver<Iterable<Object>> {
+ protected TagsResolver(BrooklynYamlTypeInstantiator.Factory
instantiator) {
+ super(instantiator);
+ }
+
+ @Override
+ public void decorate(EntitySpec<?> entitySpec, ConfigBag attrs,
Set<String> encounteredRegisteredTypeIds) {
+ if (getDecorationAttributeJsonValue(attrs) != null) {
+
entitySpec.tagsAdd((Iterable<Object>)getDecorationAttributeJsonValue(attrs));
+ }
+ }
+
+ @Override
+ protected String getDecorationKind() {
+ return "Brooklyn Tags";
+ }
+
+ @Override
+ protected Object getDecorationAttributeJsonValue(ConfigBag attrs) {
+ Object brooklynTags =
attrs.getStringKey(BrooklynCampReservedKeys.BROOKLYN_TAGS);
+ if (brooklynTags == null) {
+ return null;
+ } else if (brooklynTags != null && !(brooklynTags instanceof
List)) {
+ throw new
IllegalArgumentException(BrooklynCampReservedKeys.BROOKLYN_TAGS + " should be a
List of String elements. You supplied " + attrs);
+ } else {
+ checkArgument(Iterables.all((List) brooklynTags, new
Predicate() {
+ @Override
+ public boolean apply(@Nullable Object input) {
+ return input instanceof String;
--- End diff --
I introduced only String tags in the PR. I suggest documenting that numbers
should be in quotes at this stage.
> Brooklyn Camp syntax for adding tags to an entity spec
> ------------------------------------------------------
>
> Key: BROOKLYN-460
> URL: https://issues.apache.org/jira/browse/BROOKLYN-460
> Project: Brooklyn
> Issue Type: New Feature
> Reporter: Valentin Aitken
> Priority: Minor
>
> Current requirement is to be able to supply String tags in an entity spec in
> YAML so it can be then retrieved via REST API with {{GET
> /v1/applications/<appId>/entities/<entityId>/tags}}.
> Example usage in a YAML blueprint:
> {noformat}
> services:
> - type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess
> brooklyn.tags:
> - tag1
> - tag2
> {noformat}
> Please shout if you have further requirements for {{brooklyn.tags}}.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)