Commit Graph

444 Commits

Author SHA1 Message Date
joewitt fb51483777 Revert "NIFI-1218 upgraded Kafka to 0.9.0.0 client API Tested and validated that it is still compatible with 0.8.* Kafka brokers"
This reverts commit 37635232c7.
2015-12-19 00:07:34 -05:00
joewitt 51821e01b6 Revert "NIFI-1218 addressed PR comments"
This reverts commit 7c87968260.
2015-12-19 00:06:35 -05:00
Matt Gilman 05395eeca5 NIFI-1294: - Updating exception handling to account for a possible issue in an dependency.
Signed-off-by: joewitt <joewitt@apache.org>
2015-12-18 21:33:07 -05:00
Mark Payne 0a58ab47b9 NIFI-1310: Do not yield context when encountering IOException and fixed bug that caused the penalization period for a node not to get set
Signed-off-by: joewitt <joewitt@apache.org>
2015-12-18 17:35:46 -05:00
Matt Gilman 43c7ecd221 NIFI-1298: - Addressing too many significant digits in the processor load average and [non]heap utilization.
Signed-off-by: joewitt <joewitt@apache.org>
2015-12-18 17:02:40 -05:00
Matt Gilman 0436383f49 NIFI-1286: - Removing provenance option from the Label context menu
Signed-off-by: joewitt <joewitt@apache.org>
2015-12-18 17:02:33 -05:00
Matt Gilman 608287f9fe NIFI-1309:
- Addressing issues around remote process groups automatically issuing new account requests.
- Ensuring authorization issues are updated with status refresh.
2015-12-18 15:57:38 -05:00
Mark Payne bd4f31a4c2 NIFI-1279: Take the FlowFile's 1-up id into account for the newest and oldest flowfile prioritizers
Signed-off-by: joewitt <joewitt@apache.org>
2015-12-18 12:08:31 -05:00
Mark Payne 1869b44682 NIFI-1285: Used a BufferedInputStream when swapping in data
Signed-off-by: joewitt <joewitt@apache.org>
2015-12-18 12:08:23 -05:00
Mark Payne 9ca0f95d06 NIFI-1272: Added unit test to verify behavior 2015-12-18 11:51:42 -05:00
ianwww fa4c5314ca nifi-1272 Fixing a bug in StandardProcessSession.get(int) which returns incorrect number of flowfiles
Signed-off-by: Mark Payne <markap14@hotmail.com>
2015-12-18 11:50:39 -05:00
Mike Moser f239be289e NIFI-1302 find dynamic libraries with standard names
Signed-off-by: joewitt <joewitt@apache.org>
2015-12-18 09:12:32 -05:00
Oleg Zhurakousky 7c87968260 NIFI-1218 addressed PR comments
Signed-off-by: jpercivall <joepercivall@yahoo.com>
2015-12-16 14:25:28 -05:00
Oleg Zhurakousky 37635232c7 NIFI-1218 upgraded Kafka to 0.9.0.0 client API Tested and validated that it is still compatible with 0.8.* Kafka brokers
Signed-off-by: jpercivall <joepercivall@yahoo.com>
2015-12-16 14:25:28 -05:00
Matt Gilman b19ff7cf37 NIFI-1215:
- Only showing the run duration setting when applicable.
- Showing the user a warning that a source processor with a non 0 run duration could lose data when NiFi is restarted.
2015-12-16 10:53:15 -05:00
Matt Gilman 51b8ecd01b NIFI-1185:
- Using banners from the NCM rather than replicating to a node.
2015-12-15 12:51:14 -05:00
Matt Gilman c75b5cfcea NIFI-1119: - Addressing race condition that caused the revision to be checked before the flow was loaded.
Signed-off-by: jpercivall <joepercivall@yahoo.com>
2015-12-15 10:05:44 -05:00
Matt Gilman 17be1c2d9f NIFI-1206: - Only enabling the enable/disable toolbar icon when appropriate.
Signed-off-by: Joseph Percivall <joepercivall@yahoo.com>
2015-12-14 18:09:11 -05:00
Matt Gilman f9f04439fd NIFI-1119:
- Also refreshing flow revision when the user clicks Refresh status.
2015-12-14 12:41:45 -05:00
joewitt a7b09a57c5 NIFI-1122 release vote passess. Merge branch 'NIFI-1122_nifi-0.4.0-RC2' 2015-12-11 17:14:26 -05:00
Matt Gilman 8070a9f1cc NIFI-1104:
- Using the appropriate attributes based on the content direction.
2015-12-11 10:59:41 -05:00
joewitt d755e43ec8 NIFI-1122_nifi-0.4.0-RC2prepare for next development iteration 2015-12-08 13:00:10 -05:00
joewitt b66c029090 NIFI-1122_nifi-0.4.0-RC2prepare release nifi-0.4.0-RC2 2015-12-08 12:59:59 -05:00
Mark Payne fb65cf1235 NIFI-1271: Yield funnels and ports for nifi.bored.yield.duration amount of time if backpressure is applied, as we do when there are no input FlowFiles. Adjusting logic for ContinuallyRunProcessorTask#call in determining if there is appropriate availability for processor relationships.
Signed-off-by: Aldrin Piri <aldrin@apache.org>
2015-12-08 10:54:29 -05:00
joewitt ba2719836b NIFI-1267 addressing unused imports due to contrib-check fail 2015-12-07 22:18:31 -05:00
joewitt 10803c81d9 NIFI-1267 needed to remove permissions change 2015-12-07 21:28:07 -05:00
Mark Payne d1395ea7ee NIFI-1269: Ensure that we roll back session if not transferring FlowFile
Signed-off-by: joewitt <joewitt@apache.org>
2015-12-07 21:18:33 -05:00
joewitt 3ecccf02de NIFI-1267 removed previous technique to force exception in test 2015-12-07 20:44:21 -05:00
Mark Payne 0c7617b686 NIFI-1267: TestListFile attempts to ensure that files that are not readable are skipped but the assumptions made are not valid if running as root; removed this check, since it is not reliable
Signed-off-by: joewitt <joewitt@apache.org>
2015-12-07 20:42:07 -05:00
joewitt 9524f63766 Merge branch 'master' into NIFI-1267 2015-12-07 20:38:44 -05:00
Matt Gilman 08d0f3e596 NIFI-956: - Initialize the filter controls prior to the new processor table. Because of this, items were being incorrectly filtered on load. - Clean up in web.xml.
Signed-off-by: Aldrin Piri <aldrin@apache.org>
2015-12-07 20:12:44 -05:00
Matt Gilman ee7eeb0493 NIFI-1268: - In some environments it appears as though the row selection event is triggering when there is no items in the table. Verifying the item was found prior to continuing.
Signed-off-by: Aldrin Piri <aldrin@apache.org>
2015-12-07 19:50:37 -05:00
Mark Payne fee9f381a7 NIFI-1267: Extend processor and force an Exception to be thrown from changeOwner instead of relying on permissions to cause failure, since root user has super permissions and as a result flowfiles are not routed to failure
Signed-off-by: joewitt <joewitt@apache.org>
2015-12-07 17:09:17 -05:00
Mark Payne 46623c2bf3 Merge branch 'NIFI-1261' 2015-12-07 15:13:12 -05:00
Matt Gilman 1f4ef9f5fa NIFI-1266:
- Adding license file for LDAP provider NAR.
- Adding spring security to NOTICE where appropriate.
2015-12-07 15:04:09 -05:00
Matt Gilman 4c7894bccc NIFI-1260:
- Not pre-compiling message-page as it seems to be causign some runtime errors in some environments.
2015-12-07 12:20:18 -05:00
Mark Payne bfe6fad502 NIFI-1261: Use consistent file separators for ListFile / TestListFile based on what the Operating System uses 2015-12-07 10:19:49 -05:00
Mark Payne bd3fd870ac NIFI-1263: Windows considers last mod time on both rolled over files to be the same, due to the way that windows computes the lastMod time. On linux and os x it is done differently. This is easily solved by adding a small sleep to the unit test before 'rolling over' the file so that the last mod date is different on all OS's, which yields the same behavior on all OS's 2015-12-07 09:53:33 -05:00
Andy LoPresto f83e6d33c5 NIFI-1242:
Added logic and test resources to debug JCE unlimited strength cryptography policy issues and incorporated into processor property validation.
Excluded test resources from RAT check
Added KeyDerivationFunction enum.
Added kdf property in EncryptContent processor and provided to PasswordBasedEncryptor.
Added logic in PasswordBasedEncryptor to handle variable KDF.
Added unit tests for EncryptContent processor.
Added test resources and excluded from RAT check.

