Commit Graph

640 Commits

Author SHA1 Message Date
Arun Suresh cb91bb3c96 YARN-7258. Add Node and Rack Hints to Opportunistic Scheduler. (Kartheek Muthyala via asuresh).
(cherry picked from commit b733348dde)
2017-10-05 15:22:20 -07:00
Subru Krishnan 7836a6b59a YARN-2037. Add work preserving restart support for Unmanaged AMs. (Botong Huang via Subru) 2017-10-04 16:29:08 -07:00
Jason Lowe 913a64e4c9 YARN-7248. NM returns new SCHEDULED container status to older clients. Contributed by Arun Suresh
(cherry picked from commit 85d81ae58e)

Conflicts:
	hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java
2017-09-28 14:25:01 -05:00
Rohith Sharma K S c570ddaa66 YARN-7157. Add admin configuration to filter per-user's apps in secure cluster. Contributed by Sunil G. 2017-09-27 11:49:59 +05:30
Carlo Curino 88b32edb8f YARN-7010. Federation: routing REST invocations transparently to multiple RMs (part 2 - getApps). (Contributed by Giovanni Matteo Fumarola via curino)
(cherry picked from commit cc8893edc0)
2017-09-21 18:09:44 -07:00
Subru Krishnan 261f769d79 YARN-6900. ZooKeeper based implementation of the FederationStateStore. (Íñigo Goiri via Subru).
(cherry picked from commit de462da04e)
2017-09-21 18:09:23 -07:00
Carlo Curino 8220b19af7 YARN-6896. Federation: routing REST invocations transparently to multiple RMs (part 1 - basic execution). (Contributed by Giovanni Matteo Fumarola via curino)
(cherry picked from commit cc59b5fb26)
2017-09-21 18:09:07 -07:00
Carlo Curino bfd967d338 YARN-5412. Create a proxy chain for ResourceManager REST API in the Router. (Contributed by Giovanni Matteo Fumarola via curino)
(cherry picked from commit b6240b92ab)
(cherry picked from commit acda6b96a4)
2017-09-21 17:13:28 -07:00
Subru Krishnan 049f7c84a1 YARN-6866. Minor clean-up and fixes in anticipation of YARN-2915 merge with trunk. (Botong Huang via Subru).
(cherry picked from commit 40453879ec)
(cherry picked from commit 86f05c3312)
2017-09-21 16:55:43 -07:00
Subru Krishnan 169037cbb4 YARN-3659. Federation: routing client invocations transparently to multiple RMs. (Giovanni Matteo Fumarola via Subru).
(cherry picked from commit 52daa6d971)
(cherry picked from commit 43a97174fe)
2017-09-21 16:55:33 -07:00
Subru Krishnan 7f00f938f2 YARN-5413. Create a proxy chain for ResourceManager Admin API in the Router. (Giovanni Matteo Fumarola via Subru).
(cherry picked from commit 67846a5519)
(cherry picked from commit 7444406d6d)
2017-09-21 16:47:14 -07:00
Subru Krishnan dc0a2e6c59 YARN-5411. Create a proxy chain for ApplicationClientProtocol in the Router. (Giovanni Matteo Fumarola via Subru).
(cherry picked from commit 4846069061)
(cherry picked from commit 80e1904000)
2017-09-21 16:43:08 -07:00
Carlo Curino 3c5dfa0fe5 YARN-3663. Federation State and Policy Store (DBMS implementation). (Giovanni Matteo Fumarola via curino).
(cherry picked from commit be99c1fe2e)
(cherry picked from commit 5272af8c7e)
2017-09-21 16:33:31 -07:00
Subru Krishnan 61c07e4f3f YARN-6247. Share a single instance of SubClusterResolver instead of instantiating one per AM. (Botong Huang via Subru)
(cherry picked from commit 51aeb2ce0c)
(cherry picked from commit 86b2bec56e)
2017-09-21 16:25:09 -07:00
Subru Krishnan d32ffa9e5e YARN-5676. Add a HashBasedRouterPolicy, and small policies and test refactoring. (Carlo Curino via Subru).
(cherry picked from commit 575137f41c)
(cherry picked from commit 4128c9522d)
2017-09-21 16:23:45 -07:00
Subru Krishnan d87d2b546e YARN-5634. Simplify initialization/use of RouterPolicy via a RouterPolicyFacade. (Carlo Curino via Subru).
(cherry picked from commit d7672ce2bd)
(cherry picked from commit 083a05bc14)
2017-09-21 16:23:44 -07:00
Jian He aac8755125 YARN-5601. Make the RM epoch base value configurable. Contributed by Subru Krishnan
(cherry picked from commit 9ca2aba9cc)
(cherry picked from commit 2797507d51)
2017-09-21 16:23:40 -07:00
Jian He ea2ecdb796 YARN-3671. Integrate Federation services with ResourceManager. Contributed by Subru Krishnan
(cherry picked from commit 8573c286e2)
(cherry picked from commit 94a24567d6)
2017-09-21 16:23:33 -07:00
Jian He 615c912b61 YARN-3673. Create a FailoverProxy for Federation services. Contributed by Subru Krishnan
(cherry picked from commit 3307564a5f)
(cherry picked from commit bdfad4523f)
2017-09-21 16:13:06 -07:00
Jian He fb3f9b48fb YARN-3674. Create Facade for Federation State and Policy Store. Contributed by Subru Krishnan
(cherry picked from commit 5e976cd2b9)
(cherry picked from commit 5c84382397)
2017-09-21 16:12:34 -07:00
Subru Krishnan 31d92378ba YARN-5390. Federation Subcluster Resolver. Contributed by Ellen Hui.
(cherry picked from commit d3dc461a93)
(cherry picked from commit d19b677301)
2017-09-21 16:00:36 -07:00
Jason Lowe fc6d9612c7 YARN-4266. Allow users to enter containers as UID:GID pair instead of by username. Contributed by luhuichun, Zhankun Tang, and Eric Badger.
(cherry picked from commit bfd1a72ba8)

