Closed nodeg closed 1 year ago
$ grep --exclude-dir build --exclude-dir venv -rin "# FIXME"
grep: .git/objects/pack/pack-4f51e89d9176e1aea080daeb55c5df2255f6570e.pack: Übereinstimmungen in Binärdatei
autoinstall_snippets/post_install_network_config:169: ## FIXME: if both interfaces startwith eth this is wrong
bin/cobblerd:117: # FIXME: log this too
cobbler/actions/status.py:122: # FIXME: this should update the times here
cobbler/actions/check.py:95: # FIXME: This tools is cross-platform via Python. Thus all distros can have it.
cobbler/actions/check.py:192: # FIXME: Replace this with calls which check for the path of these tools.
cobbler/actions/check.py:284: # FIXME: this method could use some refactoring in the future.
cobbler/actions/check.py:403: # FIXME: move zpxe.rexx to loaders
cobbler/actions/sync.py:65: # FIXME: See https://github.com/cobbler/cobbler/issues/2453
cobbler/actions/reposync.py:305: # FIXME: wrapper for subprocess that logs to logger
cobbler/actions/reposync.py:438: # FIXME: don't hardcode
cobbler/actions/reposync.py:444: # FIXME: there's a chance this might break the RHN D/L case
cobbler/actions/reposync.py:559: # FIXME: there's a chance this might break the RHN D/L case
cobbler/actions/reposync.py:738: # FIXME: might this break anything? So far it doesn't
cobbler/actions/reposync.py:823: # FIXME: potentially might want a way to turn this on/off on a per-repo basis
cobbler/cobbler_collections/collection.py:500: # FIXME: No to_string() method in any of the items present!
cobbler/items/item.py:53: # FIXME: fnmatch is only used for string to string comparisons which should cover most major usage, if
cobbler/items/item.py:713: # FIXME: Get kid objects
cobbler/items/item.py:839: # FIXME: removed for 2.0 code, shouldn't cause any problems to not have an exception here?
cobbler/items/item.py:843: if value is not None: # FIXME: new?
cobbler/items/item.py:1011: # FIXME: Now get the object and check its existence
cobbler/items/distro.py:74: # FIXME: Change unique base attributes
cobbler/items/distro.py:541: # FIXME: This shouldn't happen but I've (jsabo) seen it...
cobbler/items/image.py:275: # FIXME: Add None Image type
cobbler/items/profile.py:193: # FIXME: This looks so wrong. It cries: Please open a bug for me!
cobbler/items/system.py:312: # FIXME: Pass virt_type of system
cobbler/items/system.py:898: # FIXME: Add an exists method so we don't need to play try-catch here.
cobbler/modules/authentication/pam.py:24:# FIXME: Move to the dedicated library python-pam
cobbler/modules/authorization/configfile.py:60: # FIXME: this must be modified to use the new ACL engine
cobbler/modules/authorization/ownership.py:150: # FIXME: /cobbler/web should not be subject to user check in any case
cobbler/modules/authorization/ownership.py:172: # FIXME: is everyone allowed to copy? I think so.
cobbler/modules/authorization/ownership.py:173: # FIXME: deal with the problem of deleted parents and promotion
cobbler/modules/installation/post_log.py:49: # FIXME: use the logger
cobbler/modules/installation/post_report.py:39: # FIXME: make everything use the logger
cobbler/modules/installation/post_report.py:103: # FIXME: on error, return non-zero
cobbler/modules/installation/pre_log.py:42: # FIXME: use the logger
cobbler/modules/managers/isc.py:63: # FIXME: ding should evolve into the new dhcp_tags dict
cobbler/modules/managers/isc.py:245: # FIXME: ding should evolve into the new dhcp_tags dict
cobbler/modules/managers/import_signatures.py:308: # FIXME: this automagic is not possible (yet) without mirroring
cobbler/modules/managers/import_signatures.py:590: # FIXME : this is called only once, should not be a walk
cobbler/modules/managers/import_signatures.py:729: # FIXME: This shouldn't happen but I've seen it ... debug ...
cobbler/modules/managers/import_signatures.py:971: # FIXME: Add the found/generated repos to the profiles that were created during the import process
cobbler/modules/serializers/mongodb.py:22: # FIXME: log message
cobbler/modules/serializers/mongodb.py:30: # FIXME: only run this if enabled.
cobbler/modules/scm_track.py:55: # FIXME: If we know the remote user of an XMLRPC call use them as the author
cobbler/modules/scm_track.py:79: # FIXME: If we know the remote user of an XMLRPC call use them as the user
cobbler/settings/__init__.py:426: # FIXME: Do not call validate_settings() because of chicken - egg problem
cobbler/utils/filesystem_helpers.py:29: # FIXME: Calling this with emtpy strings returns True?!
cobbler/utils/filesystem_helpers.py:61: # FIXME: The directory from the following line may not exist.
cobbler/utils/filesystem_helpers.py:125: # FIXME: this really should not be a keyword arg
cobbler/utils/__init__.py:567: # FIXME: if this is actually slower than some other way, overhaul it
cobbler/utils/__init__.py:622: # FIXME: should probably uniquify list after doing this
cobbler/utils/__init__.py:627: # FIXME: should the parent's field too? It will be overwritten if there are multiple sub-profiles in
cobbler/configgen.py:19:# FIXME: This is currently getting the blendered data. Make use of the object and only process the required data.
cobbler/configgen.py:20:# FIXME: Obsolete this class. All methods are wrappers or tailcalls except gen_config_data and this can be integrated
cobbler/configgen.py:36: # FIXME: This should work via the system name or system record and if that doesn't exist it should not fail.
cobbler/services.py:425: # FIXME: log an error here?
cobbler/templar.py:27: # FIXME: log a message here
cobbler/validate.py:34:# FIXME: Allow the <<inherit>> magic string to be parsed correctly.
cobbler/validate.py:245: # FIXME: The following line will fail if load_signatures() from utils/signatures.py was not called!
cobbler/validate.py:279: # FIXME: The following line will fail if load_signatures() from utils/signatures.py was not called!
cobbler/validate.py:311: # FIXME: First check this and then set the repos if the bypass check is used.
cobbler/validate.py:326: # FIXME: Data structure does not allow this (yet)
cobbler/validate.py:523: # FIXME: Allow ports behind the hostname and check if they are allowed
cobbler/validate.py:553: # FIXME: Disallow invalid port specifications in the URL
cobbler/validate.py:555: # FIXME: Disallow invalid URLs (e.g.: underscore in URL)
cobbler/module_loader.py:131: # FIXME: We can't enabled this check since it is to strict atm.
cobbler/module_loader.py:183: # FIXME: We can't enabled this check since it is to strict atm.
cobbler/cli.py:1721: # FIXME: supress fields users don't need to see?
cobbler/cli.py:1722: # FIXME: interfaces should be sorted
cobbler/cli.py:1723: # FIXME: print ctime, mtime nicely
cobbler/cli.py:1728: # FIXME: move examples one field over, use description here.
cobbler/cli.py:1739: # FIXME: inames possibly not sorted
cobbler/cli.py:1908: # FIXME: debug only
cobbler/cli.py:2045: # FIXME: allow specifying other endpoints, and user+pass
cobbler/cli.py:2353: # FIXME: pretty-printing and sorting here
cobbler/cli.py:2390: # FIXME: add tail/polling code here
cobbler/cli.py:2704: # FIXME: add tail/polling code here
cobbler/remote.py:291: # FIXME: defaults from settings here should come from views, fix in views.py
cobbler/remote.py:2155: # FIXME: This is not tested and I believe prone to errors. Needs explicit testing.
cobbler/remote.py:2249: # FIXME: this doesn't know about interfaces yet!
cobbler/remote.py:2252: # FIXME: needs to know about how to delete interfaces too!
cobbler/remote.py:2288: # FIXME: Don't call this tree if we are not doing any interface stuff.
cobbler/remote.py:2308: # FIXME: use the bypass flag or not?
cobbler/remote.py:3101: # FIXME: Get the base directory from Cobbler app-settings
cobbler/remote.py:3334: # FIXME: Use the enum directly
cobbler/remote.py:3363: # FIXME: expose generic finds for other methods
cobbler/remote.py:3834: # FIXME: performance
cobbler/remote.py:4076: # FIXME: see if this works without extra boilerplate
cobbler/api.py:60:# FIXME: add --quiet depending on if not --verbose?
cobbler/api.py:93: # FIXME: this should be switchable through some simple system
cobbler/api.py:111: # FIXME: consolidate into 1 server instance
cobbler/api.py:139: # FIXME: pass more loggers around, and also see that those using things via tasks construct their own
cobbler/api.py:218: # FIXME: This detection is flawed. There is more than just Rhel with selinux and the original implementation was
cobbler/api.py:234: # FIXME: This fails in case the file required is not available
cobbler/api.py:908: # FIXME: add a new_item method
cobbler/autoinstallgen.py:140: # FIXME: this is all broken and no longer works. This entire if block should probably not be hard-coded
cobbler/autoinstallgen.py:215: # FIXME: what to do if we can't find the repo object that is listed?
cobbler/autoinstallgen.py:331: # FIXME: implement something similar to zypper (SUSE based distros) and apt (Debian based distros)
cobbler/tftpgen.py:198: # FIXME: profiles also need this data!
cobbler/tftpgen.py:1000: # FIXME: need to make shorter rewrite rules for these URLs
cobbler/tftpgen.py:1120: # FIXME: Really this should remove all characters that are
cobbler/tftpgen.py:1167: # FIXME - the append_line length limit is architecture specific
cobbler/tftpgen.py:1222: # FIXME: img_path and local_img_path should probably be moved up into the blender function to ensure they're
cobbler/tftpgen.py:1359: # FIXME: img_path should probably be moved up into the blender function to ensure they're consistently
cobbler/tftpgen.py:1438: # FIXME: img_path should probably be moved up into the blender function to ensure they're consistently
misc/anamon.init:33:# FIXME - can we rely on the koan snippet to update /etc/profile.d/cobbler.sh?
system-tests/tests/svc-autodetect:23:# FIXME endpoint not yet testable
system-tests/tests/svc-find_autoinstall:23:# FIXME endpoint not yet testable
system-tests/tests/svc-findks:23:# FIXME endpoint not yet testable
system-tests/tests/svc-ipxe-image:19:# FIXME no output from endpoint
system-tests/tests/svc-puppet:23:# FIXME endpoint not yet testable
system-tests/tests/svc-script:23:# FIXME endpoint not yet testable
system-tests/tests/svc-template:23:# FIXME endpoint not yet testable
system-tests/tests/svc-yum:23:# FIXME endpoint not yet testable
templates/etc/dhcp.template:79: # FIXME add petitboot support for ppc64(le)
tests/items/profile_test.py:247: # FIXME: (False, pytest.raises(TypeError)), --> does not raise
tests/items/profile_test.py:270: # FIXME: (False, pytest.raises(TypeError)), --> does not raise
tests/items/system_test.py:109: ), # FIXME: Test passes but it actually does not do the right thing
tests/items/system_test.py:468: # FIXME: (False, pytest.raises(TypeError)), --> does not raise
tests/items/system_test.py:640: # FIXME: (False, pytest.raises(TypeError)) --> This does not raise a TypeError but instead a value Error.
tests/modules/installation/post_log_test.py:24: # FIXME improve assert
tests/modules/installation/post_power_test.py:24: # FIXME improve assert
tests/modules/installation/post_puppet_test.py:24: # FIXME improve assert
tests/modules/installation/post_report_test.py:27: # FIXME improve assert
tests/modules/installation/pre_clear_anamon_logs_test.py:24: # FIXME improve assert
tests/modules/installation/pre_log_test.py:24: # FIXME improve assert
tests/modules/installation/pre_puppet_test.py:24: # FIXME improve assert
tests/modules/nsupdate_add_system_post_test.py:28: # FIXME realistic return values
tests/modules/nsupdate_add_system_post_test.py:39: # FIXME improve assert
tests/modules/nsupdate_delete_system_pre_test.py:28: # FIXME realistic return values
tests/modules/nsupdate_delete_system_pre_test.py:39: # FIXME improve assert
tests/modules/scm_track_test.py:50: # FIXME improve assert
tests/modules/sync_post_restart_services_test.py:28: # FIXME improve assert
tests/modules/sync_post_wingen_test.py:31: # FIXME improve assert
tests/configgen_test.py:58: # FIXME: Arrange distro, profile and system
tests/configgen_test.py:70: # FIXME: Arrange distro, profile and system, package and file
tests/configgen_test.py:84: # FIXME: Arrange distro, profile and system, package and file
tests/configgen_test.py:97: # FIXME: Arrange distro, profile and system, package and file
tests/configgen_test.py:110: # FIXME: Arrange distro, profile and system, package and file
.github/workflows/release.yml:26:# FIXME: We removed createrepo_c due to: https://answers.launchpad.net/createrepo/+question/690448
.github/workflows/release_master.yml:26:# FIXME: We removed createrepo_c due to: https://answers.launchpad.net/createrepo/+question/690448
$ grep --exclude-dir build --exclude-dir venv -rin "# TODO"
grep: .git/objects/pack/pack-4f51e89d9176e1aea080daeb55c5df2255f6570e.pack: Übereinstimmungen in Binärdatei
bin/cobbler-settings:22:# TODO: Transform this into a lamda/list comprehension
bin/cobbler-settings:186:# TODO: Implement in the future
cobbler/actions/check.py:175: # TODO: Rewrite check to be able to verify this is in more cases
cobbler/cobbler_collections/profiles.py:85: # ToDo: Only serialize parent object, use:
cobbler/cobbler_collections/systems.py:71: # ToDo: Only serialize parent object, use:
cobbler/items/distro.py:176: # TODO: Obsolete it and merge with kernel property
cobbler/modules/authentication/ldap.py:136: # TODO: what if username is a CN? maybe it goes into the config file as well?
cobbler/modules/authentication/pam.py:155: # TODO: This is not an authentication error, something has gone wrong starting up PAM
cobbler/modules/managers/bind.py:146: # TODO: Perhpas the suffix can be configurable through settings?
cobbler/modules/managers/bind.py:634: # TODO: Reuse the utils method for service restarts
cobbler/modules/managers/genders.py:78: # TODO: the lists that are created here are strictly comma separated.
cobbler/modules/managers/isc.py:428: # TODO: Fix hard coded string
cobbler/modules/managers/import_signatures.py:955: repo.apt_components = "main universe" # TODO: make a setting?
cobbler/modules/serializers/mongodb.py:62: # TODO: Make database name configurable in settings
cobbler/modules/serializers/mongodb.py:63: # TODO: Make authentication configurable
cobbler/modules/serializers/mongodb.py:94: # TODO: error detection
cobbler/settings/migrations/V3_2_1.py:86: # TODO: Validate Subdict
cobbler/settings/migrations/V3_3_0.py:159: # TODO: Remove following line
cobbler/settings/migrations/V3_3_0.py:170: # TODO: Validate Subdict
cobbler/settings/migrations/V3_3_1.py:166: # TODO: Remove following line
cobbler/settings/migrations/V3_3_1.py:177: # TODO: Validate Subdict
cobbler/settings/migrations/V3_3_3.py:163: # TODO: Remove following line
cobbler/settings/migrations/V3_3_3.py:174: # TODO: Validate Subdict
cobbler/settings/migrations/helper.py:98: # TODO: Check if key does not exist
cobbler/settings/migrations/V3_4_0.py:89: # TODO: Remove following line
cobbler/settings/__init__.py:191: # TODO: Remove following line
cobbler/settings/__init__.py:303: # TODO: Deprecate and remove. Tailcall is not needed.
cobbler/settings/__init__.py:358: # TODO: This needs to be explicitly tested
cobbler/utils/filesystem_helpers.py:75: # TODO: Replace this with the follwing: https://stackoverflow.com/a/22058673
cobbler/utils/filesystem_helpers.py:80: # TODO: Safeguard this against above mentioned directory does not exist error.
cobbler/utils/filesystem_helpers.py:278: # TODO: Obsolete bool return value
cobbler/utils/__init__.py:841: # TODO: Refactor that this is purely reliant on the distro module or obsolete it.
cobbler/utils/__init__.py:1028: # TODO: Replace with Settings access
cobbler/configgen.py:160: # TODO: This can be merged with the above method if we want to obsolete this class. If not, we need to create
cobbler/services.py:30: # ToDo: Remove req attribute.
cobbler/validate.py:307: # TODO: Don't store the names. Store the internal references.
cobbler/cli.py:2020: # TODO: Migrate to argparse
cobbler/cli.py:2648: # ToDo: Add tftp syncing when it's cleaned up
cobbler/remote.py:2551: # ToDo: Remove unneed params: REMOTE_ADDR, REMOTE_MAC, rest
cobbler/remote.py:3128: # TODO: See if we can simplify this at a later point
cobbler/remote.py:3556: # ToDo: Remove rest param
cobbler/remote.py:4067: # ToDo: Drop rest param
cobbler/api.py:1958: # TODO: how about adding recursive FTP as an option?
cobbler/tftpgen.py:303: # ToDo: This is old, move this logic into item_system.get_config_filename()
config/grub/grub/local_efi.cfg:18: # ToDo: We have to know all possible local default grub.efi loaders
svc/services.py:99: # TODO: We could do proper exception handling here and return
svc/services.py:112: # TODO: Not sure these strings are the right ones to look for...
system-tests/tests/svc-autodetect:13:# TODO maybe test with more than one system
system-tests/tests/svc-events:13:# TODO user
system-tests/tests/svc-list:13:# TODO add more systems, profiles and distros, images, repos, mgmtclasses, packages, files, menus
tests/actions/report_test.py:175: # TODO: Tighter checking
tests/actions/report_test.py:204: # TODO: Tighter checking
tests/actions/report_test.py:255: # TODO: Tighter checking
tests/actions/buildiso/append_line_test.py:26: # TODO: Make tests more sophisticated
tests/actions/buildiso/append_line_test.py:46: # TODO: Make tests more sophisticated
tests/actions/reposync_test.py:386: # TODO: Check this more and document how its actually working
tests/actions/reposync_test.py:435: # TODO: Improve coverage over different cases in method
tests/actions/reposync_test.py:504: # TODO: Extend checks
tests/api/find_test.py:8: # TODO: Extend the fillup and add more testcases
tests/api/miscellaneous_test.py:27: # TODO: Create test where the YAML is missing the key
tests/cli/cli_unit_test.py:30: # TODO: Create Mock which replaces n2s
tests/cli/cli_unit_test.py:37: # TODO: Assert args for n2s not the function return
tests/cli/cobbler_cli_direct_test.py:120: # TODO: verify user acl exists on directories
tests/cli/cobbler_cli_direct_test.py:125: # TODO: verify group acl exists on directories
tests/cli/cobbler_cli_direct_test.py:130: # TODO: verify user acl no longer exists on directories
tests/cli/cobbler_cli_direct_test.py:135: # TODO: verify group acl no longer exists on directories
tests/items/distro_test.py:53: # TODO: When in distro.py the FIXME of this method is done then adjust this here
tests/items/distro_test.py:88: # TODO check more fields
tests/items/distro_test.py:198: # TODO: Create fake initrd so we can set it successfully
tests/items/distro_test.py:219: # TODO: Create fake kernel so we can set it successfully
tests/items/distro_test.py:332: # TODO: Create fake kernel so we can test positive paths
tests/items/distro_test.py:368: # TODO: Create fake initrd to have a real test
tests/items/network_interface_test.py:189: # TODO: Test matching self
tests/items/network_interface_test.py:228: # TODO: match self
tests/items/network_interface_test.py:291: # TODO: Create test for last ValueError
tests/items/network_interface_test.py:404: # TODO: Match self in loop
tests/items/network_interface_test.py:439: # TODO: match self
tests/items/item_test.py:486: # TODO: Create some objects and give them some inheritance.
tests/xmlrpcapi/distro_test.py:191: # TODO: Verify why the test passes without the fixture for creating the distro!
tests/xmlrpcapi/image_test.py:3:# TODO: Create fixture where image is create
tests/xmlrpcapi/miscellaneous_test.py:240: # TODO: Create Autoinstall Script
tests/xmlrpcapi/miscellaneous_test.py:461: # TODO: Fix test & functionality!
tests/xmlrpcapi/profile_test.py:291: # TODO: Verify why the test passes without the fixture for creating the profile!
tests/xmlrpcapi/profile_test.py:294: # TODO: Why does the subprofile call return true? There shouldn't be one.
tests/xmlrpcapi/system_test.py:343: # TODO: Verify why the test passes without the fixture for creating the system!
tests/utils/filesystem_helpers_test.py:22: # TODO: Generate cases
tests/utils/filesystem_helpers_test.py:34: # TODO: Create testfile
tests/utils/filesystem_helpers_test.py:56: # TODO: Check .link_cache folder exists and the link cache file in it
tests/utils/filesystem_helpers_test.py:57: # TODO: Assert file exists in the cache destination
tests/utils/filesystem_helpers_test.py:167: # TODO: Check how already existing folder is handled.
tests/utils/filesystem_helpers_test.py:193: # TODO: Check if this actually makes sense...
tests/utils/mtab_test.py:21: # TODO Does not work in all environments (e.g. openSUSE TW with BTRFS)
tests/utils/process_management_test.py:41: # TODO Mock supervisor API and return value
tests/utils/__init__.py:57: # TODO: Check for MAC validity
tests/utils/__init__.py:63: # TODO: Get testdir und check for files
tests/utils/__init__.py:83: # TODO: Build a directory with some versioned files.
tests/utils/__init__.py:155: # TODO: Do this remotely & also a failed test
tests/utils/__init__.py:231: # TODO: Add more examples
tests/utils/__init__.py:267: # TODO: Generate more parameter combinations
tests/utils/__init__.py:279: # TODO: Generate more parameter combinations
tests/utils/__init__.py:291: # TODO: Generate test env with data to check
tests/utils/__init__.py:301: # TODO: Check if the files were copied correctly.
tests/utils/__init__.py:328: # TODO: How the heck do we check that this actually did what it is supposed to do?
tests/utils/__init__.py:345: # TODO: Make this nicer so it doesn't need to run on suse specific distros to succeed.
tests/utils/__init__.py:356: # TODO: Functionality test is something which needs SELinux knowledge
tests/utils/__init__.py:416: # TODO: Test the case where the file is there.
tests/utils/__init__.py:504: # TODO: Parameterize and check for wrong argument
tests/utils/__init__.py:515: # TODO: Parameterize and check for wrong argument
tests/autoinstallation_manager_test.py:86: # TODO
tests/configgen_test.py:11:# TODO: If the action items of the configgen class are done then the tests need to test the robustness of the class.
tests/test_data/V3_3_0/settings.yaml:130:# TODO: Check that these two settings work for all distributions
tests/validate_test.py:77: # TODO: Test this also with the bypass check
tests/validate_test.py:90: # TODO: Test multiple disks via comma separation
distro_build_configs.sh:77: # ToDo: Should we loudly warn here?
setup.py:629: # ToDo: Find a nice way to copy whole config/grub structure recursively
The Pyroma section was successfully removed as PR #3225 was merged.
I ran Prospector and Codacy locally with codacy-analysis-cli over all our code inside the
cobbler
folder. Most of the findings are just information and warnings but I think fixing those will improve the overall quality of the project.For running those checks you can use the tools directly or my small bash script called cob: