Commit graph

1008 commits

Author SHA1 Message Date
Brian Coca
cd64f20034 added missing version_added 2016-02-01 23:55:41 -05:00
Brian Coca
ff554a76d7 Merge pull request #1402 from doalitic/iptables-add-limit-burst
Add limit-burst support to iptables module
2016-02-01 23:50:15 -05:00
Dale Smith
27cd172900 Fix regression of #821 in puppet of show_diff
Issue #821 fix: 1382576100
Regressed since: 6912ca0aca

Issue: #821
2016-01-28 15:48:18 +00:00
Brian Coca
ffefe5dde8 Merge pull request #1505 from Yannig/devel_fix_pvcreate
Use -f when pvcreate to avoid interactive input.
2016-01-26 00:00:00 -05:00
Brian Coca
98eeb689ce Merge pull request #1514 from doalitic/iptables-fix-append_csv
iptables: fix param check in append_csv function
2016-01-25 23:58:54 -05:00
Brian Coca
a7ad0bc7be Merge pull request #1499 from specnazzz/fix-seport-ports
seport module fails when the `ports` argument is a integer
2016-01-25 23:57:54 -05:00
Brian Coca
ec8bf56448 Merge pull request #1493 from abulimov/filesystem_recreate_with_force
Allow recreation of same FS with force=yes in filesystem module
2016-01-25 23:57:04 -05:00
Brian Coca
1f2b6bf3fd Merge pull request #1492 from alxgu/filesystem_idemponent
Make fileystem module idemponent. Compare devicesize and filesystemsize.
2016-01-25 23:55:34 -05:00
Vincent VAN HOLLEBEKE
ce3e972ce8 Do not fail when action is delete and volume is not present
This prevents failing when a playbook describes a volume deletion and
is launched more that once.

Without this fix, if you run the playbook a second time, it will fail.
2016-01-24 20:28:01 +01:00
colynn.liu
9b981cecc6 fixed python 2.4 compatibility
nf=tempfile.NamedTemporaryFile(delete=False)
TypeError: NamedTemporaryFile() got an unexpected keyword argument 'delete'
2016-01-22 18:05:48 +08:00
Chad Nelson
0c2f602788 Doc wrongly indicates permanent is required
But it isn't. :)
2016-01-21 08:23:36 -05:00
Brian Coca
174bef08ae Merge pull request #1133 from lightblu/devel
Check to make sure the firewalld client is connected before proceeding
2016-01-18 20:51:58 -05:00
Daniel Vigueras
16d17d287f iptables: fix param check in append_csv function 2016-01-18 16:11:13 +01:00
Daniel Vigueras
ece6872b81 iptables: add --limit-burst option 2016-01-18 16:00:09 +01:00
Mo
23aa66a48e firewalld: fixes documentation
- removes warning, aligning to existing documentation
- adds version
2016-01-16 23:02:58 +01:00
Alexander Gubin
8d7b1b0bd6 Make fileystem module idemponent. Compare devicesize and filesystemsize. 2016-01-15 18:35:45 +01:00
Yannig Perré
c276d9f621 Use -f when pvcreate to avoid interactive input.
Fix https://github.com/ansible/ansible-modules-extras/issues/1504
2016-01-15 16:33:42 +01:00
Tom X. Tobin
4c4a58e77b osx_defaults: Fix boolean value parsing
Values for boolean types were being unconditionally treated as strings
(by calling `.lower()`), thus breaking value parsing for actual boolean
and integer objects.

It looks like the bug was introduced in:

- 130bd670d8