Conflicts:
	hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml
2017-09-21 17:52:11 -05:00
Arun Suresh 8a12a914fd YARN-7203. Add container ExecutionType into ContainerReport. (Botong Huang via asuresh)
(cherry picked from commit 56ef5279c1)
2017-09-18 15:51:19 -07:00
Jason Lowe cd6cf0caf6 YARN-7192. Add a pluggable StateMachine Listener that is notified of NM Container State changes. Contributed by Arun Suresh
(cherry picked from commit a4f9c7c924)

Conflicts:
	hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeManager.java
	hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java
2017-09-18 10:34:53 -05:00
Arun Suresh 52bf458616 YARN-5216. Expose configurable preemption policy for OPPORTUNISTIC containers running on the NM. (Hitesh Sharma via asuresh)
(cherry picked from commit 4f8194430f)
2017-09-14 10:29:54 -07:00
Arun Suresh 1af9f962c9 YARN-5292. NM Container lifecycle and state transitions to support for PAUSED container state. (Hitesh Sharma via asuresh)
(cherry picked from commit 864fbacd45)
2017-09-14 10:26:34 -07:00
Sunil G a39829c456 YARN-6600. Introduce default and max lifetime of application at LeafQueue level. Contributed by Rohith Sharma K S. 2017-09-08 19:20:52 +05:30
Jason Lowe c004d57d47 YARN-6930. Admins should be able to explicitly enable specific LinuxContainerRuntime in the NodeManager. Contributed by Shane Kumpf 2017-09-07 16:24:55 -05:00
Subru Krishnan 5ccdd83923 YARN-5328. Plan/ResourceAllocation data structure enhancements required to support recurring reservations in ReservationSystem.
(cherry picked from commit b6e7d13696)
2017-09-06 16:46:49 -07:00
Wei-Chiu Chuang 92d9ad7761 Revert "Plan/ResourceAllocation data structure enhancements required to support recurring reservations in ReservationSystem."
This reverts commit 80516b3de7.
2017-09-05 14:52:43 -07:00
Subru Krishnan 80516b3de7 Plan/ResourceAllocation data structure enhancements required to support recurring reservations in ReservationSystem.
(cherry picked from commit 7996eca7dc)
2017-09-01 15:17:27 -07:00
Oleg Danilov b616462eef
YARN-7023. Incorrect ReservationId.compareTo() implementation.
This closes #262

