All,

Official Python client for Apache Ranger is now available at 
https://pypi.org/project/apache-ranger/. Python client APIs mirror Apache 
Ranger REST APIs, and enable administration of Apache Ranger using Python.

Here is a sample usage to create a service and a policy using Python client:

    from apache_ranger.model.ranger_service import RangerService
    from apache_ranger.client.ranger_client import RangerClient
    from apache_ranger.model.ranger_policy  import RangerPolicy, 
RangerPolicyResource, RangerPolicyItem, RangerPolicyItemAccess

    service_name = 'dev_hive'

    service = RangerService(name=service_name, type='hive')
    service.configs = {'username':'hive', 'password':'hive', 
'jdbc.driverClassName': 'org.apache.hive.jdbc.HiveDriver', 'jdbc.url': 
'jdfb:hive2://ranger-hadoop:10000', 'hadoop.security.authorization': 'true'}

    policy = RangerPolicy(service=service_name, name='test policy')
    policy.resources = {'database': RangerPolicyResource(['test_db']), 'table': 
RangerPolicyResource(['test_tbl']), 'column': RangerPolicyResource(['*'])}
    policy.policyItems.append(RangerPolicyItem(users=['admin'], 
accesses=[RangerPolicyItemAccess('create'), RangerPolicyItemAccess('alter'), 
RangerPolicyItemAccess('drop')], delegateAdmin=True))
    policy.denyPolicyItems.append(RangerPolicyItem(users=['admin'], 
accesses=[RangerPolicyItemAccess('select')]))


    ranger_client   = RangerClient('http://localhost:6080', 'admin', 
'rangerR0cks!')
    created_service = ranger_client.create_service(service)
    created_policy  = ranger_client.create_policy(policy)

Apache Ranger team is updating the documentation to include details of Python 
APIs.

Your feedback and suggestions are welcome.

Thanks,
Madhan


Reply via email to