Fixes #709.
2016-01-14 12:54:48 -05:00
Brian Coca
aae5847064 Merge pull request #1403 from LinusU/linusu-iptables-cleanup
iptables: cleanup
2016-01-14 11:04:37 -05:00
Michal Mach
ee2c730b7e Fix seport module issue when ports argument is interpolated from a variable and is a int 2016-01-14 11:47:19 +01:00
Jeroen Geusebroek
e088c9f819 Fix documentation default value for gluster_volume start_on_create 2016-01-13 21:55:56 +01:00
Alexander Bulimov
ab9b0558d3 Allow recreation of same FS with force=yes 2016-01-13 17:39:42 +03:00
Brian Coca
a42203bdb3 Merge pull request #1476 from jarrpa/jarrpa-patch-1
gluster_volume: allow probing ourselves
2016-01-12 10:55:17 -05:00
Brian Coca
5f8b288c31 Merge pull request #1389 from brwilson/devel
Properly handle adding multiple bricks to volume
2016-01-12 10:52:50 -05:00
Brian Coca
3aa2d3744d Merge pull request #1482 from ansible/json-imports-fallback
Update for modules which import json.
2016-01-12 10:00:37 -05:00
Brian Coca
4d2a20b2f4 Merge pull request #1382 from Jmainguy/lvol_snapshot
add snapshot feature to lvol
2016-01-11 19:31:04 -05:00
Toshio Kuratomi
d6af6f8477 Update for modules which import json.
Some do not use the json module directly so don't need import json.
Some needed to fallback to simplejson with no traceback if neither was installed