plain.txt: This is a plaintext message.

0s @ 12:20:32 $ openssl enc -aes-256-cbc -e -in plain.txt -out salted_raw.enc -k thisIsABadPassword -p
salt=31DC301A6C7B8A0B
key=CB878A6E167A5B530B8F2BD175E6359E3092AFF7C83274A22A5B421D79E599AC
iv =0C614A72FC06B454B84E035B3FA8F877
0s @ 12:20:44 $ xxd salted_raw.enc
0000000: 5361 6c74 6564 5f5f 31dc 301a 6c7b 8a0b  Salted__1.0.l{..
0000010: 616b c65d f767 504d c085 ba7a c517 d0cb  ak.].gPM...z....
0000020: 7832 211e f573 b6f1 ded2 8f59 88e8 088f  x2!..s.....Y....

0s @ 20:14:00 $ openssl enc -aes-256-cbc -e -in plain.txt -out unsalted_raw.enc -k thisIsABadPassword -p -nosalt
key=711E85689CE7AFF6F410AEA43ABC5446842F685B84879B2E00F977C22B9E9A7D
iv =0C90ABF8ECE84B92BAA2CD448EC760F0
0s @ 20:14:17 $ xxd unsalted_raw.enc
0000000: 70cd 2984 fdbb 0e7c c01b 7206 88b1 6b50  p.)....|..r...kP
0000010: 5eeb e4f3 4036 773b 00ce dd8e 85d8 f90a  ^...@6w;........