Signed-off-by: Akira Ajisaka <aajisaka@apache.org>
(cherry picked from commit c5281a85e1)
2017-09-01 21:36:12 +02:00
Junping Du e12358c5ce YARN-6876. Create an abstract log writer for extendability. Contributed by Xuan Gong.
(cherry picked from commit c2cb7ea1ef)
2017-08-24 15:27:40 -07:00
Arun Suresh f8f193c8e8 YARN-6979. Add flag to notify all types of container updates to NM via NodeHeartbeatResponse. (Kartheek Muthyala via asuresh)
(cherry picked from commit 8410d862d3)
2017-08-20 08:31:17 -07:00
Subru Krishnan a70efb6138 HADOOP-14741. Refactor curator based ZooKeeper communication into common library. (Íñigo Goiri via Subru). 2017-08-14 11:03:50 -07:00
Junping Du e9c21d14b4 YARN-6811. [ATS1.5] All history logs should be kept under its own User Directory. Contributed by Rohith Sharma K S. 2017-08-08 12:45:55 -07:00
Arun Suresh 4cfd248a72 YARN-6777. Support for ApplicationMasterService processing chain of interceptors. (asuresh)
(cherry picked from commit 077fcf6a96)
2017-08-04 16:50:21 -07:00
Arun Suresh 043b7d133e YARN-6776. Refactor ApplicaitonMasterService to move actual processing logic to a separate class. (asuresh)
(cherry picked from commit 5496a34c0c)
2017-08-04 16:43:35 -07:00
Arun Suresh 2d62af6545 YARN-5966. AMRMClient changes to support ExecutionType update. (asuresh)
(cherry picked from commit aaf106fde3)
2017-08-04 16:19:44 -07:00
Arun Suresh 88d6adf419 YARN-5977. ContainerManagementProtocol changes to support change of container ExecutionType. (Kartheek Muthyala via asuresh)
(cherry picked from commit 35dc782923)
2017-08-03 21:18:43 -07:00
Jason Lowe db7c5636b6 YARN-6768. Improve performance of yarn api record toString and fromString. Contributed by Jonathan Eagles
(cherry picked from commit 24853bf32a)
2017-07-24 10:22:31 -05:00
Xuan edc0aa95f1 YARN-6689. PlacementRule should be configurable. (Jonathan Hung via xgong) 2017-07-12 15:45:51 -07:00
Junping Du c5f43feb7c YARN-5311. Document graceful decommission CLI and usage. Contributed by Elek, Marton.
(cherry picked from commit 4e3eebc943)
2017-06-28 15:32:49 -07:00
Naganarasimha 92e266c2b6 YARN-5006. ResourceManager quit due to ApplicationStateData exceed the limit size of znode in zk. Contributed by Bibin A Chundatt. 2017-06-24 23:14:51 +05:30
Daniel Templeton c5b28c03a1 YARN-6679. Reduce Resource instance overhead via non-PBImpl
(Contributed by Daryn Sharp via Daniel Templeton)
2017-06-08 10:41:32 -07:00
Daniel Templeton 920a3078f6 YARN-6302. Fail the node if Linux Container Executor is not configured properly
(Contributed by Miklos Szegedi via Daniel Templeton)
2017-05-09 10:08:07 -07:00
Jason Lowe 6ca0c134e4 YARN-3839. Quit throwing NMNotYetReadyException. Contributed by Manikandan R
(cherry picked from commit 424887ecb7)

Conflicts:
	hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestContainerManagerRecovery.java
2017-05-08 17:25:11 -05:00
Daniel Templeton a8512d5aeb YARN-2962. ZKRMStateStore: Limit the number of znodes under a znode (Contributed by Varun Sexena via Daniel Templeton)
(cherry picked from commit 2e52789edf)
2017-04-28 13:39:11 -07:00
Sunil G a9495b206b YARN-6164. Expose Queue Configurations per Node Label through YARN client api. Contributed by Benson Qiu. 2017-04-24 12:16:18 +05:30
Daniel Templeton c1ae753de1 YARN-6372. Add default value for NM disk validator (Contributed by Yufei Gu via Daniel Templeton)
(cherry picked from commit e486569197e10bf48731d9e7ef5c031987c26acc)
2017-04-10 14:57:19 -07:00
Daniel Templeton c2636468d7 YARN-5685. RM configuration allows all failover methods to disabled when automatic failover is enabled
(cherry picked from commit 640ba1d23f)
2017-03-29 12:38:50 -07:00
Robert Kanter a65011a128 YARN-6050. AMs can't be scheduled on racks or nodes (rkanter) 2017-03-28 14:33:08 -07:00
Xuan 19c5b3d622 YARN-6228: EntityGroupFSTimelineStore should allow configurable cache
stores. Contributed by Li Lu

(cherry picked from commit 53d372a255)
2017-02-24 11:00:16 -08:00
Wangda Tan 650ff95e00 YARN-5959. RM changes to support change of container ExecutionType. (Arun Suresh via wangda)
(cherry picked from commit 0a55bd841e)
2017-02-23 17:22:25 -08:00
Wangda Tan a82480c7d4 YARN-6143. Fix incompatible issue caused by YARN-3583. (Sunil G via wangda) 2017-02-23 13:59:20 -08:00
Daniel Templeton 93219b6454 YARN-6125. The application attempt's diagnostic message should have a maximum size
(Contributed by Andras Piros via Daniel Templeton)

(cherry picked from commit c7a36e6130)
2017-02-17 14:38:06 -08:00
Rohith Sharma K S f07b52dc5a YARN-6200. Reverting since the same functionality achieved by YARN-1623.
Revert "YARN-5068. Expose scheduler queue to application master. (Harish Jaiprakash via rohithsharmaks)"

This reverts commit a37b3694ea.
2017-02-16 17:58:38 +05:30
Junping Du 205fc1f10c YARN-6113. Re-direct NM Web Service to get container logs for finished applications. Contributed by Xuan Gong.
(cherry picked from commit 464ff479ce)

Conflicts:

	hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebServices.java
2017-02-13 06:16:04 -08:00
Jason Lowe 94b326f2c8 YARN-5910. Support for multi-cluster delegation tokens. Contributed by Jian He
(cherry picked from commit 69fa81679f)

Conflicts:

	hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMAppManager.java