Fixes #1298
2016-01-11 13:06:22 -08:00
Mo
c8e35023a4 firewalld: add/remove interfaces to/from zones 2016-01-10 23:18:09 +01:00
Jose A. Rivera
12bf504173 gluster_volume: allow probing ourselves
We should allow "gluster peer probe" to determine if a given "host" maps to the
localhost, and detect that case accordingly.
2016-01-10 12:50:45 -06:00
Jonathan Mainguy
a58b847d5c Remove advertising show_diff feature
--diff will be added to more modules soon, and we want puppet module to utilize this instead of show_diff
2016-01-06 10:04:55 -05:00
Casey Lang
3de4f10bb5 Fix puppet module formatting issue
The `->` in the `show_diff` option doc seemed to be causing the docs
page to break. Not sure why, since it was still valid YAML.
2016-01-05 18:22:38 -06:00
Brian Coca
82a4cf84be Merge pull request #1081 from ag-wood/firewalld-rr-fix
Fix for - Firewalld traces with ALREADY_ENABLED when using port name or re-ordered rich rule
2016-01-04 09:21:46 -05:00
Jeroen Geusebroek
3647b29bee Improved fix for #1074. Both None and '' transform to fqdn. 2016-01-03 21:09:37 +01:00
Jeroen Geusebroek
30c5b303ce Fix for issue #1074. Now able to create volume without replica's. 2016-01-03 08:49:20 +01:00
Matt Martz
9342bd7c38 Import module snippets in the correct location 2015-12-22 15:38:29 -06:00
Matt Martz
0826256e0f Remove unneeded spaces at the end of ohai 2015-12-22 15:31:41 -06:00
Michael Scherer
2f3dc1352f Replace choices=BOOLEANS by type='bool', fix #1326 2015-12-21 23:39:20 +01:00
Linus Unnebäck
cdf7fa2250 iptables: cleanup 2015-12-18 19:40:43 +01:00
Benjamin Wilson
1fe0330abe Properly handle adding multiple bricks to volume 2015-12-16 16:39:42 -05:00
Jonathan Mainguy
7b857b073e add snapshot feature to lvol 2015-12-15 21:49:14 -05:00
Jonathan Mainguy
83f4f16235 Enable stdout and stderr on sucessful runs, making show_diff useable
omit color symbols as ansible makes them illegible
2015-12-15 11:36:55 -05:00
Monty Taylor
6912ca0aca Sync minor fixes from OpenStack Infra
Infra has been keeping a local copy of this waiting for ansible 2 to
release. In getting ready for ansible 2 (and our ability to delete our
local copy of the file, I noticed we had a couple of minor cleanups.

Also, the timeout command is there to improve life and workaround puppet
deficiencies. However, it's not working around deficiencies on systems
that do not have the timeout command if we blindly use it.

The puppet specific timeout options are more complex and out of scope of
this.

Issue: #1273
2015-12-14 23:40:01 -05:00
Brian Coca
ab1693a075 Merge pull request #1079 from wkeeling/bugfix_634
Fixes multiple param handling by modprobe.py
2015-12-14 21:47:15 -05:00
Greg Hurrell
cc7c929725 osx_defaults: add "host" attribute
This allows us to configure defaults using the `-currentHost` or `-host`
arguments to the `defaults` executable.
2015-12-12 09:23:04 -08:00
Johan Wirén
98c84c560d Keep, but ignore createparent option 2015-12-11 00:24:29 +01:00
Johan Wirén
cd691fad0d Removes the createparent property.
The least surprising thing is to always create parents
2015-12-10 23:32:13 +01:00
Johan Wirén
5437b4a15b Only considers local attributes when comparing state
This should fix #1092
2015-12-10 22:53:06 +01:00
Johan Wirén
fed4b28020 Documentation fixes 2015-12-09 00:38:45 +01:00
Johan Wirén
58d23cba68 Update example 2015-12-09 00:03:29 +01:00
Johan Wirén
e549d96723 Changes how zfs properties are handled
This moves the validation of properties to the zfs command itself. The
properties and their choices were not really correct anyway due to
differences between OpenZFS and Solaris/ZFS.
2015-12-08 23:59:31 +01:00
Gordon Fierce
b0196edb34 Fix documentation to prevent formatting error where each letter has its own line. 2015-12-07 18:47:26 -05:00
Toshio Kuratomi
a10bdd6be9 Merge pull request #1302 from mscherer/fix_1282
Add a more explicit error message on missing requirement for firewalld
2015-12-04 07:32:35 -08:00
Michael Scherer
037ff89063 Add a more explicit error message, fix #1282 2015-12-04 11:46:20 +01:00
Guillaume Grossetie
32658b9d3b Resolves #1312, Improve pam_limits documentation
Adds comment parameter and improve examples.
2015-12-01 14:27:50 +01:00
GUILLAUME GROSSETIE
c28a0031bb Resolves #1290, Adds limit_type choice "-" 2015-11-26 11:37:59 +01:00
Brian Coca
767ec29640 Merge pull request #1260 from xavpaice/devel
Added stdout and stderr to puppet output for rc=2
2015-11-24 12:51:14 -08:00
Brian Coca
367b88a2ab removed json import 2015-11-21 16:07:12 -08:00
Xav Paice
c1cf8e671a Added stdout and stderr to puppet output for rc=2 2015-11-18 14:34:46 +13:00
Romain Brucker
e0bdd2e7f6 Editing iptable module to use -m state --state instead of -m conntrack --ctstate 2015-11-10 09:21:32 -06:00
Romain Brucker
2b04f0c5cf Fixing limit type from list to string 2015-11-03 11:47:28 -06:00
Romain Brucker
dbee2266e1 Adding limit feature to iptables module 2015-11-03 11:41:30 -06:00
Brian Coca
6a87eed586 made ctstate default to [] and evaluation conditional on the list being popoulated 2015-11-03 12:12:39 -05:00
Brian Coca
ea2fd78e6a fixed default from None to [] for ctstate 2015-11-03 12:03:00 -05:00
Brian Coca
9fb6054500 avoid index error on empty list, key being true means its not None nor []
fixes #13009
2015-11-02 21:50:31 -05:00
Brian Coca
f5ed8d0c6e made ctstate accept lists 2015-11-02 12:11:38 -05:00
Daniel Vigueras
b0278c1f6a Add conntrack module ctstate support to iptables 2015-11-02 10:55:54 +01:00
Monty Taylor
ea5af4c27a Revert "Change show_diff to default to yes"
This was originally to match what puppet agent --test is, since the
rest of the options defaulted to on are grabbed from --test. However,
some security concerns have since been raised - namely that since this
is not the same invocation as --test but instead a remote orchestration
of puppet, the fact that passwords leak into the diff is a dangerous
default.

This reverts commit b86762c180.
2015-11-01 10:50:58 +09:00
Brian Coca
360734ec09 whitespace fixes 2015-10-31 14:31:08 -04:00
Romain Brucker
c648edfbae Adding comment support for iptables module 2015-10-30 11:29:05 -05:00
Brian Coca
3099469b7f fixed typos in cryptab, thanks @timw
fixes #1176
2015-10-29 21:05:33 -04:00
Brian Coca
c685b3d387 corrected version added
fixes #1171
2015-10-27 19:36:07 -04:00
Alexander
64d5502fbe fix typo error
fix spell error for whether
2015-10-26 23:03:51 +08:00
Matt Carroll
5160c4567c Fix ZFS create
This was failing due to the createparent variable being referenced but
never actually loaded from properties
2015-10-25 01:06:58 +01:00
Toshio Kuratomi
5d4474a2b2 Merge pull request #1052 from machacekondra/pam_limits_fix
system: pam_limits: add support for unlimited/infinity/-1
2015-10-23 14:32:46 -07:00
Jonathan Mainguy
b86762c180 Change show_diff to default to yes, to match what puppet agent --test is, since the rest of the options defaulted to on are grabbed from --test 2015-10-23 13:24:39 -04:00
Ondra Machacek
cfec045697 system: pam_limits: add support for unlimited/infinity/-1
Early pam_limits module didn't support special values for items.
This patch is adding support to special values unlimited, infinity and -1.

Issue: https://github.com/ansible/ansible-modules-extras/issues/1033
Signed-off-by: Ondra Machacek <machacek.ondra@gmail.com>
2015-10-22 20:57:38 +02:00
Björn Lichtblau
c4c7e43020 Check to make sure the firewalld client is connected before proceeding.
Fixes #1138

Original patch referenced in https://github.com/ansible/ansible/issues/6911 ( f547733b1f ) was undone by 6f2b61d2d8
2015-10-22 16:09:25 +02:00
Toshio Kuratomi
5adc4a2014 Fix docs to build 2015-10-16 10:49:23 -07:00
Brian Coca
e9e8911366 Merge pull request #1015 from LinusU/iptables-module
module: system/iptables
2015-10-15 09:09:49 -04:00
Linus Unnebäck
e5f2931707 iptables: add note about rules 2015-10-15 11:30:06 +02:00
Steve
c5924aff74 Fix bug #1105 - incorrect use of lstrip()
Remove only the literal prefix '/dev/mapper/' - not any of the characters
in '/dev/mapper/' - from the name param of the crypttab module.
2015-10-14 12:13:57 +01:00
ag-wood
8a07d070e1 Fix for ansible-modules-extras issue #1080 2015-10-11 23:17:23 +10:00
Will Keeling
4e6b683aa0 Fixes #634 - multiple param handling by modprobe.py 2015-10-10 21:06:10 +01:00
Brian Coca
6336838354 Merge pull request #1059 from sivel/sys-exit-removal
sys.exit removal from various modules
2015-10-06 12:29:48 -04:00
Matt Martz
9d015665b8 Fix open_iscsi EXAMPLES section 2015-10-05 13:34:42 -05:00
Matt Martz
e68d9315c1 sys.exit removal for system/capabilities.py 2015-10-05 13:24:25 -05:00
Charles Paul
f4be5c6382 allow floating point input for size vale 2015-10-05 12:16:29 -05:00
Brian Coca
3564c48f3c switched to use module loggigng 2015-10-01 00:29:57 -04:00
Konstantin Manna
97b7a7a7f8 bugfix: use correct function close calls 2015-09-30 10:13:12 -04:00
Linus Unnebäck
3c4e6f58b0 iptables: expand rule options 2015-09-28 22:14:19 +02:00
Linus Unnebäck
5cd6b56453 module: system/iptables 2015-09-28 18:59:15 +02:00
Daniel Nägele
39eb3807f3 fix #894 by actually updating with the modified settings 2015-09-08 15:28:05 +02:00
Brian Coca
5cd0fab9d0 Merge pull request #890 from kmalov/locale_gen_fix
Add some more locales to LOCALE_NORMALIZATION
2015-09-04 11:47:19 -04:00
varnav
009ee165a8 Small improvement in documentation 2015-08-28 18:38:58 +03:00
Konstantin Malov
f91e726bf7 Add some more locales to LOCALE_NORMALIZATION 2015-08-28 13:05:25 +03:00
Brian Coca
d4f22de62d made seport 2.4 compatible 2015-08-17 12:08:46 -04:00
Brian Coca
b211bacb40 Merge pull request #29 from dankeder/seport
Add module system/seport.py
2015-08-15 15:22:59 -04:00
Brian Coca
2d3844202f Merge pull request #644 from pmarkham/devel
Added zone.py module to manage Solaris zones
2015-08-14 13:04:57 -04:00
Brian Coca
1382576100 fixed a few typos
fixes #821
2015-08-10 13:25:13 -04:00
Brian Coca
27bf193483 added missing license headers
fixes #508
2015-07-30 14:48:59 -04:00
Brian Coca
50f4b2c3de minor doc fix 2015-07-29 22:11:36 -04:00
Brian Coca
8bd3ead27e Merge pull request #22 from mscherer/add_selinux_permissive
Add selinux_permissive module, to be able to manage permissive domain
2015-07-29 22:09:19 -04:00
Brian Coca
aa747818d9 Merge pull request #785 from srvg/bug/openiscsi-emptylist
open_iscsi: return devicenodes as empty list if no LUN's
2015-07-29 20:16:50 -04:00
Serge van Ginderachter
d2b44b1053 open_iscsi: minor PEP8 whitespace fixes 2015-07-29 16:16:15 +02:00
Serge van Ginderachter
b2f8e5dc59 Return devicenodes as empty list if no LUN's
got connected. It is possible for an intiator to successfully connect to a
target, whilst getting no LUN's back. If no devicenodes get detected, it makes
more sense to return an empty list than plainly None.

This potentially avoids further tasks to have to check if devicenodes is
iterable.
2015-07-29 16:13:02 +02:00
Brian Coca
1d06ee6e2d minor doc fixes to pam_limits 2015-07-28 08:50:23 -04:00
Brian Coca
82c6a87bb0 Merge pull request #96 from usawa/devel
Add pam_limits module to ansible : modify PAM limits for Linux
2015-07-28 08:21:56 -04:00
Michael Scherer
2662ec9669 Add selinux_permissive module, to be able to manage permissive domain 2015-07-26 18:34:19 +02:00
Brian Coca
146c2ac3bc Merge pull request #763 from mscherer/fix_656
Do not assume that /var/lib/locales/supported.d/local exist
2015-07-25 11:52:04 -04:00
Michael Scherer
162f257412 Use the parameter 'name' everywhere for consistency
Fix https://github.com/ansible/ansible/issues/11395
2015-07-25 14:11:03 +02:00
Michael Scherer
1d5afdc139 Do not assume that /var/lib/locales/supported.d/local exist
Since people can generate their own image with debootstrap, and
this wouldn't create a file /var/lib/locales/supported.d/local,
better check if it exist and work if it doesn't.

Fix #656
2015-07-25 12:21:28 +02:00
Mathias Merscher
44df5a9be5 ISO-8859-15 locale normalization in locale_gen module
Signed-off-by: Mathias Merscher <Mathias.Merscher@dg-i.net>
2015-07-21 21:08:02 +02:00
Paul Markham
80d959f937 Documentation fixes 2015-07-11 10:08:51 +10:00
Paul Markham
69f330ff97 Updates for Solaris 11 2015-07-10 13:15:47 +10:00
Brian Coca
72b9ef4830 added missing version_added to new filesystem option 2015-07-08 13:14:01 -04:00
Brian Coca
0e02387c32 Merge pull request #672 from Firstyear/fsresize-devel-fixed
Changes to allow FS resize in filesystem
2015-07-08 13:11:55 -04:00
Brian Coca
217221caed added version_added to new origin option 2015-07-04 12:18:45 -04:00
Paul Markham
d46810fb5e Documentation fixes 2015-07-04 11:10:30 +10:00
John W Higgins
094ef92aee Switch to origin and cleanup 2015-07-03 16:16:18 -07:00
Paul Markham
c5c3b8133f Updates based on community review.
* Changed 'config' from a list to a string so any valid zonecfg(1M) syntax is accepted.
* Made default state 'present'
* Added 'attached', 'detached' and 'configured' states to allow zones to be moved between hosts.
* Updated documentation and examples.
* Code tidy up and refactoring.
2015-07-03 14:28:28 +10:00
John W Higgins
d8023c225d Add zfs cloning 2015-07-02 17:07:07 -07:00
William Brown
9398d0509f Changes to allow FS resize in filesystem 2015-07-02 07:56:56 +09:30
Greg DeKoenigsberg
2c727e3a74 Merge pull request #116 from TimothyVandenbrande/devel
added a source/network add/remove to/from zone for firewalld
2015-06-29 16:19:43 -04:00
tylerturk
f14317f7f5 Fix documentation bug 2015-06-29 07:51:58 -05:00
Timothy Vandenbrande
68c85950b0 Merge remote-tracking branch 'upstream/devel' into devel 2015-06-29 14:19:33 +02:00
Timothy Vandenbrande
86fda85ba3 updated version added for source into the docs 2015-06-29 14:18:09 +02:00
Paul Markham
eb44a5b6b8 Handle case where .UNFONFIGURE file isn't there 2015-06-29 12:43:14 +10:00
Paul Markham
219ec18b33 Change state back to a required parameter 2015-06-29 11:19:36 +10:00
Paul Markham
3f395861a0 Changed 'whole_root' option to 'sparse'. Added state='started' as synonym for state='running'. 2015-06-29 11:00:30 +10:00
Paul Markham
7c231a340a - Renamed module to solaris_zone.py
- Updated 'version_added'
- Updated description of 'state' to make each line a list item
- Check that OS is Solaris
2015-06-26 09:44:33 +10:00
Paul Markham
5a79b5ab0d Added zone.py module to manage Solaris zones 2015-06-25 12:46:35 +10:00
Sebastien ROHAUT
44423e4a65 Update pam_limits.py
Add version 2.0
Remove default: from documentation for required values
use atomic_move from ansible module API
2015-06-21 18:52:59 +02:00
Brian Coca
8753b2cd20 minor docfixes 2015-06-17 09:39:57 -04:00
Dag Wieers
685653b23b Another incompatibility with python 2.4 2015-06-17 15:22:10 +02:00
Dag Wieers
f967aa376d Fix TravisCI failure on python 2.4 2015-06-17 15:07:18 +02:00
Brian Coca
1015a2886f Merge pull request #64 from frenck/module-mac-defaults
Added module for managing Apple Mac OSX user defaults
2015-06-16 19:12:36 -04:00
Greg DeKoenigsberg
004dedba8a Changes to author formatting, remove emails 2015-06-16 14:32:39 -04:00
Rene Moser
f33bbe6e49 puppet: update author to new format 2015-06-16 11:33:16 -04:00
Rene Moser
e633d9946f puppet: make arg puppetmaster optional
puppetmaster was used to determine if `agent` or `apply` should be used. But puppetmaster is not required by puppet per default. Puppet may have a config or could find out by itself (...) where the puppet master is.

It changed the code so we only use `apply` if a manifest was passed, otherwise we use `agent`.

This also fixes the example, which did not work the way without this change.

~~~
# Run puppet agent and fail if anything goes wrong
- puppet
~~~
2015-06-16 11:33:15 -04:00
Rene Moser
c277946fb3 puppet: fix missing space between command and arg
Fixes:
~~~
{
    "cmd": "/usr/bin/puppetconfig print agent_disabled_lockfile",
    "failed": true,
    "msg": "[Errno 2] No such file or directory",
    "rc": 2
}
~~~
2015-06-16 11:33:15 -04:00
Rene Moser
616a56f871 puppet: add --environment support 2015-06-16 11:33:15 -04:00
Rene Moser
9d4046f44b puppet: ensure puppet is in live mode per default
puppet may be configured to operate in `--noop` mode per default.

That is why we must pass a `--no-noop` to make sure, changes are going to be applied.
2015-06-16 11:33:15 -04:00
Brian Coca
861b4d0c19 corrected lvol docs version to 2.0 2015-06-16 11:33:14 -04:00
Brian Coca
eec8dca006 added copyright/license info to modules I had missed 2015-06-16 11:33:13 -04:00
David Wittman
01551a8c15 [lvol] Add opts parameter
Adds the ability to set options to be passed to the lvcreate command
using the `opts` parameter.
2015-06-16 11:33:13 -04:00
fdupoux
1bc3e10e77 Devices in the current_devs list must also be converted to absolute device paths so comparison with dev_list works 2015-06-16 11:33:13 -04:00
Monty Taylor
ce93a91a59 Fix octal values for python 2.4 2015-06-16 11:33:12 -04:00
Monty Taylor
e7ed08f762 Add support for check mode 2015-06-16 11:33:12 -04:00
Monty Taylor
a1ecd60285 Fix some errors pointed out by travis 2015-06-16 11:33:11 -04:00
Monty Taylor
9d2d3f0299 Add module to run puppet
There is a growing pattern for using ansible to orchestrate runs of
existing puppet code. For instance, the OpenStack Infrastructure team
started using ansible for this very reason. It also turns out that
successfully running puppet and interpreting success or failure is
harder than you'd expect, thus warranting a module and not just a shell
command.

This is ported in from
http://git.openstack.org/cgit/openstack-infra/ansible-puppet
2015-06-16 11:33:11 -04:00