diff --git a/manifests/api.pp b/manifests/api.pp
index a7ac6ab7..ce966d2e 100644
--- a/manifests/api.pp
+++ b/manifests/api.pp
@@ -19,7 +19,7 @@
 # [*default_share_type*]
 #   (optional) Name of default share type which is used if user doesn't
 #   set a share type explicitly when creating a share.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*enabled*]
 #   (optional) The state of the service
@@ -53,35 +53,35 @@
 # [*enable_proxy_headers_parsing*]
 #   (Optional) Enable paste middleware to handle SSL requests through
 #   HTTPProxyToWSGI middleware.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*max_request_body_size*]
 #   (Optional) Set max request body size
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*enabled_share_protocols*]
 #   (optional) Defines the enabled share protocols provided by Manila.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*service_workers*]
 #   (optional) Number of manila-api workers
-#   Defaults to $::os_workers
+#   Defaults to $facts['os_workers']
 #
 class manila::api (
   $auth_strategy                = 'keystone',
   $package_ensure               = 'present',
   $bind_host                    = '0.0.0.0',
-  $default_share_type           = $::os_service_default,
+  $default_share_type           = $facts['os_service_default'],
   $enabled                      = true,
   $sync_db                      = true,
   $manage_service               = true,
   $service_name                 = $::manila::params::api_service,
   $ratelimits                   = undef,
   $ratelimits_factory           = 'manila.api.v1.limits:RateLimitingMiddleware.factory',
-  $enable_proxy_headers_parsing = $::os_service_default,
-  $max_request_body_size        = $::os_service_default,
-  $enabled_share_protocols      = $::os_service_default,
-  $service_workers              = $::os_workers,
+  $enable_proxy_headers_parsing = $facts['os_service_default'],
+  $max_request_body_size        = $facts['os_service_default'],
+  $enabled_share_protocols      = $facts['os_service_default'],
+  $service_workers              = $facts['os_workers'],
 ) inherits manila::params {
 
   include manila::deps
diff --git a/manifests/backend/cephfs.pp b/manifests/backend/cephfs.pp
index ef2d6069..d4ae7941 100644
--- a/manifests/backend/cephfs.pp
+++ b/manifests/backend/cephfs.pp
@@ -17,7 +17,7 @@
 #   (Optional) Availability zone for this share backend.
 #   If not set, the storage_availability_zone option value
 #   is used as the default for all backends.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*cephfs_conf_path*]
 #   (optional) Path to cephfs config.
@@ -33,36 +33,36 @@
 #
 # [*cephfs_ganesha_server_ip*]
 #   (optional) IP of a server where Ganesha service runs on.
-#   Defaults to: $::os_service_default
+#   Defaults to: $facts['os_service_default']
 #
 # [*cephfs_ganesha_export_ips*]
 #   (optional) List of IPs on which Ganesha provides NFS share service.
-#   Defaults to: $::os_service_default
+#   Defaults to: $facts['os_service_default']
 #
 # [*cephfs_ganesha_server_is_remote*]
 #   (required) Whether the Ganesha service is remote or colocated on the
 #   same node where the Share service runs.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*cephfs_ganesha_server_username*]
 #   (optional) The username to use when logging on the remote node
 #   hosting the Ganesha service
-#   Defaults to: $::os_service_default
+#   Defaults to: $facts['os_service_default']
 #
 # [*cephfs_ganesha_server_password*]
 #   (optional) The password to use when logging on the remote node
 #   hosting the Ganesha service
-#   Defaults to: $::os_service_default
+#   Defaults to: $facts['os_service_default']
 #
 # [*cephfs_ganesha_path_to_private_key*]
 #   (optional) The secret key to use when logging on the remote node
 #   hosting the Ganesha service (prevails on server_password)
-#   Defaults to: $::os_service_default
+#   Defaults to: $facts['os_service_default']
 #
 # [*cephfs_volume_mode*]
 #   (optional) octal rwx permissions for CephFS backing volumes,
 #   snapshots, and groups of volumes and snapshots.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*cephfs_protocol_helper_type*]
 #   (optional) Sets helper type for CephFS driver, can be CEPHFS or NFS
@@ -71,24 +71,24 @@
 # [*cephfs_filesystem_name*]
 #   (optional) The name of the filesystem to use, if there are multiple
 #   filesystems in the cluster.
-#   Defaults to: $::os_service_default
+#   Defaults to: $facts['os_service_default']
 #
 define manila::backend::cephfs (
   $driver_handles_share_servers       = false,
   $share_backend_name                 = $name,
-  $backend_availability_zone          = $::os_service_default,
+  $backend_availability_zone          = $facts['os_service_default'],
   $cephfs_conf_path                   = '$state_path/ceph.conf',
   $cephfs_auth_id                     = 'manila',
   $cephfs_cluster_name                = 'ceph',
-  $cephfs_ganesha_server_ip           = $::os_service_default,
-  $cephfs_ganesha_export_ips          = $::os_service_default,
-  $cephfs_ganesha_server_is_remote    = $::os_service_default,
-  $cephfs_ganesha_server_username     = $::os_service_default,
-  $cephfs_ganesha_server_password     = $::os_service_default,
-  $cephfs_ganesha_path_to_private_key = $::os_service_default,
-  $cephfs_volume_mode                 = $::os_service_default,
+  $cephfs_ganesha_server_ip           = $facts['os_service_default'],
+  $cephfs_ganesha_export_ips          = $facts['os_service_default'],
+  $cephfs_ganesha_server_is_remote    = $facts['os_service_default'],
+  $cephfs_ganesha_server_username     = $facts['os_service_default'],
+  $cephfs_ganesha_server_password     = $facts['os_service_default'],
+  $cephfs_ganesha_path_to_private_key = $facts['os_service_default'],
+  $cephfs_volume_mode                 = $facts['os_service_default'],
   $cephfs_protocol_helper_type        = 'CEPHFS',
-  $cephfs_filesystem_name             = $::os_service_default,
+  $cephfs_filesystem_name             = $facts['os_service_default'],
 ) {
 
   include manila::deps
diff --git a/manifests/backend/dellemc_isilon.pp b/manifests/backend/dellemc_isilon.pp
index 6e8fd90a..43f1095b 100644
--- a/manifests/backend/dellemc_isilon.pp
+++ b/manifests/backend/dellemc_isilon.pp
@@ -28,11 +28,11 @@
 #   (Optional) Availability zone for this share backend.
 #   If not set, the storage_availability_zone option value
 #   is used as the default for all backends.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*emc_nas_root_dir*]
 #   (optional) The root directory where shares will be located.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*emc_nas_server_port*]
 #   (optional)  Port number for the Dell EMC isilon server.
@@ -66,8 +66,8 @@ define manila::backend::dellemc_isilon (
   $emc_nas_server,
   $emc_share_backend            = 'isilon',
   $share_backend_name           = $name,
-  $backend_availability_zone    = $::os_service_default,
-  $emc_nas_root_dir             = $::os_service_default,
+  $backend_availability_zone    = $facts['os_service_default'],
+  $emc_nas_root_dir             = $facts['os_service_default'],
   $emc_nas_server_port          = 8080,
   $emc_nas_server_secure        = true,
   $package_ensure               = 'present',
diff --git a/manifests/backend/dellemc_powermax.pp b/manifests/backend/dellemc_powermax.pp
index 48ed3301..9124ef0e 100644
--- a/manifests/backend/dellemc_powermax.pp
+++ b/manifests/backend/dellemc_powermax.pp
@@ -28,35 +28,35 @@
 #   (Optional) Availability zone for this share backend.
 #   If not set, the storage_availability_zone option value
 #   is used as the default for all backends.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*powermax_server_container*]
 #   (optional) Name of the Data Mover to serve the share service.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*powermax_share_data_pools*]
 #   (optional)  Comma separated list specifying the name of the pools to be
 #   used by this back end. Do not set this option if all storage pools on the
 #   system can be used. Wild card character is supported
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*powermax_ethernet_ports*]
 #   (optional) Comma-separated list specifying the ports (devices) of Data Mover
 #   that can be used for share server interface. Do not set this option if all
 #   ports on the Data Mover can be used. Wild card character is supported.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*emc_nas_server_secure*]
 #   (optional) Use SSL validation
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*emc_ssl_cert_path*]
 #   (optional) Path to SSL certificates
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*emc_ssl_cert_verify*]
 #   (optional) Verify SSL certificates
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*package_ensure*]
 #   (optional) Ensure state for package. Defaults to 'present'.
@@ -75,13 +75,13 @@ define manila::backend::dellemc_powermax (
   $emc_nas_server,
   $emc_share_backend         = 'powermax',
   $share_backend_name        = $name,
-  $backend_availability_zone = $::os_service_default,
-  $powermax_server_container = $::os_service_default,
-  $powermax_share_data_pools = $::os_service_default,
-  $powermax_ethernet_ports   = $::os_service_default,
-  $emc_nas_server_secure     = $::os_service_default,
-  $emc_ssl_cert_path         = $::os_service_default,
-  $emc_ssl_cert_verify       = $::os_service_default,
+  $backend_availability_zone = $facts['os_service_default'],
+  $powermax_server_container = $facts['os_service_default'],
+  $powermax_share_data_pools = $facts['os_service_default'],
+  $powermax_ethernet_ports   = $facts['os_service_default'],
+  $emc_nas_server_secure     = $facts['os_service_default'],
+  $emc_ssl_cert_path         = $facts['os_service_default'],
+  $emc_ssl_cert_verify       = $facts['os_service_default'],
   $package_ensure            = 'present',
 ) {
 
diff --git a/manifests/backend/dellemc_unity.pp b/manifests/backend/dellemc_unity.pp
index 458e0b79..70525d91 100644
--- a/manifests/backend/dellemc_unity.pp
+++ b/manifests/backend/dellemc_unity.pp
@@ -37,29 +37,29 @@
 #   (Optional) Availability zone for this share backend.
 #   If not set, the storage_availability_zone option value
 #   is used as the default for all backends.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*unity_share_data_pools*]
 #   (optional)  Comma separated list specifying the name of the pools to be
 #   used by this back end. Do not set this option if all storage pools on the
 #   system can be used. Wild card character is supported
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*unity_ethernet_ports*]
 #   (optional) Comma separated list specifying the ethernet ports of Unity
 #   system that can be used for share. Do not set this option if all ethernet
 #   ports can be used. Wild card character is supported. Both the normal ethernet
 #   port and link aggregation port can be used by Unity share driver.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*unity_share_server*]
 #   (optional) NAS server used for creating share when driver is in DHSS=False
 #   mode. It is required when driver_handles_share_servers=False in manila.conf.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*report_default_filter_function*]
 #   (optional) Whether or not report default filter function.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*network_plugin_ipv6_enabled*]
 #   (optional) Whether to support IPv6 network resource, Default=False.
@@ -99,14 +99,14 @@ define manila::backend::dellemc_unity (
   $unity_server_meta_pool,
   $emc_share_backend              = 'unity',
   $share_backend_name             = $name,
-  $backend_availability_zone      = $::os_service_default,
-  $unity_share_data_pools         = $::os_service_default,
-  $unity_ethernet_ports           = $::os_service_default,
-  $unity_share_server             = $::os_service_default,
-  $report_default_filter_function = $::os_service_default,
+  $backend_availability_zone      = $facts['os_service_default'],
+  $unity_share_data_pools         = $facts['os_service_default'],
+  $unity_ethernet_ports           = $facts['os_service_default'],
+  $unity_share_server             = $facts['os_service_default'],
+  $report_default_filter_function = $facts['os_service_default'],
   $network_plugin_ipv6_enabled    = true,
   $emc_ssl_cert_verify            = undef,
-  $emc_ssl_cert_path              = $::os_service_default,
+  $emc_ssl_cert_path              = $facts['os_service_default'],
   $package_ensure                 = 'present',
 ) {
 
diff --git a/manifests/backend/dellemc_vnx.pp b/manifests/backend/dellemc_vnx.pp
index 21484945..199ca540 100644
--- a/manifests/backend/dellemc_vnx.pp
+++ b/manifests/backend/dellemc_vnx.pp
@@ -28,23 +28,23 @@
 #   (Optional) Availability zone for this share backend.
 #   If not set, the storage_availability_zone option value
 #   is used as the default for all backends.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*vnx_server_container*]
 #   (optional) Name of the Data Mover to serve the share service.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*vnx_share_data_pools*]
 #   (optional)  Comma separated list specifying the name of the pools to be
 #   used by this back end. Do not set this option if all storage pools on the
 #   system can be used. Wild card character is supported
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*vnx_ethernet_ports*]
 #   (optional) Comma-separated list specifying the ports (devices) of Data Mover
 #   that can be used for share server interface. Do not set this option if all
 #   ports on the Data Mover can be used. Wild card character is supported.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*network_plugin_ipv6_enabled*]
 #   (optional) Whether to support IPv6 network resource, Default=False.