2017-01-23 17:23:32 +00:00
Wangda Tan c00a468b0b YARN-6022. Revert changes of AbstractResourceRequest. (Contributed by Wangda Tan / Daniel Templeton) 2017-01-10 10:17:33 -08:00
Arun Suresh 4985217de4 YARN-6066. Opportunistic containers Minor fixes : API annotations, parameter name changes, checkstyles. (asuresh) 2017-01-08 08:27:10 -08:00
Junping Du f615c1fbbc Addendum patch to YARN-3866: fix incompatible API change. Contributed by Wangda Tan. 2017-01-07 19:58:42 -08:00
Arun Suresh 81da7d1d30 YARN-5938. Refactoring OpportunisticContainerAllocator to use SchedulerRequestKey instead of Priority and other misc fixes (asuresh)
(cherry picked from commit ac1e5d4f77)
2017-01-06 11:25:49 -08:00
Arun Suresh 2b4d3e8506 YARN-5646. Add documentation and update config parameter names for scheduling of OPPORTUNISTIC containers. (Konstantinos Karanasos via asuresh)
(cherry picked from commit 2273a74c1f)
(cherry picked from commit 9e17ffe599e12c59c48f4355de645c31a4735d04)
2017-01-06 11:15:10 -08:00
Arun Suresh 3d3bb30a25 YARN-5982. Simplify opportunistic container parameters and metrics. (Konstantinos Karanasos via asuresh)
(cherry picked from commit b0aace21b1)
(cherry picked from commit 3faa0b0d682687099b253feee9b41340edef7111)
2017-01-06 11:15:09 -08:00
Arun Suresh 368565f0ce YARN-4597. Introduce ContainerScheduler and a SCHEDULED state to NodeManager container lifecycle. (asuresh)
(cherry picked from commit 3219b7b4ac)
(cherry picked from commit 49921678858a17ca58ca2ae704ced1ff584e0859)
2017-01-06 11:15:09 -08:00
Daniel Templeton 8cb7aa2b52 YARN-5931. Document timeout interfaces CLI and REST APIs (Contributed by Rohith Sharma K S via Daniel Templeton)
(cherry picked from commit 165d01a73e)
2016-12-30 08:56:03 -08:00
Daniel Templeton 47f0a0e15b HADOOP-13932. Fix indefinite article in comments (Contributed by LiXin Ge via Daniel Templeton) 2016-12-28 07:03:51 -08:00
Wangda Tan 42f571728c YARN-5756. Add state-machine implementation for scheduler queues. (Xuan Gong via wangda)
(cherry picked from commit 0840b4329b)
2016-12-27 21:19:10 -08:00
Jian He 71fdca4600 YARN-5709. Cleanup leader election configs and pluggability. Contribtued by Karthik Kambatla
(cherry picked from commit b817c565c8be1d4a682d119bfac6f43ee09e87f0)
2016-12-09 16:59:52 -08:00
Sunil a636a87270 YARN-5965. Retrospect ApplicationReport#getApplicationTimeouts. Contributed by Rohith Sharma K S
(cherry picked from commit ab923a53fc)
2016-12-08 00:34:45 +05:30
Junping Du 3350d0c080 YARN-5184. Fix up incompatible changes introduced on ContainerStatus and NodeReport. Contributed by Sangjin Lee.
(cherry picked from commit a7288da595)
2016-12-06 14:37:46 -08:00
Karthik Kambatla 8773cd5f76 HADOOP-13859. TestConfigurationFieldsBase fails for fields that are DEFAULT values of skipped properties. (Haibo Chen via kasha)
(cherry picked from commit c8d0a049b0)
2016-12-06 14:16:38 -08:00
Jian He 0f6fbfc0db YARN-5559. Analyse 2.8.0/3.0.0 jdiff reports and fix any issues. Contributed by Akira Ajisaka & Wangda Tan
(cherry picked from commit 43ebff2e35)
2016-12-05 11:40:26 -08:00
Daniel Templeton b8bebb8607 YARN-5774. MR Job stuck in ACCEPTED status without any progress in Fair Scheduler
if set yarn.scheduler.minimum-allocation-mb to 0. (Contributed by Yufei Gu via Daniel Templeton)