This closes #140

Signed-off-by: Aldrin Piri <aldrin@apache.org>
2015-12-04 19:45:10 -05:00
Mark Payne ee14d8f9dd Merge branch 'NIFI-1249' 2015-12-04 16:38:49 -05:00
Mark Payne 903f4981a2 Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/nifi 2015-12-04 15:14:10 -05:00
Mike Moser 14b3349e8d NIFI-1254 remove Destination Type property from GetJMSQueue and GetJMSTopic
Signed-off-by: Mark Payne <markap14@hotmail.com>
2015-12-04 15:11:47 -05:00
Mark Payne f378ee9021 NIFI-1249: Allow Processors to add their own variables to those referencable by Expression Language. Make ReplaceText allow users to reference back-references of regex matches 2015-12-04 13:17:37 -05:00
joewitt 0f3a620154 NIFI-1250 removed erroneous ContentType reference and added docs for attributes to index
Signed-off-by: Matt Gilman <matt.c.gilman@gmail.com>
2015-12-04 12:58:02 -05:00
Matt Gilman dae73c52a7 NIFI-1248:
- Initializing the actions file which ensures the progress bar is initialized.
2015-12-03 13:49:56 -08:00
Mark Payne dce039b54f Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/nifi 2015-12-03 16:35:33 -05:00
Mark Payne 76914ead03 Merge branch 'NIFI-1246' 2015-12-03 16:35:19 -05:00
Mark Payne 3b7512ebac NIFI-1246: When calculating relative paths, ensure that we have an absolute path 2015-12-03 16:06:03 -05:00
joewitt 3656c883c7 NIFI-1240 removing explicit reference to SUN provider. Not necessary for our use and ties us to Sun or JREs with Sun JCE available. Favoring no-args constructor instantiation of SecureRandom for greater flexibility in choosing from available CSPs. Deprecating the associated public constant for the PRNG.
Signed-off-by: Aldrin Piri <aldrin@apache.org>
2015-12-03 14:46:02 -05:00
Daniel Cave 6bdcd3913f nifi-1247 Correction for check of UnmatchedFieldBehaviour in generateUpdate to match generateInsert correct functionality
Signed-off-by: Mark Payne <markap14@hotmail.com>
2015-12-03 14:12:23 -05:00
Mark Payne dae25accb7 Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/nifi 2015-12-03 12:13:33 -05:00
Mark Payne ca79c146fd NIFI-1241: Fixed checkstyle violation that slipped through 2015-12-03 12:13:23 -05:00
Bryan Bende 4653908b22 NIFI-1227 Adding SSL/TLS support to Syslog processors
-Removing connection creation from PutSyslog onScheduled, and reusing constructor in SSLSocketChannel
-Reducing visiblity of inner classes
2015-12-03 11:42:33 -05:00
Mark Payne eceb1d20c7 NIFI-1241: Incorporate Boolean, Numeric, and Decimal data types for PutSQL 2015-12-03 10:02:36 -05:00
Mark Payne 6b75eda9ab NIFI-1244: Incorporate Schema Name property 2015-12-03 09:48:27 -05:00
Aldrin Piri ecc240b918 NIFI-1234 Augmenting container handling functionality for single Avro records and adjusting formatting in ConvertAvroToJSON.
Reviewed by Tony Kurc (tkurc@apache.org). This closes #136.
2015-12-02 20:16:08 -05:00
Andy LoPresto bde270a911 NIFI-1240:
Added explicit reference to Sun Java Cryptographic Service Provider in PasswordBasedEncryptor.
Removed manual seeding of SecureRandom in PasswordBasedEncryptor.

