spec/unit/puppet-strings/json_spec.rb in puppet-strings-1.1.1 vs spec/unit/puppet-strings/json_spec.rb in puppet-strings-1.2.0
- old
+ new
@@ -121,9 +121,49 @@
newvalue(:warn)
newvalue(:error)
defaultto 'warn'
end
end
+
+Puppet::ResourceApi.register_type(
+ name: 'apt_key',
+ desc: <<-EOS,
+@summary Example resource type using the new API.
+@raise SomeError
+This type provides Puppet with the capabilities to manage GPG keys needed
+by apt to perform package validation. Apt has it's own GPG keyring that can
+be manipulated through the `apt-key` command.
+@example here's an example
+ apt_key { '6F6B15509CF8E59E6E469F327F438280EF8D349F':
+ source => 'http://apt.puppetlabs.com/pubkey.gpg'
+ }
+
+**Autorequires**:
+If Puppet is given the location of a key file which looks like an absolute
+path this type will autorequire that file.
+ EOS
+ attributes: {
+ ensure: {
+ type: 'Enum[present, absent]',
+ desc: 'Whether this apt key should be present or absent on the target system.'
+ },
+ id: {
+ type: 'Variant[Pattern[/\A(0x)?[0-9a-fA-F]{8}\Z/], Pattern[/\A(0x)?[0-9a-fA-F]{16}\Z/], Pattern[/\A(0x)?[0-9a-fA-F]{40}\Z/]]',
+ behaviour: :namevar,
+ desc: 'The ID of the key you want to manage.',
+ },
+ # ...
+ created: {
+ type: 'String',
+ behaviour: :read_only,
+ desc: 'Date the key was created, in ISO format.',
+ },
+ },
+ autorequires: {
+ file: '$source', # will evaluate to the value of the `source` attribute
+ package: 'apt',
+ },
+)
SOURCE
end
let(:filename) { TEST_PUPPET_FUNCTIONS ? 'output.json' : 'output_without_puppet_function.json' }
let(:baseline_path) { File.join(File.dirname(__FILE__), "../../fixtures/unit/json/#{filename}") }