@@ -61,7 +61,7 @@
 #   (optional) Can be used to specify a non default path to a
 #   CA_BUNDLE file or directory with certificates of trusted
 #   CAs, which will be used to validate the backend.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*package_ensure*]
 #   (optional) Ensure state for package. Defaults to 'present'.
@@ -89,13 +89,13 @@ define manila::backend::dellemc_vnx (
   $emc_nas_server,
   $emc_share_backend            = 'vnx',
   $share_backend_name           = $name,
-  $backend_availability_zone    = $::os_service_default,
-  $vnx_server_container         = $::os_service_default,
-  $vnx_share_data_pools         = $::os_service_default,
-  $vnx_ethernet_ports           = $::os_service_default,
+  $backend_availability_zone    = $facts['os_service_default'],
+  $vnx_server_container         = $facts['os_service_default'],
+  $vnx_share_data_pools         = $facts['os_service_default'],
+  $vnx_ethernet_ports           = $facts['os_service_default'],
   $network_plugin_ipv6_enabled  = true,
   $emc_ssl_cert_verify          = undef,
-  $emc_ssl_cert_path            = $::os_service_default,
+  $emc_ssl_cert_path            = $facts['os_service_default'],
   $package_ensure               = 'present',
   $driver_handles_share_servers = undef,
 ) {
diff --git a/manifests/backend/flashblade.pp b/manifests/backend/flashblade.pp
index 9d6af499..ed0f7a34 100644
--- a/manifests/backend/flashblade.pp
+++ b/manifests/backend/flashblade.pp
@@ -22,7 +22,7 @@
 #   (Optional) Availability zone for this share backend.
 #   If not set, the storage_availability_zone option value
 #   is used as the default for all backends.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*flashblade_eradicate*]
 #   (optional) Fully eradicate deleted shares and snapshots.
@@ -45,7 +45,7 @@ define manila::backend::flashblade (
   $flashblade_mgmt_vip,
   $flashblade_eradicate      = true,
   $share_backend_name        = $name,
-  $backend_availability_zone = $::os_service_default,
+  $backend_availability_zone = $facts['os_service_default'],
   $package_ensure            = 'present',
 ) {
 
diff --git a/manifests/backend/ganesha.pp b/manifests/backend/ganesha.pp
index 114a0e31..3eb4da98 100644
--- a/manifests/backend/ganesha.pp
+++ b/manifests/backend/ganesha.pp
@@ -12,60 +12,60 @@
 #
 # [*ganesha_config_dir*]
 #  (optional) Directory where Ganesha config files are stored.
-#  Defaults to $::os_service_default
+#  Defaults to $facts['os_service_default']
 #
 # [*ganesha_config_path*]
 #  (optional) Path to main Ganesha config file.
-#  Defaults to $::os_service_default
+#  Defaults to $facts['os_service_default']
 #
 # [*ganesha_service_name*]
 #  (optional) Name of the ganesha nfs service.
-#  Defaults to $::os_service_default
+#  Defaults to $facts['os_service_default']
 #
 # [*ganesha_db_path*]
 #  (optional) Location of Ganesha database file (Ganesha module only).
-#  Defaults to $::os_service_default
+#  Defaults to $facts['os_service_default']
 #
 # [*ganesha_export_dir*]
 #  (optional) Path to directory containing Ganesha export configuration.
 #  (Ganesha module only.)
-#  Defaults to $::os_service_default
+#  Defaults to $facts['os_service_default']
 #
 # [*ganesha_export_template_dir*]
 #  (optional) Path to directory containing Ganesha export block templates.
 #  (Ganesha module only.)
-#  Defaults to $::os_service_default
+#  Defaults to $facts['os_service_default']
 #
 # [*ganesha_rados_store_enable*]
 #  (optional) Persist Ganesha exports and export counter in Ceph RADOS objects
-#  Defaults to $::os_service_default
+#  Defaults to $facts['os_service_default']
 #
 # [*ganesha_rados_store_pool_name*]
 #  (optional) Name of the Ceph RADOS pool to store Ganesha exports and export
 #  counter.
-#  Defaults to $::os_service_default
+#  Defaults to $facts['os_service_default']
 #
 # [*ganesha_rados_export_counter*]
 #  (optional) Name of the CEPH RADOS object used as the Ganesha export counter.
-#  Defaults to $::os_service_default
+#  Defaults to $facts['os_service_default']
 #
 # [*ganesha_rados_export_index*]
 #  (optional) Name of the CEPH RADOS object used to store a list of the export
 #  RADOS object URLs.
-#  Defaults to $::os_service_default
+#  Defaults to $facts['os_service_default']
 #
 define manila::backend::ganesha (
   $share_backend_name            = $name,
-  $ganesha_config_dir            = $::os_service_default,
-  $ganesha_config_path           = $::os_service_default,
-  $ganesha_service_name          = $::os_service_default,
-  $ganesha_db_path               = $::os_service_default,
-  $ganesha_export_dir            = $::os_service_default,
-  $ganesha_export_template_dir   = $::os_service_default,
-  $ganesha_rados_store_enable    = $::os_service_default,
-  $ganesha_rados_store_pool_name = $::os_service_default,
-  $ganesha_rados_export_counter  = $::os_service_default,
-  $ganesha_rados_export_index    = $::os_service_default,
+  $ganesha_config_dir            = $facts['os_service_default'],
+  $ganesha_config_path           = $facts['os_service_default'],
+  $ganesha_service_name          = $facts['os_service_default'],
+  $ganesha_db_path               = $facts['os_service_default'],
+  $ganesha_export_dir            = $facts['os_service_default'],
+  $ganesha_export_template_dir   = $facts['os_service_default'],
+  $ganesha_rados_store_enable    = $facts['os_service_default'],
+  $ganesha_rados_store_pool_name = $facts['os_service_default'],
+  $ganesha_rados_export_counter  = $facts['os_service_default'],
+  $ganesha_rados_export_index    = $facts['os_service_default'],
 ) {
 
   include manila::deps
diff --git a/manifests/backend/generic.pp b/manifests/backend/generic.pp
index 88f06b69..06694c9c 100644
--- a/manifests/backend/generic.pp
+++ b/manifests/backend/generic.pp
@@ -15,7 +15,7 @@
 #   (Optional) Availability zone for this share backend.
 #   If not set, the storage_availability_zone option value
 #   is used as the default for all backends.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*smb_template_config_path*]
 #   (optional) Path to smb config.
@@ -78,7 +78,7 @@
 define manila::backend::generic (
   $driver_handles_share_servers,
   $share_backend_name                  = $name,
-  $backend_availability_zone           = $::os_service_default,
+  $backend_availability_zone           = $facts['os_service_default'],
   $smb_template_config_path            = '$state_path/smb.conf',
   $volume_name_template                = 'manila-share-%s',
   $volume_snapshot_name_template       = 'manila-snapshot-%s',
diff --git a/manifests/backend/glusterfs.pp b/manifests/backend/glusterfs.pp
index d341dcf5..f8be05b3 100644
--- a/manifests/backend/glusterfs.pp
+++ b/manifests/backend/glusterfs.pp
@@ -12,7 +12,7 @@
 #   (Optional) Availability zone for this share backend.
 #   If not set, the storage_availability_zone option value
 #   is used as the default for all backends.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*glusterfs_volumes_config*]
 #   (required) File with the list of Gluster volumes that can be used to
@@ -30,7 +30,7 @@
 #
 define manila::backend::glusterfs (
   $share_backend_name         = $name,
-  $backend_availability_zone  = $::os_service_default,
+  $backend_availability_zone  = $facts['os_service_default'],
   $glusterfs_volumes_config   = '/etc/manila/glusterfs_volumes',
   $glusterfs_mount_point_base = '$state_path/mnt',
 ) {
diff --git a/manifests/backend/glusternative.pp b/manifests/backend/glusternative.pp
index 2140f8e3..15e5a42a 100644
--- a/manifests/backend/glusternative.pp
+++ b/manifests/backend/glusternative.pp
@@ -25,7 +25,7 @@
 #   (Optional) Availability zone for this share backend.
 #   If not set, the storage_availability_zone option value
 #   is used as the default for all backends.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*package_ensure*]
 #   (optional) Ensure state for package. Defaults to 'present'.
@@ -35,7 +35,7 @@ define manila::backend::glusternative (
   $glusterfs_volume_pattern,
   $glusterfs_path_to_private_key,
   $share_backend_name             = $name,
-  $backend_availability_zone      = $::os_service_default,
+  $backend_availability_zone      = $facts['os_service_default'],
   $package_ensure                 = 'present',
 ) {
 
diff --git a/manifests/backend/glusternfs.pp b/manifests/backend/glusternfs.pp
index 9814e98f..0f5550bd 100644
--- a/manifests/backend/glusternfs.pp
+++ b/manifests/backend/glusternfs.pp
@@ -32,7 +32,7 @@
 #   (Optional) Availability zone for this share backend.
 #   If not set, the storage_availability_zone option value
 #   is used as the default for all backends.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*package_ensure*]
 #   (optional) Ensure state for package. Defaults to 'present'.
@@ -45,7 +45,7 @@ define manila::backend::glusternfs (
   $glusterfs_path_to_private_key,
   $glusterfs_ganesha_server_ip,
   $share_backend_name        = $name,
-  $backend_availability_zone = $::os_service_default,
+  $backend_availability_zone = $facts['os_service_default'],
   $package_ensure            = 'present',
 ) {
 
diff --git a/manifests/backend/hitachi_hnas.pp b/manifests/backend/hitachi_hnas.pp
index 72f97178..d5d38d97 100644
--- a/manifests/backend/hitachi_hnas.pp
+++ b/manifests/backend/hitachi_hnas.pp
@@ -39,7 +39,7 @@
 #   (Optional) Availability zone for this share backend.
 #   If not set, the storage_availability_zone option value
 #   is used as the default for all backends.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*package_ensure*]
 #   (optional) Ensure state for package. Defaults to 'present'.
@@ -65,7 +65,7 @@ define manila::backend::hitachi_hnas (
   $hitachi_hnas_file_system_name,
   $driver_handles_share_servers = false,
   $share_backend_name           = $name,
-  $backend_availability_zone    = $::os_service_default,
+  $backend_availability_zone    = $facts['os_service_default'],
   $package_ensure               = 'present',
 ) {
 
diff --git a/manifests/backend/lvm.pp b/manifests/backend/lvm.pp
index 7c80118c..c4e90b25 100644
--- a/manifests/backend/lvm.pp
+++ b/manifests/backend/lvm.pp
@@ -16,24 +16,24 @@
 #   (Optional) Availability zone for this share backend.
 #   If not set, the storage_availability_zone option value
 #   is used as the default for all backends.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*lvm_share_export_root*]
 #  (optional) Base folder where exported shares are located.
-#  Defaults to: $::os_service_default
+#  Defaults to: $facts['os_service_default']
 #
 # [*lvm_share_mirrors*]
 #  (optional) If set, create LVMs with multiple mirrors. Note that this requires
 #  lvm_mirrors + 2 PVs with available space.
-#  Defaults to: $::os_service_default
+#  Defaults to: $facts['os_service_default']
 
 # [*lvm_share_volume_group*]
 #  (optional) Name for the VG that will contain exported shares. (string value)
-#  Defaults to: $::os_service_default
+#  Defaults to: $facts['os_service_default']
 
 # [*lvm_share_helpers*]
 #  (optional) Specify list of share export helpers. (list value)
-#  Defaults to: $::os_service_default
+#  Defaults to: $facts['os_service_default']
 #
 # DEPRECATED PARAMETERS
 #
@@ -47,11 +47,11 @@
 define manila::backend::lvm (
   $lvm_share_export_ips,
   $share_backend_name           = $name,
-  $backend_availability_zone    = $::os_service_default,
-  $lvm_share_export_root        = $::os_service_default,
-  $lvm_share_mirrors            = $::os_service_default,
-  $lvm_share_volume_group       = $::os_service_default,
-  $lvm_share_helpers            = $::os_service_default,
+  $backend_availability_zone    = $facts['os_service_default'],
+  $lvm_share_export_root        = $facts['os_service_default'],
+  $lvm_share_mirrors            = $facts['os_service_default'],
+  $lvm_share_volume_group       = $facts['os_service_default'],
+  $lvm_share_helpers            = $facts['os_service_default'],
   # DEPRECATED PARAMETERS
   $driver_handles_share_servers = undef,
 ) {
diff --git a/manifests/backend/netapp.pp b/manifests/backend/netapp.pp
index d3238415..426edc69 100644
--- a/manifests/backend/netapp.pp
+++ b/manifests/backend/netapp.pp
@@ -30,71 +30,71 @@
 #   (Optional) Availability zone for this share backend.
 #   If not set, the storage_availability_zone option value
 #   is used as the default for all backends.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*netapp_transport_type*]
 #   (optional) The transport protocol used when communicating with
 #   the storage system or proxy server. Valid values are
 #   http or https.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*netapp_storage_family*]
 #   (optional) The storage family type used on the storage system; valid
 #   values are ontap_cluster for clustered Data ONTAP.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*netapp_server_port*]
 #   (optional) The TCP port to use for communication with the storage system
 #   or proxy server. If not specified, Data ONTAP drivers will use 80 for HTTP
 #   and 443 for HTTPS.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*netapp_volume_name_template*]
 #   (optional) NetApp volume name template.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*netapp_vserver*]
 #   (optional) This option specifies the storage virtual machine (previously
 #   called a Vserver) name on the storage cluster on which provisioning of
 #   shared file systems should occur. This option only applies
 #   when the option driver_handles_share_servers is set to False.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*netapp_vserver_name_template*]
 #   (optional) Name template to use for new vserver. This option only applies
 #   when the option driver_handles_share_servers is set to True.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*netapp_lif_name_template*]
 #   (optional) Logical interface (LIF) name template. This option only applies
 #   when the option driver_handles_share_servers is set to True.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*netapp_aggregate_name_search_pattern*]
 #   (optional) Pattern for searching available aggregates
 #   for provisioning.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*netapp_root_volume_aggregate*]
 #   (optional) Name of aggregate to create root volume on. This option only
 #   applies when the option driver_handles_share_servers is set to True.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*netapp_root_volume*]
 #   (optional) Root volume name. This option only applies when the option
 #   driver_handles_share_servers is set to True.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*netapp_port_name_search_pattern*]
 #   (optional) Pattern for overriding the selection of network ports on which
 #   to create Vserver LIFs.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*netapp_trace_flags*]
 #   (optional) This option is a comma-separated list of options (valid values
 #   include method and api) that controls which trace info is written to the
 #   Manila logs when the debug level is set to True.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*package_ensure*]
 #   (optional) Ensure state for package. Defaults to 'present'.
@@ -116,19 +116,19 @@ define manila::backend::netapp (
   $netapp_password,
   $netapp_server_hostname,
   $share_backend_name                   = $name,
-  $backend_availability_zone            = $::os_service_default,
-  $netapp_transport_type                = $::os_service_default,
-  $netapp_storage_family                = $::os_service_default,
-  $netapp_server_port                   = $::os_service_default,
-  $netapp_volume_name_template          = $::os_service_default,
-  $netapp_vserver                       = $::os_service_default,
-  $netapp_vserver_name_template         = $::os_service_default,
-  $netapp_lif_name_template             = $::os_service_default,
-  $netapp_aggregate_name_search_pattern = $::os_service_default,
-  $netapp_root_volume_aggregate         = $::os_service_default,
-  $netapp_root_volume                   = $::os_service_default,
-  $netapp_port_name_search_pattern      = $::os_service_default,
-  $netapp_trace_flags                   = $::os_service_default,
+  $backend_availability_zone            = $facts['os_service_default'],
+  $netapp_transport_type                = $facts['os_service_default'],
+  $netapp_storage_family                = $facts['os_service_default'],
+  $netapp_server_port                   = $facts['os_service_default'],
+  $netapp_volume_name_template          = $facts['os_service_default'],
+  $netapp_vserver                       = $facts['os_service_default'],
+  $netapp_vserver_name_template         = $facts['os_service_default'],
+  $netapp_lif_name_template             = $facts['os_service_default'],
+  $netapp_aggregate_name_search_pattern = $facts['os_service_default'],
+  $netapp_root_volume_aggregate         = $facts['os_service_default'],
+  $netapp_root_volume                   = $facts['os_service_default'],
+  $netapp_port_name_search_pattern      = $facts['os_service_default'],
+  $netapp_trace_flags                   = $facts['os_service_default'],
   $package_ensure                       = 'present',
 ) {
 
diff --git a/manifests/compute/nova.pp b/manifests/compute/nova.pp
index 8af6c855..6eafdbcd 100644
--- a/manifests/compute/nova.pp
+++ b/manifests/compute/nova.pp
@@ -6,11 +6,11 @@
 #
 # [*insecure*]
 #   (optional) Verify HTTPS connections
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*auth_url*]
 #   (optional) Authentication URL
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*auth_type*]
 #   (optional) Authentication type to load
@@ -19,7 +19,7 @@
 # [*cafile*]
 #   (optional) PEM encoded Certificate Authority to use when verifying HTTPS
 #   connections.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*user_domain_name*]
 #   (optional) User's domain name
@@ -35,16 +35,16 @@
 #
 # [*system_scope*]
 #   (optional) Scope for system operations.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*region_name*]
 #   (optional) Region name for connecting to nova
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*endpoint_type*]
 #   (optional) The type of nova endpoint to use when
 #   looking up in the keystone catalog.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*username*]
 #   (optional) Username
@@ -52,26 +52,26 @@
 #
 # [*password*]
 #   (optional) User's password
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*api_microversion*]
 #   (optional) Version of Nova API to be used
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 class manila::compute::nova (
-  $insecure                  = $::os_service_default,
-  $auth_url                  = $::os_service_default,
+  $insecure                  = $facts['os_service_default'],
+  $auth_url                  = $facts['os_service_default'],
   $auth_type                 = 'password',
-  $cafile                    = $::os_service_default,
+  $cafile                    = $facts['os_service_default'],
   $user_domain_name          = 'Default',
   $project_domain_name       = 'Default',
   $project_name              = 'services',
-  $system_scope              = $::os_service_default,
-  $region_name               = $::os_service_default,
-  $endpoint_type             = $::os_service_default,
+  $system_scope              = $facts['os_service_default'],
+  $region_name               = $facts['os_service_default'],
+  $endpoint_type             = $facts['os_service_default'],
   $username                  = 'nova',
-  $password                  = $::os_service_default,
-  $api_microversion          = $::os_service_default,
+  $password                  = $facts['os_service_default'],
+  $api_microversion          = $facts['os_service_default'],
 ) {
 
   include manila::deps
@@ -80,8 +80,8 @@ class manila::compute::nova (
     $project_name_real = $project_name
     $project_domain_name_real = $project_domain_name
   } else {
-    $project_name_real = $::os_service_default
-    $project_domain_name_real = $::os_service_default
+    $project_name_real = $facts['os_service_default']
+    $project_domain_name_real = $facts['os_service_default']
   }
 
   manila_config {
diff --git a/manifests/coordination.pp b/manifests/coordination.pp
index e94ea0e5..2dfa4760 100644
--- a/manifests/coordination.pp
+++ b/manifests/coordination.pp
@@ -6,10 +6,10 @@
 #
 # [*backend_url*]
 #   (Optional) Coordination backend URL.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 class manila::coordination (
-  $backend_url = $::os_service_default,
+  $backend_url = $facts['os_service_default'],
 ) {
 
   include manila::deps
diff --git a/manifests/cors.pp b/manifests/cors.pp
index 69c3e27f..b957b17d 100644
--- a/manifests/cors.pp
+++ b/manifests/cors.pp
@@ -8,41 +8,41 @@
 #   (Optional) Indicate whether this resource may be shared with the domain
 #   received in the requests "origin" header.
 #   (string value)
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*allow_credentials*]
 #   (Optional) Indicate that the actual request can include user credentials.
 #   (boolean value)
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*expose_headers*]
 #   (Optional) Indicate which headers are safe to expose to the API.
 #   (list value)
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*max_age*]
 #   (Optional) Maximum cache age of CORS preflight requests.
 #   (integer value)
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*allow_methods*]
 #   (Optional) Indicate which methods can be used during the actual request.
 #   (list value)
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*allow_headers*]
 #   (Optional) Indicate which header field names may be used during the actual
 #   request.
 #   (list value)
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 class manila::cors (
-  $allowed_origin    = $::os_service_default,
-  $allow_credentials = $::os_service_default,
-  $expose_headers    = $::os_service_default,
-  $max_age           = $::os_service_default,
-  $allow_methods     = $::os_service_default,
-  $allow_headers     = $::os_service_default,
+  $allowed_origin    = $facts['os_service_default'],
+  $allow_credentials = $facts['os_service_default'],
+  $expose_headers    = $facts['os_service_default'],
+  $max_age           = $facts['os_service_default'],
+  $allow_methods     = $facts['os_service_default'],
+  $allow_headers     = $facts['os_service_default'],
 ) {
 
   include manila::deps
diff --git a/manifests/data.pp b/manifests/data.pp
index 7342b307..c1dc76a7 100644
--- a/manifests/data.pp
+++ b/manifests/data.pp
@@ -18,19 +18,19 @@
 #
 # [*mount_tmp_location*]
 #   (Optional) Temporary path to create and mount shares during migration.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*check_hash*]
 #   (Optional) Chooses whether hash of each file should be checked on data
 #   copying.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 class manila::data (
   $package_ensure     = 'present',
   $enabled            = true,
   $manage_service     = true,
-  $mount_tmp_location = $::os_service_default,
-  $check_hash         = $::os_service_default,
+  $mount_tmp_location = $facts['os_service_default'],
+  $check_hash         = $facts['os_service_default'],
 ) {
 
   include manila::deps
diff --git a/manifests/db.pp b/manifests/db.pp
index a506a30f..b85afb8c 100644
--- a/manifests/db.pp
+++ b/manifests/db.pp
@@ -10,49 +10,49 @@
 #
 # [*database_connection_recycle_time*]
 #   Timeout when db connections should be reaped.
-#   (Optional) Defaults to $::os_service_default
+#   (Optional) Defaults to $facts['os_service_default']
 #
 # [*database_max_pool_size*]
 #   Maximum number of SQL connections to keep open in a pool.
-#   (Optional) Defaults to $::os_service_default
+#   (Optional) Defaults to $facts['os_service_default']
 #
 # [*database_max_retries*]
 #   Maximum db connection retries during startup.
 #   Setting -1 implies an infinite retry count.
-#   (Optional) Defaults to $::os_service_default
+#   (Optional) Defaults to $facts['os_service_default']
 #
 # [*database_retry_interval*]
 #   Interval between retries of opening a sql connection.
-#   (Optional) Defaults to $::os_service_default
+#   (Optional) Defaults to $facts['os_service_default']
 #
 # [*database_max_overflow*]
 #   If set, use this value for max_overflow with sqlalchemy.
-#   (Optional) Defaults to $::os_service_default
+#   (Optional) Defaults to $facts['os_service_default']
 #
 # [*database_pool_timeout*]
 #   (Optional) If set, use this value for pool_timeout with SQLAlchemy.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*mysql_enable_ndb*]
 #   (Optional) If True, transparently enables support for handling MySQL
 #   Cluster (NDB).
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*database_db_max_retries*]
 #   (optional) Maximum retries in case of connection error or deadlock error
 #   before error is raised. Set to -1 to specify an infinite retry count.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 class manila::db (
   $database_connection              = 'sqlite:////var/lib/manila/manila.sqlite',
-  $database_connection_recycle_time = $::os_service_default,
-  $database_max_pool_size           = $::os_service_default,
-  $database_max_retries             = $::os_service_default,
-  $database_retry_interval          = $::os_service_default,
-  $database_max_overflow            = $::os_service_default,
-  $database_pool_timeout            = $::os_service_default,
-  $mysql_enable_ndb                 = $::os_service_default,
-  $database_db_max_retries          = $::os_service_default,
+  $database_connection_recycle_time = $facts['os_service_default'],
+  $database_max_pool_size           = $facts['os_service_default'],
+  $database_max_retries             = $facts['os_service_default'],
+  $database_retry_interval          = $facts['os_service_default'],
+  $database_max_overflow            = $facts['os_service_default'],
+  $database_pool_timeout            = $facts['os_service_default'],
+  $mysql_enable_ndb                 = $facts['os_service_default'],
+  $database_db_max_retries          = $facts['os_service_default'],
 ) {
 
   include manila::deps
diff --git a/manifests/ganesha.pp b/manifests/ganesha.pp
index 2492d36d..2f5e4cb3 100644
--- a/manifests/ganesha.pp
+++ b/manifests/ganesha.pp
@@ -6,37 +6,37 @@
 # === Parameters
 # [*ganesha_config_dir*]
 #   (optional) Directory where Ganesha config files are stored.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*ganesha_config_path*]
 #   (optional) Path to main Ganesha config file.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*ganesha_service_name*]
 #   (optional) Name of the ganesha nfs service.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*ganesha_db_path*]
 #   (optional) Location of Ganesha database file (Ganesha module only).
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*ganesha_export_dir*]
 #   (optional) Path to directory containing Ganesha export configuration.
 #   (Ganesha module only.)
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*ganesha_export_template_dir*]
 #   (optional) Path to directory containing Ganesha export block templates.
 #   (Ganesha module only.)
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 class manila::ganesha (
-  $ganesha_config_dir          = $::os_service_default,
-  $ganesha_config_path         = $::os_service_default,
-  $ganesha_service_name        = $::os_service_default,
-  $ganesha_db_path             = $::os_service_default,
-  $ganesha_export_dir          = $::os_service_default,
-  $ganesha_export_template_dir = $::os_service_default,
+  $ganesha_config_dir          = $facts['os_service_default'],
+  $ganesha_config_path         = $facts['os_service_default'],
+  $ganesha_service_name        = $facts['os_service_default'],
+  $ganesha_db_path             = $facts['os_service_default'],
+  $ganesha_export_dir          = $facts['os_service_default'],
+  $ganesha_export_template_dir = $facts['os_service_default'],
 ) {
 
   include manila::deps
diff --git a/manifests/healthcheck.pp b/manifests/healthcheck.pp
index d8362a3d..d0d52e5f 100644
--- a/manifests/healthcheck.pp
+++ b/manifests/healthcheck.pp
@@ -6,28 +6,28 @@
 #
 # [*detailed*]
 #   (Optional) Show more detailed information as part of the response.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*backends*]
 #   (Optional) Additional backends that can perform health checks and report
 #   that information back as part of a request.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*disable_by_file_path*]
 #   (Optional) Check the presence of a file to determine if an application
 #   is running on a port.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*disable_by_file_paths*]
 #   (Optional) Check the presence of a file to determine if an application
 #   is running on a port. Expects a "port:path" list of strings.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 class manila::healthcheck (
-  $detailed              = $::os_service_default,
-  $backends              = $::os_service_default,
-  $disable_by_file_path  = $::os_service_default,
-  $disable_by_file_paths = $::os_service_default,
+  $detailed              = $facts['os_service_default'],
+  $backends              = $facts['os_service_default'],
+  $disable_by_file_path  = $facts['os_service_default'],
+  $disable_by_file_paths = $facts['os_service_default'],
 ) {
 
   include manila::deps
diff --git a/manifests/image/glance.pp b/manifests/image/glance.pp
index 0c1b63c2..65907881 100644
--- a/manifests/image/glance.pp
+++ b/manifests/image/glance.pp
@@ -6,15 +6,15 @@
 #
 # [*api_microversion*]
 #   (optional) Version of Glance API to be used
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*insecure*]
 #   (optional) Verify HTTPS connections
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*auth_url*]
 #   (optional) Authentication URL
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*auth_type*]
 #   (optional) Authentication type to load
