[GitHub] brooklyn-server issue #971: DSL for $brooklyn:location()
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/971 LGTM apart from a minor comment on the test. I agree it would be nice to be able to tell whether DSL simply hasn't resolved yet or whether it's permanently failed to resolve, but I'm happy for this PR to be merged in the meantime ---
[GitHub] brooklyn-server pull request #971: DSL for $brooklyn:location()
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-server/pull/971#discussion_r214940310 --- Diff: camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/DslAndRebindYamlTest.java --- @@ -467,6 +467,30 @@ public void testDslLocation() throws Exception { assertEquals(getConfigInTask(testEntity, ConfigKeys.newConfigKey(Object.class, "config2")), appLoc); } +@Test +public void testDslLocationIndexOutOfBounds() throws Exception { +String yaml = Joiner.on("\n").join( +"location: localhost", +"services:", +"- type: " + BasicApplication.class.getName(), +" brooklyn.config:", +"config1: $brooklyn:location(\"1\")"); + +Application app = (Application) createStartWaitAndLogApplication(yaml); + +Location appLoc = Iterables.getOnlyElement(app.getLocations()); +try { +assertEquals(getConfigInTask(app, ConfigKeys.newConfigKey(Object.class, "config1")), appLoc); --- End diff -- If an exception is not thrown here the test will pass when it should fail. This case should be checked, e.g. by throwing `IllegalStateException` after this line ---
[GitHub] brooklyn-docs issue #260: Use the official AWS CLI instead of s3cmd
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-docs/pull/260 LGTM ---
[GitHub] brooklyn-docs issue #258: Fix copy-state usage for brooklyn-karaf
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-docs/pull/258 One minor comment, other than that LGTM ---
[GitHub] brooklyn-docs pull request #258: Fix copy-state usage for brooklyn-karaf
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-docs/pull/258#discussion_r197133399 --- Diff: guide/ops/persistence/index.md --- @@ -246,16 +246,16 @@ The state can be downloaded periodically from the object store, archived and bac An example script to be invoked by CRON is shown below: DATE=`date "+%Y%m%d.%H%M.%S"` -BACKUP_FILENAME=/path/to/archives/back-${DATE}.tar.gz -TEMP_DATA_DIR=/path/to/tempdir - -brooklyn copy-state \ ---persistenceLocation named:my-persistence-location \ ---persistenceDir /path/to/bucket \ ---destinationDir $TEMP_DATA_DIR +BACKUP_FILENAME=/path/to/archives/back-${DATE}.zip +HOSTNAME=localhost +USERNAME=admin +PASSWORD=pa55wOrd + +curl -v -u "${USERNAME}:${PASSWORD}" \ +https://${HOSTNAME}:8443/v1/server/ha/persist/export \ +> ${BACKUP_FILENAME} -tar --exclude '*/backups/*' -czvf $BACKUP_FILENAME $TEMP_DATA_DIR # For s3cmd installation see http://s3tools.org/repositories --- End diff -- I know it's not directly related to this PR, but we should switch to recommending the official AWS CLI now that it's mature and stable: ``` # For AWS CLI installation see https://aws.amazon.com/cli aws s3 cp $BACKUP_FILENAME s3://mybackupbucket rm $BACKUP_FILENAME ``` ---
[GitHub] brooklyn-server issue #972: BROOKLYN-594: fix REST api /v1/server/ha/persist...
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/972 Tested; LGTM ---
[GitHub] brooklyn-server issue #971: DSL for $brooklyn:location()
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/971 Looks good, nothing to add to @geomacy's comments ---
[GitHub] brooklyn-server issue #970: MultiLocation yaml tests
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/970 Tested, LGTM ---
[GitHub] brooklyn-docs pull request #253: Document Azure ad app password reset
GitHub user nakomis opened a pull request: https://github.com/apache/brooklyn-docs/pull/253 Document Azure ad app password reset Provides the command used to change the Azure active directory application password used for API access You can merge this pull request into a Git repository by running: $ git pull https://github.com/nakomis/brooklyn-docs azure-password-reset Alternatively you can review and apply these changes as the patch at: https://github.com/apache/brooklyn-docs/pull/253.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #253 commit 842b04ca8e1a56c355218c4ec5888eb4be098676 Author: Martin Harris <github@...> Date: 2018-05-23T11:23:44Z Document Azure ad app password reset Provides the command used to change the Azure active directory application password used for API access ---
[GitHub] brooklyn-server issue #957: SshCommandSensor.testDslWithSshSensor: convert t...
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/957 LGTM ---
[GitHub] brooklyn-server issue #953: Defers reading of config in SshCommandSensor
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/953 PR comments addressed ---
[GitHub] brooklyn-server pull request #954: Changes access of `StringPredicates` clas...
Github user nakomis closed the pull request at: https://github.com/apache/brooklyn-server/pull/954 ---
[GitHub] brooklyn-server pull request #956: SSH Sensor value-on-error
GitHub user nakomis opened a pull request: https://github.com/apache/brooklyn-server/pull/956 SSH Sensor value-on-error Adds `value.on.error` config key to SshCommandSensor to allow a value to be specified for use when an exception occurs when executing the ssh command You can merge this pull request into a Git repository by running: $ git pull https://github.com/nakomis/brooklyn-server ssh-sensor-value-on-error Alternatively you can review and apply these changes as the patch at: https://github.com/apache/brooklyn-server/pull/956.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #956 commit fde2f24f733ce8604a033a775453fbff27e40608 Author: Martin Harris <github@...> Date: 2018-04-16T11:34:11Z SSH Sensor value-on-error Adds `value.on.error` config key to SshCommandSensor to allow a value to be specified for use when an exception occurs when executing the ssh command ---
[GitHub] brooklyn-server pull request #954: Changes access of `StringPredicates` clas...
GitHub user nakomis opened a pull request: https://github.com/apache/brooklyn-server/pull/954 Changes access of `StringPredicates` classes This allows them to be used in YAML, via $brooklyn:object You can merge this pull request into a Git repository by running: $ git pull https://github.com/nakomis/brooklyn-server string-predicates-access Alternatively you can review and apply these changes as the patch at: https://github.com/apache/brooklyn-server/pull/954.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #954 commit 1c45ced1517c6dd90d762274785fdd7e8133b660 Author: Martin Harris <github@...> Date: 2018-04-12T12:37:28Z Changes access of `StringPredicates` classes This allows them to be used in YAML, via $brooklyn:object ---
[GitHub] brooklyn-server pull request #953: Defers reading of config in SshCommandSen...
GitHub user nakomis opened a pull request: https://github.com/apache/brooklyn-server/pull/953 Defers reading of config in SshCommandSensor This allows DSL to be used in the command, env and execution dir as a management context will then be available You can merge this pull request into a Git repository by running: $ git pull https://github.com/nakomis/brooklyn-server ssh-sensor-config Alternatively you can review and apply these changes as the patch at: https://github.com/apache/brooklyn-server/pull/953.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #953 commit 6d4dac1a471023406855f7fb8a577f80adb56645 Author: Martin Harris <github@...> Date: 2018-04-11T12:02:27Z Defers reading of config in SshCommandSensor This allows DSL to be used in the command, env and execution dir as a management context will then be available ---
[GitHub] brooklyn-docs pull request #249: Updates ulimit docs for Centos 7
GitHub user nakomis opened a pull request: https://github.com/apache/brooklyn-docs/pull/249 Updates ulimit docs for Centos 7 You can merge this pull request into a Git repository by running: $ git pull https://github.com/nakomis/brooklyn-docs ulimit-docs-update Alternatively you can review and apply these changes as the patch at: https://github.com/apache/brooklyn-docs/pull/249.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #249 commit 3f1c06f5e34fa943d6399c091a456a64a5306277 Author: Martin Harris <github@...> Date: 2018-03-23T12:23:54Z Updates ulimit docs for Centos 7 ---
[GitHub] brooklyn-server issue #916: DynamicCluster's max size applies to all calls t...
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/916 @aledsage regarding resizing up to `maxSize`, I'd favour @sjcorbett's approach of throwing the `InsufficientCapacityException` and leaving it up to the consumer to re-try. Requesting a new size of X, and getting a new size of Y just feels a bit too much like hidden magic ---
[GitHub] brooklyn-server pull request #916: DynamicCluster's max size applies to all ...
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-server/pull/916#discussion_r156406908 --- Diff: core/src/main/java/org/apache/brooklyn/entity/group/DynamicClusterImpl.java --- @@ -799,6 +795,12 @@ protected Entity replaceMember(Entity member, @Nullable Location memberLoc, Map< /** Note for sub-classes; this method can be called while synchronized on {@link #mutex}. */ protected Collection grow(int delta) { Preconditions.checkArgument(delta > 0, "Must call grow with positive delta."); +Integer maxSize = config().get(MAX_SIZE); +final int desiredSize = getCurrentSize() + delta; +if (maxSize != null && desiredSize > maxSize) { --- End diff -- I think we need a corresponding check for `MIN_SIZE` in `shrink(int delta)` ---
[GitHub] brooklyn-server pull request #916: DynamicCluster's max size applies to all ...
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-server/pull/916#discussion_r156407339 --- Diff: core/src/test/java/org/apache/brooklyn/entity/group/DynamicClusterTest.java --- @@ -1398,14 +1398,18 @@ public void testChildCommandPermitNotReleasedWhenMemberStartTaskCancelledBeforeS public void testClusterMaxSize() { --- End diff -- If we're changing the `shrink` behaviour (see previous comment), then a corresponding `testClusterMinSize` should also be added ---
[GitHub] brooklyn-server pull request #858: Fixes broken ClassLoaderFromStackOfBrookl...
GitHub user nakomis opened a pull request: https://github.com/apache/brooklyn-server/pull/858 Fixes broken ClassLoaderFromStackOfBrooklynClassLoadingContextTest.testLoadClassFromBundle test Updates test jars to fix broken ClassLoaderFromStackOfBrooklynClassLoadingContextTest.testLoadClassFromBundle test and other tests You can merge this pull request into a Git repository by running: $ git pull https://github.com/nakomis/brooklyn-server fix/classloader-tests Alternatively you can review and apply these changes as the patch at: https://github.com/apache/brooklyn-server/pull/858.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #858 commit 09b25fea0459e8c9346aa910094418c294d581cb Author: Martin Harris <git...@nakomis.com> Date: 2017-10-09T10:39:00Z Fixes broken ClassLoaderFromStackOfBrooklynClassLoadingContextTest.testLoadClassFromBundle test ---
[GitHub] brooklyn-server issue #800: AutoScalerPolicy to resize to limits on expunge
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/800 PR comment addressed --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server issue #803: Adds cluster.max.size to dynamic cluster
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/803 PR comments addressed --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request #803: Adds cluster.max.size to dynamic cluster
GitHub user nakomis opened a pull request: https://github.com/apache/brooklyn-server/pull/803 Adds cluster.max.size to dynamic cluster Adds cluster.max.size to dynamic cluster, and prevents the cluster from being manually increased beyond that size You can merge this pull request into a Git repository by running: $ git pull https://github.com/nakomis/brooklyn-server cluster-max-size Alternatively you can review and apply these changes as the patch at: https://github.com/apache/brooklyn-server/pull/803.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #803 commit 6598ee1b7d22107434824bfafad6d8d2e31271e5 Author: Martin Harris <mar...@cloudsoft.io> Date: 2017-08-22T08:10:39Z Adds cluster.max.size to dynamic cluster --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server issue #800: AutoScalerPolicy to resize to limits on expunge
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/800 Should now be good to go --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server issue #800: AutoScalerPolicy to resize to limits on expunge
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/800 On second thoughts, these tests seem a little fragile and may have non-deterministic failures. Please DO NOT MERGE (yet) --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request #800: AutoScalerPolicy to resize to limits on e...
GitHub user nakomis opened a pull request: https://github.com/apache/brooklyn-server/pull/800 AutoScalerPolicy to resize to limits on expunge Currently, if a user resizes a cluster with an `AutoScalerPolicy` such that the pool size is now outside the min and max pool size for the policy, the cluster is not resized to the bounds You can merge this pull request into a Git repository by running: $ git pull https://github.com/nakomis/brooklyn-server resize-on-expunge Alternatively you can review and apply these changes as the patch at: https://github.com/apache/brooklyn-server/pull/800.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #800 commit 44add4fe4590329844f8924edc9f75a8a5332bdf Author: Martin Harris <mar...@cloudsoft.io> Date: 2017-08-17T13:52:10Z AutoScalerPolicy to resize to limits on expunge --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request #700: Adds getLastConstructorProps to Recording...
GitHub user nakomis opened a pull request: https://github.com/apache/brooklyn-server/pull/700 Adds getLastConstructorProps to RecordingWinRmTool Adds `getLastConstructorProps()` to `RecordingWinRmTool`, in line with `RecordingSshTool` You can merge this pull request into a Git repository by running: $ git pull https://github.com/nakomis/brooklyn-server recording-win-rm-props Alternatively you can review and apply these changes as the patch at: https://github.com/apache/brooklyn-server/pull/700.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #700 commit 2d6d638940b737a554a8c19a6272a908b4382b98 Author: Martin Harris <git...@nakomis.com> Date: 2017-05-25T13:56:09Z Adds getLastConstructorProps to RecordingWinRmTool --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-docs pull request #164: Adds documentation for bundling catalog res...
Github user nakomis closed the pull request at: https://github.com/apache/brooklyn-docs/pull/164 --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-docs issue #164: Adds documentation for bundling catalog resources ...
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-docs/pull/164 Closing in favour of #180 --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server issue #677: Adds EBS Location Customizers
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/677 @neykov Done --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server issue #677: Adds EBS Location Customizers
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/677 @drigodwin description an example added @sjcorbett the classes sit adjacent to existing cloud-specific classes such as `SoftLayerSameVlanLocationCustomizer` and `AwsAvailabilityZoneExtension` so it's not like this introduces the idea of cloud-specific classes. The alternative would be to move them out of Brooklyn and into a 3rd party (i.e. non-Apache) project --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request #680: Adds JcloudsLocationCustomizer hook to al...
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-server/pull/680#discussion_r116485510 --- Diff: locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/JcloudsSshMachineLocationStubbedTest.java --- @@ -118,4 +123,17 @@ public void testWinrmConfigPassedToMachine() throws Exception { assertEquals(machine.config().get(WinRmMachineLocation.COPY_FILE_CHUNK_SIZE_BYTES), Integer.valueOf(123)); assertEquals(machine.config().get(WinRmTool.PROP_EXEC_TRIES), Integer.valueOf(456)); } + +@Test +public void testNodeSetupCustomizer() throws Exception { +final String testMetadata = "test-metadata"; +obtainMachine(ImmutableMap.of(JCLOUDS_LOCATION_CUSTOMIZERS, ImmutableList.of(new BasicJcloudsLocationCustomizer(){ +@Override +public void customize(JcloudsLocation location, NodeMetadata node, ConfigBag setup) { +setup.configure(ADDITIONAL_CONNECTION_METADATA, testMetadata); --- End diff -- I've added a null check for `location`, but I'm not sure what else to assert on it --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server issue #680: Adds JcloudsLocationCustomizer hook to allow nod...
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/680 @bostko If declared in the YAML, then the property must be known *before* the machine is provisioned. The hook allows for a customizer to configure the ssh / winrm config tool with runtime data such as the machine id --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request #680: Adds JcloudsLocationCustomizer hook to al...
GitHub user nakomis opened a pull request: https://github.com/apache/brooklyn-server/pull/680 Adds JcloudsLocationCustomizer hook to allow node / config configuration You can merge this pull request into a Git repository by running: $ git pull https://github.com/nakomis/brooklyn-server add-nodemetdata-customization-hook Alternatively you can review and apply these changes as the patch at: https://github.com/apache/brooklyn-server/pull/680.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #680 commit 320c29e06dca6c2e99cc79a8b373ba1f914a8a3d Author: Martin Harris <git...@nakomis.com> Date: 2017-05-15T09:34:32Z Adds JcloudsLocationCustomizer hook to allow node / config configuration --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request #677: Adds EBS Location Customizers
GitHub user nakomis opened a pull request: https://github.com/apache/brooklyn-server/pull/677 Adds EBS Location Customizers You can merge this pull request into a Git repository by running: $ git pull https://github.com/nakomis/brooklyn-server ebs-volume-customizer Alternatively you can review and apply these changes as the patch at: https://github.com/apache/brooklyn-server/pull/677.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #677 commit 7d260f326f04052cfa17e0736e9180917a99434b Author: Martin Harris <git...@nakomis.com> Date: 2017-05-10T14:00:23Z Adds EBS Location Customizers --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-docs pull request #181: Adds instructions for configuring brooklyn ...
GitHub user nakomis opened a pull request: https://github.com/apache/brooklyn-docs/pull/181 Adds instructions for configuring brooklyn to use the system proxy You can merge this pull request into a Git repository by running: $ git pull https://github.com/nakomis/brooklyn-docs use-system-proxy Alternatively you can review and apply these changes as the patch at: https://github.com/apache/brooklyn-docs/pull/181.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #181 commit 32a03494a1bfab21d07896637a1d93d6fb79fba5 Author: Martin Harris <git...@nakomis.com> Date: 2017-05-10T13:08:29Z Adds instructions for configuring brooklyn to use the system proxy --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-docs pull request #180: Update bundle upload
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-docs/pull/180#discussion_r115698327 --- Diff: guide/blueprints/catalog/index.md --- @@ -375,153 +375,120 @@ the latest non-snapshot version will be loaded when an entity is instantiated. ### Bundling Catalog Resources -When deploying a blueprint, it is possible to deploy it as an OSGI bundle with additional resources scoped -to this bundle. This is particularly useful when, for example, deploying a Tomcat server with a `.war` file -which is deployed using a classpath path such as `classpath://mywar.war`. +It is possible to add an OSGi bundle to AMP. This is useful when you have a blueprint that needs to reference external scripts/resources or when you have multiple blueprints that you want to keep in sync. Brooklyn will persist any uploaded bundles so that they are available after a restart, or a HA failover. -In this example, we will create a simple `server` catalog item, bundled with a simple text file. +In this example, we will create a simple `my-server` catalog item, bundled with a simple script. The script will be run when launching the server. -First, create the text file with some sample contents: +First, create a folder called bundleFolder, then add a file called myfile.sh to it. +The contents of myfile.sh should be as follows: ~~~ bash -echo Hello, World! > myfile.txt +echo Hello, World! ~~~ -Now create a file called `catalog.bom` with the following contents: +Now create a file in bundleFolder called `catalog.bom` with the following contents: ~~~ yaml brooklyn.catalog: - bundle: script-server + bundle: MyServerBundle version: 1.0.0 - items: - - id: script-server -itemType: entity -item: - type: server - brooklyn.config: -files.runtime: - classpath://myfile.txt: files/myfile.txt + item: +id: my-server +type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess +brooklyn.config: + files.runtime: +classpath://myfile.sh: files/myfile.sh + launch.command: | +chmod +x ./files/myfile.sh +./files/myfile.sh + + checkRunning.command: +echo "Running" + ~~~ -The `bundle: script-server` line specifies the OSGI bundle name for this blueprint. Any resources included +The `bundle: MyServerBundle` line specifies the OSGI bundle name for this bundle. Any resources included in this bundle will be accessible on the classpath, but will be scoped to this bundle. This prevents an issue where multiple bundles include the same resource. -To create the bundle, simply zip the `.bom` and `.txt` files as follows: +To create the bundle, simply use the BR command as follows: ~~~ bash -zip script-server.zip catalog.bom myfile.txt +br add-catalog bundleFolder --- End diff -- Would be good to mention that we also support .zip --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-docs pull request #180: Update bundle upload
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-docs/pull/180#discussion_r115697990 --- Diff: guide/blueprints/catalog/index.md --- @@ -375,153 +375,120 @@ the latest non-snapshot version will be loaded when an entity is instantiated. ### Bundling Catalog Resources -When deploying a blueprint, it is possible to deploy it as an OSGI bundle with additional resources scoped -to this bundle. This is particularly useful when, for example, deploying a Tomcat server with a `.war` file -which is deployed using a classpath path such as `classpath://mywar.war`. +It is possible to add an OSGi bundle to AMP. This is useful when you have a blueprint that needs to reference external scripts/resources or when you have multiple blueprints that you want to keep in sync. Brooklyn will persist any uploaded bundles so that they are available after a restart, or a HA failover. -In this example, we will create a simple `server` catalog item, bundled with a simple text file. +In this example, we will create a simple `my-server` catalog item, bundled with a simple script. The script will be run when launching the server. -First, create the text file with some sample contents: +First, create a folder called bundleFolder, then add a file called myfile.sh to it. +The contents of myfile.sh should be as follows: ~~~ bash -echo Hello, World! > myfile.txt +echo Hello, World! ~~~ -Now create a file called `catalog.bom` with the following contents: +Now create a file in bundleFolder called `catalog.bom` with the following contents: ~~~ yaml brooklyn.catalog: - bundle: script-server + bundle: MyServerBundle version: 1.0.0 - items: - - id: script-server -itemType: entity -item: - type: server - brooklyn.config: -files.runtime: - classpath://myfile.txt: files/myfile.txt + item: +id: my-server +type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess +brooklyn.config: + files.runtime: +classpath://myfile.sh: files/myfile.sh + launch.command: | +chmod +x ./files/myfile.sh +./files/myfile.sh + + checkRunning.command: +echo "Running" + ~~~ -The `bundle: script-server` line specifies the OSGI bundle name for this blueprint. Any resources included +The `bundle: MyServerBundle` line specifies the OSGI bundle name for this bundle. Any resources included in this bundle will be accessible on the classpath, but will be scoped to this bundle. This prevents an issue where multiple bundles include the same resource. -To create the bundle, simply zip the `.bom` and `.txt` files as follows: +To create the bundle, simply use the BR command as follows: --- End diff -- BR -> \`br\`, also include a link to download the CLI. It would also be nice to include at least one example of how to use `curl` instead of `br` --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-docs pull request #180: Update bundle upload
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-docs/pull/180#discussion_r115699050 --- Diff: guide/blueprints/catalog/index.md --- @@ -375,153 +375,120 @@ the latest non-snapshot version will be loaded when an entity is instantiated. ### Bundling Catalog Resources -When deploying a blueprint, it is possible to deploy it as an OSGI bundle with additional resources scoped -to this bundle. This is particularly useful when, for example, deploying a Tomcat server with a `.war` file -which is deployed using a classpath path such as `classpath://mywar.war`. +It is possible to add an OSGi bundle to AMP. This is useful when you have a blueprint that needs to reference external scripts/resources or when you have multiple blueprints that you want to keep in sync. Brooklyn will persist any uploaded bundles so that they are available after a restart, or a HA failover. -In this example, we will create a simple `server` catalog item, bundled with a simple text file. +In this example, we will create a simple `my-server` catalog item, bundled with a simple script. The script will be run when launching the server. -First, create the text file with some sample contents: +First, create a folder called bundleFolder, then add a file called myfile.sh to it. +The contents of myfile.sh should be as follows: ~~~ bash -echo Hello, World! > myfile.txt +echo Hello, World! ~~~ -Now create a file called `catalog.bom` with the following contents: +Now create a file in bundleFolder called `catalog.bom` with the following contents: ~~~ yaml brooklyn.catalog: - bundle: script-server + bundle: MyServerBundle version: 1.0.0 - items: - - id: script-server -itemType: entity -item: - type: server - brooklyn.config: -files.runtime: - classpath://myfile.txt: files/myfile.txt + item: +id: my-server +type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess +brooklyn.config: + files.runtime: +classpath://myfile.sh: files/myfile.sh + launch.command: | +chmod +x ./files/myfile.sh +./files/myfile.sh + + checkRunning.command: +echo "Running" + ~~~ -The `bundle: script-server` line specifies the OSGI bundle name for this blueprint. Any resources included +The `bundle: MyServerBundle` line specifies the OSGI bundle name for this bundle. Any resources included in this bundle will be accessible on the classpath, but will be scoped to this bundle. This prevents an issue where multiple bundles include the same resource. -To create the bundle, simply zip the `.bom` and `.txt` files as follows: +To create the bundle, simply use the BR command as follows: ~~~ bash -zip script-server.zip catalog.bom myfile.txt +br add-catalog bundleFolder ~~~ -Currently the only supported method for uploading the bundle to the server is via the API, e.g. using -`curl`: - -~~~ bash -curl -X POST -u admin:password -H "Content-Type: application/zip" --data-binary @/tmp/zip/script-server.zip "http://127.0.0.1:8081/v1/catalog; -~~~ - -We can now deploy an instance of our script server as follows: +This will have added our bundle to the catalog. We can now deploy an instance of our server as follows: ~~~ yaml location: localhost services: -- type: script-server +- type: my-server ~~~ -And we can now inspect the contents of the file copied to the server +We can now see the result of running that script. In the UI find the activities for this application. The start activity has a sub task called launch (you will have to click through multiple activities called start/launch. Looking at the stdout of the launch task you should see: -~~~ bash -cat /tmp/brooklyn-martin/apps/nl9djqbq2i/entities/EmptySoftwareProcess_g52gahfxnt/files/myfile.txt -~~~ -~~~ bash +~~~ bash Hello, World! ~~~ -Now modify `myfile.txt` to contain a different message, change the version number in `catalog.bom` to -`1.1.0`, re-build the zip file and re-post it to the server - -If you now deploy a new instance of the script-server using the same YAML as used above, you should be -able to confirm that the new script has been copied to the server: - +Alternatively you can view the script directly if you ran this against localhost: ~~~ bash -cat /tmp/brooklyn-martin/apps/bwu57darkd/entities/EmptySoftwareProcess_umcgshzduk/files/myfile.txt +cat /tmp/brooklyn-username/apps/nl9djqbq2i/entities/EmptySoftwareProces
[GitHub] brooklyn-docs pull request #180: Update bundle upload
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-docs/pull/180#discussion_r115698765 --- Diff: guide/blueprints/catalog/index.md --- @@ -375,153 +375,120 @@ the latest non-snapshot version will be loaded when an entity is instantiated. ### Bundling Catalog Resources -When deploying a blueprint, it is possible to deploy it as an OSGI bundle with additional resources scoped -to this bundle. This is particularly useful when, for example, deploying a Tomcat server with a `.war` file -which is deployed using a classpath path such as `classpath://mywar.war`. +It is possible to add an OSGi bundle to AMP. This is useful when you have a blueprint that needs to reference external scripts/resources or when you have multiple blueprints that you want to keep in sync. Brooklyn will persist any uploaded bundles so that they are available after a restart, or a HA failover. -In this example, we will create a simple `server` catalog item, bundled with a simple text file. +In this example, we will create a simple `my-server` catalog item, bundled with a simple script. The script will be run when launching the server. -First, create the text file with some sample contents: +First, create a folder called bundleFolder, then add a file called myfile.sh to it. +The contents of myfile.sh should be as follows: ~~~ bash -echo Hello, World! > myfile.txt +echo Hello, World! ~~~ -Now create a file called `catalog.bom` with the following contents: +Now create a file in bundleFolder called `catalog.bom` with the following contents: ~~~ yaml brooklyn.catalog: - bundle: script-server + bundle: MyServerBundle version: 1.0.0 - items: - - id: script-server -itemType: entity -item: - type: server - brooklyn.config: -files.runtime: - classpath://myfile.txt: files/myfile.txt + item: +id: my-server +type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess +brooklyn.config: + files.runtime: +classpath://myfile.sh: files/myfile.sh + launch.command: | +chmod +x ./files/myfile.sh +./files/myfile.sh + + checkRunning.command: +echo "Running" + ~~~ -The `bundle: script-server` line specifies the OSGI bundle name for this blueprint. Any resources included +The `bundle: MyServerBundle` line specifies the OSGI bundle name for this bundle. Any resources included in this bundle will be accessible on the classpath, but will be scoped to this bundle. This prevents an issue where multiple bundles include the same resource. -To create the bundle, simply zip the `.bom` and `.txt` files as follows: +To create the bundle, simply use the BR command as follows: ~~~ bash -zip script-server.zip catalog.bom myfile.txt +br add-catalog bundleFolder ~~~ -Currently the only supported method for uploading the bundle to the server is via the API, e.g. using -`curl`: - -~~~ bash -curl -X POST -u admin:password -H "Content-Type: application/zip" --data-binary @/tmp/zip/script-server.zip "http://127.0.0.1:8081/v1/catalog; -~~~ - -We can now deploy an instance of our script server as follows: +This will have added our bundle to the catalog. We can now deploy an instance of our server as follows: ~~~ yaml location: localhost services: -- type: script-server +- type: my-server ~~~ -And we can now inspect the contents of the file copied to the server +We can now see the result of running that script. In the UI find the activities for this application. The start activity has a sub task called launch (you will have to click through multiple activities called start/launch. Looking at the stdout of the launch task you should see: -~~~ bash -cat /tmp/brooklyn-martin/apps/nl9djqbq2i/entities/EmptySoftwareProcess_g52gahfxnt/files/myfile.txt -~~~ -~~~ bash +~~~ bash Hello, World! ~~~ -Now modify `myfile.txt` to contain a different message, change the version number in `catalog.bom` to -`1.1.0`, re-build the zip file and re-post it to the server - -If you now deploy a new instance of the script-server using the same YAML as used above, you should be -able to confirm that the new script has been copied to the server: - +Alternatively you can view the script directly if you ran this against localhost: ~~~ bash -cat /tmp/brooklyn-martin/apps/bwu57darkd/entities/EmptySoftwareProcess_umcgshzduk/files/myfile.txt +cat /tmp/brooklyn-username/apps/nl9djqbq2i/entities/EmptySoftwareProcess_g52gahfxnt
[GitHub] brooklyn-docs pull request #180: Update bundle upload
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-docs/pull/180#discussion_r115698151 --- Diff: guide/blueprints/catalog/index.md --- @@ -375,153 +375,120 @@ the latest non-snapshot version will be loaded when an entity is instantiated. ### Bundling Catalog Resources -When deploying a blueprint, it is possible to deploy it as an OSGI bundle with additional resources scoped -to this bundle. This is particularly useful when, for example, deploying a Tomcat server with a `.war` file -which is deployed using a classpath path such as `classpath://mywar.war`. +It is possible to add an OSGi bundle to AMP. This is useful when you have a blueprint that needs to reference external scripts/resources or when you have multiple blueprints that you want to keep in sync. Brooklyn will persist any uploaded bundles so that they are available after a restart, or a HA failover. -In this example, we will create a simple `server` catalog item, bundled with a simple text file. +In this example, we will create a simple `my-server` catalog item, bundled with a simple script. The script will be run when launching the server. -First, create the text file with some sample contents: +First, create a folder called bundleFolder, then add a file called myfile.sh to it. +The contents of myfile.sh should be as follows: ~~~ bash -echo Hello, World! > myfile.txt +echo Hello, World! ~~~ -Now create a file called `catalog.bom` with the following contents: +Now create a file in bundleFolder called `catalog.bom` with the following contents: ~~~ yaml brooklyn.catalog: - bundle: script-server + bundle: MyServerBundle version: 1.0.0 - items: - - id: script-server -itemType: entity -item: - type: server - brooklyn.config: -files.runtime: - classpath://myfile.txt: files/myfile.txt + item: +id: my-server +type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess +brooklyn.config: + files.runtime: +classpath://myfile.sh: files/myfile.sh + launch.command: | +chmod +x ./files/myfile.sh +./files/myfile.sh + + checkRunning.command: +echo "Running" + ~~~ -The `bundle: script-server` line specifies the OSGI bundle name for this blueprint. Any resources included +The `bundle: MyServerBundle` line specifies the OSGI bundle name for this bundle. Any resources included in this bundle will be accessible on the classpath, but will be scoped to this bundle. This prevents an issue where multiple bundles include the same resource. -To create the bundle, simply zip the `.bom` and `.txt` files as follows: +To create the bundle, simply use the BR command as follows: ~~~ bash -zip script-server.zip catalog.bom myfile.txt +br add-catalog bundleFolder --- End diff -- `br catalog add` --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-docs pull request #180: Update bundle upload
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-docs/pull/180#discussion_r115698963 --- Diff: guide/blueprints/catalog/index.md --- @@ -375,153 +375,120 @@ the latest non-snapshot version will be loaded when an entity is instantiated. ### Bundling Catalog Resources -When deploying a blueprint, it is possible to deploy it as an OSGI bundle with additional resources scoped -to this bundle. This is particularly useful when, for example, deploying a Tomcat server with a `.war` file -which is deployed using a classpath path such as `classpath://mywar.war`. +It is possible to add an OSGi bundle to AMP. This is useful when you have a blueprint that needs to reference external scripts/resources or when you have multiple blueprints that you want to keep in sync. Brooklyn will persist any uploaded bundles so that they are available after a restart, or a HA failover. -In this example, we will create a simple `server` catalog item, bundled with a simple text file. +In this example, we will create a simple `my-server` catalog item, bundled with a simple script. The script will be run when launching the server. -First, create the text file with some sample contents: +First, create a folder called bundleFolder, then add a file called myfile.sh to it. +The contents of myfile.sh should be as follows: ~~~ bash -echo Hello, World! > myfile.txt +echo Hello, World! ~~~ -Now create a file called `catalog.bom` with the following contents: +Now create a file in bundleFolder called `catalog.bom` with the following contents: ~~~ yaml brooklyn.catalog: - bundle: script-server + bundle: MyServerBundle version: 1.0.0 - items: - - id: script-server -itemType: entity -item: - type: server - brooklyn.config: -files.runtime: - classpath://myfile.txt: files/myfile.txt + item: +id: my-server +type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess +brooklyn.config: + files.runtime: +classpath://myfile.sh: files/myfile.sh + launch.command: | +chmod +x ./files/myfile.sh +./files/myfile.sh + + checkRunning.command: +echo "Running" + ~~~ -The `bundle: script-server` line specifies the OSGI bundle name for this blueprint. Any resources included +The `bundle: MyServerBundle` line specifies the OSGI bundle name for this bundle. Any resources included in this bundle will be accessible on the classpath, but will be scoped to this bundle. This prevents an issue where multiple bundles include the same resource. -To create the bundle, simply zip the `.bom` and `.txt` files as follows: +To create the bundle, simply use the BR command as follows: ~~~ bash -zip script-server.zip catalog.bom myfile.txt +br add-catalog bundleFolder ~~~ -Currently the only supported method for uploading the bundle to the server is via the API, e.g. using -`curl`: - -~~~ bash -curl -X POST -u admin:password -H "Content-Type: application/zip" --data-binary @/tmp/zip/script-server.zip "http://127.0.0.1:8081/v1/catalog; -~~~ - -We can now deploy an instance of our script server as follows: +This will have added our bundle to the catalog. We can now deploy an instance of our server as follows: ~~~ yaml location: localhost services: -- type: script-server +- type: my-server ~~~ -And we can now inspect the contents of the file copied to the server +We can now see the result of running that script. In the UI find the activities for this application. The start activity has a sub task called launch (you will have to click through multiple activities called start/launch. Looking at the stdout of the launch task you should see: -~~~ bash -cat /tmp/brooklyn-martin/apps/nl9djqbq2i/entities/EmptySoftwareProcess_g52gahfxnt/files/myfile.txt -~~~ -~~~ bash +~~~ bash Hello, World! ~~~ -Now modify `myfile.txt` to contain a different message, change the version number in `catalog.bom` to -`1.1.0`, re-build the zip file and re-post it to the server - -If you now deploy a new instance of the script-server using the same YAML as used above, you should be -able to confirm that the new script has been copied to the server: - +Alternatively you can view the script directly if you ran this against localhost: ~~~ bash -cat /tmp/brooklyn-martin/apps/bwu57darkd/entities/EmptySoftwareProcess_umcgshzduk/files/myfile.txt +cat /tmp/brooklyn-username/apps/nl9djqbq2i/entities/EmptySoftwareProces
[GitHub] brooklyn-docs pull request #180: Update bundle upload
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-docs/pull/180#discussion_r115697711 --- Diff: guide/blueprints/catalog/index.md --- @@ -375,153 +375,120 @@ the latest non-snapshot version will be loaded when an entity is instantiated. ### Bundling Catalog Resources -When deploying a blueprint, it is possible to deploy it as an OSGI bundle with additional resources scoped -to this bundle. This is particularly useful when, for example, deploying a Tomcat server with a `.war` file -which is deployed using a classpath path such as `classpath://mywar.war`. +It is possible to add an OSGi bundle to AMP. This is useful when you have a blueprint that needs to reference external scripts/resources or when you have multiple blueprints that you want to keep in sync. Brooklyn will persist any uploaded bundles so that they are available after a restart, or a HA failover. -In this example, we will create a simple `server` catalog item, bundled with a simple text file. +In this example, we will create a simple `my-server` catalog item, bundled with a simple script. The script will be run when launching the server. -First, create the text file with some sample contents: +First, create a folder called bundleFolder, then add a file called myfile.sh to it. +The contents of myfile.sh should be as follows: ~~~ bash -echo Hello, World! > myfile.txt +echo Hello, World! ~~~ -Now create a file called `catalog.bom` with the following contents: +Now create a file in bundleFolder called `catalog.bom` with the following contents: ~~~ yaml brooklyn.catalog: - bundle: script-server + bundle: MyServerBundle version: 1.0.0 - items: - - id: script-server -itemType: entity -item: - type: server - brooklyn.config: -files.runtime: - classpath://myfile.txt: files/myfile.txt + item: +id: my-server +type: org.apache.brooklyn.entity.software.base.VanillaSoftwareProcess +brooklyn.config: + files.runtime: +classpath://myfile.sh: files/myfile.sh + launch.command: | +chmod +x ./files/myfile.sh +./files/myfile.sh + + checkRunning.command: +echo "Running" --- End diff -- This should be on the previous line --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-docs pull request #180: Update bundle upload
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-docs/pull/180#discussion_r115697661 --- Diff: guide/blueprints/catalog/index.md --- @@ -375,153 +375,120 @@ the latest non-snapshot version will be loaded when an entity is instantiated. ### Bundling Catalog Resources -When deploying a blueprint, it is possible to deploy it as an OSGI bundle with additional resources scoped -to this bundle. This is particularly useful when, for example, deploying a Tomcat server with a `.war` file -which is deployed using a classpath path such as `classpath://mywar.war`. +It is possible to add an OSGi bundle to AMP. This is useful when you have a blueprint that needs to reference external scripts/resources or when you have multiple blueprints that you want to keep in sync. Brooklyn will persist any uploaded bundles so that they are available after a restart, or a HA failover. -In this example, we will create a simple `server` catalog item, bundled with a simple text file. +In this example, we will create a simple `my-server` catalog item, bundled with a simple script. The script will be run when launching the server. -First, create the text file with some sample contents: +First, create a folder called bundleFolder, then add a file called myfile.sh to it. +The contents of myfile.sh should be as follows: ~~~ bash -echo Hello, World! > myfile.txt +echo Hello, World! ~~~ -Now create a file called `catalog.bom` with the following contents: +Now create a file in bundleFolder called `catalog.bom` with the following contents: ~~~ yaml brooklyn.catalog: - bundle: script-server + bundle: MyServerBundle version: 1.0.0 - items: - - id: script-server -itemType: entity -item: - type: server - brooklyn.config: -files.runtime: - classpath://myfile.txt: files/myfile.txt + item: --- End diff -- The [catalog docs](http://brooklyn.apache.org/v/latest/ops/catalog/index.html) use the following format rather than the shortcut format which excludes `items:` ``` items: id: foo item: type: bar ``` --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-docs issue #172: Java config docs: default-value should be immutabl...
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-docs/pull/172 I think it would be worth changing the wording to make it clearer that you're not talking about the user *setting* the default to a new value, but instead modifying the underlying object, i.e. the risk isn't that they might say `myConfigKey.setDefaultValue(newValue)`, but rather `myListConfigKey.getDefaultValue().add(foo)`. Perhaps something like: If supplying an object as a default value, it is important that the object is immutable. Otherwise, it risks users of the blueprint modifying the underlying object, which would affect blueprints that are subsequently deployed. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server issue #625: Updates BasicExternalConfigSupplierRegistry to u...
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/625 Tests added at https://github.com/apache/brooklyn-dist/pull/89 --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-dist pull request #89: Adds tests for OSGI loading of external conf...
GitHub user nakomis opened a pull request: https://github.com/apache/brooklyn-dist/pull/89 Adds tests for OSGI loading of external config providers You can merge this pull request into a Git repository by running: $ git pull https://github.com/nakomis/brooklyn-dist osgi-external-config Alternatively you can review and apply these changes as the patch at: https://github.com/apache/brooklyn-dist/pull/89.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #89 commit a95695be94a4a4004ec2154a8c5af6a39ec9bca6 Author: Martin Harris <git...@nakomis.com> Date: 2017-04-11T12:48:27Z Adds tests for OSGI loading of external config providers --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request #625: Updates BasicExternalConfigSupplierRegist...
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-server/pull/625#discussion_r110842541 --- Diff: core/src/main/java/org/apache/brooklyn/core/mgmt/internal/BasicExternalConfigSupplierRegistry.java --- @@ -103,12 +103,13 @@ private void updateFromBrooklynProperties(ManagementContext mgmt) { BrooklynProperties config = ConfigUtils.filterForPrefixAndStrip(externalProviderProperties, key + "."); try { -Maybe configSupplier = Reflections.invokeConstructorFromArgs(classloader, ExternalConfigSupplier.class, providerClassname, mgmt, name, config); +Class supplierClass = (Class)new ClassLoaderUtils(this, mgmt).loadClass(providerClassname); +Maybe configSupplier = Reflections.invokeConstructorFromArgs(supplierClass, mgmt, name, config); if (!configSupplier.isPresent()) { --- End diff -- `supplierClass` is passed to `Reflections.invokeConstructorFromArgs` so it needs to be loaded first --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-docs issue #164: Adds documentation for bundling catalog resources ...
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-docs/pull/164 DO NOT MERGE. zip uploading is currently WIP feature --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request #625: Updates BasicExternalConfigSupplierRegist...
GitHub user nakomis opened a pull request: https://github.com/apache/brooklyn-server/pull/625 Updates BasicExternalConfigSupplierRegistry to use ClassLoaderUtils You can merge this pull request into a Git repository by running: $ git pull https://github.com/nakomis/brooklyn-server reflections-external-supplier Alternatively you can review and apply these changes as the patch at: https://github.com/apache/brooklyn-server/pull/625.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #625 commit 9409b5bd9446e040ac574b736c8edf8e994a9ba4 Author: Martin Harris <git...@nakomis.com> Date: 2017-04-10T14:01:01Z Updates BasicExternalConfigSupplierRegistry to use ClassLoaderUtils --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-docs pull request #164: Adds documentation for bundling catalog res...
GitHub user nakomis opened a pull request: https://github.com/apache/brooklyn-docs/pull/164 Adds documentation for bundling catalog resources in a zip file You can merge this pull request into a Git repository by running: $ git pull https://github.com/nakomis/brooklyn-docs docs/resource-bundling Alternatively you can review and apply these changes as the patch at: https://github.com/apache/brooklyn-docs/pull/164.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #164 commit 3a75c55840230019a887c24badc58bebbff6871a Author: Martin Harris <git...@nakomis.com> Date: 2017-04-07T09:46:43Z Adds documentation for bundling catalog resources in a zip file --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-docs pull request #158: Minor fix to Azure ARM docs
Github user nakomis closed the pull request at: https://github.com/apache/brooklyn-docs/pull/158 --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-docs pull request #158: Minor fix to Azure ARM docs
GitHub user nakomis opened a pull request: https://github.com/apache/brooklyn-docs/pull/158 Minor fix to Azure ARM docs You can merge this pull request into a Git repository by running: $ git pull https://github.com/nakomis/brooklyn-docs fix/azure-arm-docs Alternatively you can review and apply these changes as the patch at: https://github.com/apache/brooklyn-docs/pull/158.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #158 commit 3b0e58c93d289f815fc1d101a8eabfca7c3c5401 Author: Martin Harris <git...@nakomis.com> Date: 2017-03-29T13:53:17Z Minor fix to Azure ARM docs --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server issue #564: Winrm CmdFeed
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/564 @neykov It looks like @bostko has addressed the bulk of the issues. Are you happy to merge this now? --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-docs issue #151: BROOKLYN-433: docs for yaml config key constraints
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-docs/pull/151 LGTM --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request #144: Allows for multiple deserialization class...
Github user nakomis closed the pull request at: https://github.com/apache/brooklyn-server/pull/144 --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server issue #144: Allows for multiple deserialization class rename...
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/144 Not needed for classic, so #492 should suffice, closing --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request #276: Effector for opening inbound ports in sec...
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-server/pull/276#discussion_r75093209 --- Diff: locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/networking/NetworkingEffectors.java --- @@ -0,0 +1,88 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.brooklyn.location.jclouds.networking; + +import com.google.common.base.Optional; +import com.google.common.base.Preconditions; +import com.google.common.base.Predicates; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Iterables; +import com.google.common.collect.Range; +import com.google.common.reflect.TypeToken; +import org.apache.brooklyn.api.effector.Effector; +import org.apache.brooklyn.api.location.Location; +import org.apache.brooklyn.config.ConfigKey; +import org.apache.brooklyn.core.config.ConfigKeys; +import org.apache.brooklyn.core.effector.EffectorBody; +import org.apache.brooklyn.core.effector.Effectors; +import org.apache.brooklyn.location.jclouds.JcloudsMachineLocation; +import org.apache.brooklyn.util.collections.MutableList; +import org.apache.brooklyn.util.core.BrooklynNetworkUtils; +import org.apache.brooklyn.util.core.config.ConfigBag; +import org.apache.brooklyn.util.net.Cidr; +import org.apache.brooklyn.util.net.Networking; +import org.jclouds.net.domain.IpPermission; +import org.jclouds.net.domain.IpProtocol; + +import java.util.List; + +public class NetworkingEffectors { +// Intentionally not use CloudLocationConfig.INBOUND_PORTS to make richer syntax and rename it to differ it from the first in a ConfigBag +public static final ConfigKey<List> INBOUND_PORTS_LIST = ConfigKeys.newConfigKey(new TypeToken<List>() {}, "inbound.ports.list", +"Ports to open from the effector", ImmutableList.of()); +public static final ConfigKey INBOUND_PORTS_LIST_PROTOCOL = ConfigKeys.newConfigKey(new TypeToken() {}, "inbound.ports.list.protocol", +"Protocol for ports to open. Possible values: TCP, UDP, ICMP, ALL.", IpProtocol.TCP); + +public static Effector<Iterable> openPortsInSecurityGroupEffector() { +return (Effector<Iterable>)Effectors.effector(Iterable.class, "openPortsInSecurityGroup") --- End diff -- Or even better, overloading `Effectors.effector` to take a TypeToken :-) --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request #276: (For Review) Effector for opening inbound...
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-server/pull/276#discussion_r75093029 --- Diff: locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/networking/NetworkingEffectors.java --- @@ -0,0 +1,88 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.brooklyn.location.jclouds.networking; + +import com.google.common.base.Optional; +import com.google.common.base.Preconditions; +import com.google.common.base.Predicates; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Iterables; +import com.google.common.collect.Range; +import com.google.common.reflect.TypeToken; +import org.apache.brooklyn.api.effector.Effector; +import org.apache.brooklyn.api.location.Location; +import org.apache.brooklyn.config.ConfigKey; +import org.apache.brooklyn.core.config.ConfigKeys; +import org.apache.brooklyn.core.effector.EffectorBody; +import org.apache.brooklyn.core.effector.Effectors; +import org.apache.brooklyn.location.jclouds.JcloudsMachineLocation; +import org.apache.brooklyn.util.collections.MutableList; +import org.apache.brooklyn.util.core.BrooklynNetworkUtils; +import org.apache.brooklyn.util.core.config.ConfigBag; +import org.apache.brooklyn.util.net.Cidr; +import org.apache.brooklyn.util.net.Networking; +import org.jclouds.net.domain.IpPermission; +import org.jclouds.net.domain.IpProtocol; + +import java.util.List; + +public class NetworkingEffectors { +// Intentionally not use CloudLocationConfig.INBOUND_PORTS to make richer syntax and rename it to differ it from the first in a ConfigBag +public static final ConfigKey<List> INBOUND_PORTS_LIST = ConfigKeys.newConfigKey(new TypeToken<List>() {}, "inbound.ports.list", +"Ports to open from the effector", ImmutableList.of()); +public static final ConfigKey INBOUND_PORTS_LIST_PROTOCOL = ConfigKeys.newConfigKey(new TypeToken() {}, "inbound.ports.list.protocol", +"Protocol for ports to open. Possible values: TCP, UDP, ICMP, ALL.", IpProtocol.TCP); + +public static Effector<Iterable> openPortsInSecurityGroupEffector() { +return (Effector<Iterable>)Effectors.effector(Iterable.class, "openPortsInSecurityGroup") --- End diff -- This fails to build in IntelliJ, replacing with `return (Effector<Iterable>)Effectors.effector((new TypeToken<Iterable>(){}).getRawType(), "openPortsInSecurityGroup")` would keep IDEs happy, but it builds in Maven, so no strong feelings --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-ui issue #30: BROOKLYN-323: Improve logout script
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-ui/pull/30 Tested alongside https://github.com/apache/brooklyn-server/pull/288 and this resolves the issue on Windows 10 on both IE and Edge. Behaviour on Chrome on OS X remains unchanged LGTM --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server issue #288: BROOKLYN-323: Simplify Logout api
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/288 Tested alongside https://github.com/apache/brooklyn-ui/pull/30 and this resolves the issue on Windows 10 on both IE and Edge. Behaviour on Chrome on OS X remains unchanged LGTM --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request #276: (For Review) Effector for opening inbound...
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-server/pull/276#discussion_r72585644 --- Diff: core/src/main/java/org/apache/brooklyn/util/core/BrooklynNetworkUtils.java --- @@ -39,4 +43,22 @@ public static InetAddress getLocalhostInetAddress() { Networking.getLocalHost()), InetAddress.class); } +// TODO it does not add adjacent intervals: {[22, 22], [23, 23]} is not merged to {[22, 23]} +public static RangeSet portRulesToRanges(Collection portRules) { +RangeSet result = TreeRangeSet.create(); +for (String portRule : portRules) { +if (portRule.contains("-")) { +String[] fromTo = portRule.split("-"); +assert fromTo.length == 2; --- End diff -- Assertions are disabled by default, use `Preconditions.checkState` --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server issue #270: [REVIEW ONLY] State transformations: support del...
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/270 Tested catalog deletions will YAML similar to following: --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server issue #267: Fix for BROOKLYN-314
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/267 Looks good, and pretty straightforward. Could you add a test for the rebind issue described in BROOKLYN-314 --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server issue #227: Fixes BrooklynFeatureEnablement setting defaults
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/227 One comment unrelated to this PR. Other than that, code looks good. Is there an documentation that explains the explicit precedence? --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server issue #157: Windows helper script for using Invoke-Command -...
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/157 Great, thanks @bostko There are now a couple of outstanding issues ([BROOKLYN-306](https://issues.apache.org/jira/browse/BROOKLYN-306) and [BROOKLYN-308](https://issues.apache.org/jira/browse/BROOKLYN-308)) which shouldn't hold up this PR, and have been logged LGTM --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server issue #157: Windows helper script for using Invoke-Command -...
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/157 The install scripts are run in the INSTALLDIR, and not the RUNDIR (the launch script is run in RUNDIR), which would be a good pattern to keep. As it will require a change to `templates.install` can you add a Jira issue so that this PR can be merged? (once the other issue you mentioned above has been resolved) --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-docs issue #78: Adds details of setting up a HA master-slave pair
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-docs/pull/78 PR comments addressed --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-docs pull request #78: Adds details of setting up a HA master-slave...
GitHub user nakomis opened a pull request: https://github.com/apache/brooklyn-docs/pull/78 Adds details of setting up a HA master-slave pair You can merge this pull request into a Git repository by running: $ git pull https://github.com/nakomis/brooklyn-docs ha-supplemental Alternatively you can review and apply these changes as the patch at: https://github.com/apache/brooklyn-docs/pull/78.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #78 commit a8f837a939a28a495a26403c78a0af624f107082 Author: Martin Harris <git...@nakomis.com> Date: 2016-06-20T09:47:05Z Adds details of setting up a HA master-slave pair --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server issue #194: Prevents premature resolving of external config
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/194 PR comments addressed --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request #194: Prevents premature resolving of external ...
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-server/pull/194#discussion_r67360931 --- Diff: locations/jclouds/src/main/java/org/apache/brooklyn/location/jclouds/JcloudsLocation.java --- @@ -2422,7 +2437,7 @@ protected JcloudsWinRmMachineLocation createWinRmMachineLocation(ComputeService .configure(WinRmMachineLocation.WINRM_CONFIG_PORT, sshHostAndPort.isPresent() ? sshHostAndPort.get().getPort() : node.getLoginPort()) .configure("user", getUser(setup)) .configure(WinRmMachineLocation.USER, setup.get(USER)) -.configure(WinRmMachineLocation.PASSWORD, setup.get(PASSWORD)) +.configure(ConfigBag.newInstance().copyRaw(setup, PASSWORD, WinRmMachineLocation.PASSWORD).getAllConfigRaw()) --- End diff -- This would require adding a dependency on brooklyn-core to brooklyn-api, which would create a circular dependency --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server issue #194: Prevents premature resolving of external config
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/194 This is in addition to the changes in https://github.com/apache/brooklyn-server/pull/193 --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request #194: Prevents premature resolving of external ...
GitHub user nakomis opened a pull request: https://github.com/apache/brooklyn-server/pull/194 Prevents premature resolving of external config If external config is resolved too early, it can lead to resolved values being persisted (security flaw). Also, changes to the external config supplier are not reflected when the config is subsequently read You can merge this pull request into a Git repository by running: $ git pull https://github.com/nakomis/brooklyn-server fix/external-config Alternatively you can review and apply these changes as the patch at: https://github.com/apache/brooklyn-server/pull/194.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #194 commit 9185b32e94fa396b8648096309a3fa8c92bd5c4a Author: Martin Harris <git...@nakomis.com> Date: 2016-06-10T13:21:40Z Prevents premature resolving of external config --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request #193: fix for issue where $brooklyn:external re...
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-server/pull/193#discussion_r66481067 --- Diff: camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/LocationExternalConfigYamlTest.java --- @@ -0,0 +1,153 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.brooklyn.camp.brooklyn; + +import static org.testng.Assert.assertEquals; + +import java.io.StringReader; + +import org.apache.brooklyn.api.entity.Entity; +import org.apache.brooklyn.api.location.Location; +import org.apache.brooklyn.camp.brooklyn.ExternalConfigYamlTest.MyExternalConfigSupplier; +import org.apache.brooklyn.camp.brooklyn.ExternalConfigYamlTest.MyExternalConfigSupplierWithoutMapArg; +import org.apache.brooklyn.config.ConfigKey; +import org.apache.brooklyn.core.config.ConfigKeys; +import org.apache.brooklyn.core.entity.StartableApplication; +import org.apache.brooklyn.core.internal.BrooklynProperties; +import org.apache.brooklyn.core.objs.BrooklynObjectInternal; +import org.apache.brooklyn.entity.software.base.EmptySoftwareProcess; +import org.apache.brooklyn.util.core.task.DeferredSupplier; +import org.apache.brooklyn.util.guava.Maybe; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.testng.Assert; +import org.testng.annotations.Test; + +import com.google.common.base.Joiner; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Iterables; + +public class LocationExternalConfigYamlTest extends AbstractYamlRebindTest { + + private static final Logger log = LoggerFactory.getLogger(ExternalConfigYamlTest.class); + +private static final ConfigKey MY_CONFIG_KEY = ConfigKeys.newStringConfigKey("my.config.key"); + +@Override +protected BrooklynProperties createBrooklynProperties() { +BrooklynProperties props = super.createBrooklynProperties(); +props.put("brooklyn.external.myprovider", MyExternalConfigSupplier.class.getName()); +props.put("brooklyn.external.myprovider.mykey", "myval"); +props.put("brooklyn.external.myproviderWithoutMapArg", MyExternalConfigSupplierWithoutMapArg.class.getName()); +return props; +} + +@Test(groups="Integration") +public void testLocalhostInheritance() throws Exception { +String yaml = Joiner.on("\n").join( +"services:", +"- type: "+EmptySoftwareProcess.class.getName(), +"location:", +" localhost:", +"my.config.key: $brooklyn:external(\"myprovider\", \"mykey\")"); + +origApp = (StartableApplication) createAndStartApplication(new StringReader(yaml)); + +Entity entity = Iterables.getOnlyElement( origApp.getChildren() ); +Location l = Iterables.getOnlyElement( entity.getLocations() ); +log.info("Location: "+l); --- End diff -- These log statements don't really give much info in the context of reading a log file, should be removed, or give more context --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request #193: fix for issue where $brooklyn:external re...
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-server/pull/193#discussion_r66480706 --- Diff: camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/LocationExternalConfigYamlTest.java --- @@ -0,0 +1,153 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.brooklyn.camp.brooklyn; + +import static org.testng.Assert.assertEquals; + +import java.io.StringReader; + +import org.apache.brooklyn.api.entity.Entity; +import org.apache.brooklyn.api.location.Location; +import org.apache.brooklyn.camp.brooklyn.ExternalConfigYamlTest.MyExternalConfigSupplier; +import org.apache.brooklyn.camp.brooklyn.ExternalConfigYamlTest.MyExternalConfigSupplierWithoutMapArg; +import org.apache.brooklyn.config.ConfigKey; +import org.apache.brooklyn.core.config.ConfigKeys; +import org.apache.brooklyn.core.entity.StartableApplication; +import org.apache.brooklyn.core.internal.BrooklynProperties; +import org.apache.brooklyn.core.objs.BrooklynObjectInternal; +import org.apache.brooklyn.entity.software.base.EmptySoftwareProcess; +import org.apache.brooklyn.util.core.task.DeferredSupplier; +import org.apache.brooklyn.util.guava.Maybe; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.testng.Assert; +import org.testng.annotations.Test; + +import com.google.common.base.Joiner; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Iterables; + +public class LocationExternalConfigYamlTest extends AbstractYamlRebindTest { + + private static final Logger log = LoggerFactory.getLogger(ExternalConfigYamlTest.class); + +private static final ConfigKey MY_CONFIG_KEY = ConfigKeys.newStringConfigKey("my.config.key"); + +@Override +protected BrooklynProperties createBrooklynProperties() { +BrooklynProperties props = super.createBrooklynProperties(); +props.put("brooklyn.external.myprovider", MyExternalConfigSupplier.class.getName()); +props.put("brooklyn.external.myprovider.mykey", "myval"); +props.put("brooklyn.external.myproviderWithoutMapArg", MyExternalConfigSupplierWithoutMapArg.class.getName()); +return props; +} + +@Test(groups="Integration") +public void testLocalhostInheritance() throws Exception { +String yaml = Joiner.on("\n").join( +"services:", +"- type: "+EmptySoftwareProcess.class.getName(), +"location:", +" localhost:", +"my.config.key: $brooklyn:external(\"myprovider\", \"mykey\")"); + +origApp = (StartableApplication) createAndStartApplication(new StringReader(yaml)); + +Entity entity = Iterables.getOnlyElement( origApp.getChildren() ); +Location l = Iterables.getOnlyElement( entity.getLocations() ); +log.info("Location: "+l); +assertEquals(l.config().get(MY_CONFIG_KEY), "myval"); + +Maybe rawConfig = ((BrooklynObjectInternal.ConfigurationSupportInternal)l.config()).getRaw(MY_CONFIG_KEY); +log.info("Raw config: "+rawConfig); +Assert.assertTrue(rawConfig.isPresentAndNonNull()); +Assert.assertTrue(rawConfig.get() instanceof DeferredSupplier, "Expected deferred raw value; got "+rawConfig.get()); +} + +@Test(groups="Integration") +public void testLocationFromCatalogInheritanceAndRebind() throws Exception { +ImmutableList.Builder yamlL = ImmutableList.builder().add( +"brooklyn.catalog:", +" id: l1", +" item.type:
[GitHub] brooklyn-server pull request #193: fix for issue where $brooklyn:external re...
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-server/pull/193#discussion_r66480033 --- Diff: camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/LocationExternalConfigYamlTest.java --- @@ -0,0 +1,153 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.brooklyn.camp.brooklyn; + +import static org.testng.Assert.assertEquals; + +import java.io.StringReader; + +import org.apache.brooklyn.api.entity.Entity; +import org.apache.brooklyn.api.location.Location; +import org.apache.brooklyn.camp.brooklyn.ExternalConfigYamlTest.MyExternalConfigSupplier; +import org.apache.brooklyn.camp.brooklyn.ExternalConfigYamlTest.MyExternalConfigSupplierWithoutMapArg; +import org.apache.brooklyn.config.ConfigKey; +import org.apache.brooklyn.core.config.ConfigKeys; +import org.apache.brooklyn.core.entity.StartableApplication; +import org.apache.brooklyn.core.internal.BrooklynProperties; +import org.apache.brooklyn.core.objs.BrooklynObjectInternal; +import org.apache.brooklyn.entity.software.base.EmptySoftwareProcess; +import org.apache.brooklyn.util.core.task.DeferredSupplier; +import org.apache.brooklyn.util.guava.Maybe; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.testng.Assert; +import org.testng.annotations.Test; + +import com.google.common.base.Joiner; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Iterables; + +public class LocationExternalConfigYamlTest extends AbstractYamlRebindTest { + + private static final Logger log = LoggerFactory.getLogger(ExternalConfigYamlTest.class); --- End diff -- Tab character... --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server issue #157: Windows helper script for using Invoke-Command -...
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/157 @bostko Ideally, *all* of the scripts and config file should be copied some path relative to `C:\brooklyn-managed-processes\install`. If they're copied to the temp folder, there's always the chance that they'll disappear and not be present if the entity is restarted at a later date. Let's copy to `C:\brooklyn-managed-processes\install` in the mssql-test blueprint, then it's up to individual blueprint authors to chose a different folder if they wish. https://github.com/apache/brooklyn-library/pull/40 will need to be updated to use the new file name too I'd still like to look at exporting this as a function, and have a mechanism to have it run before other scripts, but I'm happy for that to come in a later PR --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server issue #191: Add AbstractTransformer.ALLOW_CYCLIC_PUBLISHING
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/191 One comment, but other than that, LGTM --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server issue #150: Ability to perform installation on a Windows Blu...
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/150 The latest changes looks sensible. Is there any (external) documentation saying what exceptions we may see during `rebootAndWait`, or are the exceptions used (`WebServiceException` and `Fault`) from experimentation? --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request #150: Ability to perform installation on a Wind...
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-server/pull/150#discussion_r66244197 --- Diff: software/base/src/main/java/org/apache/brooklyn/entity/software/base/AbstractSoftwareProcessWinRmDriver.java --- @@ -321,12 +332,21 @@ public int copyTo(InputStream source, String destination) { } public void rebootAndWait() { +rebootAndWait(null); +} + +public void rebootAndWait(String hostname) { try { -executePsScriptNoRetry(ImmutableList.of("Restart-Computer -Force")); +if (hostname != null) { + getLocation().executePsScript(ImmutableMap.of(WinRmTool.COMPUTER_NAME, hostname), ImmutableList.of("Restart-Computer -Force")); +} else { + getLocation().executePsScript(ImmutableList.of("Restart-Computer -Force")); +} } catch (Exception e) { -// Restarting the computer will cause the command to fail; ignore the exception and continue +LOG.warn("Exception when restarting machine: ", e); --- End diff -- My understanding was that this exception was now *not* expected, @bostko is that the case? --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server issue #150: Ability to perform installation on a Windows Blu...
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/150 LGTM --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server issue #150: Ability to perform installation on a Windows Blu...
Github user nakomis commented on the issue: https://github.com/apache/brooklyn-server/pull/150 A couple of minor comments, but other than that, LGTM. We should probably refactor the away the `winrm.computerName` config key, and instead set the `hostname` sensor correctly during (or immediately after) machine provisioning, but that can happen in a future PR Have successfully tested a deployment of Active Directory Services to a Windows VM on AWS Oregon --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request #150: Ability to perform installation on a Wind...
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-server/pull/150#discussion_r65900734 --- Diff: software/base/src/main/java/org/apache/brooklyn/entity/software/base/VanillaWindowsProcessWinRmDriver.java --- @@ -49,15 +50,28 @@ public void start() { @Override public void install() { +String hostname = null; --- End diff -- At some point in the future, this should probably be refactored to get the name of the machine in `WinRmMachineLocation` and set it as the hostname sensor. Please add a TODO note here suggesting the same --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request #150: Ability to perform installation on a Wind...
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-server/pull/150#discussion_r65900017 --- Diff: software/base/src/main/java/org/apache/brooklyn/entity/software/base/AbstractSoftwareProcessWinRmDriver.java --- @@ -321,12 +332,22 @@ public int copyTo(InputStream source, String destination) { } public void rebootAndWait() { +rebootAndWait(null); +} + +public void rebootAndWait(String hostname) { try { -executePsScriptNoRetry(ImmutableList.of("Restart-Computer -Force")); +if (hostname != null) { + getLocation().executePsScript(ImmutableMap.of(WinRmTool.COMPUTER_NAME, hostname), ImmutableList.of("Restart-Computer -Force")); +} else { + getLocation().executePsScript(ImmutableList.of("Restart-Computer -Force")); +} } catch (Exception e) { // Restarting the computer will cause the command to fail; ignore the exception and continue --- End diff -- This comment is no longer true, and the LOG message below should be changed to something like `LOG.warn("Exception when restarting machine: ", e);` --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request: Ability to suppress install command failures o...
Github user nakomis commented on the pull request: https://github.com/apache/brooklyn-server/pull/150 @bostko I've been trying to reproduce the issue manually, by provisioning a windows VM, installing ADDS remotely using pywinrm with `-NoRebootOnCompletion`, then reconnecting to reboot, then reconnecting using domain credentials. It all worked successfully I think it's going to be worth spending some time looking into this - the `-NoRebootOnCompletion` and `INSTALL_REBOOT_REQUIRED` pattern seems much cleaner, even if we need to jump through some hoops to get the authentication working correctly Here's my rough notes from my testing: Created a VM: ``` services: - type: org.apache.brooklyn.entity.software.base.VanillaWindowsProcess brooklyn.config: launch.command: echo true checkRunning.command: echo true location: AWS Oregon Win ``` RDPd to the VM, and ran: ``` winrm set winrm/config/service/auth @{Basic="True"} ``` Then created `C:\ads.ps1` ``` Add-windowsfeature AD-Domain-Services Import-Module ADDSDeployment $pwd = "thepassword$!123Password" $securepwd = ConvertTo-SecureString $pwd -AsPlainText -Force $domainName = "mydomain.com" $domainNetbiosName = "mydomain" Install-ADDSForest -DomainName $domainName -DomainNetbiosName $domainNetbiosName -NoRebootOnCompletion -SafeModeAdministratorPassword: $securepwd -Force: $true ``` pywinrm to the VM and ran: ``` s = winrm.Session('52.39.83.40', auth=('Administrator', 'password')) r = s.run_ps("C:\\ads.ps1") r.std_out ``` Tried connecting again (success): ``` s = winrm.Session('52.39.83.40', auth=('Administrator', 'password')) r = s.run_ps("ls") r.std_out ``` Rebooted (success): ``` s = winrm.Session('52.39.83.40', auth=('Administrator', 'password')) r = s.run_ps("Restart-Computer -Force") r.std_out ``` Tried various connections... (all successful) ``` s = winrm.Session('52.39.83.40', auth=('Administrator', 'password')) r = s.run_ps("ls") r.std_out ``` ``` s = winrm.Session('52.39.83.40', auth=('Administrator@WIN-H2SOO1DO89C', 'password')) r = s.run_ps("ls") r.std_out ``` ``` s = winrm.Session('52.39.83.40', auth=('Administrator@mydomain', 'password')) r = s.run_ps("ls") r.std_out ``` --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request: Windows helper script for using Invoke-Command...
Github user nakomis commented on the pull request: https://github.com/apache/brooklyn-server/pull/157 This looks sensible, but it would be nice to tidy it up as follows: - Rename `brooklyn-invoke-command-credssp.ps1` to `invoke-command-credssp.ps1` - Rename `custom-enable-credssp.ps1` to `enable-credssp.ps1` - Move the scripts from `org/apache/brooklyn/software/base` to `org/apache/brooklyn/software/winrm/utils` - Rather than call `C:\invoke-command-credssp.ps1 -Command "my arguments"`, instead have `invoke-command-credssp.ps1` export a function such as `Invoke-Command-Credssp`, which would then be consumed by importing the function and calling `Invoke-Command-Credssp "my arguments"` - Create a config key `ENABLE_CRED_SSP`, which would run `enable-credssp.ps1` once and once only prior to any other scripts being run. I'm tempted to say make this default to true (but allow it to be set to false for security reasons). This could also be used to automatically copy the `invoke-command-credssp.ps1` script to an appropriate location and prepend the installation scripts with the appropriate import for `Invoke-Command-Credssp` - Copy `invoke-command-credssp.ps1` and `enable-credssp.ps1` to a more appropriate location than `C:\`â , such as `$HOME\brooklyn-managed-processes\scripts` (I'm not sure of the syntax or exact location of this on Windows) â The use of `C:\` was a poor choice of location by the original blueprint developer (me), and shouldn't have made it into production. It would be nice to change the destination of _all_ of the installation scripts, but for now, I think it's more important to find a suitable home for these two scripts --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request: Merge Map values in config
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-server/pull/151#discussion_r64203567 --- Diff: core/src/main/java/org/apache/brooklyn/location/byon/FixedListMachineProvisioningLocation.java --- @@ -345,7 +346,7 @@ protected void updateMachineConfig(T machine, Map flags) { // For backwards compatibility, where peristed state did not have this. origConfigs = Maps.newLinkedHashMap(); } -Map<String, Object> strFlags = ConfigBag.newInstance(flags).getAllConfig(); +Map<String, Object> strFlags = ConfigBag.newInstanceExtending(((AbstractConfigurationSupportInternal)machine.config()).getBag(), flags).getAllConfig(); --- End diff -- Ok, didn't see that. Is this changing `FixedListMachineProvisioningLocation` to work in the same way as `JcloudsLocation`? If so, it should use `ResolvingConfigBag` for consistency with `JcloudsLocation` --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request: Merge Map values in config
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-server/pull/151#discussion_r64203063 --- Diff: camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/EmptySoftwareProcessYamlTest.java --- @@ -60,6 +62,31 @@ public void testProvisioningProperties() throws Exception { } @Test(groups="Integration") +public void testProvisioningPropertiesOverrideValues() throws Exception { +Entity app = createAndStartApplication( +"location:", +" localhost:", +"templateOptions:", +" test: test", +"services:", +"- type: "+EmptySoftwareProcess.class.getName(), +" provisioning.properties:", +"minRam: 16384", +"templateOptions:", +" overrideLoginUser: test"); +waitForApplicationTasks(app); + +log.info("App started:"); +Entities.dumpInfo(app); + +EmptySoftwareProcess entity = (EmptySoftwareProcess) app.getChildren().iterator().next(); +Map<String, Object> pp = entity.getConfig(EmptySoftwareProcess.PROVISIONING_PROPERTIES); +Assert.assertEquals(pp.get("minRam"), 16384); +Map<String, Object> templateOptions = entity.getLocations().iterator().next().getConfig(JcloudsLocationConfig.TEMPLATE_OPTIONS); +Assert.assertEquals(templateOptions, ImmutableMap.of("overrideLoginUser", "test", "test", "test")); --- End diff -- The name of the util class is ok, but line 86 of `EmptySoftwareProcessYamlTest` (the line I commented on) would be clearer if it read `Assert.assertEquals(templateOptions, ImmutableMap.of("overrideLoginUser", "testUser", "testKey", "testValue"));` --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request: Merge Map values in config
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-server/pull/151#discussion_r64197677 --- Diff: core/src/main/java/org/apache/brooklyn/location/byon/FixedListMachineProvisioningLocation.java --- @@ -345,7 +346,7 @@ protected void updateMachineConfig(T machine, Map flags) { // For backwards compatibility, where peristed state did not have this. origConfigs = Maps.newLinkedHashMap(); } -Map<String, Object> strFlags = ConfigBag.newInstance(flags).getAllConfig(); +Map<String, Object> strFlags = ConfigBag.newInstanceExtending(((AbstractConfigurationSupportInternal)machine.config()).getBag(), flags).getAllConfig(); --- End diff -- Does this need to be applied to the other implementations of `MachineProvisioningLocation.obtain()`? Will this effect the behaviour of existing blueprints? --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request: Merge Map values in config
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-server/pull/151#discussion_r64197284 --- Diff: camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/EmptySoftwareProcessYamlTest.java --- @@ -60,6 +62,31 @@ public void testProvisioningProperties() throws Exception { } @Test(groups="Integration") +public void testProvisioningPropertiesOverrideValues() throws Exception { +Entity app = createAndStartApplication( +"location:", +" localhost:", +"templateOptions:", +" test: test", +"services:", +"- type: "+EmptySoftwareProcess.class.getName(), +" provisioning.properties:", +"minRam: 16384", +"templateOptions:", +" overrideLoginUser: test"); +waitForApplicationTasks(app); + +log.info("App started:"); +Entities.dumpInfo(app); + +EmptySoftwareProcess entity = (EmptySoftwareProcess) app.getChildren().iterator().next(); +Map<String, Object> pp = entity.getConfig(EmptySoftwareProcess.PROVISIONING_PROPERTIES); +Assert.assertEquals(pp.get("minRam"), 16384); +Map<String, Object> templateOptions = entity.getLocations().iterator().next().getConfig(JcloudsLocationConfig.TEMPLATE_OPTIONS); +Assert.assertEquals(templateOptions, ImmutableMap.of("overrideLoginUser", "test", "test", "test")); --- End diff -- A minor point (shouldn't hold up this PR), but `testKey`, `testValue`, and `testUser` would be clearer here --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request: Suppress exceptions in the isRunning...
Github user nakomis commented on the pull request: https://github.com/apache/brooklyn-server/pull/145#issuecomment-220266139 A future improvement would be for `AbstractSoftwareProcessWinRmDriver.rebootAndWait` to set a sensor to indicate that the machine is rebooting, which could be checked in the catch block, but I don't think that's worth holding up this PR. Other than that, LGTM --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request: Allows for multiple deserialization ...
GitHub user nakomis opened a pull request: https://github.com/apache/brooklyn-server/pull/144 Allows for multiple deserialization class renames files You can merge this pull request into a Git repository by running: $ git pull https://github.com/nakomis/brooklyn-server deserialization-class-renames Alternatively you can review and apply these changes as the patch at: https://github.com/apache/brooklyn-server/pull/144.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #144 commit 64a364ffeaf9fae9284263535ef74c0f0b206cb9 Author: Martin Harris <git...@nakomis.com> Date: 2016-05-18T14:54:47Z Allows for multiple deserialization class renames files --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request: Adds class renames for downstream Cl...
GitHub user nakomis opened a pull request: https://github.com/apache/brooklyn-server/pull/143 Adds class renames for downstream Clocker project You can merge this pull request into a Git repository by running: $ git pull https://github.com/nakomis/brooklyn-server clocker-class-renames Alternatively you can review and apply these changes as the patch at: https://github.com/apache/brooklyn-server/pull/143.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #143 commit 8745f441faff0ee1807c0cb7eae06f69a7573f6e Author: Martin Harris <git...@nakomis.com> Date: 2016-05-18T09:32:29Z Adds class renames for downstream Clocker project --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request: Configurable removal strategies
Github user nakomis commented on a diff in the pull request: https://github.com/apache/brooklyn-server/pull/112#discussion_r62474640 --- Diff: core/src/main/java/org/apache/brooklyn/entity/group/FirstFromRemovalStrategy.java --- @@ -0,0 +1,53 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.brooklyn.entity.group; + +import java.util.Collection; +import java.util.List; + +import javax.annotation.Nullable; + +import org.apache.brooklyn.api.entity.Entity; +import org.apache.brooklyn.config.ConfigKey; +import org.apache.brooklyn.core.config.ConfigKeys; + +import com.google.common.collect.Iterables; +import com.google.common.reflect.TypeToken; + +public class FirstFromRemovalStrategy extends RemovalStrategy { + +public static final ConfigKey<List> STRATEGIES = ConfigKeys.newConfigKey(new TypeToken<List>() {}, "firstfrom.strategies", +"An ordered list of removal strategies to be used to determine which entity to remove"); + +@Nullable +@Override +public Entity apply(@Nullable Collection input) { +List strategies = config().get(STRATEGIES); --- End diff -- The benefit of using `BasicConfigurableObject` is that the configuration is the configuration (i.e. setting of ConfigKeys) is managed automatically by the `ConfigurationSupport`, rather than implementors having to read the values directly from the properties passed to the constructor --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request: Configurable removal strategies
Github user nakomis commented on the pull request: https://github.com/apache/brooklyn-server/pull/112#issuecomment-208879479 Hadn't twigged that I wouldn't need to change the config key. Much nice without all the deprecation. Have close https://github.com/apache/brooklyn-library/pull/31 as it's no longer needed --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-library pull request: Adds configurable removal strategie...
Github user nakomis closed the pull request at: https://github.com/apache/brooklyn-library/pull/31 --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request: Configurable removal strategies
Github user nakomis commented on the pull request: https://github.com/apache/brooklyn-server/pull/112#issuecomment-208827153 Depended on by https://github.com/apache/brooklyn-library/pull/31 to be merged at the same time --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-library pull request: Adds configurable removal strategie...
GitHub user nakomis opened a pull request: https://github.com/apache/brooklyn-library/pull/31 Adds configurable removal strategies, deprecates old removal strategy Depends on https://github.com/apache/brooklyn-server/pull/112 to be merged at the same time You can merge this pull request into a Git repository by running: $ git pull https://github.com/nakomis/brooklyn-library configurable-removal-strategies Alternatively you can review and apply these changes as the patch at: https://github.com/apache/brooklyn-library/pull/31.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #31 commit 0371a272d1904243beb38c226a9f9cd1d424a440 Author: Martin Harris <git...@nakomis.com> Date: 2016-04-11T15:04:02Z Adds configurable removal strategies, deprecates old removal strategy --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] brooklyn-server pull request: Configurable removal strategies
GitHub user nakomis opened a pull request: https://github.com/apache/brooklyn-server/pull/112 Configurable removal strategies You can merge this pull request into a Git repository by running: $ git pull https://github.com/nakomis/brooklyn-server configurable-removal-strategies Alternatively you can review and apply these changes as the patch at: https://github.com/apache/brooklyn-server/pull/112.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #112 commit 8caad30d762be992d918b8b2eba9c34a99f7d217 Author: Martin Harris <git...@nakomis.com> Date: 2016-04-11T15:03:19Z Adds configurable removal strategies, deprecates old removal strategy commit d3a58ff00108ae75408963fab503526fb5e4a5f3 Author: Martin Harris <git...@nakomis.com> Date: 2016-04-11T15:15:53Z Makes default configurable removal strategy a public class, so it can be referred to in YAML commit 56638365b7fdc7516545aed64125dfe7eb777fc0 Author: Martin Harris <git...@nakomis.com> Date: 2016-04-12T09:57:51Z Adds test for removal strategies --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] incubator-brooklyn pull request: Uses externally accessible addres...
Github user nakomis commented on the pull request: https://github.com/apache/incubator-brooklyn/pull/1168#issuecomment-186160816 /bump @sjcorbett @grkvlt @aledsage Any input on @ahgittin's comments? --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---