Diptanu Choudhury
bf3e3f5f59
Throwing an error if Nomad can't create an docker auth object
2016-02-22 13:00:54 -08:00
Alex Dadgar
51bacf674e
address feedback
2016-02-21 21:32:32 -08:00
Alex Dadgar
e96ca4679f
Fix test
2016-02-21 21:15:02 -08:00
Alex Dadgar
281e2ca198
Batch client allocation updates to the server
2016-02-21 21:15:02 -08:00
Abhishek Chanda
34d3deff9b
Run a bunch of tests in parallel
2016-02-21 19:42:03 -08:00
Alex Dadgar
2ec5d7de76
undo async update
2016-02-19 22:34:52 -08:00
Diptanu Choudhury
91e8800b6b
Added more comments
2016-02-19 21:58:44 -08:00
Alex Dadgar
c08e3dbee8
Make updating alloc status async
2016-02-19 21:44:23 -08:00
Alex Dadgar
13e5597ca2
Reduce alloc lock contention in client
2016-02-19 19:51:55 -08:00
Alex Dadgar
99d2c173ff
import
2016-02-19 16:31:04 -08:00
Alex Dadgar
2706aa2100
Better comment
2016-02-19 16:02:48 -08:00
Alex Dadgar
30f0703929
Remove debug
2016-02-19 15:54:29 -08:00
Alex Dadgar
d1011c9668
Fixes
2016-02-19 15:49:32 -08:00
Diptanu Choudhury
0cc9b76d26
Fixed tests
2016-02-19 15:15:59 -08:00
Alex Dadgar
e2a4c4ccc5
Client stores when it receives a task
2016-02-19 14:49:43 -08:00
Diptanu Choudhury
694cecfbf8
Added some docs to the syslog server
2016-02-19 14:20:21 -08:00
Diptanu Choudhury
8096722cad
Added some docs to the FileRotator
2016-02-19 14:11:31 -08:00
Diptanu Choudhury
4873118cef
Making the log rotator a writer
2016-02-19 14:01:07 -08:00
Diptanu Choudhury
488fd763c8
Renamed packages
2016-02-19 13:08:25 -08:00
Diptanu Choudhury
824df263aa
Implemented file rotator
2016-02-19 12:55:34 -08:00
Alex Dadgar
d47935b455
Don't re-register as initializing
2016-02-18 23:02:28 -08:00
Alex Dadgar
96fd272422
Increase Alloc channel buffers
2016-02-18 20:43:48 -08:00
Diptanu Choudhury
5180480787
Fixed the fingerprinter test
2016-02-18 11:34:17 -08:00
Diptanu Choudhury
502d56b232
Enabling cgroups and chroot on linux
2016-02-18 09:49:11 -08:00
Diptanu Choudhury
ef7cfb1f0b
Implemented a custom syslog server
2016-02-17 14:48:25 -08:00
Alex Dadgar
3ae948969e
Merge pull request #811 from hashicorp/b-heartbeat-loop
...
Extract the heartbeat and saveState into their own go routines
2016-02-17 14:05:20 -08:00
Alex Dadgar
5473b6ae63
Extract the heartbeat and saveState into their own go routines
2016-02-17 11:32:17 -08:00
Alex Dadgar
48bc77bc7f
fix java test
2016-02-17 10:04:19 -08:00
Alex Dadgar
18d2d9c091
Killing a driver handle is retried with an exponential backoff
2016-02-16 21:00:49 -08:00
Abhishek Chanda
2059cf221b
Separate arguments with a space while writing
2016-02-16 17:13:19 -08:00
Diptanu Choudhury
8d6be22181
Merge branch 'master' of github.com:hashicorp/nomad
2016-02-12 16:20:41 -08:00
Diptanu Choudhury
fce4a0bd2c
Added stubs for windows
2016-02-12 16:20:04 -08:00
Alex Dadgar
f6e0349d3b
go vet
2016-02-12 16:08:58 -08:00
Diptanu Choudhury
b1c57e078f
Changing log messages in the docker driver
2016-02-12 13:33:09 -08:00
Alex Dadgar
18da7eea95
Update go-plugin
2016-02-12 12:16:56 -08:00
Diptanu Choudhury
c6e395fa0e
Fixed tests
2016-02-11 17:34:46 -08:00
Diptanu Choudhury
7eba3f3b5f
Merge pull request #763 from hashicorp/f-logrotator
...
Implemented log rotation for drivers
2016-02-11 15:02:39 -08:00
Diptanu Choudhury
3db617472c
Fixed an issue with purge
2016-02-11 14:44:35 -08:00
Diptanu Choudhury
0d362c39e7
Fixed more client executor tests
2016-02-11 11:13:45 -08:00
Alex Dadgar
ef3798c338
Merge pull request #789 from hashicorp/f-client-races
...
Remove data races in the client
2016-02-11 11:07:49 -08:00
Diptanu Choudhury
cd957a739a
Fixed the executor test
2016-02-11 10:58:18 -08:00
Diptanu Choudhury
9e994cb8d0
Fixed some tests
2016-02-11 10:42:56 -08:00
Alex Dadgar
e6e7c395df
Merge pull request #775 from hashicorp/d-interpreted-vars
...
Documentation for interpreted variables
2016-02-11 08:40:31 -08:00
Alex Dadgar
f3d5598830
Unlock in error path
2016-02-11 08:38:16 -08:00
Alex Dadgar
0e68c7c949
Initialize the config copy after client init
2016-02-10 19:01:57 -08:00
Diptanu Choudhury
5480a6744e
Renamed the syslog package to logcollector
2016-02-10 18:47:46 -08:00
Alex Dadgar
4d7ed4f164
Strip as much copystructure as possible
2016-02-10 17:54:43 -08:00
Diptanu Choudhury
b0d2328734
Added a test to check if file size update catches up with rotation
2016-02-10 17:34:14 -08:00
Diptanu Choudhury
566d709110
Handling errors when client can't re-attach to syslog collector
2016-02-10 16:40:36 -08:00
Diptanu Choudhury
64c5206cae
Changed the logic of the logrotator to make updates easier
2016-02-10 16:13:13 -08:00
Diptanu Choudhury
e9187d48ca
Sharing the isolationconfig of syslog collector with executor
2016-02-10 15:27:40 -08:00
Diptanu Choudhury
810e354571
Added some comments
2016-02-10 15:23:25 -08:00
Diptanu Choudhury
25c48cd1ea
Updating log configs
2016-02-10 15:04:41 -08:00
Diptanu Choudhury
a4f32f31c2
Stripping hostname, timestamps etc from docker syslog messages
2016-02-10 14:40:26 -08:00
Alex Dadgar
e6c2b6ae9d
Slightly less node copying
2016-02-10 14:09:23 -08:00
Diptanu Choudhury
49099f4c70
Fixed more tests
2016-02-10 13:54:54 -08:00
Alex Dadgar
0c4c3fc4ee
safe but slow
2016-02-10 13:44:53 -08:00
Diptanu Choudhury
ab75f89c33
Fixed docker tests
2016-02-10 13:29:06 -08:00
Diptanu Choudhury
79141f3021
Fixed the docker handle id test
2016-02-10 13:18:10 -08:00
Diptanu Choudhury
19d0e74608
Parsing the severity of the log lines
2016-02-10 12:09:07 -08:00
Diptanu Choudhury
776e57deb0
Adding newlines to loglines
2016-02-10 10:18:14 -08:00
Diptanu Choudhury
3a12204ce5
Updated comments
2016-02-10 08:13:08 -08:00
Diptanu Choudhury
0675282097
Simplified the logic of conversion of interface{} to byte array
2016-02-10 08:03:31 -08:00
Diptanu Choudhury
4b22221c27
Writing log lines from docker to files
2016-02-10 07:52:15 -08:00
Alex Dadgar
071216a730
Fix concurrent r/w to heartbeat time
2016-02-09 22:43:16 -08:00
Alex Dadgar
913f98f738
Make fingerprinting thread safe
2016-02-09 22:14:24 -08:00
Diptanu Choudhury
1e4c42f29d
Starting the syslog collector along with a docker container
2016-02-09 18:24:30 -08:00
Diptanu Choudhury
e592c229c8
Renamed the ExecutorPluginConfig
2016-02-09 12:59:05 -08:00
Diptanu Choudhury
96ddf38291
Merge branch 'master' into f-logrotator
2016-02-09 12:50:46 -08:00
Diptanu Choudhury
2054a7ed47
Removed unused imports in test
2016-02-09 12:31:14 -08:00
Diptanu Choudhury
9d6eed1fb4
Merge branch 'master' into f-logrotator
2016-02-09 12:25:44 -08:00
Diptanu Choudhury
477a159c9e
Removing the killing executor pid tests
2016-02-09 11:29:02 -08:00
Diptanu Choudhury
587141f856
Removing taskDir from the exechandle
2016-02-09 10:21:47 -08:00
Diptanu Choudhury
0120aceb49
Merge branch 'r-executor-plugin' of github.com:hashicorp/nomad into r-executor-plugin
2016-02-09 10:17:44 -08:00
Diptanu Choudhury
8fca3625e2
Killing the userpid if the plugin is killed while the client is running
2016-02-09 10:17:33 -08:00
Alex Dadgar
e7e7348727
Don't error killing exited process
2016-02-09 10:00:42 -08:00
Alex Dadgar
4fa7b35443
more time
2016-02-09 09:43:40 -08:00
Alex Dadgar
5f966ec57a
Fix min duration
2016-02-08 19:46:46 -08:00
Alex Dadgar
c8807e2927
Fix timeouts between signal and kill
2016-02-08 19:31:57 -08:00
Diptanu Choudhury
9a46dcb553
Fixed a test
2016-02-08 19:00:26 -08:00
Alex Dadgar
75473e88d2
Unmount special directories when task finishes
2016-02-08 18:51:11 -08:00
Diptanu Choudhury
4644f8a9d4
Added a test for merge
2016-02-08 16:27:31 -08:00
Diptanu Choudhury
1a13400f2d
Moved the destroycgroup method into executor
2016-02-08 16:08:29 -08:00
Diptanu Choudhury
fc8e099cc3
removing the prefix of the logger
2016-02-08 15:07:18 -08:00
Diptanu Choudhury
32e24e257a
Appending names of sub-system before log lines
2016-02-08 14:47:10 -08:00
Diptanu Choudhury
6c85ed6c8e
Removing pathExists from executor
2016-02-08 14:40:54 -08:00
Diptanu Choudhury
10fe104f97
Unmounting dev and proc when open can't reconnect with the plugin process
2016-02-08 14:31:03 -08:00
Diptanu Choudhury
e89bcf52b8
Moving code to mount and unmount chroot into allocdir
2016-02-08 14:11:53 -08:00
Diptanu Choudhury
e53ebc9e3c
Extracted the cgroup info into isolation struct
2016-02-08 13:48:26 -08:00
Diptanu Choudhury
21677468cf
Setting defaults for client max and min port
2016-02-08 13:29:53 -08:00
Diptanu Choudhury
088d2cba53
Making the plugin server return the same instance of executor rpc server
2016-02-08 11:56:48 -08:00
Diptanu Choudhury
b8e4941862
Fixed merge conflicts
2016-02-08 10:24:27 -08:00
Diptanu Choudhury
ea5a8c66ab
Implemented the UpdateLogConfig method
2016-02-08 10:10:01 -08:00
Diptanu Choudhury
f6f51a6926
Destroying the cgroup if we can't to executor in exec and java drivers
2016-02-08 10:05:39 -08:00
Diptanu Choudhury
fa45e0b8ca
Using net.IsLoopback to determine if ifc is a loopback device
2016-02-08 07:57:31 -08:00
Diptanu Choudhury
68d0105634
Isolating the plugin process from the nomad client
2016-02-07 22:33:48 -05:00
Diptanu Choudhury
4527410e33
Fixed merged conflict
2016-02-07 17:58:31 -05:00
Diptanu Choudhury
957a446edf
Merge pull request #773 from hashicorp/docker-auth
...
Reading dockercfg files for authenticating with private registries
2016-02-06 18:03:39 -08:00
Alex Dadgar
fdc7124032
Precise registration
2016-02-06 17:08:20 -08:00
Alex Dadgar
c744e2f4f1
Update the consul service when the task/alloc changes
2016-02-06 17:08:20 -08:00
Alex Dadgar
40f510f168
interpreted variable docs
2016-02-06 15:35:07 -08:00
Diptanu Choudhury
d0b6fb1993
Updated the docker auth config
2016-02-06 05:47:56 -08:00
Diptanu Choudhury
745bfaae7b
Reading dockercfg files for authenticating with private registries
2016-02-06 05:43:30 -08:00
Diptanu Choudhury
c9d2151f90
Changed a few comments
2016-02-05 18:07:06 -08:00
Diptanu Choudhury
1b9a54abec
Updated comment
2016-02-05 17:40:06 -08:00
Diptanu Choudhury
370dc41ca2
Renamed the plugin log file
2016-02-05 17:07:02 -08:00
Diptanu Choudhury
d2eeba213c
Reserving ports on windows
2016-02-05 15:17:15 -08:00
Diptanu Choudhury
f4b32ae5fc
Entering the plugin pid into the cgroup after creating it
2016-02-05 13:16:29 -08:00
Diptanu Choudhury
2871dfce26
Using signals to test if proces is alive
2016-02-05 13:05:49 -08:00
Diptanu Choudhury
fa41d8a062
Added a test which shows userpid is killed when plugin can not be re-connected on calling Open
2016-02-05 11:37:13 -08:00
Diptanu Choudhury
918cc46d30
Added a test which isolates and constraints a process using the executor
2016-02-05 11:07:16 -08:00
Diptanu Choudhury
f4ea6a15c8
Making the java driver apply resource constraints and limits
2016-02-05 10:55:03 -08:00
Diptanu Choudhury
b788017574
Corrected comments and making the plugins write to unique log files
2016-02-05 10:49:54 -08:00
Diptanu Choudhury
faf6083352
Passing the log rotation parameters to docker daemon
2016-02-05 00:22:31 -08:00
Diptanu Choudhury
08932e5bbc
Putting the plugin in the same cgroup as the user process
2016-02-05 00:11:09 -08:00
Diptanu Choudhury
91e7922f3b
Implemented log rotator for exec based drivers
2016-02-04 23:54:15 -08:00
Diptanu Choudhury
ff714703e6
Fixing merge conflicts
2016-02-04 22:55:38 -08:00
Diptanu Choudhury
9c963055a4
Running processes with exec as nobody
2016-02-04 17:49:47 -08:00
Diptanu Choudhury
30d5bba131
Not syncing stdout and stderr of pluging with client
2016-02-04 17:36:31 -08:00
Alex Dadgar
a4f7709f08
Fix tests
2016-02-04 17:27:58 -08:00
Alex Dadgar
5ac11c227a
Merge pull request #756 from hashicorp/f-download-location
...
Extract artifacts to the root of the task, not in the local directory
2016-02-04 17:22:11 -08:00
Diptanu Choudhury
f5ce39e3fa
Updated the value of the magic cookie
2016-02-04 17:00:41 -08:00
Diptanu Choudhury
6d48f1933b
Removed using ProcessState when we just want an empty interface
2016-02-04 17:00:41 -08:00
Diptanu Choudhury
a0ff83f44c
Added some docs
2016-02-04 17:00:41 -08:00
Diptanu Choudhury
f95b973c2c
Moved packages around
2016-02-04 17:00:41 -08:00
Diptanu Choudhury
0309506b57
Added tests for the executor
2016-02-04 17:00:40 -08:00
Diptanu Choudhury
7f790826af
Destroying the plugin if we can't connect to it
2016-02-04 17:00:40 -08:00
Diptanu Choudhury
63e0b20e5e
Removed duplicate code
2016-02-04 17:00:40 -08:00
Diptanu Choudhury
94a51a6a1b
Fixing the id generation logic for the java and qemu drivers
2016-02-04 17:00:40 -08:00
Diptanu Choudhury
02db2e5735
Fixed the raw_exec_driver tests
2016-02-04 17:00:40 -08:00
Diptanu Choudhury
83882eca3f
Fixed the kill test
2016-02-04 17:00:40 -08:00
Diptanu Choudhury
6c9f33ed19
Fixed creation of the command args
2016-02-04 17:00:40 -08:00
Diptanu Choudhury
675b5f898a
Fixed the wait rpc server
2016-02-04 17:00:40 -08:00
Diptanu Choudhury
7e3041e2ee
Fixed a test related to wait
2016-02-04 17:00:39 -08:00
Diptanu Choudhury
e5595fd8cb
Fixed a test
2016-02-04 17:00:39 -08:00
Diptanu Choudhury
38374e3703
Fixed a comment
2016-02-04 17:00:39 -08:00
Diptanu Choudhury
2f9c14c3e0
Fixed the rpc server
2016-02-04 17:00:39 -08:00
Diptanu Choudhury
356fb6abdb
Removed executor and spawn daemon
2016-02-04 17:00:39 -08:00
Diptanu Choudhury
263c89fdee
Moved qemu to executor plugin
2016-02-04 17:00:39 -08:00
Diptanu Choudhury
a821c162ff
Moving the java executor to the executor plugin
2016-02-04 17:00:39 -08:00
Diptanu Choudhury
17d2257a13
Enabling logs and killing the plugin if we couldn't start the job
2016-02-04 17:00:39 -08:00
Diptanu Choudhury
c6271d2408
Making the wait asynchronous
2016-02-04 17:00:38 -08:00
Diptanu Choudhury
6a719ef167
Turning on isolation for exec
2016-02-04 17:00:38 -08:00
Diptanu Choudhury
1c616deab3
Introduced the flag for the user
2016-02-04 17:00:38 -08:00
Diptanu Choudhury
3accb642e8
Creating the universal executor
2016-02-04 17:00:38 -08:00
Diptanu Choudhury
6eba0e46ec
Killing the plugin after wait returns
2016-02-04 17:00:38 -08:00
Diptanu Choudhury
14acbe7479
Limiting resources on a process
2016-02-04 17:00:38 -08:00
Diptanu Choudhury
a6f87c555c
Fixed the path to the log files
2016-02-04 17:00:38 -08:00
Diptanu Choudhury
9fc86deb43
Implemented the exec functioanlity for linux
2016-02-04 17:00:37 -08:00
Diptanu Choudhury
87f40135ea
Using the plugin to spawn processes from the raw_exec driver
2016-02-04 17:00:37 -08:00
Diptanu Choudhury
57453086a7
Fixed the executor command
2016-02-04 17:00:37 -08:00
Diptanu Choudhury
4ed85d0ab2
Using a plugin to create the executor
2016-02-04 17:00:37 -08:00
Alex Dadgar
66f59e2dc0
Add tmp file to each task directory
2016-02-04 15:35:04 -08:00
Alex Dadgar
21c2368626
Fix java test
2016-02-04 15:26:37 -08:00
Alex Dadgar
77b89d15e4
Extract artifacts to the root of the task, not in the local directory
2016-02-04 15:18:22 -08:00
Alex Dadgar
b45b101240
Serialize the list of mounted entries in the alloc dir
2016-02-04 14:30:32 -08:00
Alex Dadgar
e8067029cc
Small fixes
2016-02-04 14:19:27 -08:00
Alex Dadgar
117bef6515
Fix AllocRunner not capturing destroy signal and tests
2016-02-04 13:09:53 -08:00
Alex Dadgar
1a58923c42
Merge pull request #751 from hashicorp/b-client-updates
...
Client handles updates to KillTimeout and Restart Policy
2016-02-04 10:19:28 -08:00
Ivo Verberk
73ab620f61
Add comments to hasNodeChanged and remove superfluous else block
2016-02-04 08:19:34 +01:00
Alex Dadgar
9619f61832
Fix tests
2016-02-03 19:58:39 -08:00
Alex Dadgar
41e1174f72
Client handles updates to KillTimeout and Restart Policy
2016-02-03 19:43:44 -08:00
Alex Dadgar
b6f9e9c61c
Move restart tracker creation into task runner
2016-02-03 16:16:48 -08:00
Ivo Verberk
d5a67aba86
Reregister node when periodic fingerprint changes node properties
2016-02-03 21:10:58 +01:00
Alex Dadgar
e3587f5f24
Another test fix
2016-02-02 17:35:06 -08:00
Alex Dadgar
9a79521999
Fix test
2016-02-02 17:35:06 -08:00
Alex Dadgar
6f20d3f435
Restart on-success shouldn't be user specifiable
2016-02-02 17:35:06 -08:00
Alex Dadgar
931283c5e3
Merge pull request #745 from hashicorp/b-rkt-version-regex
...
Update Rkt regex to determine version
2016-02-02 15:55:50 -08:00
Alex Dadgar
2d42cb3e55
update the regex
2016-02-02 15:39:45 -08:00
Ryan Uber
1c7cdb9577
client: obey restart policy when attempts == 0
2016-02-02 14:17:39 -08:00
Alex Dadgar
cf1e152f44
Clean interaction between alloc-runner and task-runner
2016-02-02 11:09:29 -08:00
Alex Dadgar
a72d39bd04
Don't share task state with the alloc in the task runner
2016-02-01 17:47:53 -08:00
Alex Dadgar
b5260fc14e
Fix locks and use task runners state not alloc state
2016-02-01 15:43:59 -08:00
Alex Dadgar
2d98c0eadd
Fix double pull with introduction of AllocModifyIndex
2016-02-01 15:43:59 -08:00
Ranjib Dey
4527257647
allow group and others to have executable permissions
2016-01-31 10:54:32 -08:00
Alex Dadgar
3b8e7a75d2
Merge pull request #704 from iverberk/f-env-ports
...
Pass a combination of ip and port to the task environment.
2016-01-29 08:53:47 -08:00
Alex Dadgar
4ce455be31
Merge pull request #712 from iverberk/f-cgroup-finterprinter
...
Add periodic cgroup fingerprinter
2016-01-29 08:50:43 -08:00
Ivo Verberk
22fef1766b
Add comments and small improvements to cgroup fingerprinter
2016-01-29 14:34:29 +01:00
Jake Champlin
e053511232
Use net.JoinHostPort
2016-01-29 05:39:28 -05:00
Jake Champlin
78814cba28
Spelling
2016-01-29 05:11:50 -05:00
Jake Champlin
9a6bd0d7fe
Updates from comments, fix tests
2016-01-28 23:11:13 -05:00
Jake Champlin
ee1be79093
Allow ports to be optional when adding servers
...
When updating a clients servers, as nomad does not use the gossip
protocol over a specified port for clients, it was required to specify
ports along with server addresses.
Now specifying ports are optional, and if unspecified the default `4647`
port is used, reflecting a notice back to the user.
2016-01-28 22:08:28 -05:00
Diptanu Choudhury
980bc19d10
Added more information about files
2016-01-27 14:20:10 -08:00
Alex Dadgar
d3f0464284
Merge pull request #714 from ryanslade/patch-1
...
Fix a typo
2016-01-27 10:14:45 -08:00
Ryan Slade
e8b3ee3c69
Fix a typo
2016-01-27 17:49:32 +02:00
Ivo Verberk
2921cf0d92
Fix comment
2016-01-27 10:56:35 +01:00
Ivo Verberk
7f97dd8553
Only enable exec driver when cgroups are available
...
Make the exec driver fingerprinter periodic to disable the driver when
cgroups become unavailable.
2016-01-27 07:32:32 +01:00
Ivo Verberk
5f86e28974
Add a periodic cgroup fingerprinter
2016-01-27 07:22:25 +01:00
Alex Dadgar
e2763e3d31
Update the interpretation of node.id/name on the client
2016-01-26 17:38:36 -08:00
Alex Dadgar
a85800188c
Respond to comments
2016-01-26 14:55:38 -08:00
Alex Dadgar
d5c77cd4a4
Update client fingerprinters
2016-01-26 10:08:01 -08:00
Ivo Verberk
061445468b
Rename IPPort env variable and add a mapped host port to the env.
2016-01-25 20:46:01 +01:00
Ivo Verberk
e58bda9056
Pass a combination of ip and port to the task environment.
...
The different labels can be on different IPs.
2016-01-24 10:31:03 +01:00
Alex Dadgar
ec9c375c1c
Have docker use the task environment in the context
2016-01-22 15:00:36 -08:00
Alex Dadgar
a1cd55e53e
Merge pull request #690 from hashicorp/b-fix-root-tests
...
Fix failing tests running under root
2016-01-21 17:01:10 -08:00
Alex Dadgar
480626a6ea
Just check the alloc is not pending
2016-01-21 16:05:35 -08:00
Alex Dadgar
a3c22258cd
Use TestMultiplier on all waits
2016-01-21 15:24:24 -08:00
Alex Dadgar
4f0f568bbe
AllocRunner restore test
2016-01-21 14:52:41 -08:00
Alex Dadgar
0406a3a190
Handle case that pid is dead in ForceStop
2016-01-21 14:09:04 -08:00
Alex Dadgar
a4ddfc306b
ordering issue
2016-01-21 13:28:48 -08:00