@@ -23,15 +23,15 @@
 # [*cafile*]
 #   (optional) Path to PEM encoded Certificate Authority to use when verifying
 #   HTTPS connections.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*certfile*]
 #   (optional) Path to PEM encoded client certificate cert file.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*keyfile*]
 #   (optional) Path to PEM encoded client certificate key file.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*user_domain_name*]
 #   (optional) User's domain name
@@ -47,16 +47,16 @@
 #
 # [*system_scope*]
 #   (optional) Scope for system operations.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*region_name*]
 #   (optional) Region name for connecting to cinder
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*endpoint_type*]
 #   (optional) The type of cinder endpoint to use when
 #   looking up in the keystone catalog.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*username*]
 #   (optional) Username
@@ -64,24 +64,24 @@
 #
 # [*password*]
 #   (optional) User's password
-#   Defaults to $::os_service_default,
+#   Defaults to $facts['os_service_default'],
 #
 class manila::image::glance (
-  $api_microversion            = $::os_service_default,
-  $insecure                    = $::os_service_default,
-  $auth_url                    = $::os_service_default,
+  $api_microversion            = $facts['os_service_default'],
+  $insecure                    = $facts['os_service_default'],
+  $auth_url                    = $facts['os_service_default'],
   $auth_type                   = 'password',
-  $cafile                      = $::os_service_default,
-  $certfile                    = $::os_service_default,
-  $keyfile                     = $::os_service_default,
+  $cafile                      = $facts['os_service_default'],
+  $certfile                    = $facts['os_service_default'],
+  $keyfile                     = $facts['os_service_default'],
   $user_domain_name            = 'Default',
   $project_domain_name         = 'Default',
   $project_name                = 'services',
-  $system_scope                = $::os_service_default,
-  $region_name                 = $::os_service_default,
-  $endpoint_type               = $::os_service_default,
+  $system_scope                = $facts['os_service_default'],
+  $region_name                 = $facts['os_service_default'],
+  $endpoint_type               = $facts['os_service_default'],
   $username                    = 'glance',
-  $password                    = $::os_service_default,
+  $password                    = $facts['os_service_default'],
 ) {
 
   include manila::deps
@@ -90,8 +90,8 @@ class manila::image::glance (
     $project_name_real = $project_name
     $project_domain_name_real = $project_domain_name
   } else {
-    $project_name_real = $::os_service_default
-    $project_domain_name_real = $::os_service_default
+    $project_name_real = $facts['os_service_default']
+    $project_domain_name_real = $facts['os_service_default']
   }
 
   manila_config {
diff --git a/manifests/init.pp b/manifests/init.pp
index de74e52e..b147e447 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -10,15 +10,15 @@
 #    (optional) A URL representing the messaging driver to use and its full
 #    configuration. Transport URLs take the form:
 #      transport://user:pass@host1:port[,hostN:portN]/virtual_host
-#    Defaults to $::os_service_default
+#    Defaults to $facts['os_service_default']
 #
 # [*rpc_response_timeout*]
 #  (Optional) Seconds to wait for a response from a call.
-#  Defaults to $::os_service_default
+#  Defaults to $facts['os_service_default']
 #
 # [*control_exchange*]
 #   (Optional) The default exchange under which topics are scope.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*package_ensure*]
 #    (Optional) Ensure state for package.
@@ -29,12 +29,12 @@
 #   notifications and its full configuration. Transport URLs
 #   take the form:
 #      transport://user:pass@host1:port[,hostN:portN]/virtual_host
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*notification_topics*]
 #   (optional) AMQP topics to publish to when using the RPC notification driver.
 #   (list value)
-#   Default to $::os_service_default
+#   Default to $facts['os_service_default']
 #
 # [*notification_driver*]
 #   (optional) Driver or drivers to handle sending notifications.
@@ -42,39 +42,39 @@
 #
 # [*rabbit_ha_queues*]
 #   (optional) Use HA queues in RabbitMQ (x-ha-policy: all).
-#   Defaults to  $::os_service_default.
+#   Defaults to  $facts['os_service_default'].
 #
 # [*rabbit_use_ssl*]
 #   (Optional) Connect over SSL for RabbitMQ.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*kombu_ssl_ca_certs*]
 #   (optional) SSL certification authority file (valid only if SSL enabled).
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*kombu_ssl_certfile*]
 #   (optional) SSL cert file (valid only if SSL enabled).
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*kombu_ssl_keyfile*]
 #   (optional) SSL key file (valid only if SSL enabled).
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*kombu_ssl_version*]
 #   (optional) SSL version to use (valid only if SSL enabled).
 #   Valid values are TLSv1, SSLv23 and SSLv3. SSLv2 may be
 #   available on some distributions.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*kombu_failover_strategy*]
 #   (Optional) Determines how the next RabbitMQ node is chosen in case the one
 #   we are currently connected to becomes unavailable. Takes effect only if
 #   more than one RabbitMQ node is provided in config. (string value)
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*amqp_durable_queues*]
 #   (optional) Use durable queues in amqp.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*use_ssl*]
 #   (optional) Enable SSL on the API server
