Class: Puppet::Provider::NexusBlobstore::NexusBlobstore
- Inherits:
-
ResourceApi::SimpleProvider
- Object
- ResourceApi::SimpleProvider
- Puppet::Provider::NexusBlobstore::NexusBlobstore
- Defined in:
- lib/puppet/provider/nexus_blobstore/nexus_blobstore.rb
Overview
Implementation for the nexus_blobstore type using the Resource API.
Instance Method Summary collapse
-
#create(context, name, should) ⇒ Object
Create blobstores not yet existing in nexus repository manager.
-
#delete(context, name) ⇒ Object
Delete blobstore which is set to absent.
-
#get(context, names = nil) ⇒ Object
Return requested blobstores as resources.
-
#initialize ⇒ NexusBlobstore
constructor
Init connection to the rest api.
-
#update(context, name, should) ⇒ Object
Update blobstore settings on existing blobstore.
Constructor Details
#initialize ⇒ NexusBlobstore
Init connection to the rest api
9 10 11 12 13 14 |
# File 'lib/puppet/provider/nexus_blobstore/nexus_blobstore.rb', line 9 def initialize super local_device = Puppet::Util::NetworkDevice::Config.devices['localhost_nexus_rest_api'] config_file = local_device['url'] unless local_device.nil? Puppet::ResourceApi::Transport.inject_device('nexus_rest_api', config_file) unless File.exist?(config_file) end |
Instance Method Details
#create(context, name, should) ⇒ Object
Create blobstores not yet existing in nexus repository manager
41 42 43 44 45 46 47 |
# File 'lib/puppet/provider/nexus_blobstore/nexus_blobstore.rb', line 41 def create(context, name, should) attributes = should[:attributes] attributes[:name] = name res = context.transport.post_request(context, "blobstores/#{should[:type]}", attributes) context.err(res.body) unless res.success? end |
#delete(context, name) ⇒ Object
Delete blobstore which is set to absent
57 58 59 60 61 |
# File 'lib/puppet/provider/nexus_blobstore/nexus_blobstore.rb', line 57 def delete(context, name) res = context.transport.delete_request(context, "blobstores/#{name}") context.err(res.body) unless res.success? end |
#get(context, names = nil) ⇒ Object
Return requested blobstores as resources
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/puppet/provider/nexus_blobstore/nexus_blobstore.rb', line 17 def get(context, names = nil) res = context.transport.get_request(context, 'blobstores') context.err(res.body) unless res.success? Puppet::Util::Json.load(res.body).map { |blobstore| next unless names.include?(blobstore['name']) type = blobstore['type'].downcase # API returns 'File' instead of 'file' res = context.transport.get_request(context, "blobstores/#{type}/#{blobstore['name']}") next unless res.success? # skip unsupported blobstore types attributes = Puppet::Util::Json.load(res.body) { name: blobstore['name'], ensure: 'present', type: type, attributes: attributes } }.compact end |
#update(context, name, should) ⇒ Object
Update blobstore settings on existing blobstore
50 51 52 53 54 |
# File 'lib/puppet/provider/nexus_blobstore/nexus_blobstore.rb', line 50 def update(context, name, should) res = context.transport.put_request(context, "blobstores/#{should[:type]}/#{name}", should[:attributes]) context.err(res.body) unless res.success? end |