[jira] [Created] (NIFI-1305) Clarify Jacadoc on DistributedMapCacheClient.getAndPutIfAbsent

2015-12-18 Thread Michael Kobit (JIRA)
Michael Kobit created NIFI-1305:
---

 Summary: Clarify Jacadoc on 
DistributedMapCacheClient.getAndPutIfAbsent
 Key: NIFI-1305
 URL: https://issues.apache.org/jira/browse/NIFI-1305
 Project: Apache NiFi
  Issue Type: Improvement
  Components: Documentation & Website
Affects Versions: 0.4.0
Reporter: Michael Kobit
Priority: Trivial


The Javadoc for this method on DistributedMapCacheClient 
(https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClient.java#L53-L71)
 is unclear about what happens if the key does not exist in the cache.

It looks like from the implementation of DistributedMapCacheClientService that 
it returns the value if it present, otherwise returns the computed value. The 
Javadoc doesn't state what is returned happens if an item does not exist.

I spent some time trying to figure out what makes sense from a client's 
perspective, and I had some trouble trying to understand what should happen. It 
seems obvious to me now that the cache should return either the existing value 
or the newly computed value, but it took some time to get there. 

I think the documentation should be clearer about what is returned in the case 
where the item does not exist



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (NIFI-786) Add other supporting options for configuring credentials for AWS processors

2015-10-10 Thread Michael Kobit (JIRA)

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

Michael Kobit commented on NIFI-786:


[~markap14] That sounds good to me.

> Add other supporting options for configuring credentials for AWS processors
> ---
>
> Key: NIFI-786
> URL: https://issues.apache.org/jira/browse/NIFI-786
> Project: Apache NiFi
>  Issue Type: Improvement
>Affects Versions: 0.3.0
>Reporter: Michael Kobit
>Priority: Minor
>
> I was looking at https://issues.apache.org/jira/browse/NIFI-770 and looked at 
> how the AWS processors credentials are currently configured. As a NFM you 
> have a few options with the properties right now:
> 1) set basic, static credentials
> 2) set a credentials properties filepath
> 3) set neither, use anonymous credentials
> I think it would be better if each AWS could rely on a ControllerService that 
> returns `AWSCredentialsProvider` (instead of  `AWSCredentials`) that gives 
> all of the possible implementations that could be used, rather than relying 
> on a static credentials. *Provider implementations can be refreshed and can 
> also  other more complicated implementations, but already have built in 
> support for the Static and Properties file that are provided by NiFi today.
> My thinking is that the controller service would be something like
> public interface AwsCredentialsProviderService extends ControllerService {
>   AWSCredentialsProvider getCredentialsProvider();
> }
> and you could have `StaticAwsCredentialsProviderService`, 
> `PropertiesFileAwsCredentialsProviderService`, and 
> `AnonymousAwsCredentialsProviderService` to provide the functionality that is 
> supported right now. Additional credential providers could be added later, as 
> there a bunch more AWS provided versions that I think could fit in well.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (NIFI-786) Add other supporting options for configuring credentials for AWS processors

2015-10-08 Thread Michael Kobit (JIRA)

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

Michael Kobit edited comment on NIFI-786 at 10/9/15 3:20 AM:
-

[~markap14] Hey Mark, my initial idea was that the ControllerService}} would 
return an 
[{{AWSCredentialsProvider}}|http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/AWSCredentialsProvider.html]
 not an 
[|http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/AWSCredentials.html].
 The {{*Provider}} can be used for supplying credentials that don't change, the 
