Apache Ranger Python client
Project description
Apache Ranger - Python client
Python library for Apache Ranger.
Installation
Use the package manager pip to install python client for Apache Ranger.
> pip install apache-ranger
Verify if apache-ranger client is installed:
> pip list
Package Version
------------ ---------
apache-ranger 0.0.3
Usage
python test_ranger.py
# test_ranger.py
from apache_ranger.model.ranger_service import *
from apache_ranger.client.ranger_client import *
from apache_ranger.model.ranger_policy import *
## Step 1: create a client to connect to Apache Ranger admin
ranger_url = 'http://localhost:6080'
ranger_auth = ('admin', 'rangerR0cks!')
# For Kerberos authentication
#
# from requests_kerberos import HTTPKerberosAuth
#
# ranger_auth = HTTPKerberosAuth()
ranger = RangerClient(ranger_url, ranger_auth)
# to disable SSL certificate validation (not recommended for production use!)
#
# ranger.session.verify = False
## Step 2: Let's create a service
service = RangerService()
service.name = 'test_hive'
service.type = 'hive'
service.configs = {'username':'hive', 'password':'hive', 'jdbc.driverClassName': 'org.apache.hive.jdbc.HiveDriver', 'jdbc.url': 'jdbc:hive2://ranger-hadoop:10000', 'hadoop.security.authorization': 'true'}
print('Creating service: name=' + service.name)
created_service = ranger.create_service(service)
print(' created service: name=' + created_service.name + ', id=' + str(created_service.id))
## Step 3: Let's create a policy
policy = RangerPolicy()
policy.service = service.name
policy.name = 'test policy'
policy.resources = { 'database': RangerPolicyResource({ 'values': ['test_db'] }),
'table': RangerPolicyResource({ 'values': ['test_tbl'] }),
'column': RangerPolicyResource({ 'values': ['*'] }) }
allowItem1 = RangerPolicyItem()
allowItem1.users = [ 'admin' ]
allowItem1.accesses = [ RangerPolicyItemAccess({ 'type': 'create' }),
RangerPolicyItemAccess({ 'type': 'alter' }) ]
denyItem1 = RangerPolicyItem()
denyItem1.users = [ 'admin' ]
denyItem1.accesses = [ RangerPolicyItemAccess({ 'type': 'drop' }) ]
policy.policyItems = [ allowItem1 ]
policy.denyPolicyItems = [ denyItem1 ]
print('Creating policy: name=' + policy.name)
created_policy = ranger.create_policy(policy)
print(' created policy: name=' + created_policy.name + ', id=' + str(created_policy.id))
## Step 4: Delete policy and service created above
print('Deleting policy: id=' + str(created_policy.id))
ranger.delete_policy_by_id(created_policy.id)
print(' deleted policy: id=' + str(created_policy.id))
print('Deleting service: id=' + str(created_service.id))
ranger.delete_service_by_id(created_service.id)
print(' deleted service: id=' + str(created_service.id))
For more examples, checkout sample-client
python project in ranger-examples module.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
Close
Hashes for apache_ranger-0.0.4-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a011cb1ba35cd6d1b7ec1e459afcebc83f2e92f395faa2b79e7bc43476eb483 |
|
MD5 | bea55616685a88f2a3559353271939cb |
|
BLAKE2b-256 | 7157a957707b1d364361dc365667f7ff512d1985efc09d24cc4194dcbb585c7c |