@@ -133,39 +133,39 @@
 #
 # [*amqp_ssl_ca_file*]
 #   (optional) CA certificate PEM file to verify server certificate
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*amqp_ssl_cert_file*]
 #   (optional) Identifying certificate PEM file to present to clients
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*amqp_ssl_key_file*]
 #   (optional) Private key PEM file used to sign cert_file certificate
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*amqp_ssl_key_password*]
 #   (optional) Password for decrypting ssl_key_file (if encrypted)
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*amqp_sasl_mechanisms*]
 #   (Optional) Space separated list of acceptable SASL mechanisms
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*amqp_sasl_config_dir*]
 #   (Optional) Path to directory that contains the SASL configuration
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*amqp_sasl_config_name*]
 #   (Optional) Name of configuration file (without .conf suffix)
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*amqp_username*]
 #   (Optional) User name for message broker authentication
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*amqp_password*]
 #   (Optional) Password for message broker authentication
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*purge_config*]
 #   (optional) Whether to set only the specified config options
@@ -175,7 +175,7 @@
 # [*host*]
 #   (optional) Name of this node. This can be an opaque identifier. It is
 #   not necessarily a host name, FQDN, or IP address.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*rabbit_heartbeat_in_pthread*]
 #   (Optional) EXPERIMENTAL: Run the health check heartbeat thread
@@ -185,37 +185,37 @@
 #   example if the parent process have monkey patched the
 #   stdlib by using eventlet/greenlet then the heartbeat
 #   will be run through a green thread.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*report_interval*]
 #   (optional) Seconds between nodes reporting state to datastore.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*periodic_interval*]
 #   (optional) Seconds between running periodic tasks.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*periodic_fuzzy_delay*]
 #   (optional) Range of seconds to randomly delay when starting the periodic
 #   task scheduler to reduce stampeding.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 class manila (
-  $default_transport_url       = $::os_service_default,
-  $rpc_response_timeout        = $::os_service_default,
-  $control_exchange            = $::os_service_default,
-  $notification_transport_url  = $::os_service_default,
+  $default_transport_url       = $facts['os_service_default'],
+  $rpc_response_timeout        = $facts['os_service_default'],
+  $control_exchange            = $facts['os_service_default'],
+  $notification_transport_url  = $facts['os_service_default'],
   $notification_driver         = 'messaging',
-  $notification_topics         = $::os_service_default,
-  $rabbit_ha_queues            = $::os_service_default,
-  $rabbit_use_ssl              = $::os_service_default,
-  $kombu_ssl_ca_certs          = $::os_service_default,
-  $kombu_ssl_certfile          = $::os_service_default,
-  $kombu_ssl_keyfile           = $::os_service_default,
-  $kombu_ssl_version           = $::os_service_default,
-  $kombu_failover_strategy     = $::os_service_default,
-  $amqp_durable_queues         = $::os_service_default,
-  $rabbit_heartbeat_in_pthread = $::os_service_default,
+  $notification_topics         = $facts['os_service_default'],
+  $rabbit_ha_queues            = $facts['os_service_default'],
+  $rabbit_use_ssl              = $facts['os_service_default'],
+  $kombu_ssl_ca_certs          = $facts['os_service_default'],
+  $kombu_ssl_certfile          = $facts['os_service_default'],
+  $kombu_ssl_keyfile           = $facts['os_service_default'],
+  $kombu_ssl_version           = $facts['os_service_default'],
+  $kombu_failover_strategy     = $facts['os_service_default'],
+  $amqp_durable_queues         = $facts['os_service_default'],
+  $rabbit_heartbeat_in_pthread = $facts['os_service_default'],
   $package_ensure              = 'present',
   $use_ssl                     = false,
   $ca_file                     = false,