static access and secret key use case now, but also allows for complicated 
implementations, like the ones that integrate with key management systems (like 
via [STS|http://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html]). I 
am fairly certain it is supported by all of the SDK vended 
{{Amazon*ServiceClient}}

For the use case of typing them in the UI, it would be supported by the, what I 
called above, {{StaticAwsCredentialsProviderService}} {{ControllerService}}. 
Users would type in the access/secret keys like they can do now, although they 
would have to set it up at the controller service level rather than at a 
processor level. This way it could also be reused across multiple AWS 
processors.

For the properties file use case, it would be supported by the, what I called 
above, {{PropertiesFileAwsCredentialsProviderService}} {{ControllerService}}. 
This implementation I would see using the AWS SDK 
[PropertiesFileCredentialsProvider|http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/PropertiesFileCredentialsProvider.html].
 It covers the file based use case, but it also (currently) allows for 
credential rotation in the file since it gets loaded every time.

One of the main use cases I was thinking of is when running on AWS and you are 
["Using IAM Roles to Grant Access to AWS Resources on Amazon 
EC2"|http://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/java-dg-roles.html].
 Basically distributing the credentials to the EC2 instances themselves rather 
than managing them in your application. The keys are temporary and AWS 
automatically rotates them, so using the AWS Java SDK 
{{AWSCredentialsProvider}} implementation is preferred. 

A couple other possible use cases that could be supported fairly easily:
1. environment variables
2. Java system properties

And then there is the option of allowing consumers to define their own 
{{ControllerService}} for retrieving credentials.


was (Author: mkobit):
[~markap14] Hey Mark, my initial idea was that the ControllerService}} would 
return an 
[AWSCredentialsProvider|http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/AWSCredentialsProvider.html]
 not an 
[|http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/AWSCredentials.html].
 The {{*Provider}} can be used for supplying credentials that don't change, the 
static access and secret key use case now, but also allows for complicated 
implementations, like the ones that integrate with key management systems (like 
via [STS|http://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html]). I 
am fairly certain it is supported by all of the SDK vended 
{{Amazon*ServiceClient}}

For the use case of typing them in the UI, it would be supported by the, what I 
called above, {{StaticAwsCredentialsProviderService}} {{ControllerService}}. 
Users would type in the access/secret keys like they can do now, although they 
would have to set it up at the controller service level rather than at a 
processor level. This way it could also be reused across multiple AWS 
processors.

For the properties file use case, it would be supported by the, what I called 
above, {{PropertiesFileAwsCredentialsProviderService}} {{ControllerService}}. 
This implementation I would see using the AWS SDK 
[PropertiesFileCredentialsProvider|http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/PropertiesFileCredentialsProvider.html].
 It covers the file based use case, but it also (currently) allows for 
credential rotation in the file since it gets loaded every time.

One of the main use cases I was thinking of is when running on AWS and you are 
["Using IAM Roles to Grant Access to AWS Resources on Amazon 
EC2"|http://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/java-dg-roles.html].
 Basically distributing the credentials to the EC2 instances themselves rather 
than managing them in your application. The keys are temporary and AWS 
automatically rotates them, so using the AWS Java SDK 
{{AWSCredentialsProvider}} implementation is preferred. 

A couple other possible use cases that could be supported fairly easily:
1. environment variables
2. Java system properties

And then there is the option of allowing consumers to define their own 
{{Contro

[jira] [Comment Edited] (NIFI-786) Add other supporting options for configuring credentials for AWS processors

2015-10-08 Thread Michael Kobit (JIRA)

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

Michael Kobit edited comment on NIFI-786 at 10/9/15 3:21 AM:
-

[~markap14] Hey Mark, my initial idea was that the {{ControllerService}} would 
return an 
[{{AWSCredentialsProvider}}|http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/AWSCredentialsProvider.html]
 not an 
[{{AWSCredentials}}|http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/AWSCredentials.html].
 The {{*Provider}} can be used for supplying credentials that don't change, the 
static access and secret key use case now, but also allows for complicated 
implementations, like the ones that integrate with key management systems (like 
via [STS|http://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html]). I 
am fairly certain it is supported by all of the SDK vended 
{{Amazon*ServiceClient}}

For the use case of typing them in the UI, it would be supported by the, what I 
called above, {{StaticAwsCredentialsProviderService}} {{ControllerService}}. 
Users would type in the access/secret keys like they can do now, although they 
would have to set it up at the controller service level rather than at a 
processor level. This way it could also be reused across multiple AWS 
processors.

For the properties file use case, it would be supported by the, what I called 
above, {{PropertiesFileAwsCredentialsProviderService}} {{ControllerService}}. 
This implementation I would see using the AWS SDK 
[PropertiesFileCredentialsProvider|http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/PropertiesFileCredentialsProvider.html].
 It covers the file based use case, but it also (currently) allows for 
credential rotation in the file since it gets loaded every time.

One of the main use cases I was thinking of is when running on AWS and you are 
["Using IAM Roles to Grant Access to AWS Resources on Amazon 
EC2"|http://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/java-dg-roles.html].
 Basically distributing the credentials to the EC2 instances themselves rather 
than managing them in your application. The keys are temporary and AWS 
automatically rotates them, so using the AWS Java SDK 
{{AWSCredentialsProvider}} implementation is preferred. 

A couple other possible use cases that could be supported fairly easily:
1. environment variables
2. Java system properties

And then there is the option of allowing consumers to define their own 
{{ControllerService}} for retrieving credentials.


was (Author: mkobit):
[~markap14] Hey Mark, my initial idea was that the ControllerService}} would 
return an 
[{{AWSCredentialsProvider}}|http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/AWSCredentialsProvider.html]
 not an 
[|http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/AWSCredentials.html].
 The {{*Provider}} can be used for supplying credentials that don't change, the 
static access and secret key use case now, but also allows for complicated 
implementations, like the ones that integrate with key management systems (like 
via [STS|http://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html]). I 
am fairly certain it is supported by all of the SDK vended 
{{Amazon*ServiceClient}}

For the use case of typing them in the UI, it would be supported by the, what I 
called above, {{StaticAwsCredentialsProviderService}} {{ControllerService}}. 
Users would type in the access/secret keys like they can do now, although they 
would have to set it up at the controller service level rather than at a 
processor level. This way it could also be reused across multiple AWS 
processors.

For the properties file use case, it would be supported by the, what I called 
above, {{PropertiesFileAwsCredentialsProviderService}} {{ControllerService}}. 
This implementation I would see using the AWS SDK 
[PropertiesFileCredentialsProvider|http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/PropertiesFileCredentialsProvider.html].
 It covers the file based use case, but it also (currently) allows for 
credential rotation in the file since it gets loaded every time.

One of the main use cases I was thinking of is when running on AWS and you are 
["Using IAM Roles to Grant Access to AWS Resources on Amazon 
EC2"|http://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/java-dg-roles.html].
 Basically distributing the credentials to the EC2 instances themselves rather 
than managing them in your application. The keys are temporary and AWS 
automatically rotates them, so using the AWS Java SDK 
{{AWSCredentialsProvider}} implementation is preferred. 

A couple other possible use cases that could be supported fairly easily:
1. environment variables
2. Java system properties

And then there is the option of allowing consumers to de

[jira] [Commented] (NIFI-786) Add other supporting options for configuring credentials for AWS processors

2015-10-08 Thread Michael Kobit (JIRA)

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

Michael Kobit commented on NIFI-786:


[~markap14] Hey Mark, my initial idea was that the ControllerService}} would 
return an 
[AWSCredentialsProvider|http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/AWSCredentialsProvider.html]
 not an 
[|http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/AWSCredentials.html].
 The {{*Provider}} can be used for supplying credentials that don't change, the 
static access and secret key use case now, but also allows for complicated 
implementations, like the ones that integrate with key management systems (like 
via [STS|http://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html]). I 
am fairly certain it is supported by all of the SDK vended 
{{Amazon*ServiceClient}}

For the use case of typing them in the UI, it would be supported by the, what I 
called above, {{StaticAwsCredentialsProviderService}} {{ControllerService}}. 
Users would type in the access/secret keys like they can do now, although they 
would have to set it up at the controller service level rather than at a 
processor level. This way it could also be reused across multiple AWS 
processors.

For the properties file use case, it would be supported by the, what I called 
above, {{PropertiesFileAwsCredentialsProviderService}} {{ControllerService}}. 
This implementation I would see using the AWS SDK 
[PropertiesFileCredentialsProvider|http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/PropertiesFileCredentialsProvider.html].
 It covers the file based use case, but it also (currently) allows for 
credential rotation in the file since it gets loaded every time.

One of the main use cases I was thinking of is when running on AWS and you are 
["Using IAM Roles to Grant Access to AWS Resources on Amazon 
EC2"|http://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/java-dg-roles.html].
 Basically distributing the credentials to the EC2 instances themselves rather 
than managing them in your application. The keys are temporary and AWS 
automatically rotates them, so using the AWS Java SDK 
{{AWSCredentialsProvider}} implementation is preferred. 

A couple other possible use cases that could be supported fairly easily:
1. environment variables
2. Java system properties

And then there is the option of allowing consumers to define their own 
{{ControllerService}} for retrieving credentials.

> Add other supporting options for configuring credentials for AWS processors
> ---
>
> Key: NIFI-786
> URL: https://issues.apache.org/jira/browse/NIFI-786
> Project: Apache NiFi
>  Issue Type: Improvement
>Affects Versions: 0.3.0
>Reporter: Michael Kobit
>Priority: Minor
>
> I was looking at https://issues.apache.org/jira/browse/NIFI-770 and looked at 
> how the AWS processors credentials are currently configured. As a NFM you 
> have a few options with the properties right now:
> 1) set basic, static credentials
> 2) set a credentials properties filepath
> 3) set neither, use anonymous credentials
> I think it would be better if each AWS could rely on a ControllerService that 
> returns `AWSCredentialsProvider` (instead of  `AWSCredentials`) that gives 
> all of the possible implementations that could be used, rather than relying 
> on a static credentials. *Provider implementations can be refreshed and can 
> also  other more complicated implementations, but already have built in 
> support for the Static and Properties file that are provided by NiFi today.
> My thinking is that the controller service would be something like
> public interface AwsCredentialsProviderService extends ControllerService {
>   AWSCredentialsProvider getCredentialsProvider();
> }
> and you could have `StaticAwsCredentialsProviderService`, 
> `PropertiesFileAwsCredentialsProviderService`, and 
> `AnonymousAwsCredentialsProviderService` to provide the functionality that is 
> supported right now. Additional credential providers could be added later, as 
> there a bunch more AWS provided versions that I think could fit in well.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (NIFI-786) Add other supporting options for configuring credentials for AWS processors

2015-10-06 Thread Michael Kobit (JIRA)

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

Michael Kobit commented on NIFI-786:


Any thoughts on this for the 1.0.0 version?

It seems like there could be 2 ways to do this:

1. Maintain backwards compatibility by checking if the `Access Key` and `Secret 
Key` are set or 'Credentials File', and if not use this new ControllerService
2. Get rid of those, and only use this ControllerService.

Since 1.0.0 (I believe) would be introducing some breaking changes, would this 
be considered for it?

> Add other supporting options for configuring credentials for AWS processors
> ---
>
> Key: NIFI-786
> URL: https://issues.apache.org/jira/browse/NIFI-786
> Project: Apache NiFi
>  Issue Type: Improvement
>Affects Versions: 0.3.0
>Reporter: Michael Kobit
>Priority: Minor
>
> I was looking at https://issues.apache.org/jira/browse/NIFI-770 and looked at 
> how the AWS processors credentials are currently configured. As a NFM you 
> have a few options with the properties right now:
> 1) set basic, static credentials
> 2) set a credentials properties filepath
> 3) set neither, use anonymous credentials
> I think it would be better if each AWS could rely on a ControllerService that 
> returns `AWSCredentialsProvider` (instead of  `AWSCredentials`) that gives 
> all of the possible implementations that could be used, rather than relying 
> on a static credentials. *Provider implementations can be refreshed and can 
> also  other more complicated implementations, but already have built in 
> support for the Static and Properties file that are provided by NiFi today.
> My thinking is that the controller service would be something like
> public interface AwsCredentialsProviderService extends ControllerService {
>   AWSCredentialsProvider getCredentialsProvider();
> }
> and you could have `StaticAwsCredentialsProviderService`, 
> `PropertiesFileAwsCredentialsProviderService`, and 
> `AnonymousAwsCredentialsProviderService` to provide the functionality that is 
> supported right now. Additional credential providers could be added later, as 
> there a bunch more AWS provided versions that I think could fit in well.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (NIFI-941) Same-page anchor links not present in URL after clicking

2015-09-09 Thread Michael Kobit (JIRA)
Michael Kobit created NIFI-941:
--

 Summary: Same-page anchor links not present in URL after clicking 
 Key: NIFI-941
 URL: https://issues.apache.org/jira/browse/NIFI-941
 Project: Apache NiFi
  Issue Type: Bug
  Components: Documentation & Website
Affects Versions: 0.2.1
 Environment: Firefox and Chrome on Mac OSX
Reporter: Michael Kobit
Priority: Minor


Clicking on some documentation inter-page links from a docs page, for example 
https://nifi.apache.org/docs.html or 
https://nifi.apache.org/developer-guide.html, causes you to move to that anchor 
in the page but the URL in the address bar remains the same. Back/forward seem 
to work fine.

This is kind of annoying when I am trying to send somebody documentation and I 
usually copy the URL, but the URL hasn't changed to reflect where I currently 
am in the page



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (NIFI-940) Expose 'filename' as a Property on PutFile, PutHDFS, PutFTP, PutSFTP, and other Put-esque processors

2015-09-09 Thread Michael Kobit (JIRA)

 [ 
https://issues.apache.org/jira/browse/NIFI-940?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Kobit updated NIFI-940:
---
Affects Version/s: 0.3.0

> Expose 'filename' as a Property on PutFile, PutHDFS, PutFTP, PutSFTP, and 
> other Put-esque processors
> 
>
> Key: NIFI-940
> URL: https://issues.apache.org/jira/browse/NIFI-940
> Project: Apache NiFi
>  Issue Type: Improvement
>  Components: Core Framework
>Affects Versions: 0.3.0
>Reporter: Michael Kobit
>
> Allow a NFM to set the filename to save files as. Should support Expression 
> language, and default to '${filename}' 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (NIFI-940) Expose 'filename' as a Property on PutFile, PutHDFS, PutFTP, PutSFTP, and other Put-esque processors

2015-09-09 Thread Michael Kobit (JIRA)
Michael Kobit created NIFI-940:
--

 Summary: Expose 'filename' as a Property on PutFile, PutHDFS, 
PutFTP, PutSFTP, and other Put-esque processors
 Key: NIFI-940
 URL: https://issues.apache.org/jira/browse/NIFI-940
 Project: Apache NiFi
  Issue Type: Improvement
  Components: Core Framework
Reporter: Michael Kobit


Allow a NFM to set the filename to save files as. Should support Expression 
language, and default to '${filename}' 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (NIFI-786) Add other supporting options for configuring credentials for AWS processors

2015-07-24 Thread Michael Kobit (JIRA)
Michael Kobit created NIFI-786:
--

 Summary: Add other supporting options for configuring credentials 
for AWS processors
 Key: NIFI-786
 URL: https://issues.apache.org/jira/browse/NIFI-786
 Project: Apache NiFi
  Issue Type: Improvement
Affects Versions: 0.3.0
Reporter: Michael Kobit
Priority: Minor


I was looking at https://issues.apache.org/jira/browse/NIFI-770 and looked at 
how the AWS processors credentials are currently configured. As a NFM you have 
a few options with the properties right now:
1) set basic, static credentials
2) set a credentials properties filepath
3) set neither, use anonymous credentials

I think it would be better if each AWS could rely on a ControllerService that 
returns `AWSCredentialsProvider` (instead of  `AWSCredentials`) that gives all 
of the possible implementations that could be used, rather than relying on a 
static credentials. *Provider implementations can be refreshed and can also  
other more complicated implementations, but already have built in support for 
the Static and Properties file that are provided by NiFi today.

My thinking is that the controller service would be something like

public interface AwsCredentialsProviderService extends ControllerService {
AWSCredentialsProvider getCredentialsProvider();
}

and you could have `StaticAwsCredentialsProviderService`, 
`PropertiesFileAwsCredentialsProviderService`, and 
`AnonymousAwsCredentialsProviderService` to provide the functionality that is 
supported right now. Additional credential providers could be added later, as 
there a bunch more AWS provided versions that I think could fit in well.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)