(cherry picked from commit 25f9872be6)
2016-11-29 10:12:10 -08:00
Sunil c28dc5e5a4 YARN-4206. Add Application timeouts in Application report and CLI. Contributed by Rohith Sharma K S.
(cherry picked from commit eb0a483ed0)
2016-11-24 18:27:50 +05:30
Subru Krishnan e5a5a5a618 YARN-5904. Reduce the number of default server threads for AMRMProxyService.
(cherry picked from commit 140b9939da)
2016-11-17 18:27:17 -08:00
Wangda Tan a76e214556 YARN-5552. Add Builder methods for common yarn API records. (Tao Jie via wangda)
(cherry picked from commit ede1a473f5)
2016-11-11 13:42:45 -08:00
Eric Payne dd5b9dabf9 YARN-4218. Metric for resource*time that was preempted. Contributed by Chang Li. 2016-11-10 23:02:42 +00:00
Jian He a422740bd7 YARN-5611. Provide an API to update lifetime of an application. Contributed by Rohith Sharma K S 2016-11-09 16:39:46 -08:00
Andrew Wang 4f25fd975e HADOOP-13789. Hadoop Common includes generated test protos in both jar and test-jar. Contributed by Sean Busbey.
(cherry picked from commit e1c6ef2efa)
2016-11-08 16:33:58 -08:00
Subru Krishnan 797c7bfab9 YARN-5833. Add validation to ensure default ports are unique in Configuration. (Konstantinos Karanasos via Subru).
(cherry picked from commit 29e3b3417c)
2016-11-08 14:39:09 -08:00
Varun Saxena f572448809 YARN-4388. Cleanup mapreduce.job.hdfs-servers from yarn-default.xml (Junping Du via Varun Saxena) 2016-10-28 02:24:24 +05:30
Varun Saxena a8cfa5054c YARN-5710. Fix inconsistent naming in class ResourceRequest (Yufei Gu via Varun Saxena) 2016-10-27 13:56:59 +05:30
Varun Saxena e9a58691ab YARN-5599. Publish AM launch command to ATS (Rohith Sharma K S via Varun Saxena) 2016-10-14 23:32:29 +05:30
Junping Du 8bee319130 YARN-5659. getPathFromYarnURL should use standard methods. Contributed by Sergey Shelukhin.
(cherry picked from commit 459a4833a9)
2016-10-07 07:47:16 -07:00
Naganarasimha 04f594dbea YARN-4855. Should check if node exists when replace nodelabels. Contributeed by Tao Jie
(cherry picked from commit 6e130c308c)
2016-10-03 02:13:46 -04:00
Subru Krishnan 9f43f89899 YARN-5384. Expose priority in ReservationSystem submission APIs. (Sean Po via Subru).
(cherry picked from commit 3a3697deab)
2016-09-30 19:43:29 -07:00
Jian He 39f896e1a1 YARN-4205. Add a service for monitoring application life time out. Contributed by Rohith Sharma K S
(cherry picked from commit 2ae5a3a5bf)
2016-09-29 22:06:36 +08:00
Varun Vasudev 3f1d3e3177 YARN-5662. Provide an option to enable ContainerMonitor. Contributed by Jian He.
(cherry picked from commit bc2656f09f)
2016-09-28 15:27:09 +05:30
Arun Suresh 7484d0b1b9 YARN-5609. Expose upgrade and restart API in ContainerManagementProtocol. Contributed by Arun Suresh 2016-09-26 23:55:13 +08:00
Naganarasimha 0e4a5611ff YARN-3692. Allow REST API to set a user generated message when killing an application. Contributed by Rohith Sharma K S 2016-09-24 21:13:01 +05:30
Ray Chiang 4ee1729cb0 YARN-5549. AMLauncher#createAMContainerLaunchContext() should not log the command to be launched indiscriminately. (Daniel Templeton via rchiang) 2016-09-02 14:57:05 -07:00
Arun Suresh b279f42d79 YARN-5221. Expose UpdateResourceRequest API to allow AM to request for change in container properties. (asuresh)
(cherry picked from commit d6d9cff21b)
2016-08-30 16:33:31 -07:00
Wangda Tan 07e1527cc1 YARN-4889. Changes in AMRMClient for identifying resource-requests explicitly. (Arun Suresh via wangda)
(cherry picked from commit 19c743c1bb)
2016-08-26 17:23:55 -07:00
Subru Krishnan 3ad7cb3e1c YARN-5327. API changes required to support recurring reservations in the YARN ReservationSystem. (Sangeetha Abdu Jyothi via Subru).
(cherry picked from commit b930dc3ec0)
2016-08-26 17:01:37 -07:00
Junping Du af1502fcab YARN-5557. Add localize API to the ContainerManagementProtocol. Contributed by Jian He.
(cherry picked from commit 9ef632f3b0)
2016-08-26 09:05:33 -07:00
Varun Vasudev 49a97a76f5 YARN-5430. Return container's ip and host from NM ContainerStatus call. Contributed by Jian He. 2016-08-26 16:33:21 +05:30
Wangda Tan 3e511f39c2 YARN-4685. Disable AM blacklisting by default to mitigate situations that application get hanged. (Rohith Sharma K S via wangda)
(cherry picked from commit 2da32a6ef9)
2016-08-19 16:47:42 -07:00
Junping Du d464483bf7 YARN-4676. Automatic and Asynchronous Decommissioning Nodes Status Tracking. Contributed by Diniel Zhi. 2016-08-18 07:23:29 -07:00