| 54 | |
| 55 | == Writing a Client Tool Module == |
| 56 | 1. Add a new file in src/lib/Client/Tools/ |
| 57 | 1. Add an entry for this file in src/lib/Client/Tools/__init__.py |
| 58 | 1. Add a class in this file, with the same name as the file, that subclasses Bcfg2.Client.Tools.Tool |
| 59 | 1. Add a method Verify<entry.tag> that returns true or false, based on client state (Mark Verify as done) |
| 60 | 1. Add a method Install<entry.tag> that returns true or false. (Mark Install done, unless entries need to be installed all at once (packages)) |
| 61 | 1. Add a bulk install method (optional) that installs all entries at once |
| 62 | 1. Add a Remove method that removes entries based on self.setup (Mark Removal as done) |
| 63 | 1. Add a FindExtra method that locates entries not included in the configuration (Mark Extra Detection as done) (optional; this may not be possible depending on the tool) |