Commit graph

328 commits

Author SHA1 Message Date
James Tanner
ea5186ca63 Fixes #6590 add set_remote_user parameter to synchronize
This allows usage of custom ssh configs for remote hosts where
the inventory user does not match the configured user.
2014-03-20 13:56:07 -04:00
Steve Smith
e157355fd6 Only unlink the symlink tempfile on error if it was created in the
previous operation.
2014-03-20 13:14:24 +01:00
Brian Coca
1b38bd8a40 fixed issue with tmp file (path can include filename) and added missing
else which made it try to link x2
2014-03-20 07:55:53 -04:00
Brian Coca
6e6ad97239 now correctly checks absolute path for src= existance for links
also updated docs to be a bit clearer on symlink behaviour
2014-03-20 07:49:25 -04:00
Brian Coca
f6a75ebaf1 fixed issue with directory permissions on copy #6552 2014-03-18 22:29:22 -04:00
James Cammarata
5d8c9d3f0f Merge branch 'file_fixes_clean' of https://github.com/bcoca/ansible into bcoca-file_fixes_clean 2014-03-17 14:03:26 -05:00
Michael DeHaan
7286beb15e Merge pull request #6515 from lotia/fix-acl-doc-and-error
Fix acl doc and error
2014-03-16 13:15:42 -05:00
Ali Asad Lotia
4a006a78b3 Whitespace fixes in incompatible param check
- Remove extra whitespace in conditional that checks if etype, entity or
  permissions are also set when entry is set.
2014-03-16 17:49:36 +00:00
Michael DeHaan
5c05982dea Merge pull request #6448 from jirutka/fix-5679-2
Fix #5679 again after recent changes in core
2014-03-16 12:43:10 -05:00
Cristian Ciupitu
0749112286 Micro-optimization: replace s.find(x)!=-1 with x in s
timeit shows a speedup of ~3x on Python 2.7.5 x86_64.
It also makes the code a bit shorter.
2014-03-16 13:10:28 -04:00
Ali Asad Lotia
9180013682 Fix acl module doc and error messages
- Fix typos in module doc
- Provide clearer error message when entry and etype are both missing
2014-03-16 16:41:37 +00:00
Brian Coca
2d25577e11 Fixes and cleanup to file functions and module
- unified set attribute functions ... not sure why 2 identical functions
exist with diff names, now there are 3 while i repoint all modules to 1
- fixed issue with symlinks being created w/o existing src when force=no
- refactored conditionals, simplified where possible
- added tests for symlink to nonexistant source, with both force options
- made symlink on existing attomic (force)
2014-03-15 13:54:24 -04:00
Michael DeHaan
01b7465a03 Merge pull request #6504 from follower/patch-2
Fix typo
2014-03-15 09:15:53 -05:00
follower
af6109c169 Fix typo
"resort" -> "result"
2014-03-15 20:04:38 +13:00
Brian Coca
b81a3bbb20 fixed bad detection of change on default and premature break 2014-03-15 01:10:15 -04:00
Jakub Jirutka
2bfaacd170 Fix #5679 again after recent changes in core 2014-03-12 18:21:53 +01:00
Brian Coca
463a1c21ea now stat skips md5 if file isn't readable 2014-03-11 22:50:05 -04:00
James Tanner
ba0fec4f42 Force command action to not be executed by the shell unless specifically enabled 2014-03-10 16:13:30 -05:00
Dolph Mathews
8808e029f9 spelling correction for "separate"
s/seperate/separate/

http://en.wiktionary.org/wiki/separate
2014-03-08 04:51:34 -06:00
Richard C Isaacson
a483e42583 unarchive module: Add creates functionality.
Closes GH-5354.

Forklift copy logic into unarchive. Provides integration unit tests.
2014-03-07 18:19:46 -06:00
Michael DeHaan
7710867922 Merge pull request #6308 from muffl0n/file_fix_documentation
Module "file": Fix link to "path" in documentation
2014-03-06 11:04:47 -06:00
James Cammarata
9f2999df79 Un-escape newlines in delimiters for assemble module 2014-03-06 09:44:56 -06:00
Sven Schliesing
f62cc1e351 Fix link in documentation
c(dest) -> c(path)
2014-03-06 13:16:29 +01:00
Michael DeHaan
6c43e0e010 Simplify file module parameter description. 2014-02-28 13:55:07 -05:00
Richard C Isaacson
f17e549ff9 Typo fix. 2014-02-28 11:02:58 -06:00
Richard C Isaacson
809b714bfc Replace mode with octal renaming to mode.
Closes GH-6176