@@ -232,20 +232,20 @@ class manila (
   $amqp_container_name         = 'guest',
   $amqp_idle_timeout           = '0',
   $amqp_trace                  = false,
-  $amqp_ssl_ca_file            = $::os_service_default,
-  $amqp_ssl_cert_file          = $::os_service_default,
-  $amqp_ssl_key_file           = $::os_service_default,
-  $amqp_ssl_key_password       = $::os_service_default,
-  $amqp_sasl_mechanisms        = $::os_service_default,
-  $amqp_sasl_config_dir        = $::os_service_default,
-  $amqp_sasl_config_name       = $::os_service_default,
-  $amqp_username               = $::os_service_default,
-  $amqp_password               = $::os_service_default,
+  $amqp_ssl_ca_file            = $facts['os_service_default'],
+  $amqp_ssl_cert_file          = $facts['os_service_default'],
+  $amqp_ssl_key_file           = $facts['os_service_default'],
+  $amqp_ssl_key_password       = $facts['os_service_default'],
+  $amqp_sasl_mechanisms        = $facts['os_service_default'],
+  $amqp_sasl_config_dir        = $facts['os_service_default'],
+  $amqp_sasl_config_name       = $facts['os_service_default'],
+  $amqp_username               = $facts['os_service_default'],
+  $amqp_password               = $facts['os_service_default'],
   $purge_config                = false,
-  $host                        = $::os_service_default,
-  $report_interval             = $::os_service_default,
-  $periodic_interval           = $::os_service_default,
-  $periodic_fuzzy_delay        = $::os_service_default,
+  $host                        = $facts['os_service_default'],
+  $report_interval             = $facts['os_service_default'],
+  $periodic_interval           = $facts['os_service_default'],
+  $periodic_fuzzy_delay        = $facts['os_service_default'],
 ) inherits manila::params {
 
   include manila::deps
diff --git a/manifests/keystone/authtoken.pp b/manifests/keystone/authtoken.pp
index 95f8044d..b126ca94 100644
--- a/manifests/keystone/authtoken.pp
+++ b/manifests/keystone/authtoken.pp
@@ -6,7 +6,7 @@
 #
 # [*password*]
 #   (Optional) Password to create for the service user
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*username*]
 #   (Optional) The name of the service user
@@ -30,17 +30,17 @@
 #
 # [*system_scope*]
 #   (Optional) Scope for system operations
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*insecure*]
 #   (Optional) If true, explicitly allow TLS without checking server cert
 #   against any certificate authorities.  WARNING: not recommended.  Use with
 #   caution.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*auth_section*]
 #   (Optional) Config Section from which to load plugin specific options
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*auth_type*]
 #   (Optional) Authentication type to load
@@ -52,26 +52,26 @@
 #
 # [*auth_version*]
 #   (Optional) API version of the admin Identity API endpoint.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*cache*]
 #   (Optional) Env key for the swift cache.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*cafile*]
 #   (Optional) A PEM encoded Certificate Authority to use when verifying HTTPs
 #   connections.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*certfile*]
 #   (Optional) Required if identity server requires client certificate
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*delay_auth_decision*]
 #   (Optional) Do not handle authorization requests within the middleware, but
 #   delegate the authorization decision to downstream WSGI components. Boolean
 #   value
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*enforce_token_bind*]
 #   (Optional) Used to control the use and type of token binding. Can be set
@@ -81,57 +81,57 @@
 #   type is unknown the token will be rejected. "required" any form of token
 #   binding is needed to be allowed. Finally the name of a binding method that
 #   must be present in tokens. String value.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*http_connect_timeout*]
 #   (Optional) Request timeout value for communicating with Identity API
 #   server.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*http_request_max_retries*]
 #   (Optional) How many times are we trying to reconnect when communicating
 #   with Identity API Server. Integer value
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*include_service_catalog*]
 #   (Optional) Indicate whether to set the X-Service-Catalog header. If False,
 #   middleware will not ask for service catalog on token validation and will
 #   not set the X-Service-Catalog header. Boolean value.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*keyfile*]
 #   (Optional) Required if identity server requires client certificate
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*memcache_pool_conn_get_timeout*]
 #   (Optional) Number of seconds that an operation will wait to get a memcached
 #   client connection from the pool. Integer value
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*memcache_pool_dead_retry*]
 #   (Optional) Number of seconds memcached server is considered dead before it
 #   is tried again. Integer value
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*memcache_pool_maxsize*]
 #   (Optional) Maximum total number of open connections to every memcached
 #   server. Integer value
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*memcache_pool_socket_timeout*]
 #   (Optional) Number of seconds a connection to memcached is held unused in
 #   the pool before it is closed. Integer value
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*memcache_pool_unused_timeout*]
 #   (Optional) Number of seconds a connection to memcached is held unused in
 #   the pool before it is closed. Integer value
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*memcache_secret_key*]
 #   (Optional, mandatory if memcache_security_strategy is defined) This string
 #   is used for key derivation.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*memcache_security_strategy*]
 #   (Optional) If defined, indicate whether token data should be authenticated
@@ -139,17 +139,17 @@
 #   HMAC) in the cache. If ENCRYPT, token data is encrypted and authenticated in the
 #   cache. If the value is not one of these options or empty, auth_token will
 #   raise an exception on initialization.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*memcache_use_advanced_pool*]
 #   (Optional)  Use the advanced (eventlet safe) memcached client pool. The
 #   advanced pool will only work under python 2.x Boolean value
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*memcached_servers*]
 #   (Optional) Optionally specify a list of memcached server(s) to use for
 #   caching. If left undefined, tokens will instead be cached in-process.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*manage_memcache_package*]
 #  (Optional) Whether to install the python-memcache package.
@@ -157,13 +157,13 @@
 #
 # [*region_name*]
 #   (Optional) The region in which the identity server can be found.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*token_cache_time*]
 #   (Optional) In order to prevent excessive effort spent validating tokens,
 #   the middleware caches previously-seen tokens for a configurable duration
 #   (in seconds). Set to -1 to disable caching completely. Integer value
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*service_token_roles*]
 #   (Optional) A choice of roles that must be present in a service token.
@@ -173,66 +173,66 @@
 #   here are applied as an ANY check so any role in this list
 #   must be present. For backwards compatibility reasons this
 #   currently only affects the allow_expired check. (list value)
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*service_token_roles_required*]
 #   (optional) backwards compatibility to ensure that the service tokens are
 #   compared against a list of possible roles for validity
 #   true/false
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*service_type*]
 #  (Optional) The name or type of the service as it appears in the service
 #  catalog. This is used to validate tokens that have restricted access rules.
-#  Defaults to $::os_service_default.
+#  Defaults to $facts['os_service_default'].
 #
 # [*interface*]
 #  (Optional) Interface to use for the Identity API endpoint. Valid values are
 #  "public", "internal" or "admin".
-#  Defaults to $::os_service_default.
+#  Defaults to $facts['os_service_default'].
 #
 # [*params*]
 #  (Optional) Hash of additional parameters to pass through to the keystone
 #  authtoken class. Values set here override the individual parameters above.
 #
 class manila::keystone::authtoken(
-  $password                       = $::os_service_default,
+  $password                       = $facts['os_service_default'],
   $username                       = 'manila',
   $auth_url                       = 'http://localhost:5000',
   $project_name                   = 'services',
   $user_domain_name               = 'Default',
   $project_domain_name            = 'Default',
-  $system_scope                   = $::os_service_default,
-  $insecure                       = $::os_service_default,
-  $auth_section                   = $::os_service_default,
+  $system_scope                   = $facts['os_service_default'],
+  $insecure                       = $facts['os_service_default'],
+  $auth_section                   = $facts['os_service_default'],
   $auth_type                      = 'password',
   $www_authenticate_uri           = 'http://localhost:5000',
-  $auth_version                   = $::os_service_default,
-  $cache                          = $::os_service_default,
-  $cafile                         = $::os_service_default,
-  $certfile                       = $::os_service_default,
-  $delay_auth_decision            = $::os_service_default,
-  $enforce_token_bind             = $::os_service_default,
-  $http_connect_timeout           = $::os_service_default,
-  $http_request_max_retries       = $::os_service_default,
-  $include_service_catalog        = $::os_service_default,
-  $keyfile                        = $::os_service_default,
-  $memcache_pool_conn_get_timeout = $::os_service_default,
-  $memcache_pool_dead_retry       = $::os_service_default,
-  $memcache_pool_maxsize          = $::os_service_default,
-  $memcache_pool_socket_timeout   = $::os_service_default,
-  $memcache_pool_unused_timeout   = $::os_service_default,
-  $memcache_secret_key            = $::os_service_default,
-  $memcache_security_strategy     = $::os_service_default,
-  $memcache_use_advanced_pool     = $::os_service_default,
-  $memcached_servers              = $::os_service_default,
+  $auth_version                   = $facts['os_service_default'],
+  $cache                          = $facts['os_service_default'],
+  $cafile                         = $facts['os_service_default'],
+  $certfile                       = $facts['os_service_default'],
+  $delay_auth_decision            = $facts['os_service_default'],
+  $enforce_token_bind             = $facts['os_service_default'],
+  $http_connect_timeout           = $facts['os_service_default'],
+  $http_request_max_retries       = $facts['os_service_default'],
+  $include_service_catalog        = $facts['os_service_default'],
+  $keyfile                        = $facts['os_service_default'],
+  $memcache_pool_conn_get_timeout = $facts['os_service_default'],
+  $memcache_pool_dead_retry       = $facts['os_service_default'],
+  $memcache_pool_maxsize          = $facts['os_service_default'],
+  $memcache_pool_socket_timeout   = $facts['os_service_default'],
+  $memcache_pool_unused_timeout   = $facts['os_service_default'],
+  $memcache_secret_key            = $facts['os_service_default'],
+  $memcache_security_strategy     = $facts['os_service_default'],
+  $memcache_use_advanced_pool     = $facts['os_service_default'],
+  $memcached_servers              = $facts['os_service_default'],
   $manage_memcache_package        = false,
-  $region_name                    = $::os_service_default,
-  $token_cache_time               = $::os_service_default,
-  $service_token_roles            = $::os_service_default,
-  $service_token_roles_required   = $::os_service_default,
-  $service_type                   = $::os_service_default,
-  $interface                      = $::os_service_default,
+  $region_name                    = $facts['os_service_default'],
+  $token_cache_time               = $facts['os_service_default'],
+  $service_token_roles            = $facts['os_service_default'],
+  $service_token_roles_required   = $facts['os_service_default'],
+  $service_type                   = $facts['os_service_default'],
+  $interface                      = $facts['os_service_default'],
   $params                         = {}
 ) {
 
diff --git a/manifests/logging.pp b/manifests/logging.pp
index fb7bdaf4..ae3852cd 100644
--- a/manifests/logging.pp
+++ b/manifests/logging.pp
@@ -6,71 +6,71 @@
 #
 # [*debug*]
 #   (Optional) Should the daemons log debug messages
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*use_syslog*]
 #   (Optional) Use syslog for logging.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*use_json*]
 #   (Optional) Use json for logging.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*use_journal*]
 #   (Optional) Use journal for logging.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*use_stderr*]
 #   (Optional) Use stderr for logging
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*log_facility*]
 #   (Optional) Syslog facility to receive log lines.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*log_dir*]
 #   (Optional) Directory where logs should be stored.
-#   If set to $::os_service_default, it will not log to any directory.
+#   If set to $facts['os_service_default'], it will not log to any directory.
 #   Defaults to '/var/log/manila'
 #
 # [*log_file*]
 #   (Optional) File where logs should be stored.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*watch_log_file*]
 #   (Optional) Uses logging handler designed to watch file system (boolean value).
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*logging_context_format_string*]
 #   (Optional) Format string to use for log messages with context.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #   Example: '%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s\
 #             [%(request_id)s %(user_identity)s] %(instance)s%(message)s'
 #
 # [*logging_default_format_string*]
 #   (Optional) Format string to use for log messages without context.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #   Example: '%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s\
 #             [-] %(instance)s%(message)s'
 #
 # [*logging_debug_format_suffix*]
 #   (Optional) Formatted data to append to log format when level is DEBUG.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #   Example: '%(funcName)s %(pathname)s:%(lineno)d'
 #
 # [*logging_exception_prefix*]
 #   (Optional) Prefix each line of exception output with this format.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #   Example: '%(asctime)s.%(msecs)03d %(process)d TRACE %(name)s %(instance)s'
 #
 # [*log_config_append*]
 #   (Optional) The name of an additional logging configuration file.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #   See https://docs.python.org/2/howto/logging.html
 #
 # [*default_log_levels*]
 #   (Optional) Hash of logger (keys) and level (values) pairs.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #   Example:
 #     { 'amqp' => 'WARN', 'amqplib' => 'WARN', 'boto' => 'WARN',
 #       'sqlalchemy' => 'WARN', 'suds' => 'INFO', 'iso8601' => 'WARN',
