Description of problem: Deploying configuration file which path comprises symlink fails. Version-Release number of selected component (if applicable): Spacewalk 1.7 How reproducible: 100% Steps to Reproduce: 1. Register System to Satellite 2. Install rhncfg* on the System 3. rhn-actions-control --enable-all 4. Create configuratoin channel with the following files in it. directory - /opt/test_folder symlink - /root/test_dir/link_to_test_folder -> /opt/test_dir file - /root/test_dir/link_to_test_dir/test_file 5. Add the configuration channel to the System 6. Schedule deploy of all files from the configuration channel to the System 7. rhn_check -vv ... D: handle_action actionid = 17, version = 2 D: do_call configfiles.deploy({'files': [{'config_channel': 'test_3', 'username': 'root', 'encoding': '', 'checksum': '', 'filetype': 'directory', 'delim_start': '', 'modified': '', 'symlink': '', 'groupname': 'root', 'delim_end': '', 'selinux_ctx': '', 'filemode': 644, 'file_contents': '', 'checksum_type': '', 'path': '/opt/test_folder', 'revision': 1}, {'config_channel': 'test_3', 'username': '', 'encoding': '', 'checksum': '', 'filetype': 'symlink', 'delim_start': '', 'modified': '', 'symlink': '/opt/test_folder', 'groupname': '', 'delim_end': '', 'selinux_ctx': '', 'filemode': '', 'file_contents': '', 'checksum_type': '', 'path': '/root/test_dir/link_to_test_folder', 'revision': 1}, {'config_channel': 'test_3', 'username': 'root', 'encoding': '', 'checksum': 'd41d8cd98f00b204e9800998ecf8427e', 'filetype': 'file', 'delim_start': '{|', 'modified': '', 'symlink': '', 'groupname': 'root', 'delim_end': '|}', 'selinux_ctx': '', 'filemode': 644, 'file_contents': '', 'checksum_type': 'md5', 'path': '/root/test_dir/link_to_test_folder/test_file', 'revision': 1}]},){'cache_only': None} D: Sending back response(45, 'Failed deployment, /root/test_dir/link_to_test_folder already exists as a directory', {}) D: do_call packages.checkNeedUpdate('rhnsd=1',){}
Intention: link home directory of user to a large disk which is mounted on /opt, deploy user specific files (.bash_profile, etc) to /home/$USER since effective mount point of the large disk is subject to change. On my System: - Config Channel "x-env-test-debug" with contents dir: /opt/spw-test link: /home/spw-test (-> /opt/spw-test) file: /home/spw-test/.bash_profile [root@pilot-client5 opt]# rhn_check -vvv [...] D: do_call configfiles.deploy({'files': [{'config_channel': 'x-env-test-debug', 'username': 'spw-test', 'encoding': '', 'checksum': '', 'filetype': 'directory', 'delim_start': '', 'modified': '', 'symlink': '', 'groupname': 'spw-test', 'delim_end': '', 'selinux_ctx': '', 'filemode': 644, 'file_contents': '', 'checksum_type': '', 'path': '/opt/spw-test', 'revision': 1}, {'config_channel': 'x-env-test-debug', 'username': '', 'encoding': '', 'checksum': '', 'filetype': 'symlink', 'delim_start': '', 'modified': '', 'symlink': '/opt/spw-test', 'groupname': '', 'delim_end': '', 'selinux_ctx': '', 'filemode': '', 'file_contents': '', 'checksum_type': '', 'path': '/home/spw-test', 'revision': 1}, {'config_channel': 'x-env-test-debug', 'username': 'spw-test', 'encoding': 'base64', 'checksum': 'ca78bb4bb4901e6ba30170b348056f8b', 'filetype': 'file', 'delim_start': '{|', 'modified': '', 'symlink': '', 'groupname': 'spw-test', 'delim_end': '|}', 'selinux_ctx': '', 'filemode': 644, 'file_contents': 'IyBTcGFjZXdhbGsgbWFuYWdlZAojCiMgLmJhc2hfcHJvZmlsZQoKIyBHZXQgdGhlIGFsaWFzZXMg\nYW5kIGZ1bmN0aW9ucwppZiBbIC1mIH4vLmJhc2hyYyBdOyB0aGVuCgkuIH4vLmJhc2hyYwpmaQoK\nIyBVc2VyIHNwZWNpZmljIGVudmlyb25tZW50IGFuZCBzdGFydHVwIHByb2dyYW1zCgpQQVRIPSRQ\nQVRIOiRIT01FL2JpbgoKZXhwb3J0IFBBVEgKdW5zZXQgVVNFUk5BTUUK\n', 'checksum_type': 'md5', 'path': '/home/spw-test/.bash_profile', 'revision': 1}]},){'cache_only': None} D: Sending back response((6,), 'Fatal error in Python code occured', {}) Spacewalk Client: Centos 5.8 (Patches up to 20120712) rhn-client-tools: 1.7.14-1.el5 rhncfg*: 5.10.27-1.el5 Spacewalk Server: Centos 5.8 (Patches up to 20120605) spacewalk-oracle: 1.7.3-1.el5 (Patches up to 20120709) DB Backend: Oracle 11gR2 "Enterprise Edition" on dedicated machine
Deploy files serialized: 1) dir: /opt/spw-test D: do_call configfiles.deploy({'files': [{'config_channel': 'x-env-test-debug', 'username': 'spw-test', 'encoding': '', 'checksum': '', 'filetype': 'directory', 'delim_start': '', 'modified': '', 'symlink': '', 'groupname': 'spw-test', 'delim_end': '', 'selinux_ctx': '', 'filemode': 644, 'file_contents': '', 'checksum_type': '', 'path': '/opt/spw-test', 'revision': 1}]},){'cache_only': None} D: Sending back response(0, 'Files successfully deployed', {}) D: do_call packages.checkNeedUpdate('rhnsd=1',){} 2) link: /home/spw-test -> /opt/spw-test D: do_call configfiles.deploy({'files': [{'config_channel': 'x-env-test-debug', 'username': '', 'encoding': '', 'checksum': '', 'filetype': 'symlink', 'delim_start': '', 'modified': '', 'symlink': '/opt/spw-test', 'groupname': '', 'delim_end': '', 'selinux_ctx': '', 'filemode': '', 'file_contents': '', 'checksum_type': '', 'path': '/home/spw-test', 'revision': 1}]},){'cache_only': None} D: Sending back response(0, 'Files successfully deployed', {}) D: do_call packages.checkNeedUpdate('rhnsd=1',){} 3) file: /home/spw-test/.bash_profile D: do_call configfiles.deploy({'files': [{'config_channel': 'x-env-test-debug', 'username': 'spw-test', 'encoding': 'base64', 'checksum': 'ca78bb4bb4901e6ba30170b348056f8b', 'filetype': 'file', 'delim_start': '{|', 'modified': '', 'symlink': '', 'groupname': 'spw-test', 'delim_end': '|}', 'selinux_ctx': '', 'filemode': 644, 'file_contents': 'IyBTcGFjZXdhbGsgbWFuYWdlZAojCiMgLmJhc2hfcHJvZmlsZQoKIyBHZXQgdGhlIGFsaWFzZXMg\nYW5kIGZ1bmN0aW9ucwppZiBbIC1mIH4vLmJhc2hyYyBdOyB0aGVuCgkuIH4vLmJhc2hyYwpmaQoK\nIyBVc2VyIHNwZWNpZmljIGVudmlyb25tZW50IGFuZCBzdGFydHVwIHByb2dyYW1zCgpQQVRIPSRQ\nQVRIOiRIT01FL2JpbgoKZXhwb3J0IFBBVEgKdW5zZXQgVVNFUk5BTUUK\n', 'checksum_type': 'md5', 'path': '/home/spw-test/.bash_profile', 'revision': 1}]},){'cache_only': None} D: Sending back response(0, 'Files successfully deployed', {}) D: do_call packages.checkNeedUpdate('rhnsd=1',){} works like a charm.
when dir/symlink/file are up-to-date, "deploy all config files" works: D: do_call configfiles.deploy({'files': [{'config_channel': 'x-env-test-debug', 'username': 'spw-test', 'encoding': '', 'checksum': '', 'filetype': 'directory', 'delim_start': '', 'modified': '', 'symlink': '', 'groupname': 'spw-test', 'delim_end': '', 'selinux_ctx': '', 'filemode': 644, 'file_contents': '', 'checksum_type': '', 'path': '/opt/spw-test', 'revision': 1}, {'config_channel': 'x-env-test-debug', 'username': '', 'encoding': '', 'checksum': '', 'filetype': 'symlink', 'delim_start': '', 'modified': '', 'symlink': '/opt/spw-test', 'groupname': '', 'delim_end': '', 'selinux_ctx': '', 'filemode': '', 'file_contents': '', 'checksum_type': '', 'path': '/home/spw-test', 'revision': 1}, {'config_channel': 'x-env-test-debug', 'username': 'spw-test', 'encoding': 'base64', 'checksum': 'ca78bb4bb4901e6ba30170b348056f8b', 'filetype': 'file', 'delim_start': '{|', 'modified': '', 'symlink': '', 'groupname': 'spw-test', 'delim_end': '|}', 'selinux_ctx': '', 'filemode': 644, 'file_contents': 'IyBTcGFjZXdhbGsgbWFuYWdlZAojCiMgLmJhc2hfcHJvZmlsZQoKIyBHZXQgdGhlIGFsaWFzZXMg\nYW5kIGZ1bmN0aW9ucwppZiBbIC1mIH4vLmJhc2hyYyBdOyB0aGVuCgkuIH4vLmJhc2hyYwpmaQoK\nIyBVc2VyIHNwZWNpZmljIGVudmlyb25tZW50IGFuZCBzdGFydHVwIHByb2dyYW1zCgpQQVRIPSRQ\nQVRIOiRIT01FL2JpbgoKZXhwb3J0IFBBVEgKdW5zZXQgVVNFUk5BTUUK\n', 'checksum_type': 'md5', 'path': '/home/spw-test/.bash_profile', 'revision': 1}]},){'cache_only': None} D: Sending back response(0, 'Files successfully deployed', {}) D: do_call packages.checkNeedUpdate('rhnsd=1',){} also adding /home/spw-test/.bashrc to channel works: D: do_call configfiles.deploy({'files': [{'config_channel': 'x-env-test-debug', 'username': 'spw-test', 'encoding': '', 'checksum': '', 'filetype': 'directory', 'delim_start': '', 'modified': '', 'symlink': '', 'groupname': 'spw-test', 'delim_end': '', 'selinux_ctx': '', 'filemode': 644, 'file_contents': '', 'checksum_type': '', 'path': '/opt/spw-test', 'revision': 1}, {'config_channel': 'x-env-test-debug', 'username': '', 'encoding': '', 'checksum': '', 'filetype': 'symlink', 'delim_start': '', 'modified': '', 'symlink': '/opt/spw-test', 'groupname': '', 'delim_end': '', 'selinux_ctx': '', 'filemode': '', 'file_contents': '', 'checksum_type': '', 'path': '/home/spw-test', 'revision': 1}, {'config_channel': 'x-env-test-debug', 'username': 'spw-test', 'encoding': 'base64', 'checksum': 'ca78bb4bb4901e6ba30170b348056f8b', 'filetype': 'file', 'delim_start': '{|', 'modified': '', 'symlink': '', 'groupname': 'spw-test', 'delim_end': '|}', 'selinux_ctx': '', 'filemode': 644, 'file_contents': 'IyBTcGFjZXdhbGsgbWFuYWdlZAojCiMgLmJhc2hfcHJvZmlsZQoKIyBHZXQgdGhlIGFsaWFzZXMg\nYW5kIGZ1bmN0aW9ucwppZiBbIC1mIH4vLmJhc2hyYyBdOyB0aGVuCgkuIH4vLmJhc2hyYwpmaQoK\nIyBVc2VyIHNwZWNpZmljIGVudmlyb25tZW50IGFuZCBzdGFydHVwIHByb2dyYW1zCgpQQVRIPSRQ\nQVRIOiRIT01FL2JpbgoKZXhwb3J0IFBBVEgKdW5zZXQgVVNFUk5BTUUK\n', 'checksum_type': 'md5', 'path': '/home/spw-test/.bash_profile', 'revision': 1}, {'config_channel': 'x-env-test-debug', 'username': 'spw-test', 'encoding': 'base64', 'checksum': '277ed0fce513f856f6bed95961dd3463', 'filetype': 'file', 'delim_start': '{|', 'modified': '', 'symlink': '', 'groupname': 'spw-test', 'delim_end': '|}', 'selinux_ctx': '', 'filemode': 644, 'file_contents': 'IyBTcGFjZXdhbGsgbWFuYWdlZAojCiMgLmJhc2hyYwoKIyBVc2VyIHNwZWNpZmljIGFsaWFzZXMg\nYW5kIGZ1bmN0aW9ucwoKYWxpYXMgcm09J3JtIC1pJwphbGlhcyBjcD0nY3AgLWknCmFsaWFzIG12\nPSdtdiAtaScKCiMgU291cmNlIGdsb2JhbCBkZWZpbml0aW9ucwppZiBbIC1mIC9ldGMvYmFzaHJj\nIF07IHRoZW4KCS4gL2V0Yy9iYXNocmMKZmkK\n', 'checksum_type': 'md5', 'path': '/home/spw-test/.bashrc', 'revision': 1}]},){'cache_only': None} D: Sending back response(0, 'Files successfully deployed', {}) D: do_call packages.checkNeedUpdate('rhnsd=1',){} scrup system, error reoccurs: [root@pilot-client5 ~]# rm -rf /opt/spw-test /home/spw-test "deploy all config files" D: do_call configfiles.deploy({'files': [{'config_channel': 'x-env-test-debug', 'username': 'spw-test', 'encoding': '', 'checksum': '', 'filetype': 'directory', 'delim_start': '', 'modified': '', 'symlink': '', 'groupname': 'spw-test', 'delim_end': '', 'selinux_ctx': '', 'filemode': 644, 'file_contents': '', 'checksum_type': '', 'path': '/opt/spw-test', 'revision': 1}, {'config_channel': 'x-env-test-debug', 'username': '', 'encoding': '', 'checksum': '', 'filetype': 'symlink', 'delim_start': '', 'modified': '', 'symlink': '/opt/spw-test', 'groupname': '', 'delim_end': '', 'selinux_ctx': '', 'filemode': '', 'file_contents': '', 'checksum_type': '', 'path': '/home/spw-test', 'revision': 1}, {'config_channel': 'x-env-test-debug', 'username': 'spw-test', 'encoding': 'base64', 'checksum': 'ca78bb4bb4901e6ba30170b348056f8b', 'filetype': 'file', 'delim_start': '{|', 'modified': '', 'symlink': '', 'groupname': 'spw-test', 'delim_end': '|}', 'selinux_ctx': '', 'filemode': 644, 'file_contents': 'IyBTcGFjZXdhbGsgbWFuYWdlZAojCiMgLmJhc2hfcHJvZmlsZQoKIyBHZXQgdGhlIGFsaWFzZXMg\nYW5kIGZ1bmN0aW9ucwppZiBbIC1mIH4vLmJhc2hyYyBdOyB0aGVuCgkuIH4vLmJhc2hyYwpmaQoK\nIyBVc2VyIHNwZWNpZmljIGVudmlyb25tZW50IGFuZCBzdGFydHVwIHByb2dyYW1zCgpQQVRIPSRQ\nQVRIOiRIT01FL2JpbgoKZXhwb3J0IFBBVEgKdW5zZXQgVVNFUk5BTUUK\n', 'checksum_type': 'md5', 'path': '/home/spw-test/.bash_profile', 'revision': 1}, {'config_channel': 'x-env-test-debug', 'username': 'spw-test', 'encoding': 'base64', 'checksum': '277ed0fce513f856f6bed95961dd3463', 'filetype': 'file', 'delim_start': '{|', 'modified': '', 'symlink': '', 'groupname': 'spw-test', 'delim_end': '|}', 'selinux_ctx': '', 'filemode': 644, 'file_contents': 'IyBTcGFjZXdhbGsgbWFuYWdlZAojCiMgLmJhc2hyYwoKIyBVc2VyIHNwZWNpZmljIGFsaWFzZXMg\nYW5kIGZ1bmN0aW9ucwoKYWxpYXMgcm09J3JtIC1pJwphbGlhcyBjcD0nY3AgLWknCmFsaWFzIG12\nPSdtdiAtaScKCiMgU291cmNlIGdsb2JhbCBkZWZpbml0aW9ucwppZiBbIC1mIC9ldGMvYmFzaHJj\nIF07IHRoZW4KCS4gL2V0Yy9iYXNocmMKZmkK\n', 'checksum_type': 'md5', 'path': '/home/spw-test/.bashrc', 'revision': 1}]},){'cache_only': None} D: Sending back response((6,), 'Fatal error in Python code occured', {})
fixed in spacewalk master 22aa313729b0840566ee290a37996ab7840d3604
Moving ON_QA. Packages that address this bugzilla should now be available in yum repos at http://yum.spacewalkproject.org/nightly/
Spacewalk 1.8 has been released: https://fedorahosted.org/spacewalk/wiki/ReleaseNotes18