# Configure data volume, if specified
unless node['neo4j']['data_volume_type'] == 'local'
  # Getting volume name from instance metadata does not work reliably. Instead just exec a command.
  source_volume = '/dev/nvme1n1'
  filesystem 'neo4j' do
    fstype node['neo4j']['data_volume_filesystem']
    device source_volume
    mount node['neo4j']['config']['neo4j_home']
    user node['neo4j']['user']
    group node['neo4j']['user']
    action [:create, :enable, :mount]
  end
end

# Precreate certain neo4j directories that should exist before service start
neo4j_directories = [
  node['neo4j']['config']['dbms.directories.import'],
  node['neo4j']['config']['dbms.directories.plugins'],
  node['neo4j']['config']['dbms.directories.data'],
  node['neo4j']['config']['dbms.directories.run'],
  "#{node['neo4j']['config']['dbms.directories.data']}/dbms",
]

if platform_family?('debian')
  neo4j_directories += %w(
    /var/run/neo4j
  )
end

neo4j_directories.each do |dir|
  directory dir do
    owner node['neo4j']['user']
    group node['neo4j']['user']
    mode '0755'
  end
end

# Create root logging directory
directory node['neo4j']['config']['dbms.logs.root.path'] do
  owner node['neo4j']['user']
  group node['neo4j']['user']
  mode '0750'
  action :create
end