@@ -78,50 +78,50 @@
 #
 # [*publish_errors*]
 #   (Optional) Publish error events (boolean value).
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*fatal_deprecations*]
 #   (Optional) Make deprecations fatal (boolean value)
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*instance_format*]
 #   (Optional) If an instance is passed with the log message, format it
 #              like this (string value).
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #   Example: '[instance: %(uuid)s] '
 #
 # [*instance_uuid_format*]
 #   (Optional) If an instance UUID is passed with the log message, format
 #              it like this (string value).
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #   Example: instance_uuid_format='[instance: %(uuid)s] '
 #
 # [*log_date_format*]
 #   (Optional) Format string for %%(asctime)s in log records.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #   Example: 'Y-%m-%d %H:%M:%S'
 #
 class manila::logging(
-  $use_syslog                    = $::os_service_default,
-  $use_json                      = $::os_service_default,
-  $use_journal                   = $::os_service_default,
-  $use_stderr                    = $::os_service_default,
-  $log_facility                  = $::os_service_default,
+  $use_syslog                    = $facts['os_service_default'],
+  $use_json                      = $facts['os_service_default'],
+  $use_journal                   = $facts['os_service_default'],
+  $use_stderr                    = $facts['os_service_default'],
+  $log_facility                  = $facts['os_service_default'],
   $log_dir                       = '/var/log/manila',
-  $log_file                      = $::os_service_default,
-  $watch_log_file                = $::os_service_default,
-  $debug                         = $::os_service_default,
-  $logging_context_format_string = $::os_service_default,
-  $logging_default_format_string = $::os_service_default,
-  $logging_debug_format_suffix   = $::os_service_default,
-  $logging_exception_prefix      = $::os_service_default,
-  $log_config_append             = $::os_service_default,
-  $default_log_levels            = $::os_service_default,
-  $publish_errors                = $::os_service_default,
-  $fatal_deprecations            = $::os_service_default,
-  $instance_format               = $::os_service_default,
-  $instance_uuid_format          = $::os_service_default,
-  $log_date_format               = $::os_service_default,
+  $log_file                      = $facts['os_service_default'],
+  $watch_log_file                = $facts['os_service_default'],
+  $debug                         = $facts['os_service_default'],
+  $logging_context_format_string = $facts['os_service_default'],
+  $logging_default_format_string = $facts['os_service_default'],
+  $logging_debug_format_suffix   = $facts['os_service_default'],
+  $logging_exception_prefix      = $facts['os_service_default'],
+  $log_config_append             = $facts['os_service_default'],
+  $default_log_levels            = $facts['os_service_default'],
+  $publish_errors                = $facts['os_service_default'],
+  $fatal_deprecations            = $facts['os_service_default'],
+  $instance_format               = $facts['os_service_default'],
+  $instance_uuid_format          = $facts['os_service_default'],
+  $log_date_format               = $facts['os_service_default'],
 ) {
 
   include manila::deps
diff --git a/manifests/network/neutron.pp b/manifests/network/neutron.pp
index c761e1ae..a6283703 100644
--- a/manifests/network/neutron.pp
+++ b/manifests/network/neutron.pp
@@ -6,11 +6,11 @@
 #
 # [*insecure*]
 #   (optional) Verify HTTPS connections
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*auth_url*]
 #   (optional) Authentication URL
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*auth_type*]
 #   (optional) Authentication type to load
@@ -19,7 +19,7 @@
 # [*cafile*]
 #   (optional) PEM encoded Certificate Authority to use when verifying HTTPS
 #   connections.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*user_domain_name*]
 #   (optional) User's domain name
@@ -35,20 +35,20 @@
 #
 # [*system_scope*]
 #   (optional) Scope for system operations.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*region_name*]
 #   (optional) Region name for connecting to neutron
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*timeout*]
 #   (optional) Timeout value for http requests
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*endpoint_type*]
 #   (optional) The type of neutron endpoint to use when
 #   looking up in the keystone catalog.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*username*]
 #   (optional) Username