This way for mode we return in an octal format which is immediately usable compared to transforming it later.
2014-02-28 10:42:20 -06:00
Richard Isaacson
cca7fd3c0c Merge pull request #1 from bcoca/stat_updaates
added octal representation of mode and made md5 checksumming optional
2014-02-28 10:39:41 -06:00
Richard C Isaacson
7b6c7366d1 Minor cleanup. 2014-02-28 10:04:05 -06:00
Richard C Isaacson
890202e4c0 copy module: cleanup and if directory_mode not set default to umask 2014-02-28 10:00:54 -06:00
Richard C Isaacson
cf4a6b39cc Copy Module: Add the ability to set directory attributes on recursive copy.
Closes GH-6194.

These changes pass attribute modifications through to new directories during a recursive copy with an addition allowing for the directory mode to be set independantly.
2014-02-28 01:14:32 -06:00
James Cammarata
32a2636dc7 Add expanduser calls on src/dest in the module too 2014-02-26 15:19:45 -06:00
James Cammarata
e659d55d62 Merge branch 'devel' of https://github.com/muffl0n/ansible into muffl0n-devel 2014-02-26 12:28:26 -06:00
Brian Coca
53d71a3949 added octal representation of mode and made md5 checksumming optional
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2014-02-25 21:33:14 -05:00
James Cammarata
3b2d409906 Fixing several bugs in assemble and updating tests
Bugfixes:
* the remote_src param was not being converted to a boolean correctly,
  resulting in it never being used by the module as the default behavior
  was remote_src=True (issue #5581)
* the remote_src param was not listed in the generic file params, leading
  to a failure when the above bug regarding remote_src was fixed
* the delimiter should always end with a newline to ensure that the file
  fragments do not run together on one line

Fixes #5581
2014-02-24 14:27:23 -06:00
James Cammarata
f03d6a67c8 Adding new tests for assemble role 2014-02-24 14:27:23 -06:00
James Cammarata
2157880029 Adding the backup destination to the resut dictionary for lineinfile 2014-02-20 13:31:54 -05:00
muffl0n
b0f00cc097 already call expanduser in action_plugin 2014-02-19 21:41:57 +01:00
Michael DeHaan
30611eaac5 Merge pull request #6036 from mxxcon/patch-1
docs_pull_request: Add parameters highlighting
2014-02-18 13:58:44 -05:00
James Cammarata
9c9a940af6 Merge branch 'fix-5679' of https://github.com/jirutka/ansible into jirutka-fix-5679 2014-02-17 14:54:29 -06:00
mxxcon
4e4be3edc0 docs_pull_request: Add parameters highlighting
Added highlighting to parameter references in docs so that they standout a bit better.
2014-02-15 23:26:21 -05:00
Michael DeHaan
56befa9468 Document ansible_managed changing the template. 2014-02-15 14:13:42 -05:00
Michael DeHaan
6f9ca7cfa5 Some minor docs corrections. 2014-02-15 14:05:42 -05:00
Richard C Isaacson
598b9c6b7c Cleanup per notes.
Some small changes to per notes from @mpdehann.
2014-02-12 10:01:10 -06:00
Richard C Isaacson
cb7c2b7524 Updates for the unarchive module and action_plugin.
There is a bit going on with the changes here. Most of the changes are cleanup of files so that they line up with the standard files.

PR #5136 was merged into the current devel and brought up to working order. A few bug fixes had to be done to get the code to test correctly. Thanks out to @pib!

Issue #5431 was not able to be confirmed as it behaved as expected with a sudo user.

Tests were added via a playbook with archive files to verify functionality.

All tests fire clean including custom playbooks across multiple linux and solaris systems.
2014-02-12 01:57:00 -06:00
Richard C Isaacson
e6c9705058 Merge remote-tracking branch 'pib/unarchive_remote' into pull_5136 2014-02-11 22:55:34 -06:00
Mike Grozak
f386e137fe Updated the force parameter description; added one example how to create the symlinks pointing to non-absolute paths 2014-02-07 14:29:20 +01:00
Mike Grozak
d3b544e842 Found a way how to have symlinks towards files without absolute paths in prefixes; fixed incorrect force setting on the hard links, which can not point to non-existing files 2014-02-07 14:13:41 +01:00
Mike Grozak
2b4688a0bd Started the development of the 'chdir' functionality for file module - creation symlinks without the base directory prefix 2014-02-06 17:20:32 +01:00
jctanner
a1d2b5f257 Merge pull request #5363 from bcoca/acl_improved
acl module: acl now supports 'default'
2014-02-05 18:40:59 -05:00
Brian Coca
54a79bfc75 fixed docstring and changed type to etype avoiding python builtin
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2014-02-05 18:36:29 -05:00
jctanner
f50f29f304 Merge pull request #5051 from deontologician/patch-1
Added -FF flag to rsync invocation in synchronize
2014-02-05 12:02:48 -05:00
jctanner
825a20780f Merge pull request #5127 from ovcharenko/patches
synchronize module: Added existing_only options to skip creating new files on receiver
2014-02-05 11:49:05 -05:00
jctanner
1f9de0c076 Merge pull request #5187 from 42wim/devel
Add support for --copy-links in synchronize
2014-02-05 11:26:08 -05:00
Michael DeHaan
a1afd6987c Update copy
Update copy documentation to reference synchronize module
2014-01-30 17:43:40 -05:00
Wim
06576fed25 Add support for --copy-links 2014-01-29 23:05:51 +01:00
Jan-Piet Mens
d0912b84ef documentation typos 2014-01-21 09:03:14 +01:00
Jakub Jirutka
012e3ae206 Fixes #5679: lineinfile ignores newline in line argument 2014-01-19 02:24:26 +01:00
Laurent Defert
f93b951bdd Mark stat module as supporting check_mode 2014-01-18 22:32:58 +01:00
jctanner
9ed379b7f8 Merge pull request #5282 from rhaido/hard_link_fix
file module: Added to the file module the functionality to force conversion hard link...
2014-01-14 07:15:46 -08:00
jctanner
aa1f9f24c3 Merge pull request #5264 from drewlll2ll/file-fix
file module: Fixed missing prev_state == 'directory' in file
2014-01-06 14:07:07 -08:00
Aleksey Ovcharenko
c57445c5f3 Downgraded module version_added. 2014-01-03 17:22:10 +02:00
Michael DeHaan
2f811c40d7 Basic docsite formatting fixups 2014-01-02 17:36:52 -05:00
Michael DeHaan
d4cd1fba8b add a note about raw/endraw 2013-12-27 15:01:27 -05:00
Michael DeHaan
1260225fc9 Merge pull request #5427 from bcoca/template_docs2
added more usefull example for jinja2 overrides
2013-12-26 10:30:44 -08:00
Brian Coca
488ef22f5e added more usefull example for jinja2 overrides (this one is actually
used)

Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2013-12-26 12:01:41 -05:00
Maykel Moya
0711447d3a Missing "is" in file module description 2013-12-26 12:34:46 +01:00
Brian Coca
b45fb649ee now handles default and allaows for either shorthand entry or specific
fields per entry section

the default option works both when added to entry or as stand alone.
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2013-12-19 20:36:49 -05:00
Peter Salvatore
12cb1afdc8 fix typo in synchronize module 2013-12-18 13:06:35 -08:00
Aleksey Ovcharenko
dcf0fdb9e2 Added version_added 2013-12-16 19:20:02 +02:00
Jens Rantil
1b6019f6e0 module(file): Fail instead of exit on exception 2013-12-13 21:34:19 +01:00
Jens Rantil
f4aa808b8d module(file): state what went wrong on exception 2013-12-13 21:33:19 +01:00
Mike Grozak
ed7c9a1fbb Added to the file module the functionality to force conversion hard link and symlink when the force attribute is set to 'yes' 2013-12-13 17:10:50 +01:00
drewlll2ll
54a28eb45b Added prev_state for directory 2013-12-12 09:44:29 -05:00
Jens Rantil
705316e303 file module: Don't catch SystemExit
This fixes issue #5159.
2013-12-04 13:13:49 +01:00
James Tanner
d227614529 Fixes #5109 synchronize module ssh port
Added a parameter for dest_port and also check ansible_ssh_port inventory variable.
2013-12-03 14:48:20 -05:00
Paul Bonser
5626efba7e Optionally unarchive a file already on the remote machine 2013-12-02 19:51:10 -06:00
James Tanner
ad837709bd Addresses #5023 Fix import comments 2013-12-02 15:13:49 -05:00
James Tanner
6000d636b3 Fixes #5023 Convert all modules to use new snippet import pattern 2013-12-02 15:11:23 -05:00
Aleksey Ovcharenko
bcd7af3991 Fixed a typo. 2013-12-02 16:35:44 +02:00
Michael DeHaan
36effd237c There's a cleaner way to do this, commit to module formatter pending.
Revert "No longer need to reference 'version_added' in docs for these, as this was quite a while ago."

This reverts commit ff0a41d446.
2013-11-27 21:23:03 -05:00
Michael DeHaan
ff0a41d446 No longer need to reference 'version_added' in docs for these, as this was quite a while ago. 2013-11-27 21:19:32 -05:00
Josh Kuhn
b1a6bc6e7f Added note about .rsync-filter files, with example 2013-11-25 15:12:58 -05:00
Josh Kuhn
517e4af2cf Added -FF flag to rsync invocation in synchronize
The `-FF` option causes rsync to look for files in the source directory named `.rsync-filter` and uses them to filter directories underneath them. If no `.rsync-filter` files are found, the behavior is identical to the command run without the -FF option. This flag does not sync the .rsync-filter files themselves.

This change should be backwards compatible and not produce surprising behavior for users, since they are unlikely to create `.rsync-filter` files unintentionally.
2013-11-25 12:27:58 -05:00
greenbrian
d80eb4a7fd Update unarchive
Modified argument order provided to unzip command as the -o was being interpreted as a file.
2013-11-25 10:44:39 -06:00
Aleksey Ovcharenko
2814828bc9 Added existing_only options to skip creating new files on receiver 2013-11-22 23:59:57 +02:00
Michael Scherer
9731f388c1 Do not use construct not compatible with python 2.4, fix #5006 2013-11-22 16:06:41 +01:00
Joshua Lund
02adc1fdcf Fixed a typo in the 'unarchive' module documentation 2013-11-21 16:22:20 -07:00
James Tanner
e81c976636 Fix pep8 errors in unarchive module 2013-11-19 16:35:06 -05:00
Michael DeHaan
f7c3975f21 Add version_added to all modules missing version_added information, the docs formatter will now
raise errors when omitted, updated changelog with new modules.
2013-11-18 18:55:49 -05:00
Evan Kaufman
e88ab431f0 Added replace module
Heavily based on existing lineinfile module, but where it literally tests a regexp against
*each individual line* of a file, this replace module is more analogous to common uses of
a `sed` or `perl` match + replacement of all instances of a pattern anywhere in the file.

Was debating adding `all` boolean or `count` numeric options to control how many
replacements to make in the destfile (vs currently replacing all instances)

Noted use of MULTILINE mode in docs, per suggestion from @jarv
2013-11-16 13:23:50 -06:00
James Tanner
af0cdd464c Clean up erroneous lineinfile.orig file 2013-11-15 12:17:17 -05:00
James Tanner
575d7eb8be Set required = True for src in unarchive module. 2013-11-14 10:59:24 -05:00
jctanner
be67a6f815 Merge pull request #4625 from pileofrogs/devel
unarchive module & action plugin
2013-11-14 07:57:57 -08:00
James Tanner
d96f469520 Merge pull request #4525 from ko-zu/ansible
Add a regexp parameter to assemble module to match or exclude filenames.
2013-11-14 10:30:12 -05:00
James Tanner
33242cacf3 Merge pull request #4375 from pfalcon/ansible
copy: Implement recursive copying if src is a directory.
2013-11-13 15:52:40 -05:00
James Tanner
5a3032a950 Fixes #4884 Do not prematurely exit from file module if src not defined 2013-11-12 18:17:20 -05:00
James Tanner
e4c2517e89 Add default for remote_src to assemble dostrings to avoid confusion 2013-11-12 13:21:49 -05:00
jctanner
2cf335969f Merge pull request #4738 from bcoca/assemble_action_plugin
assemble can now use src from master/origin
2013-11-12 08:23:39 -08:00
James Tanner
36ca726258 Fixes #4522 Document that comments in ini files will be discarded with the ini module 2013-11-08 09:57:22 -05:00
James Tanner
934ec1c0b6 Addresses #4801 Update file module docs to indicate behavior for relative src paths 2013-11-07 17:02:34 -05:00
jctanner
bd9fb39634 Merge pull request #4801 from sspans/devel
Add support for relative symlinks
2013-11-07 13:57:18 -08:00
James Tanner
aaa44f9151 Add doc example for lineinfile without a regexp parameter 2013-11-06 18:51:31 -05:00
James Tanner
9ac91916c3 Merge pull request #4660 from kolbyjack/lineinfile_no_regexp 2013-11-06 18:43:10 -05:00
James Tanner
6694b28d51 Fix merge conflict 2013-11-06 18:38:01 -05:00
James Tanner
5c34ed0827 Addresses #4676 Add module notes about the behavior of sudo and the destination paths within the synchronize module. 2013-11-04 12:19:31 -05:00
James Tanner
9fb4be0e73 Update synchronize docstrings for rsync_timeout parameter 2013-11-04 10:57:08 -05:00
James Tanner
0adf095677 Add a timeout to the synchronize module to prevent infinite hangs while waiting on passwords for misconfigured users 2013-11-04 10:52:44 -05:00
sspans
904a129ac1 skip absolute path creation for old_src, not needed with the new relative links 2013-11-04 10:44:06 +01:00
sspans
684921c1c1 only require absolute paths for hardlinks 2013-11-04 10:37:36 +01:00
James Tanner
f4b59fe285 Fixes #4516 file module: check prev_state earlier and use that if state is not specified 2013-11-01 09:31:32 -04:00
Brian Coca
ac40d15120 now assemble module is also action plugin and can use local source for
files
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2013-10-30 21:40:42 -04:00
Daniel Koch
dcdce838cf Clean up temp file left behind by assemble module 2013-10-30 20:24:03 -04:00
Michael DeHaan
99d6726114 Revert "fix conversion from file to hardlink when force=yes"
This reverts commit 4d4518ed52.
2013-10-27 11:51:43 -04:00
Michael DeHaan
3778b39115 Merge pull request #4380 from joshkehn/lineinfile_validate
Added validate option to lineinfile
2013-10-27 08:46:47 -07:00
Michael DeHaan
41ed5635dc Merge pull request #4632 from simonsd/devel
refusing to convert between file and hard when force=yes
2013-10-27 08:32:34 -07:00
jctanner
43f48a2e02 Merge pull request #4167 from tima/rsync3
synchronization module take 3
2013-10-25 14:43:08 -07:00
Jon Kolb
ba7d05222a Fixes #3847: lineinfile without regex 2013-10-23 21:04:18 -04:00
Dave Simons
4d4518ed52 fix conversion from file to hardlink when force=yes
Signed-off-by: Dave Simons <dave@inuits.eu>
2013-10-22 10:46:45 +02:00
Dylan Martin
84152fec3f unarchive - mvd docs to top of file 2013-10-21 16:10:55 -05:00
Dylan Martin
da9e2e765c better docs 2013-10-21 15:30:22 -05:00
Dylan Martin
2c28e1daea unarchive module & action_plugin added 2013-10-21 15:22:42 -05:00
jctanner
c737f222d5 Merge pull request #4480 from joemaller/absent_path_fix
ignore src when file module state=absent
2013-10-16 17:29:21 -07:00
jctanner
51a1a54bfb Merge pull request #4428 from robparrott/devel
Properly handle DEFAULT section with ConfigParser in ini_file modules
2013-10-16 17:18:17 -07:00
Paul Sokolovsky
2e668f14f7 copy: Handle "no copy/propagate attrs only" for recursive mode well.
For this, add internal "original_basename" param to file module,
similar to copy module. (Param name is a bit misnormer now, should
be treated as "original basepath").
2013-10-15 18:40:40 +03:00
Paul Sokolovsky
b3b4f9885f copy: Implement recursive copying if src is a directory.
If src param to copy is a directory, all files under it are collected
and pushed one by one to target. Source dir path handled in a way
simalar to rsync: if it ends with slash, only inside contents of
directory are copied to destination, otherwise the dir itself is
copied (with all contents of course). Original idea and implementation
by https://github.com/ansible/ansible/pull/1809 . Rewritten to address
review comments and simplify/correct logic.
2013-10-15 18:40:39 +03:00
jctanner
79071aee79 Merge pull request #4470 from jyap808/patch-1
Assume state='directory' if recurse is set and previous state was 'direc...
2013-10-14 13:49:35 -07:00
Michael DeHaan
de3731a14e Some minor doc updates for the acl module. 2013-10-14 11:36:48 -04:00
Michael DeHaan
658b7d1f47 Merge pull request #3610 from bcoca/acl_module
initial draft acl module
2013-10-14 08:32:10 -07:00
Brian Coca
311892a567 added long names to support older version as per feedback
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2013-10-14 10:48:30 -04:00
Joe Maller
8597bf6bba ignore src when file module state=absent 2013-10-13 01:22:53 -04:00
Julian Yap
76cec9d360 Assume state='directory' if recurse is set and previous state was 'directory'
Resolves this issue: https://github.com/ansible/ansible/issues/2067
2013-10-11 15:56:14 -10:00
Andrew Pope
6342046da6 Fixed broken force=yes on files for directories 2013-10-11 18:02:18 -04:00
Robert Parrott
54aeaaf486 small change ... in order to get changed signal correct, move DEFAULT section test upward. 2013-10-10 09:10:00 -04:00
Robert Parrott
762135915c fix handling of [DEFAULT] section by ConfigParser. it is there by DEFAULT. 2013-10-10 09:01:00 -04:00
Jim Kleckner
f231c86ff3 Add detail to copy module validate argument
This clarifies the validate command argument and makes it clear that if
it is present, it must include the '%s' argument for the path to the
temporary file to validate.
2013-10-09 18:21:43 -07:00
Michael DeHaan
ce0efc8e25 Fix typo, relative to absolute, fixes #4126 2013-10-08 08:40:22 -04:00
Joshua Kehn
cc0c908cee Added validate option to lineinfile
The validate option is constructed similarly to the template command's
validate option. TestRunner.py has been updated to include two new
tests, one for passing and one for failing validation.
2013-10-06 13:51:27 -04:00
Michael DeHaan
b9c337e436 "touch" option on file is new in 1.4 2013-10-04 08:45:05 -04:00
Joshua Lund
db8dd1dcc2 Fixed a typo in the fetch module documentation 2013-10-02 16:02:18 -06:00
James Cammarata
93336ce00d Merge branch 'devel' of https://github.com/volker48/ansible into volker48-devel 2013-09-23 21:24:43 -05:00
James Cammarata
d647c5dc00 Added a delimiter example and a version_added string for assemble 2013-09-23 15:32:36 -05:00
James Cammarata
a97872906f Fixed a bug in the delimiter change for the assemble module 2013-09-23 15:29:13 -05:00
James Cammarata
bcf9a75d94 Merge branch 'devel' of https://github.com/pcgentry/ansible into pcgentry-devel 2013-09-23 15:18:15 -05:00
James Cammarata
4a467f71cd Change touched -> touch for new file state, and cleaning up docs 2013-09-22 09:16:07 -05:00
René Moser
3a0fd84115 file: added file attributes in state=touched 2013-09-22 12:54:24 +02:00
René Moser
573ea5bdce file: skip in check_mode if state=touched 2013-09-22 12:53:49 +02:00
René Moser
06fae59e8b file: implemented state=touched. Closes GH-4097 2013-09-21 15:07:50 +02:00
Phillip
4b5b6e91fe adding an optional delimiter argument to the assemble module 2013-09-20 15:50:09 -05:00
Timothy Appnel
99f616ecff Added docs for archive options in sychronize module. Added missing default value for dirs option. 2013-09-19 03:17:45 -04:00
Timothy Appnel
c2e4129812 Modified changed marker in sychronize module 2013-09-19 03:17:45 -04:00