brooklyn-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (BROOKLYN-460) Brooklyn Camp syntax for adding tags to an entity spec
Date Wed, 29 Mar 2017 09:50:42 GMT

    [ https://issues.apache.org/jira/browse/BROOKLYN-460?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15946854#comment-15946854
] 

ASF GitHub Bot commented on BROOKLYN-460:
-----------------------------------------

Github user aledsage commented on a diff in the pull request:

    https://github.com/apache/brooklyn-server/pull/612#discussion_r108632848
  
    --- 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 --
    
    Is this too strict? What about primitives? I tried the yaml below, and it failed at this
assertion (because it has the int `2`):
    ```
    services:
    - type: org.apache.brooklyn.entity.stock.BasicApplication
      brooklyn.tags:
      - tag1
      - 2
    ```


> 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)

Mime
View raw message