@@ -56,32 +56,32 @@
 #
 # [*password*]
 #   (optional) User's password
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*network_plugin_ipv4_enabled*]
 #   (optional) Whether to support Ipv4 network resource
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*network_plugin_ipv6_enabled*]
 #   (optional) whether to support IPv6 network resource
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 class manila::network::neutron (
-  $insecure                     = $::os_service_default,
-  $auth_url                     = $::os_service_default,
+  $insecure                     = $facts['os_service_default'],
+  $auth_url                     = $facts['os_service_default'],
   $auth_type                    = 'password',
-  $cafile                       = $::os_service_default,
+  $cafile                       = $facts['os_service_default'],
   $user_domain_name             = 'Default',
   $project_domain_name          = 'Default',
   $project_name                 = 'services',
-  $system_scope                 = $::os_service_default,
-  $region_name                  = $::os_service_default,
-  $timeout                      = $::os_service_default,
-  $endpoint_type                = $::os_service_default,
+  $system_scope                 = $facts['os_service_default'],
+  $region_name                  = $facts['os_service_default'],
+  $timeout                      = $facts['os_service_default'],
+  $endpoint_type                = $facts['os_service_default'],
   $username                     = 'neutron',
-  $password                     = $::os_service_default,
-  $network_plugin_ipv4_enabled  = $::os_service_default,
-  $network_plugin_ipv6_enabled  = $::os_service_default,
+  $password                     = $facts['os_service_default'],
+  $network_plugin_ipv4_enabled  = $facts['os_service_default'],
+  $network_plugin_ipv6_enabled  = $facts['os_service_default'],
 ) {
 
   include manila::deps
@@ -90,8 +90,8 @@ class manila::network::neutron (
     $project_name_real = $project_name
     $project_domain_name_real = $project_domain_name
   } else {
-    $project_name_real = $::os_service_default
-    $project_domain_name_real = $::os_service_default
+    $project_name_real = $facts['os_service_default']
+    $project_domain_name_real = $facts['os_service_default']
   }
 
   manila_config {
diff --git a/manifests/network/neutron_single_network.pp b/manifests/network/neutron_single_network.pp
index 53e46f88..2516f34e 100644
--- a/manifests/network/neutron_single_network.pp
+++ b/manifests/network/neutron_single_network.pp
@@ -17,17 +17,17 @@
 #
 # [*network_plugin_ipv4_enabled*]
 # (optional) Whether to support Ipv4 network resource.
-# Defaults to $::os_service_default.
+# Defaults to $facts['os_service_default'].
 #
 # [*network_plugin_ipv6_enabled*]
 # (optional) whether to support IPv6 network resource.
-# Defaults to $::os_service_default.
+# Defaults to $facts['os_service_default'].
 #
 define manila::network::neutron_single_network (
   $neutron_net_id,
   $neutron_subnet_id,
-  $network_plugin_ipv4_enabled = $::os_service_default,
-  $network_plugin_ipv6_enabled = $::os_service_default,
+  $network_plugin_ipv4_enabled = $facts['os_service_default'],
+  $network_plugin_ipv6_enabled = $facts['os_service_default'],
 ) {
 
   $neutron_single_plugin_name = 'manila.network.neutron.neutron_network_plugin.NeutronSingleNetworkPlugin'
diff --git a/manifests/network/standalone.pp b/manifests/network/standalone.pp
index fe99d8a2..692d5ad7 100644
--- a/manifests/network/standalone.pp
+++ b/manifests/network/standalone.pp
@@ -16,7 +16,7 @@
 # It will be assigned to share-network and share drivers will be
 # able to use this for network interfaces within provisioned
 # share servers. Optional. Example: 1001
-# Defaults to $::os_service_default
+# Defaults to $facts['os_service_default']
 #
 # [*standalone_network_plugin_allowed_ip_ranges*]
 # (optional) Can be IP address, range of IP addresses or list of addresses
@@ -25,23 +25,23 @@
 # addresses from network can be used. Optional.
 # Examples: 10.0.0.10 or 10.0.0.10-10.0.0.20 or
 # 10.0.0.10-10.0.0.20,10.0.0.30-10.0.0.40,10.0.0.50
-# Defaults to $::os_service_default
+# Defaults to $facts['os_service_default']
 #
 # [*network_plugin_ipv4_enabled*]
 # (optional) Whether to support Ipv4 network resource
-# Defaults to $::os_service_default
+# Defaults to $facts['os_service_default']
 #
 # [*network_plugin_ipv6_enabled*]
 # (optional) whether to support IPv6 network resource
-# Defaults to $::os_service_default
+# Defaults to $facts['os_service_default']
 #
 define manila::network::standalone (
   $standalone_network_plugin_gateway,
   $standalone_network_plugin_mask,
-  $standalone_network_plugin_segmentation_id   = $::os_service_default,
-  $standalone_network_plugin_allowed_ip_ranges = $::os_service_default,
-  $network_plugin_ipv4_enabled                 = $::os_service_default,
-  $network_plugin_ipv6_enabled                 = $::os_service_default,
+  $standalone_network_plugin_segmentation_id   = $facts['os_service_default'],
+  $standalone_network_plugin_allowed_ip_ranges = $facts['os_service_default'],
+  $network_plugin_ipv4_enabled                 = $facts['os_service_default'],
+  $network_plugin_ipv6_enabled                 = $facts['os_service_default'],
 ) {
 
   $standalone_plugin_name = 'manila.network.standalone_network_plugin.StandaloneNetworkPlugin'
diff --git a/manifests/params.pp b/manifests/params.pp
index c9e1fde1..255f90f2 100644
--- a/manifests/params.pp
+++ b/manifests/params.pp
@@ -10,7 +10,7 @@ class manila::params {
   $user             = 'manila'
   $group            = 'manila'
 
-  case $::osfamily {
+  case $facts['os']['family'] {
     'Debian': {
       $lock_path                   = '/var/lock/manila'
       $package_name                = 'manila-common'
@@ -46,7 +46,7 @@ class manila::params {
       $nfs_client_package_name     = 'nfs-utils'
     }
     default: {
-      fail("unsupported osfamily ${::osfamily}, currently Debian and Redhat are the only supported platforms")
+      fail("unsupported osfamily ${facts['os']['family']}, currently Debian and Redhat are the only supported platforms")
     }
 
   }
diff --git a/manifests/policy.pp b/manifests/policy.pp
index 8ff66889..1dd03f54 100644
--- a/manifests/policy.pp
+++ b/manifests/policy.pp
@@ -6,12 +6,12 @@
 #
 # [*enforce_scope*]
 #  (Optional) Whether or not to enforce scope when evaluating policies.
-#  Defaults to $::os_service_default.
+#  Defaults to $facts['os_service_default'].
 #
 # [*enforce_new_defaults*]
 #  (Optional) Whether or not to use old deprecated defaults when evaluating
 #  policies.
-#  Defaults to $::os_service_default.
+#  Defaults to $facts['os_service_default'].
 #
 # [*policies*]
 #   (Optional) Set of policies to configure for manila
@@ -34,11 +34,11 @@
 #
 # [*policy_default_rule*]
 #   (Optional) Default rule. Enforced when a requested rule is not found.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*policy_dirs*]
 #   (Optional) Path to the manila policy folder
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*purge_config*]
 #   (optional) Whether to set only the specified policy rules in the policy
@@ -46,12 +46,12 @@
 #    Defaults to false.
 #
 class manila::policy (
-  $enforce_scope        = $::os_service_default,
-  $enforce_new_defaults = $::os_service_default,
+  $enforce_scope        = $facts['os_service_default'],
+  $enforce_new_defaults = $facts['os_service_default'],
   $policies             = {},
   $policy_path          = '/etc/manila/policy.yaml',
-  $policy_default_rule  = $::os_service_default,
-  $policy_dirs          = $::os_service_default,
+  $policy_default_rule  = $facts['os_service_default'],
+  $policy_dirs          = $facts['os_service_default'],
   $purge_config         = false,
 ) {
 
diff --git a/manifests/quota.pp b/manifests/quota.pp
index 2e5ccfe8..cba1aa4e 100644
--- a/manifests/quota.pp
+++ b/manifests/quota.pp
@@ -6,60 +6,60 @@
 #
 # [*shares*]
 #   (optional) Number of shares allowed per project.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*snapshots*]
 #   (optional) Number of share snapshots allowed per project.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*gigabytes*]
 #   (optional) Number of share gigabytes (snapshots are also included)
-#   allowed per project. Defaults to $::os_service_default.
+#   allowed per project. Defaults to $facts['os_service_default'].
 #
 # [*driver*]
 #   (optional) Default driver to use for quota checks.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*snapshot_gigabytes*]
 #   (optional) Number of snapshot gigabytes allowed per project.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*share_networks*]
 #   (optional) Number of share-networks allowed per project.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*share_replicas*]
 #   (optional) Number of share-replicas allowed per project.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*replica_gigabytes*]
 #   (optional) Number of replica gigabytes allowed per project.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*reservation_expire*]
 #   (optional) Number of seconds until a reservation expires.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*until_refresh*]
 #   (optional) Count of reservations until usage is refreshed.
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*max_age*]
 #   (optional) Number of seconds between subsequent usage refreshes.
 #   Defaults to $:os_service_default.
 #
 class manila::quota (
-  $shares             = $::os_service_default,
-  $snapshots          = $::os_service_default,
-  $gigabytes          = $::os_service_default,
-  $driver             = $::os_service_default,
-  $snapshot_gigabytes = $::os_service_default,
-  $share_networks     = $::os_service_default,
-  $share_replicas     = $::os_service_default,
-  $replica_gigabytes  = $::os_service_default,
-  $reservation_expire = $::os_service_default,
-  $until_refresh      = $::os_service_default,
-  $max_age            = $::os_service_default,
+  $shares             = $facts['os_service_default'],
+  $snapshots          = $facts['os_service_default'],
+  $gigabytes          = $facts['os_service_default'],
+  $driver             = $facts['os_service_default'],
+  $snapshot_gigabytes = $facts['os_service_default'],
+  $share_networks     = $facts['os_service_default'],
+  $share_replicas     = $facts['os_service_default'],
+  $replica_gigabytes  = $facts['os_service_default'],
+  $reservation_expire = $facts['os_service_default'],
+  $until_refresh      = $facts['os_service_default'],
+  $max_age            = $facts['os_service_default'],
 ) {
 
   include manila::deps
diff --git a/manifests/scheduler.pp b/manifests/scheduler.pp
index 3c2f62a7..dce98505 100644
--- a/manifests/scheduler.pp
+++ b/manifests/scheduler.pp
@@ -6,7 +6,7 @@
 #
 # [*scheduler_driver*]
 #   (Optional) Default scheduler driver to use
-#   Defaults to $::os_service_default.
+#   Defaults to $facts['os_service_default'].
 #
 # [*package_ensure*]
 #   (Optional) The state of the scheduler package
@@ -21,7 +21,7 @@
 #   Defaults to true.
 #
 class manila::scheduler (
-  $scheduler_driver = $::os_service_default,
+  $scheduler_driver = $facts['os_service_default'],
   $package_ensure   = 'present',
   $enabled          = true,
   $manage_service   = true
@@ -35,10 +35,10 @@ class manila::scheduler (
       'DEFAULT/scheduler_driver': value => $scheduler_driver
     }
   } else {
-    warning('Using a false value for scheduler_driver is deprecated.'
-            + 'Use $::os_service_default instead.')
+    warning("Using a false value for scheduler_driver is deprecated. \
+Use the os_service_default fact instead.")
     manila_config {
-      'DEFAULT/scheduler_driver': value => $::os_service_default
+      'DEFAULT/scheduler_driver': value => $facts['os_service_default']
     }
   }
 
diff --git a/manifests/share/netapp.pp b/manifests/share/netapp.pp
index 18ae221b..b11e2492 100644
--- a/manifests/share/netapp.pp
+++ b/manifests/share/netapp.pp
@@ -67,7 +67,7 @@
 # [*netapp_root_volume*]
 #   (optional) Root volume name. This option only applies when the option
 #   driver_handles_share_servers is set to True.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*netapp_port_name_search_pattern*]
 #   (optional) Pattern for overriding the selection of network ports on which
@@ -103,7 +103,7 @@ class manila::share::netapp (
     $netapp_lif_name_template             = 'os_%(net_allocation_id)s',
     $netapp_aggregate_name_search_pattern = '(.*)',
     $netapp_root_volume_aggregate         = undef,
-    $netapp_root_volume                   = $::os_service_default,
+    $netapp_root_volume                   = $facts['os_service_default'],
     $netapp_port_name_search_pattern      = '(.*)',
     $netapp_trace_flags                   = undef,
 ) {
diff --git a/manifests/volume/cinder.pp b/manifests/volume/cinder.pp
index 47bc4bea..3ff53cfc 100644
--- a/manifests/volume/cinder.pp
+++ b/manifests/volume/cinder.pp
@@ -6,11 +6,11 @@
 #
 # [*insecure*]
 #   (optional) Verify HTTPS connections
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*auth_url*]
 #   (optional) Authentication URL
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*auth_type*]
 #   (optional) Authentication type to load
@@ -19,7 +19,7 @@
 # [*cafile*]
 #   (optional) PEM encoded Certificate Authority to use when verifying HTTPS
 #   connections.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*user_domain_name*]
 #   (optional) User's domain name
@@ -35,16 +35,16 @@
 #
 # [*system_scope*]
 #   (optional) Scope for system operations.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*region_name*]
 #   (optional) Region name for connecting to cinder
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*endpoint_type*]
 #   (optional) The type of cinder endpoint to use when
 #   looking up in the keystone catalog.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*username*]
 #   (optional) Username
@@ -52,32 +52,32 @@
 #
 # [*password*]
 #   (optional) User's password
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*http_retries*]
 #   (optional) Number of cinderclient retries on failed http calls.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 # [*cross_az_attach*]
 #   (optional) Allow attach between instance and volume in different
 #   availability zones.
-#   Defaults to $::os_service_default
+#   Defaults to $facts['os_service_default']
 #
 class manila::volume::cinder (
-  $insecure                    = $::os_service_default,
-  $auth_url                    = $::os_service_default,
+  $insecure                    = $facts['os_service_default'],
+  $auth_url                    = $facts['os_service_default'],
   $auth_type                   = 'password',
-  $cafile                      = $::os_service_default,
+  $cafile                      = $facts['os_service_default'],
   $user_domain_name            = 'Default',
   $project_domain_name         = 'Default',
   $project_name                = 'services',
-  $system_scope                = $::os_service_default,
-  $region_name                 = $::os_service_default,
-  $endpoint_type               = $::os_service_default,
+  $system_scope                = $facts['os_service_default'],
+  $region_name                 = $facts['os_service_default'],
+  $endpoint_type               = $facts['os_service_default'],
   $username                    = 'cinder',
-  $password                    = $::os_service_default,
-  $http_retries                = $::os_service_default,
-  $cross_az_attach             = $::os_service_default,
+  $password                    = $facts['os_service_default'],
+  $http_retries                = $facts['os_service_default'],
+  $cross_az_attach             = $facts['os_service_default'],
 ) {
 
   include manila::deps
@@ -86,8 +86,8 @@ class manila::volume::cinder (
     $project_name_real = $project_name
     $project_domain_name_real = $project_domain_name
   } else {
-    $project_name_real = $::os_service_default
-    $project_domain_name_real = $::os_service_default
+    $project_name_real = $facts['os_service_default']
+    $project_domain_name_real = $facts['os_service_default']
   }
 
   manila_config {
diff --git a/manifests/wsgi/apache.pp b/manifests/wsgi/apache.pp
index f8e42bdc..26f8ecb1 100644
--- a/manifests/wsgi/apache.pp
+++ b/manifests/wsgi/apache.pp
@@ -25,7 +25,7 @@
 #
 #   [*servername*]
 #     The servername for the virtualhost.
-#     Optional. Defaults to $::fqdn
+#     Optional. Defaults to $facts['networking']['fqdn']
 #
 #   [*port*]
 #     The port.
@@ -45,7 +45,7 @@
 #
 #   [*workers*]
 #     Number of WSGI workers to spawn.
-#     Optional. Defaults to $::os_workers
+#     Optional. Defaults to $facts['os_workers']
 #
 #   [*priority*]
 #     (optional) The priority for the vhost.
@@ -130,12 +130,12 @@
 #
 
 class manila::wsgi::apache (
-  $servername                  = $::fqdn,
+  $servername                  = $facts['networking']['fqdn'],
   $port                        = 8786,
   $bind_host                   = undef,
   $path                        = '/',
   $ssl                         = false,
-  $workers                     = $::os_workers,
+  $workers                     = $facts['os_workers'],
   $ssl_cert                    = undef,
   $ssl_key                     = undef,
   $ssl_chain                   = undef,
diff --git a/manifests/wsgi/uwsgi.pp b/manifests/wsgi/uwsgi.pp
index 92943f36..c9ff08d8 100644
--- a/manifests/wsgi/uwsgi.pp
+++ b/manifests/wsgi/uwsgi.pp
@@ -11,7 +11,7 @@
 #
 # [*processes*]
 #   (Optional) Number of processes.
-#   Defaults to $::os_workers.
+#   Defaults to $facts['os_workers'].
 #
 # [*threads*]
 #   (Optional) Number of threads.
@@ -22,14 +22,14 @@
 #   Defaults to 100
 #
 class manila::wsgi::uwsgi (
-  $processes         = $::os_workers,
+  $processes         = $facts['os_workers'],
   $threads           = 32,
   $listen_queue_size = 100,
 ){
 
   include manila::deps
 
-  if $::operatingsystem != 'Debian'{
+  if $facts['os']['name'] != 'Debian'{
     warning('This class is only valid for Debian, as other operating systems are not using uwsgi by default.')
   }
 
diff --git a/spec/classes/manila_api_spec.rb b/spec/classes/manila_api_spec.rb
index 90eb603f..34463aac 100644
--- a/spec/classes/manila_api_spec.rb
+++ b/spec/classes/manila_api_spec.rb
@@ -215,7 +215,7 @@ describe 'manila::api' do
   }).each do |os,facts|
     context "on #{os}" do
       let (:facts) do
-        facts.merge!(OSDefaults.get_facts({ :fqdn => 'some.host.tld'}))
+        facts.merge!(OSDefaults.get_facts())
       end
       it_behaves_like 'manila::api'
     end
diff --git a/spec/classes/manila_backends_spec.rb b/spec/classes/manila_backends_spec.rb
index a38e0fae..b3da6dad 100644
--- a/spec/classes/manila_backends_spec.rb
+++ b/spec/classes/manila_backends_spec.rb
@@ -67,7 +67,7 @@ describe 'manila::backends' do
   }).each do |os,facts|
     context "on #{os}" do
       let (:facts) do
-        facts.merge!(OSDefaults.get_facts({ :fqdn => 'some.host.tld'}))
+        facts.merge!(OSDefaults.get_facts())
       end
       it_behaves_like 'manila backends'
     end
diff --git a/spec/classes/manila_client_spec.rb b/spec/classes/manila_client_spec.rb
index bfd632af..15e897c4 100644
--- a/spec/classes/manila_client_spec.rb
+++ b/spec/classes/manila_client_spec.rb
@@ -25,7 +25,7 @@ describe 'manila::client' do
       end
 
       let :platform_params do
-        case facts[:osfamily]
+        case facts[:os]['family']
         when 'Debian'
           { :client_package => 'python3-manilaclient' }
         when 'RedHat'
diff --git a/spec/classes/manila_data_spec.rb b/spec/classes/manila_data_spec.rb
index e606b1bc..429f2f71 100644
--- a/spec/classes/manila_data_spec.rb
+++ b/spec/classes/manila_data_spec.rb
@@ -83,7 +83,7 @@ describe 'manila::data' do
       end
 
       let :platform_params do
-        case facts[:osfamily]
+        case facts[:os]['family']
         when 'Debian'
           { :data_service => 'manila-data' }
         when 'RedHat'
@@ -92,7 +92,7 @@ describe 'manila::data' do
       end
 
       it_behaves_like 'manila::data'
-      it_behaves_like "manila::data on #{facts[:osfamily]}"
+      it_behaves_like "manila::data on #{facts[:os]['family']}"
     end
   end
 
diff --git a/spec/classes/manila_db_mysql_spec.rb b/spec/classes/manila_db_mysql_spec.rb
index 9e29e4b5..e72c423f 100644
--- a/spec/classes/manila_db_mysql_spec.rb
+++ b/spec/classes/manila_db_mysql_spec.rb
@@ -60,7 +60,7 @@ describe 'manila::db::mysql' do
   }).each do |os,facts|
     context "on #{os}" do
       let (:facts) do
-        facts.merge!(OSDefaults.get_facts({ :fqdn => 'some.host.tld'}))
+        facts.merge!(OSDefaults.get_facts())
       end
       it_behaves_like 'manila::db::mysql'
     end
diff --git a/spec/classes/manila_db_spec.rb b/spec/classes/manila_db_spec.rb
index 1da4c662..4decad00 100644
--- a/spec/classes/manila_db_spec.rb
+++ b/spec/classes/manila_db_spec.rb
@@ -54,7 +54,7 @@ describe 'manila::db' do
   }).each do |os,facts|
     context "on #{os}" do
       let (:facts) do
-        facts.merge!(OSDefaults.get_facts({ :fqdn => 'some.host.tld'}))
+        facts.merge!(OSDefaults.get_facts())
       end
 
       it_behaves_like 'manila::db'
diff --git a/spec/classes/manila_db_sync_spec.rb b/spec/classes/manila_db_sync_spec.rb
index d3929287..4a419f9a 100644
--- a/spec/classes/manila_db_sync_spec.rb
+++ b/spec/classes/manila_db_sync_spec.rb
@@ -31,10 +31,7 @@ describe 'manila::db::sync' do
   }).each do |os,facts|
     context "on #{os}" do
       let (:facts) do
