Chapter 4. Advanced Types and Providers
The previous chapters covered the core concepts required to write fully functional types and providers. In this chapter, we will explore several advanced features and their implementation. These topics are not required for all custom types, but they have been included to ensure users have a more complete understanding of how Puppet works. Many of Puppet’s native types provide the following functionalities and this chapter will cover how to implement them:
- Resources can respond to refresh events triggered by the notify/subscribe metaparameters.
- Providers may indicate they only support a subset of the functionality of a type interface.
- Types can customize the output of event messages.
The chapter also discusses how code can be shared between multiple providers using both provider inheritance as well as common shared libraries. Code reuse can simplify providers, and reduce the total amount of code that needs to be written and maintained, especially when you need multiple related providers for the same service.
After reading this chapter, you should be able to understand and implement:
- Supporting refresh signals initiated from the subscribe/notify metaparameter
- How providers can support a subset of a type’s features
- Code reuse through parent providers and shared libraries
- Modifying event log messages
Refresh
In Puppet, when any properties are updated, an event is recorded which can trigger updates to other resources with a refresh signal. These ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access