This closes #138.

Signed-off-by: Aldrin Piri <aldrin@apache.org>
2015-12-02 19:37:09 -05:00
Mark Payne 69598a0b40 Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/nifi 2015-12-02 17:41:18 -05:00
Mark Payne 02dc7e82b2 NIFI-1239: Fixed bug that caused the cache to hold 0 elements instead of 100 2015-12-02 16:39:40 -05:00
Oleg Zhurakousky 663b7f2561 NIFI-1243 This closes #137. added null check for 'currentReadClaimStream' . . .before it is being closed
Signed-off-by: joewitt <joewitt@apache.org>
2015-12-02 16:23:48 -05:00
Bryan Bende 6a8c2dba12 NIFI-1237 Reducing number of messages sent in testBatching() to be less than size of ListenSyslog's internal queue
Signed-off-by: joewitt <joewitt@apache.org>
2015-12-01 22:53:42 -05:00
Tony Kurc 3a7ddc6a35 NIFI-1054: Fixed DOS line endings in xml, java and js source files
Signed-off-by: joewitt <joewitt@apache.org>
2015-12-01 22:49:51 -05:00
Tony Kurc 8f92ac9931 NIFI-1225: When ENDPOINT_OVERRIDE is set, use PathStyleAccess
Reviewed by Mark Payne <markap14@hotmail.com>
2015-12-01 20:33:21 -05:00
Tony Kurc fcc032c7fd NIFI-1225: adding standard services nar
Reviewed by Mark Payne <markap14@hotmail.com>
2015-12-01 20:33:07 -05:00
Joe Skora 55352ae5b1 NIFI-1225: Changes for ENDPOINT_OVERRIDE and SSL Context Service from pr for NIFI-1107
Reviewed by Mark Payne <markap14@hotmail.com> and Tony Kurc (tkurc@apache.org)
2015-12-01 20:32:00 -05:00
Mark Payne 9dafe2db6a NIFI-1103: Fixed checkstyle violation 2015-12-01 15:56:59 -05:00
Mark Payne 307189d15b Merge branch 'NIFI-1103' of https://github.com/adamonduty/nifi 2015-12-01 15:45:51 -05:00
Matt Gilman 7726d069cd Merge branch 'NIFI-655' 2015-12-01 11:20:56 -05:00
Matt Gilman e22b51f3a7 NIFI-655:
- Renaming spring tokens to avoid confusion over authentication and authorization.
2015-12-01 10:08:36 -05:00
Matt Gilman 85eb8defdd NIFI-655:
- Changing default expiration time to 12 hours.
2015-12-01 09:36:33 -05:00
Matt Gilman c100052dac NIFI-655:
- Adding additional logging when proceeding as an anonymous user.
2015-12-01 08:51:45 -05:00
Mark Payne e5281f1fc1 NIFI-1221: Support batching of Syslog messages
Signed-off-by: Bryan Bende <bbende@apache.org>
2015-11-30 17:32:49 -05:00
Matt Gilman 2b0819a5f2 NIFI-655:
- Removing unused imports.
2015-11-30 16:33:11 -05:00
Matt Gilman 014b2ac4e8 NIFI-655:
- Removing proxied user chain as user details are already serialized.
2015-11-30 16:30:12 -05:00
Mark Payne c59087bc3a Merge branch 'NIFI-1049' 2015-11-30 16:02:36 -05:00
Mark Payne 07c619cf40 NIFI-1049: Added unit test to verify that reported bug was fixed; corrected a typo in log message 2015-11-30 15:37:58 -05:00
Matt Gilman 774d626f88 NIFI-655:
- Adding documentation around the behavior of the authentication filters.
- Only passing along necessary parameters.
2015-11-30 15:07:40 -05:00
Matt Gilman c722b56335 NIFI-655:
- Ensuring the access token is not replicated when the user is already authenticated/authorized.
2015-11-30 14:57:38 -05:00
Matt Gilman a84e505bcd NIFI-655:
- Ensuring the access token is not replicated when the user is already authenticated/authorized.
2015-11-30 14:47:30 -05:00
Matt Gilman 99016a835e NIFI-655:
- Ensuring the protocol is specified.
2015-11-30 12:38:17 -05:00
Matt Gilman 64beeef593 NIFI-655:
- Ensuring anonymous user label and login links are rendered when appropriate.
- Ensuring responses are accurate when making requests with a token when user log in is not supported.
2015-11-27 14:13:40 -05:00
Matt Gilman c1cc165edb NIFI-655:
- Fixing issue with filter bean initialization when clustered.
2015-11-27 10:05:58 -05:00
Mark Payne 9aa9c27dbe NIFI-1216: Check if log level is enabled immediately in the SimpleProcessLogger before formatting log message
Signed-off-by: joewitt <joewitt@apache.org>
2015-11-26 00:41:15 -05:00
joewitt 67aed5eb92 NIFI-1224: made TestExecuteSQL about 25 seconds faster. Same logic just less to process
Reviewed and Amended (removed trailing whitespace) by Tony Kurc (tkurc@apache.org)
2015-11-26 00:33:54 -05:00
joewitt a3cb803147 NIFI-1224: reduced size of test set produced and removed ignored memory test
Reviewed and amended (removed unused imports for checkstyle) by Tony Kurc (tkurc@apache.org)
2015-11-25 23:09:49 -05:00
joewitt 6692645209 NIFI-631: addressed environment specific unit test problems
Reviewed by Tony Kurc (tkurc@apache.org)
2015-11-25 22:06:45 -05:00
Joe Skora 226ac64ef9 NIFI-631: Correct the WritesAttributes descriptions.
Reviewed and Ammended (based on comments from dev list) by Tony Kurc (tkurc@apache.org)
2015-11-25 18:03:19 -05:00
Mark Payne ba83bf9c05 NIFI-631: Initial implementation of FetchFile processor
Reviewed by Tony Kurc (tkurc@apache.org)
2015-11-25 18:03:19 -05:00
Joe Skora 4c4d62c61f NIFI-631: Added ListFile processor.
Reviewed by Tony Kurc (tkurc@apache.org)
2015-11-25 18:03:19 -05:00
Matt Gilman 6bce858e4a NIFI-655:
- Updated user guide with screenshots of login process.
- Tweaked wording in admin guide.
- Triggering login on enter press in login form.
2015-11-25 16:42:22 -05:00
Mark Payne 5061e5fa0a NIFI-1222: Session.adjustCounter keeps track of local and global counters; it then call processContext.adjustCounter with each of them, but ProcessContext was changed a while back to automatically increment both 'lcoal' and 'global' counters each time, so our numbers are doubled; removed the 'localCounters' and 'globalCounters' from StandardProcessSession and replaced with just 'counters'
Signed-off-by: joewitt <joewitt@apache.org>
2015-11-25 16:26:59 -05:00
Mark Payne a29b7b3bf0 NIFI-1203: Do not count looping connections when determining validity based on incoming connections
Signed-off-by: joewitt <joewitt@apache.org>
2015-11-25 15:32:41 -05:00
Matt Gilman 0435911186 NIFI-1198: - Updating the connection source and destination when appropriate (deletion and (re)connection).
Signed-off-by: joewitt <joewitt@apache.org>
2015-11-25 14:50:56 -05:00
Matt Gilman c073253366 NIFI-655:
- Update admin guide with documentation for username/password authentication.
- Setting default anonymous roles to none.
- Making account status messages to users more clear.
- Deleting user keys when an admin revokes/deletes an account.
- Updating authentication filter to error back whenever authentication fails.
2015-11-25 14:17:23 -05:00
Mark Payne e1742c5a04 Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/nifi 2015-11-25 13:03:22 -05:00
Mark Payne 4fa2a713a2 NIFI-1192: Removed some additional white space 2015-11-25 12:57:06 -05:00
Mark Payne 657885e5ba Merge branch 'NIFI-1192B' of https://github.com/olegz/nifi into NIFI-1192 2015-11-25 12:30:15 -05:00
Oleg Zhurakousky d949ee1a1e NIFI-1192 added support for dynamic properties to GetKafka
Due to the fact that current component uses artificial names for properties set via UI and then maps those properties to the actual names used by Kafka, we can not rely on NiFi UI to display an error if user attempts to set a dynamic property which will eventually map to the same Kafka property. So, I’ve decided that any dynamic property will simply override an existing property with WARNING message displayed. It is actually consistent with how Kafka does it and displayed the overrides in the console. Updated the relevant annotation description.
It is also worth to mentioned that current code was using an old property from Kafka 0.7 (“zk.connectiontimeout.ms”) which is no longer present in Kafka 0.8 (WARN Timer-Driven Process Thread-7 utils.VerifiableProperties:83 - Property zk.connectiontimeout.ms is not valid). The add/override strategy would provide for more flexibility when dealing with Kafka volatile configuration until things will settle down and we can get some sensible defaults in place.

While doing it addressed the following issues that were discovered while making modification and testing:
ISSUE: When GetKafka started and there are no messages in Kafka topic the onTrigger(..) method would block due to the fact that Kafka’s ConsumerIterator.hasNext() blocks. When attempt was made to stop GetKafka would stops successfully due to the interrupt. However in UI it would appear as ERROR based on the fact that InterruptException was not handled.
RESOLUTION: After discussing it with @markap14 the the general desire is to let the task exit as quick as possible and that the whole thread maintenance logic was there initially due to the fact that there was no way to tell Kafka consumer to return immediately if there are no events. In this patch we are now using ‘consumer.timeout.ms’ property of Kafka and setting its value to 1 millisecond (default is -1 - always block infinitely). This ensures that tasks that attempted to read an empty topic will exit immediately just to be rescheduled by NiFi based on user configurations.

ISSUE:  Kafka would not release FlowFile with events if it didn’t have enough to complete the batch since it would block waiting for more messages (based on the blocking issue described above).
RESOLUTION: The invocation of hasNext() results in Kafka’s ConsumerTimeoutException which is handled in the catch block where the FlowFile with partial batch will be released to success. Not sure if we need to put a WARN message. In fact in my opinion we should not as it may create unnecessary confusion.

ISSUE: When configuring a consumer for topic and specifying multiple concurrent consumers in ‘topicCountMap’ based on 'context.getMaxConcurrentTasks()’ each consumer would bind to a topic partition. If you have less partitions then the value returned by 'context.getMaxConcurrentTasks()’ you would essentially allocate Kafka resources that would never get a chance to receive a single message  (see more here https://cwiki.apache.org/confluence/display/KAFKA/Consumer+Group+Example).
RESOLUTION: Logic was added to determine the amount of partitions for a topic and in the event where 'context.getMaxConcurrentTasks()’ value is greater than the amount of partitions, the partition count will be used to when creating ‘topicCountMap’ and WARNING message will be displayed)see code). Unfortunately we can’t do anything with the actual tasks, but based on current state of the code they will exit immediately just to be rescheduled where the process will repeat. NOTE: That is not ideal as it will be rescheduling tasks that will never have a chance to do anything, but at least it could be fixed on the user side after reading the warning message.

NIFI-1192 added dynamic properties support for PutKafka

NIFI-1192 polishing

NIFI-1192 polished and addressed PR comments
2015-11-24 12:14:36 -05:00
Matt Gilman 1312bde498 NIFI-655:
- Updating available links during login, registration, and account status review.
2015-11-24 00:37:47 -05:00
Bryan Bende 4281a51c83 Merge branch 'NIFI-1208' 2015-11-23 21:35:57 -05:00