Ryan Uber
509e29043a
Added handling of fixnum values for shell provisioner options both as the value
...
of `args` itself and as an element inside of an `args` array. Added validation
around passing in arrays for arguments. Just knowing that it is an array is not
enough, because arrays can contain any other type.
2014-02-14 11:47:36 -08:00
Shane Gibbs
5600bd1067
Add support for multiple role paths in chef-solo
2014-02-14 21:48:18 +13:00
Mitchell Hashimoto
d0cd2464b2
providers/virtualbox: only clear forwarded ports if there are any
2014-02-13 21:04:56 -08:00
Mitchell Hashimoto
2fe2fe79ed
communicators/ssh: properly allow errors through while waiting
2014-02-13 21:04:41 -08:00
Mitchell Hashimoto
ed5e544e63
communicators/ssh: more verbose output about waiting for SSH
2014-02-13 20:59:26 -08:00
Mitchell Hashimoto
14b27ae215
communicators/ssh: cache ssh_info
...
This lowers the number of subprocesses with VirtualBox quite a bit.
2014-02-13 20:34:51 -08:00
Mitchell Hashimoto
b1bed68bed
providers/virtualbox: cap to read forwarded ports
2014-02-13 16:34:34 -08:00
Mitchell Hashimoto
e909b91bfd
guests/linux: public key insertion is more robust
...
contents can have newlines (or not)
2014-02-12 22:11:33 -08:00
Mitchell Hashimoto
12b2572687
kernel/v2: capture error if provider config is bad [GH-2959]
2014-02-11 11:55:04 -08:00
Mitchell Hashimoto
dd9dd5127c
Merge pull request #2948 from gnawhleinad/master
...
command/*: clean up usage
2014-02-10 09:02:32 -08:00
Lukasz Jastrzebski
654870a185
Fixing ssh_config proxy_command is not included
2014-02-09 16:27:32 -08:00
Mitchell Hashimoto
8d3afa73d2
providers/virtualbox: config to skip guest additions check
2014-02-08 18:35:09 -08:00
gnawhleinad
fbcac2978e
clean up usage
2014-02-08 00:20:50 -08:00
Mitchell Hashimoto
8c85e57db1
guests/linux: proper logic on ro
2014-02-07 16:04:36 -08:00
Mitchell Hashimoto
fcf2d42717
Merge pull request #2946 from mhahn/fix/master/2945
...
Fix #2945 : Reference correct options variable
2014-02-07 16:03:48 -08:00
Mitchell Hashimoto
8e9ceeaf5c
core: Machine has reference to Vagrantfile
2014-02-07 09:16:55 -08:00
Mitchell Hashimoto
cdf1d7f318
core: get rid of all uses of config_global
2014-02-06 20:22:15 -08:00
Michael Hahn
d68544a906
Ensure options[:mount_options] is defined before checking if it includes key
2014-02-06 14:06:47 -08:00
Michael Hahn
3631b250b7
Fix #2945 : Reference correct options variable
2014-02-06 13:59:56 -08:00
Mitchell Hashimoto
848fe5d166
kernel/v2: check for box updates by default
...
/cc @pearkes @armon
2014-02-05 21:20:33 -08:00
Mitchell Hashimoto
85aa7db17e
commands/box: repackage tests
2014-02-05 21:20:29 -08:00
Mitchell Hashimoto
7a6d1a3ff1
commands/box: update command can update a specific box now
2014-02-05 21:20:23 -08:00
Mitchell Hashimoto
386938f0b1
commands/box: update looks prettier on output
2014-02-05 21:20:22 -08:00
Mitchell Hashimoto
cf9004241e
core: output what we're updating and what we're not
2014-02-05 21:20:21 -08:00
Mitchell Hashimoto
88b64f93a4
commands/box: "update" command
2014-02-05 21:20:19 -08:00
Mitchell Hashimoto
61a1082d65
core: BoxCheckOutdated is *much* simpler, unified logic, tests
2014-02-05 21:20:18 -08:00
Mitchell Hashimoto
1a5ad9f3d5
providers/virtualbox: check for outdated on any start
2014-02-05 21:20:17 -08:00
Mitchell Hashimoto
bfca65b098
core: better output for BoxCheckOutdated
2014-02-05 21:20:16 -08:00
Mitchell Hashimoto
b5157df2cc
core: BoxCheckOutdated only runs if told to
2014-02-05 21:20:14 -08:00
Mitchell Hashimoto
d78194654d
core: ability to hide success UI
2014-02-05 21:20:12 -08:00
Mitchell Hashimoto
e537e02d9d
core: BoxCheckOutdated can check if a box is outdated
2014-02-05 21:20:11 -08:00
Mitchell Hashimoto
f2509f5c65
commands/box: outdated command to find outdated boxes
2014-02-05 21:20:10 -08:00
Mitchell Hashimoto
4cedd590d9
providers/virtualbox: use new HandleBox middleware
2014-02-05 21:20:05 -08:00
Mitchell Hashimoto
d40ff9c390
kernel_v2: test for box_url
2014-02-05 21:20:01 -08:00
Mitchell Hashimoto
b2fa785d07
core: Environment loads proper version of box
2014-02-05 21:19:51 -08:00
Mitchell Hashimoto
b71cde6b99
core: make box add UI much icer
2014-02-05 21:19:44 -08:00
Mitchell Hashimoto
c1d5c8f33c
commands/box: remove has --box-version flag
2014-02-05 21:19:43 -08:00
Mitchell Hashimoto
29da748702
commands/box/remove: update for new syntax
2014-02-05 21:19:41 -08:00
Mitchell Hashimoto
acc57a3c18
core: clarify output for boxadd error message
2014-02-05 21:19:36 -08:00
Mitchell Hashimoto
28a6beaa56
commands/box: can constrain the version
2014-02-05 21:19:25 -08:00
Mitchell Hashimoto
96e92167d9
commands/box: broken box adding, but more options/tests
2014-02-05 21:19:16 -08:00
Mitchell Hashimoto
e8197c4e87
commands/box: list works with the new versions
2014-02-05 21:19:14 -08:00
Mitchell Hashimoto
5030a16f84
kernel/v2: default all configs properly, remove config/default.rb
2014-02-05 15:36:35 -08:00
Mitchell Hashimoto
226dbccef8
guests/linux: don't chown VB shared folders if readonly [GH-2442]
2014-02-04 16:01:14 +01:00
Teemu Matilainen
a9337aba22
guests/{free,net}bsd: add `insert_public_key` capability
...
Copy the cap to missing *bsd variants.
2014-02-04 01:09:29 -03:00
Teemu Matilainen
ca56c913aa
kernel/v2: fix provisioner config with blocks
...
Regression from 10d5416
.
2014-02-04 00:51:01 -03:00
Teemu Matilainen
e5f3f1ffe3
Merge pull request #2892 from tmatilai/openbsd
...
OpenBSD is not a Linux derivative
2014-02-03 18:27:23 -08:00
Teemu Matilainen
3b5d6c65fd
guests/openbsd: Ensure that `PKG_PATH` is set when installing rsync
...
Depending on the shell, `PKG_PATH` is not necessarily set when Vagrant
runs `pkg_add`.
Ref: GH-2917
2014-02-03 23:17:54 -03:00
Mitchell Hashimoto
feeaa69615
kernel/v2: finalize the provisioner configs
2014-02-03 22:28:41 +01:00
Mitchell Hashimoto
59d257f832
provisioners/puppet: mergeable config
2014-02-03 22:27:23 +01:00
Mitchell Hashimoto
d864187b1a
provisioners/docker: configuration is mergeable
2014-02-03 22:23:26 +01:00
Mitchell Hashimoto
2cc56119b7
kernel/v2: support the preserve_order option (documented)
2014-02-03 22:03:20 +01:00
Mitchell Hashimoto
3aaa57cac9
kernel/v2: support merging properly
2014-02-03 21:30:01 +01:00
Mitchell Hashimoto
10d5416a90
kernel/v2: support overriding provisioner settings
2014-02-03 16:56:39 +01:00
Mitchell Hashimoto
38c2a48ff4
provisioners/docker: always pull images [GH-2901]
2014-02-03 16:26:38 +01:00
Mitchell Hashimoto
1d69e95c1c
provisioners/docker: config to disablize -d flag
2014-02-03 16:14:59 +01:00
Teemu Matilainen
c11820c848
guests/openbsd: Add back `insert_public_key` cap
...
Copied from linux guest.
2014-02-03 08:29:54 -03:00
Teemu Matilainen
767f147469
guests/openbsd: OpenBSD is not a Linux derivative
2014-02-03 08:27:57 -03:00
Mitchell Hashimoto
b89a47c955
hosts/opensuse: start NFS server properly [GH-2923]
2014-02-03 12:18:09 +01:00
Mitchell Hashimoto
f63ef395f1
Merge branch 'rsync_install' of https://github.com/tmatilai/vagrant into tmatilai-rsync_install
...
Conflicts:
plugins/guests/freebsd/plugin.rb
plugins/guests/netbsd/plugin.rb
plugins/guests/openbsd/plugin.rb
2014-02-03 12:12:49 +01:00
Mitchell Hashimoto
3c10bf7721
communicators/ssh: better error message
2014-02-03 12:09:13 +01:00
Mitchell Hashimoto
c1e18325ca
Merge pull request #2907 from justincampbell/scp-error-path
...
provisioners/file: Fix wording of upload permission error
2014-02-03 03:07:36 -08:00
Mitchell Hashimoto
56e85bc989
Merge pull request #2906 from frosario/cable_connected
...
providers/virtualbox: connect cable for bridged networking
2014-02-03 03:05:16 -08:00
Mitchell Hashimoto
ac439852ff
kernel/v2: allow IPs to end in ".1" [GH-2914]
2014-02-03 12:02:14 +01:00
Mitchell Hashimoto
592c577b2e
Merge pull request #2922 from tmatilai/file_provisioner_expand_path
...
provisioners/file: expand destination path if capable
2014-02-03 02:52:57 -08:00
Gilles Cornu
466cf58476
ansible generated inventory: skip group variables
...
Except ':children' for groups of groups, it is safer to avoid generating
':suffix' blocks. At the moment Ansible only supports (but doesn't
recommend) group variables (:vars), and the Vagrant Ansible provisioner
won't support this way to define variables.
2014-02-02 23:28:04 +01:00
Gilles Cornu
f564bf7410
Ansible Groups: Accept single item as String
...
Syntax errors in `ansible.groups` definition are not well handled:
Error returned: undefined method `each' for "machine1":String (NoMethodError)
Being tolerant here doesn't hurt and may avoid people get
confused/annoyed.
2014-02-02 23:21:06 +01:00
Gilles Cornu
84308964e2
ansible generated inventory: deal with orphan VMs
...
env.active_machines can potentiall return 'invalid' machines:
- Ignore machines that are not declared in current Vagrantfile
- Warn when machines are missing (it usually occurs when the VM is
removed without `vagrant destroy` and some orphan metadata remains
in .vagrant/machines/...)
2014-02-02 23:06:27 +01:00
Teemu Matilainen
023d3115dd
guests/{free,net,open}bsd: Add `shell_expand_guest_path` capability
2014-02-02 17:38:24 -03:00
Teemu Matilainen
e634cdc824
guests: rename LinuxShellExpandFailed error to ShellExpandFailed
...
Make the error generic for all guests (`DarwinShellExpandFailed` didn't
even exist) and not tied to synced folder.
2014-02-02 17:26:54 -03:00
Mark Aaron Shirley
3bf5032d4b
Update Ansible provisioner to only create a single inventory file
...
The Ansible provisioner will now only create a single inventory file named,
"vagrant_ansible_inventory". All defined Vagrant machines will be added to
this inventory file. Provisioning will now include a "--limit=#{machine}"
option to scope Ansible provisioning tasks to just the current machine. Setting
the Ansible provisioner's "limit" config option will override the new default
limit. Ansible provisioning scripts will now have access to all other defined
machines and what groups they reside in.
2014-02-01 13:04:20 -08:00
Fabio Rehm
dd9d20af88
Make sure synced folder types are always symbols
...
This will make sure that plugins that define synced folders after this
config object has been finalized won't have trouble because of
forgetting to use symbols instead of strings.
References https://github.com/fgrehm/vagrant-cachier/issues/76
2014-02-01 16:01:05 -02:00
Teemu Matilainen
b52958bfb6
provisioners/file: expand destination path if capable
2014-02-01 01:23:09 -03:00
Teemu Matilainen
ee2ae94c25
synced_folders/rsync: Install `rsync` on guest if needed
...
Add new `rsync_installed` and `rsync_install` guest capabilities
to detect and install `rsync`.
Also copy `rsync_pre` capability to all Unix guests.
2014-01-31 02:12:57 -03:00
Justin Campbell
a633b7343a
Fix wording of upload permission error
...
SCPPermissionDenied expects a path, and this is most likely the
destination (to) and not source (from).
[#2804 ]
2014-01-28 13:49:14 -05:00
Freddie Rosario
ccf14bb398
Applying bugfix for cableconnected issue to earlier releases of virtualbox 4.x series
2014-01-28 11:05:44 -05:00
Freddie Rosario
cd0c7dfbd9
Bugfix for github issue 2890.
...
Changing default behavior of vagrant up to enable "cableconnected" on bridged network devices
2014-01-28 10:54:39 -05:00
Mitchell Hashimoto
09955be2cd
provisioners/docker: configure auto start properly for new Docker
...
[GH-2874]
2014-01-21 20:52:27 -08:00
Mitchell Hashimoto
7e9ea7c1c6
hosts/redhat: recognize Korora [GH-2869]
2014-01-21 09:50:20 -08:00
Mitchell Hashimoto
714c690d8b
Merge pull request #2857 from mitchellh/f-ui-revamp
...
UI revamp
2014-01-20 16:22:36 -08:00
Mitchell Hashimoto
64649f8f1d
guests/coreos: restart etcd after configuring networks [GH-2852]
2014-01-18 11:05:29 -08:00
Mitchell Hashimoto
fbd8cfc628
hosts/gentoo: more robust check for systemctl path on Gentoo
2014-01-18 11:03:46 -08:00
Tim Gus
f0ec355a33
hosts/gentoo: fix nonstandard path to systemctl command
2014-01-18 00:13:54 -05:00
Mitchell Hashimoto
ea77194384
providers/virtualbox: more detailed output
2014-01-17 21:03:01 -08:00
Mitchell Hashimoto
5b449c8000
providers/virtualbox: many `detail` level output
2014-01-17 21:03:00 -08:00
Mitchell Hashimoto
8a12bf8694
Merge pull request #2851 from BlackIkeEagle/reload-nfs-exports
...
guests/linux: use exportfs -a flag to avoid stale exports
2014-01-17 09:57:13 -08:00
Mitchell Hashimoto
dd33a26422
providers/virtualbox: network config uses proper format, tests [GH-2854]
2014-01-17 09:53:02 -08:00
BlackEagle
b30eacf94f
nfs_apply :: exportfs sometimes leaves exports behind
...
On my machine i had a case where /etc/exports was updated but the old
exports were still there. This was leading to
"exportfs: duplicated export entries" and eventually leading to nfs
being not available for the box.
changing the command exportfs -r to exportfs -ar seems to address this
issue.
Signed-off-by: BlackEagle <ike.devolder@gmail.com>
2014-01-17 10:54:17 +01:00
Mitchell Hashimoto
72702b4884
guests/tinycore: TinyCore Linux support
2014-01-16 17:18:54 -08:00
Mitchell Hashimoto
53347abbca
Merge pull request #2819 from stoned/guest-netbsd
...
Add NetBSD guest support
2014-01-16 10:37:54 -08:00
Mitchell Hashimoto
a19e442cf2
provisoiners/docker: only add user to group if not in it [GH-2838]
2014-01-16 10:34:08 -08:00
Mitchell Hashimoto
eecba611a4
providers/virtualbox: validate missing keys [GH-2831]
2014-01-16 09:43:31 -08:00
Mitchell Hashimoto
c3d0903f85
synced_folders/rsync: output directory under watch for rsync-auto
2014-01-16 09:11:41 -08:00
Mitchell Hashimoto
8a1995bec9
synced_folders/rsync: make sure host path ends in "/"
2014-01-15 21:22:37 -08:00
Mitchell Hashimoto
73b72deb0a
synced_folders/rsync: convert path to cygpath on Windows
2014-01-15 21:13:08 -08:00
Mitchell Hashimoto
285bda7a68
synced_folders/nfs: don't nfs_prune on hosts that don't support it
2014-01-15 20:28:27 -08:00
Mitchell Hashimoto
1d2da09953
Merge pull request #2824 from masteinhauser/patch-1
...
guests/solaris: More specific Solaris <11 detection.
2014-01-15 20:11:18 -08:00
Mitchell Hashimoto
eae2edf063
providers/virtualbox: retry list hostonlyifs [GH-2831]
2014-01-15 19:55:31 -08:00
Teemu Matilainen
e979b84d36
synced_folders/nfs: Register `nfs_client_install` caps to correct distros
2014-01-15 23:37:02 -03:00
Mitchell Hashimoto
ead1382343
provisioners/docker: fix wrong variable usage
...
caught by @pda
2014-01-15 17:33:55 -08:00
Mitchell Hashimoto
4fab57576b
synced_folders/rsync: run hostpath through fs_real_path
...
This fixes issues with drive letter casing on Windows
2014-01-15 11:30:32 -08:00
Gustavo Gama
262e2c0192
Fix typo
2014-01-15 09:40:41 -02:00
Mitchell Hashimoto
2ca498a5dd
provisioners/docker: build images using new DSL
2014-01-14 09:22:55 -08:00
Mitchell Hashimoto
b3de12702a
Merge branch 'add_building_local_dockerfiles' of https://github.com/jpfuentes2/vagrant into jpfuentes2-add_building_local_dockerfiles
2014-01-14 08:17:44 -08:00
Myles Steinhauser
b34fdf010b
More specific Solaris 11 detection
2014-01-14 09:56:01 -05:00
Myles A. K. Steinhauser
e5445442c1
More specific Solaris <11 detection.
...
Note: This will probably break on Solaris 12+, but not certain of a better approach for now.
2014-01-14 09:52:27 -05:00
Mitchell Hashimoto
526231812f
website/docs: better docs
2014-01-13 22:29:10 -08:00
Stoned Elipot
10169f8e99
Add NetBSD guest support
2014-01-14 07:25:35 +01:00
Mitchell Hashimoto
04f1854840
synced_folders/rsync: unit tests for the callback, fix bug
2014-01-13 22:01:09 -08:00
Mitchell Hashimoto
fe2844ca59
synced_folders/rsync: rsync-auto command
2014-01-13 21:43:31 -08:00
Mitchell Hashimoto
c05a44face
synced_folders/rsync: pass --delete option to delete bad files
2014-01-13 11:40:46 -08:00
Mitchell Hashimoto
b4b62daf5c
synced_folders/rsync: expand host paths relative to root path
2014-01-13 11:34:49 -08:00
Mitchell Hashimoto
309d12a16b
synced_folders/rsync: `vagrant rsync` syncs the folders
2014-01-13 11:25:29 -08:00
Mitchell Hashimoto
59218ded68
synced_folders/rsync: move rsync logic out to helper
2014-01-13 11:01:50 -08:00
Mitchell Hashimoto
9b383740ba
hosts/bsd: use Util::Which instead of system("which")
2014-01-12 22:37:39 -08:00
Mitchell Hashimoto
b8601423c7
hosts/bsd: don't execute shell for sudo commands [GH-2808]
2014-01-12 22:34:45 -08:00
Mitchell Hashimoto
8bc36824bf
commands/list-commands: lists all commands primary and non-primary
2014-01-11 09:32:13 -08:00
Mitchell Hashimoto
6a7e07c53f
provisioners/chef: don't follow symlink when chown
2014-01-11 08:02:59 -08:00
Mitchell Hashimoto
7b2a0716f1
synced_folders/rsync: warn if password auth
2014-01-10 20:37:11 -08:00
Mitchell Hashimoto
55b0dffd36
synced_folders/rsync: output what is being excluded
2014-01-10 18:06:16 -08:00
Mitchell Hashimoto
60f3d224c9
synced_folders/rsync: can exclude files
2014-01-10 18:01:38 -08:00
Mitchell Hashimoto
2e3fcf576c
synced_folders/rsync: allow guests to execute things before
2014-01-10 17:51:44 -08:00
Mitchell Hashimoto
38fbbb6c56
synced_folders/rsync: Initial commit working
2014-01-10 17:40:29 -08:00
Mitchell Hashimoto
fcae8dd687
Merge pull request #2766 from graingert/patch-1
...
provisioners/salt: Allow defining of <install-type> and <install-type-args>
2014-01-10 15:43:25 -08:00
Mitchell Hashimoto
9a58caaf9c
synced_folders/nfs: always prune [GH-2738]
2014-01-10 15:41:57 -08:00
Mike Fiedler
9679eccb06
extend Virtualbox convenince methods
...
In the vein of #2426 , I too can never remember syntax, and end up
hunting for either an exisiting Vagrantfile or starting to dig up
details.
2014-01-10 12:41:23 -05:00
Mitchell Hashimoto
91380c0650
synced_folders/nfs: automatically install NFS client if possible
...
If guests have the following capabilities, automatic NFS client
installation will be done:
* nfs_client_installed - Checks if the NFS client is installed
* nfs_client_install - Install the NFS client
Support is already in for Debian, Ubuntu, RedHat, CentOS, and Fedora
2014-01-09 16:58:20 -08:00
Mitchell Hashimoto
5e835f4201
Merge pull request #2792 from smoyer/redhat_hostname_patch
...
guests/redhat: use FQDN for hostname
2014-01-08 20:58:59 -08:00
Mitchell Hashimoto
732a03c1c4
guests/linux: properly quote and insert public key
2014-01-08 15:12:26 -08:00
smoyer
3964298504
This was introduced in 1.4.1 with d26c147
.
...
This PR sets the active hostname back to the name specified in the Vagrantfile (fqdn) and updates the unit tests.
Setting it to the short name causes loads of problems while configuring the system. I've had issues with sudoers hostname matching, Weblogic certificate generation and a few others. Even if I changed all of the Chef recipes, the fqdn is set in /etc/sysconfig/network so the active hostname will switch to the fqdn after a reboot.
2014-01-08 17:49:54 -05:00
Mitchell Hashimoto
9a419c3f63
Merge pull request #2784 from mitchellh/f-host-capabilities
...
Host Capabilities
2014-01-08 08:54:26 -08:00
Teemu Matilainen
64ea647e09
provisioners/chef-solo: Fix copy&paste "Puppet" from a deprecation message
2014-01-08 13:27:35 -03:00
Mitchell Hashimoto
e2af545182
kernel/v2: a host always exists, remove dumb check
2014-01-07 21:20:28 -08:00
Mitchell Hashimoto
e9f6c81ab7
hosts/*: proper detect API
2014-01-07 21:18:36 -08:00
Mitchell Hashimoto
26b564566b
hosts/null: needs to accept env as param
2014-01-07 21:14:33 -08:00
Mitchell Hashimoto
a72e7473d5
hosts/windows: convert
2014-01-07 21:13:21 -08:00
Mitchell Hashimoto
4d47dae5b9
many more hosts converted
2014-01-07 21:11:59 -08:00
Mitchell Hashimoto
4cec8b48d9
hosts/freebsd: convert
2014-01-07 21:01:03 -08:00
Mitchell Hashimoto
a6c7cc481e
convert more hosts: arch and linux
2014-01-07 20:53:39 -08:00
Mitchell Hashimoto
bdb88da743
hosts/bsd: convert to new style
2014-01-07 20:39:24 -08:00
Mitchell Hashimoto
5e490e3746
Get tests to pass
2014-01-07 19:26:03 -08:00
Mitchell Hashimoto
93e365bb33
core: Vagrant::Environment uses new host settings
2014-01-07 19:11:08 -08:00
Mitchell Hashimoto
ea502c5c3d
commands/plugin: vagrant plugin install can accept multiple
2014-01-07 14:17:48 -08:00
Mitchell Hashimoto
24a2892236
Update CHANGELOG and website
2014-01-07 14:11:33 -08:00
Ryan S. Brown
b53ae446d2
Allow `vagrant (un)install plugin1 plugin2 plugin3`
2014-01-07 14:09:31 -08:00
Mitchell Hashimoto
86cab61c27
commands/plugin: support installing from file
2014-01-06 09:27:37 -08:00
Thomas Grainger
feb748f488
Allow defining of <install-type> and <install-type-args>
2014-01-06 12:22:43 +00:00
Mitchell Hashimoto
f612ec7549
core: support plugin sources, and mask Bundler errors
2014-01-05 23:13:49 -08:00
Mitchell Hashimoto
0117521744
commands/plugin: vagrant update is fancier now (see website docs)
2014-01-05 22:33:05 -08:00
Mitchell Hashimoto
561e65ec72
commands/plugin: list shows version constraints and entrypoints
2014-01-05 21:16:41 -08:00