-        facts.merge(OSDefaults.get_facts({
-          :os_workers     => 8,
-          :concat_basedir => '/var/lib/puppet/concat'
-        }))
+        facts.merge(OSDefaults.get_facts())
       end
 
       it_configures 'manila-dbsync'
diff --git a/spec/classes/manila_ganesha_spec.rb b/spec/classes/manila_ganesha_spec.rb
index 432bc334..c007d4f5 100644
--- a/spec/classes/manila_ganesha_spec.rb
+++ b/spec/classes/manila_ganesha_spec.rb
@@ -50,10 +50,10 @@ describe 'manila::ganesha' do
   }).each do |os,facts|
     context "on #{os}" do
       let (:facts) do
-        facts.merge!(OSDefaults.get_facts({ :fqdn => 'some.host.tld'}))
+        facts.merge!(OSDefaults.get_facts())
       end
       it_configures 'manila::ganesha'
-      if facts[:osfamily] == 'RedHat'
+      if facts[:os]['family'] == 'RedHat'
         it_configures 'manila::ganesha on RedHat'
       end
     end
diff --git a/spec/classes/manila_init_spec.rb b/spec/classes/manila_init_spec.rb
index fb3ad3db..4ba8f4da 100644
--- a/spec/classes/manila_init_spec.rb
+++ b/spec/classes/manila_init_spec.rb
@@ -230,10 +230,10 @@ describe 'manila' do
   }).each do |os,facts|
     context "on #{os}" do
       let (:facts) do
-        facts.merge!(OSDefaults.get_facts({ :fqdn => 'some.host.tld'}))
+        facts.merge!(OSDefaults.get_facts())
       end
       let(:platform_params) do
-        case facts[:osfamily]
+        case facts[:os]['family']
         when 'Debian'
           {
             :lock_path => '/var/lock/manila'
diff --git a/spec/classes/manila_network_neutron_spec.rb b/spec/classes/manila_network_neutron_spec.rb
index 76b7068e..32f771f9 100644
--- a/spec/classes/manila_network_neutron_spec.rb
+++ b/spec/classes/manila_network_neutron_spec.rb
@@ -77,7 +77,7 @@ describe 'manila::network::neutron' do
   }).each do |os,facts|
     context "on #{os}" do
       let (:facts) do
-        facts.merge!(OSDefaults.get_facts({ :fqdn => 'some.host.tld'}))
+        facts.merge!(OSDefaults.get_facts())
       end
 
       it_behaves_like 'manila::neutron'
diff --git a/spec/classes/manila_params_spec.rb b/spec/classes/manila_params_spec.rb
index 1145b8b9..fa3c385c 100644
--- a/spec/classes/manila_params_spec.rb
+++ b/spec/classes/manila_params_spec.rb
@@ -7,7 +7,7 @@ describe 'manila::params' do
   }).each do |os,facts|
     context "on #{os}" do
       let (:facts) do
-        facts.merge!(OSDefaults.get_facts({ :fqdn => 'some.host.tld'}))
+        facts.merge!(OSDefaults.get_facts())
       end
       it 'should compile' do
         subject
diff --git a/spec/classes/manila_quota_spec.rb b/spec/classes/manila_quota_spec.rb
index c1ae868f..ed3cd3be 100644
--- a/spec/classes/manila_quota_spec.rb
+++ b/spec/classes/manila_quota_spec.rb
@@ -76,7 +76,7 @@ describe 'manila::quota' do
   }).each do |os,facts|
     context "on #{os}" do
       let (:facts) do
-        facts.merge!(OSDefaults.get_facts({ :fqdn => 'some.host.tld'}))
+        facts.merge!(OSDefaults.get_facts())
       end
       it_behaves_like 'manila::quota'
     end
diff --git a/spec/classes/manila_scheduler_spec.rb b/spec/classes/manila_scheduler_spec.rb
index ead0b0bb..a0bb616b 100644
--- a/spec/classes/manila_scheduler_spec.rb
+++ b/spec/classes/manila_scheduler_spec.rb
@@ -81,7 +81,7 @@ describe 'manila::scheduler' do
       end
 
       let :platform_params do
-        case facts[:osfamily]
+        case facts[:os]['family']
         when 'Debian'
           { :scheduler_service => 'manila-scheduler' }
         when 'RedHat'
@@ -90,7 +90,7 @@ describe 'manila::scheduler' do
       end
 
       it_behaves_like 'manila::scheduler'
-      it_behaves_like "manila::scheduler on #{facts[:osfamily]}"
+      it_behaves_like "manila::scheduler on #{facts[:os]['family']}"
     end
   end
 
diff --git a/spec/classes/manila_share_generic_spec.rb b/spec/classes/manila_share_generic_spec.rb
index 70cd460a..fe07c3bb 100644
--- a/spec/classes/manila_share_generic_spec.rb
+++ b/spec/classes/manila_share_generic_spec.rb
@@ -40,7 +40,7 @@ describe 'manila::share::generic' do
   }).each do |os,facts|
     context "on #{os}" do
       let (:facts) do
-        facts.merge!(OSDefaults.get_facts({ :fqdn => 'some.host.tld'}))
+        facts.merge!(OSDefaults.get_facts())
       end
       it_behaves_like 'manila::share::generic'
     end
diff --git a/spec/classes/manila_share_glusterfs_spec.rb b/spec/classes/manila_share_glusterfs_spec.rb
index 83c42035..146506a7 100644
--- a/spec/classes/manila_share_glusterfs_spec.rb
+++ b/spec/classes/manila_share_glusterfs_spec.rb
@@ -26,7 +26,7 @@ describe 'manila::share::glusterfs' do
   }).each do |os,facts|
     context "on #{os}" do
       let (:facts) do
-        facts.merge!(OSDefaults.get_facts({ :fqdn => 'some.host.tld'}))
+        facts.merge!(OSDefaults.get_facts())
       end
       it_behaves_like 'glusterfs share driver'
     end
diff --git a/spec/classes/manila_share_netapp_spec.rb b/spec/classes/manila_share_netapp_spec.rb
index 26135e53..59677bed 100644
--- a/spec/classes/manila_share_netapp_spec.rb
+++ b/spec/classes/manila_share_netapp_spec.rb
@@ -53,7 +53,7 @@ describe 'manila::share::netapp' do
   }).each do |os,facts|
     context "on #{os}" do
       let (:facts) do
-        facts.merge!(OSDefaults.get_facts({ :fqdn => 'some.host.tld'}))
+        facts.merge!(OSDefaults.get_facts())
       end
       context 'with default parameters' do
         before do
diff --git a/spec/classes/manila_share_spec.rb b/spec/classes/manila_share_spec.rb
index e6b01cba..71f5ed0b 100644
--- a/spec/classes/manila_share_spec.rb
+++ b/spec/classes/manila_share_spec.rb
@@ -32,11 +32,11 @@ describe 'manila::share' do
   }).each do |os,facts|
     context "on #{os}" do
       let (:facts) do
-        facts.merge!(OSDefaults.get_facts({ :fqdn => 'some.host.tld'}))
+        facts.merge!(OSDefaults.get_facts())
       end
 
       let :platform_params do
-        case facts[:osfamily]
+        case facts[:os]['family']
         when 'Debian'
           { :package_name => 'manila-share' }
         when 'RedHat'
diff --git a/spec/classes/manila_wsgi_apache_spec.rb b/spec/classes/manila_wsgi_apache_spec.rb
index 7b63040c..17d76c16 100644
--- a/spec/classes/manila_wsgi_apache_spec.rb
+++ b/spec/classes/manila_wsgi_apache_spec.rb
@@ -10,7 +10,7 @@ describe 'manila::wsgi::apache' do
         :group                       => 'manila',
         :path                        => '/',
         :priority                    => 10,
-        :servername                  => facts[:fqdn],
+        :servername                  => 'foo.example.com',
         :ssl                         => false,
         :threads                     => 1,
         :user                        => 'manila',
@@ -147,14 +147,12 @@ describe 'manila::wsgi::apache' do
     context "on #{os}" do
       let (:facts) do
         facts.merge!(OSDefaults.get_facts({
-          :os_workers     => 42,
-          :concat_basedir => '/var/lib/puppet/concat',
-          :fqdn           => 'some.host.tld',
+          :os_workers => 42,
         }))
       end
 
       let(:platform_params) do
-        case facts[:osfamily]
+        case facts[:os]['family']
         when 'Debian'
           {
             :wsgi_script_path   => '/usr/lib/cgi-bin/manila',
diff --git a/spec/defines/manila_backend_cephfs_spec.rb b/spec/defines/manila_backend_cephfs_spec.rb
index 88f8519d..0a78a090 100644
--- a/spec/defines/manila_backend_cephfs_spec.rb
+++ b/spec/defines/manila_backend_cephfs_spec.rb
@@ -73,7 +73,7 @@ describe 'manila::backend::cephfs' do
       }).each do |os,facts|
         context "on #{os}" do
           let (:facts) do
-            facts.merge(OSDefaults.get_facts({ :osfamily => "#{os}" }))
+            facts.merge(OSDefaults.get_facts())
           end
 
           it_configures 'cephfs driver'
diff --git a/spec/defines/manila_backend_ganesha_spec.rb b/spec/defines/manila_backend_ganesha_spec.rb
index dab85a62..20f2cdbb 100644
--- a/spec/defines/manila_backend_ganesha_spec.rb
+++ b/spec/defines/manila_backend_ganesha_spec.rb
@@ -58,7 +58,7 @@ describe 'manila::backend::ganesha' do
   }).each do |os,facts|
     context "on #{os}" do
       let (:facts) do
-        facts.merge!(OSDefaults.get_facts({ :fqdn => 'some.host.tld'}))
+        facts.merge!(OSDefaults.get_facts())
       end
       it_configures 'manila::backend::ganesha'
     end
diff --git a/spec/defines/manila_backend_glusternative_spec.rb b/spec/defines/manila_backend_glusternative_spec.rb
index 522e78a1..0d5bcf23 100644
--- a/spec/defines/manila_backend_glusternative_spec.rb
+++ b/spec/defines/manila_backend_glusternative_spec.rb
@@ -47,7 +47,7 @@ describe 'manila::backend::glusternative' do
       end
 
       let :platform_params do
-        case facts[:osfamily]
+        case facts[:os]['family']
         when 'Debian'
           {
             :gluster_client_package_name => 'glusterfs-client',
diff --git a/spec/defines/manila_backend_glusternfs_spec.rb b/spec/defines/manila_backend_glusternfs_spec.rb
index f2358c80..da7d4bab 100644
--- a/spec/defines/manila_backend_glusternfs_spec.rb
+++ b/spec/defines/manila_backend_glusternfs_spec.rb
@@ -49,7 +49,7 @@ describe 'manila::backend::glusternfs' do
       end
 
       let :platform_params do
-        case facts[:osfamily]
+        case facts[:os]['family']
         when 'Debian'
           {
             :gluster_client_package_name => 'glusterfs-client',