Bug #7528
closedExtend tests for non-existant files with file_remove
Description
Hi,
we've seen an issue with a missing report from "file_remove", depending on rudder agent version.
If the file in question does not exist, it'll NOT run success_if_nothing.
For ref:
bundle agent file_remove(target) { vars: "class_prefix" string => canonify("file_remove_${target}"); files: "${target}" delete => tidy, classes => classes_generic("${class_prefix}"); methods: "success_if_nothing" usebundle => _classes_success("${class_prefix}"), ifvarclass => "!${class_prefix}_reached"; "report" usebundle => _logger("Remove file ${target}", "${class_prefix}"); }
Our directive is called leap_second_something
CFEngine Core 3.6.3
node:~ # cf-agent -KI | grep leap node:~ #
On 3.6.0 you will see output from this and a report will be sent.
In debug (cf-agent --debug 2>&1 | grep leap) both report the same stuff.
Please let me know if you can't reproduce it.
Updated by Jonathan CLARKE almost 10 years ago
- Project changed from Rudder to 41
- Description updated (diff)
- Target version set to 0.x
Adding "pre" tags for readability, and moving to the ncf project.
Updated by Jonathan CLARKE almost 10 years ago
- Status changed from New to In progress
- Assignee set to Jonathan CLARKE
Updated by Jonathan CLARKE almost 10 years ago
- Status changed from In progress to Discussion
- Assignee changed from Jonathan CLARKE to Florian Heigl
I can't reproduce this. I'm using CFEngine 3.6.3 as you suggested:
$ cf-agent -V CFEngine Core 3.6.3
I'm testing file_remove on a non-existant filename - I think this is right?
However, I'm getting the right reports.
I've written a test to check for this, that you can get in this PR: https://github.com/Normation/ncf/pull/278
Would you run it for me? Steps should be quite simple:- git clone https://github.com/Normation/ncf.git
- cd ncf
- git checkout v0.x
- git remote add JCL https://github.com/jooooooon/ncf.git
- git pull JCL bug_7528/missing_report_from_ncf_depending_on_cf_agent_version_yay
- cd tests/acceptance
- ./testall 30_generic_methods/file_remove.cf
- cat test.log
Please let me know if this test passes or fails for you on one a machine where you're seeing this issue.
Updated by Jonathan CLARKE almost 10 years ago
Florian Heigl wrote:
If the file in question does not exist, it'll NOT run success_if_nothing.
By the way, this is by design:
......................................................... Promise's handle: '' Promise made by: '/tmp/nonexistantfilenamefromncftests' ......................................................... ... File '/tmp/nonexistantfilenamefromncftests' does not exist as promised Defining promise result class 'file_remove__tmp_nonexistantfilenamefromncftests_kept' Defining promise result class 'file_remove__tmp_nonexistantfilenamefromncftests_ok' Defining promise result class 'file_remove__tmp_nonexistantfilenamefromncftests_not_repaired' Defining promise result class 'file_remove__tmp_nonexistantfilenamefromncftests_reached'
As you can see, the required result classes are already defined by CFEngine, so we don't need to explicitly create them.
Updated by Florian Heigl almost 10 years ago
I need to look at this in a isolated env.
Something was off, otherwise we'd not have gone digging into this - we started from a missing report.
Ah, just saw you made a test for it - wow. We'll start from that.
Updated by Jonathan CLARKE almost 10 years ago
Hey Florian - just a friendly ping to see if you were able to run the test and/or reproduce this issue yet?
Updated by Florian Heigl almost 10 years ago
hi,
colleague ran the test case.
I'll ask him to also update the ticket.
Updated by Ferenc Ulrich almost 10 years ago
Hi Jonathan,
I ran the test and got the following result:
@server:~/ncf_test/tests/acceptance # ./testall 30_generic_methods/file_remove.cf
=== Test environment: ===
AGENT=
CF_PROMISES=
CF_SERVERD=
CF_KEY=
=========================
======================================================================
Testsuite started at 2015-12-03 16:47:52
----------------------------------------------------------------------
Total tests: 1
./30_generic_methods/file_remove.cf Pass
======================================================================
Testsuite finished at 2015-12-03 16:47:53 (1 seconds)
Passed tests: 1
Failed tests: 0
Failed to crash tests: 0
Skipped tests: 0
server:~/ncf_test/tests/acceptance # cat test.log
======================================================================
Testsuite started at 2015-12-03 16:47:52
----------------------------------------------------------------------
Total tests: 1
----------------------------------------------------------------------
./30_generic_methods/file_remove.cf
----------------------------------------------------------------------
R: First test OK (removing existing file, /root/ncf_test/tests/acceptance/workdir/__30_generic_methods_file_remove_cf/tmp/remove_test)
R: Second test OK (removing a non existant file, root_ncf_test_tests_acceptance_workdir__30_generic_methods_file_remove_cf_tmp_nonexistantfilenamefromncftests)
R: /root/ncf_test/tests/acceptance/./30_generic_methods/file_remove.cf Pass
Return code is 0.
> Pass ====================================================================Testsuite finished at 2015-12-03 16:47:53 (1 seconds)
Passed tests: 1
Failed tests: 0
Failed to crash tests: 0
Skipped tests: 0
server:~/ncf_test/tests/acceptance #@
Updated by Jonathan CLARKE over 9 years ago
- Status changed from Discussion to Pending technical review
- Assignee changed from Florian Heigl to Benoît PECCATTE
- Pull Request set to https://github.com/Normation/ncf/pull/351
Updated by Jonathan CLARKE over 9 years ago
- Subject changed from Missing report from NCF depending on cf-agent version (yay) to Extend tests for non-existant files with file_remove
Thanks for the test results. This shows there is no bug, I guess it came from something else. Please reopen this ticket if it occurs again.
In the meantime, I'm going to add the test case I previously proposed as a regular test, so we can detect any similar problems in the future.
Updated by Jonathan CLARKE over 9 years ago
- Status changed from Pending technical review to Pending release
- % Done changed from 0 to 100
Applied in changeset a779c1156effb7063b303662cc89dae17f0cd5a8.
Updated by Vincent MEMBRÉ about 9 years ago
- Status changed from Pending release to Released
Updated by Alexis Mousset over 3 years ago
- Target version changed from 0.x to ncf-0.x
- Priority set to 0
Updated by Alexis Mousset over 3 years ago
- Project changed from 41 to Rudder
- Category set to Generic methods