diff --git a/lib/puppet/provider/manila.rb b/lib/puppet/provider/manila.rb
index 039ce8a6..6a257237 100644
--- a/lib/puppet/provider/manila.rb
+++ b/lib/puppet/provider/manila.rb
@@ -1,5 +1,3 @@
-File.expand_path('../../../../openstacklib/lib', File.dirname(__FILE__)).tap { |dir| $LOAD_PATH.unshift(dir) unless $LOAD_PATH.include?(dir) }
-
 require 'puppet/util/inifile'
 require 'puppet/provider/openstack'
 require 'puppet/provider/openstack/auth'
@@ -20,7 +18,15 @@ class Puppet::Provider::Manila < Puppet::Provider::Openstack
     @manila_conf
   end
 
-  def self.request(service, action, properties=nil)
+  def self.project_request(service, action, properties=nil, options={})
+    self.request(service, action, properties, options, 'project')
+  end
+
+  def self.system_request(service, action, properties=nil, options={})
+    self.request(service, action, properties, options, 'system')
+  end
+
+  def self.request(service, action, properties=nil, options={}, scope='project')
     begin
       super
     rescue Puppet::Error::OpenstackAuthInputError, Puppet::Error::OpenstackUnauthorizedError => error
@@ -28,7 +34,8 @@ class Puppet::Provider::Manila < Puppet::Provider::Openstack
     end
   end
 
-  def self.manila_request(service, action, error, properties=nil)
+  def self.manila_request(service, action, error, properties=nil, options={})
+    warning('Usage of keystone_authtoken parameters is deprecated.')
     properties ||= []
     @credentials.username = manila_credentials['username']
     @credentials.password = manila_credentials['password']
@@ -40,7 +47,7 @@ class Puppet::Provider::Manila < Puppet::Provider::Openstack
       @credentials.region_name = manila_credentials['region_name']
     end
     raise error unless @credentials.set?
-    Puppet::Provider::Openstack.request(service, action, properties, @credentials)
+    Puppet::Provider::Openstack.request(service, action, properties, @credentials, options)
   end
 
   def self.manila_credentials
diff --git a/lib/puppet/provider/manila_type/openstack.rb b/lib/puppet/provider/manila_type/openstack.rb
index 435cc21e..ba0b15fa 100644
--- a/lib/puppet/provider/manila_type/openstack.rb
+++ b/lib/puppet/provider/manila_type/openstack.rb
@@ -36,7 +36,7 @@ Puppet::Type.type(:manila_type).provide(
     opts << '--revert-to-snapshot-support' << @resource[:revert_to_snapshot_support].to_s.capitalize
     opts << '--mount-snapshot-support' << @resource[:mount_snapshot_support].to_s.capitalize
 
-    self.class.request('share type', 'create', opts)
+    self.class.system_request('share type', 'create', opts)
 
     [
       :name,
@@ -56,7 +56,7 @@ Puppet::Type.type(:manila_type).provide(
     if self.class.do_not_manage
       fail("Not managing Manila_type[#{@resource[:name]}] due to earlier Manila API failures.")
     end
-    self.class.request('share type', 'delete', name)
+    self.class.system_request('share type', 'delete', name)
     @property_hash.clear
     @property_hash[:ensure] = :absent
   end
@@ -71,7 +71,7 @@ Puppet::Type.type(:manila_type).provide(
 
   def self.instances
     self.do_not_manage = true
-    list = request('share type', 'list').collect do |type|
+    list = system_request('share type', 'list').collect do |type|
       required_extra_specs = self.parse_specs(type[:required_extra_specs])
       optional_extra_specs = self.parse_specs(type[:optional_extra_specs])
 
@@ -124,7 +124,7 @@ Puppet::Type.type(:manila_type).provide(
         opts << '--mount-snapshot-support' << @property_flush[:mount_snapshot_support].to_s.capitalize
       end
 
-      self.class.request('share type', 'set', opts)
+      self.class.system_request('share type', 'set', opts)
       @property_flush.clear
     end
   end
diff --git a/releasenotes/notes/provider-system-scope-cb9a22337ffe738d.yaml b/releasenotes/notes/provider-system-scope-cb9a22337ffe738d.yaml
new file mode 100644
index 00000000..d7625a01
--- /dev/null
+++ b/releasenotes/notes/provider-system-scope-cb9a22337ffe738d.yaml
@@ -0,0 +1,14 @@
+---
+upgrade:
+  - |
+    Now the ``manila_type`` resource type uses system scope credential instead
+    of project scope credential when sending requests to Manila API.
+
+deprecations:
+  - |
+    Currently the manila_type`` resource type uses the credential written in
+    the ``[keystone_authtoken]`` section of ``manila.conf``. However this
+    behavior has been deprecated and now the resource type first looks for
+    the yaml files in ``/etc/openstack/puppet``. Make sure one of
+    ``clouds.yaml`` or ``admin-clouds.yaml`` (which is created by
+    puppet-keystone) is created in that directory.
diff --git a/spec/unit/provider/manila_type/openstack_spec.rb b/spec/unit/provider/manila_type/openstack_spec.rb
index 92179523..a900b73b 100644
--- a/spec/unit/provider/manila_type/openstack_spec.rb
+++ b/spec/unit/provider/manila_type/openstack_spec.rb
@@ -8,7 +8,7 @@ describe provider_class do
   let(:set_creds_env) do
     ENV['OS_USERNAME']     = 'test'
     ENV['OS_PASSWORD']     = 'abc123'
-    ENV['OS_PROJECT_NAME'] = 'test'
+    ENV['OS_SYSTEM_SCOPE'] = 'all' 
     ENV['OS_AUTH_URL']     = 'http://127.0.0.1:5000'
   end