Пример #1
0
  def setup_class(cls):
    if not os.path.exists(os.path.join(SENTRY_CONF_DIR.get(), 'sentry-site.xml')):
      raise SkipTest('Could not find sentry-site.xml, skipping sentry tests')

    cls.client = make_logged_in_client(username='******', is_superuser=False)
    cls.user = User.objects.get(username='******')
    add_to_group('test')
    grant_access("test", "test", "libsentry")

    cls.config_path = os.path.join(SENTRY_CONF_DIR.get(), 'sentry-site.xml')
Пример #2
0
    def setup_class(cls):
        if not is_live_cluster():
            raise SkipTest('Sentry tests require a live sentry server')

        if not os.path.exists(
                os.path.join(SENTRY_CONF_DIR.get(), 'sentry-site.xml')):
            raise SkipTest(
                'Could not find sentry-site.xml, skipping sentry tests')

        cls.client = make_logged_in_client(username='******', is_superuser=False)
        cls.user = User.objects.get(username='******')
        add_to_group('test')
        grant_access("test", "test", "libsentry")

        cls.db = SentryClient(HOSTNAME.get(), PORT.get(), 'test')
        cls.config_path = os.path.join(SENTRY_CONF_DIR.get(),
                                       'sentry-site.xml')
Пример #3
0
def _parse_site():
  global _SENTRY_SITE_DICT
  global _SENTRY_SITE_PATH

  _SENTRY_SITE_PATH = os.path.join(SENTRY_CONF_DIR.get(), 'sentry-site.xml')
  try:
    data = file(_SENTRY_SITE_PATH, 'r').read()
  except IOError, err:
    if err.errno != errno.ENOENT:
      LOG.error('Cannot read from "%s": %s' % (_SENTRY_SITE_PATH, err))
      return
    data = ""
Пример #4
0
def _parse_site():
    global _SENTRY_SITE_DICT
    global _SENTRY_SITE_PATH

    _SENTRY_SITE_PATH = os.path.join(SENTRY_CONF_DIR.get(), 'sentry-site.xml')
    try:
        data = file(_SENTRY_SITE_PATH, 'r').read()
    except IOError, err:
        if err.errno != errno.ENOENT:
            LOG.error('Cannot read from "%s": %s' % (_SENTRY_SITE_PATH, err))
            return
        data = ""
Пример #5
0
def _parse_sites():
  global _SITE_DICT
  _SITE_DICT ={}

  paths = [
    ('sentry', os.path.join(SENTRY_CONF_DIR.get(), 'sentry-site.xml')),
  ]

  try:
    from beeswax.conf import HIVE_CONF_DIR
    paths.append(('hive', os.path.join(HIVE_CONF_DIR.get(), 'sentry-site.xml')))
  except Exception, e:
    LOG.error('Cannot read Hive sentry site: %s' % e)
Пример #6
0
  def setUp(self):
    self.rpc_addresses = ''
    if sentry_site.get_sentry_server_rpc_addresses() is not None:
      self.rpc_addresses = ','.join(sentry_site.get_sentry_server_rpc_addresses())
    self.rpc_port = sentry_site.get_sentry_server_rpc_port() or '8038'

    self.tmpdir = tempfile.mkdtemp()
    self.resets = [
      SENTRY_CONF_DIR.set_for_testing(self.tmpdir),
    ]

    clear_api_cache()
    clear_api2_cache()
Пример #7
0
def _parse_sites():
  global _SITE_DICT
  _SITE_DICT ={}

  paths = [
    ('sentry', os.path.join(SENTRY_CONF_DIR.get(), 'sentry-site.xml')),
  ]

  try:
    from beeswax.conf import HIVE_CONF_DIR
    paths.append(('hive', os.path.join(HIVE_CONF_DIR.get(), 'sentry-site.xml')))
  except Exception, e:
    LOG.error('Cannot read Hive sentry site: %s' % e)
Пример #8
0
  def setup_class(cls):

    if not is_live_cluster():
      raise SkipTest('Sentry tests require a live sentry server')

    if not os.path.exists(os.path.join(SENTRY_CONF_DIR.get(), 'sentry-site.xml')):
      raise SkipTest('Could not find sentry-site.xml, skipping sentry tests')

    cls.client = make_logged_in_client(username='******', is_superuser=False)
    cls.user = User.objects.get(username='******')
    add_to_group('test')
    grant_access("test", "test", "libsentry")

    cls.db = SentryClient(HOSTNAME.get(), PORT.get(), 'test')
Пример #9
0
    def setUp(self):
        self.rpc_addresses = ''
        if sentry_site.get_sentry_server_rpc_addresses() is not None:
            self.rpc_addresses = ','.join(
                sentry_site.get_sentry_server_rpc_addresses())

        self.tmpdir = tempfile.mkdtemp()
        self.resets = [
            SENTRY_CONF_DIR.set_for_testing(self.tmpdir),
        ]
        if API_CACHE is not None:
            self.resets.append(API_CACHE.set_for_testing(None))
        if API2_CACHE is not None:
            self.resets.append(API2_CACHE.set_for_testing(None))
Пример #10
0
def test_security_kerberos():
  tmpdir = tempfile.mkdtemp()
  finish = SENTRY_CONF_DIR.set_for_testing(tmpdir)

  try:
    xml = sentry_site_xml(provider='default', authentication='kerberos')
    file(os.path.join(tmpdir, 'sentry-site.xml'), 'w').write(xml)
    sentry_site.reset()

    security = SentryClient('test.com', 11111, 'test')._get_security()

    assert_equal(True, security['use_sasl'])
    assert_equal('GSSAPI', security['mechanism'])
  finally:
    sentry_site.reset()
    finish()
    shutil.rmtree(tmpdir)
Пример #11
0
def test_security_kerberos():
    tmpdir = tempfile.mkdtemp()
    finish = SENTRY_CONF_DIR.set_for_testing(tmpdir)

    try:
        xml = sentry_site_xml(provider='default', authentication='kerberos')
        file(os.path.join(tmpdir, 'sentry-site.xml'), 'w').write(xml)
        sentry_site.reset()

        security = SentryClient('test.com', 11111, 'test')._get_security()

        assert_equal(True, security['use_sasl'])
        assert_equal('GSSAPI', security['mechanism'])
    finally:
        sentry_site.reset()
        finish()
        shutil.rmtree(tmpdir)
Пример #12
0
def test_security_plain():
  tmpdir = tempfile.mkdtemp()
  finish = SENTRY_CONF_DIR.set_for_testing(tmpdir)

  try:
    xml = sentry_site_xml(provider='default')
    file(os.path.join(tmpdir, 'sentry-site.xml'), 'w').write(xml)
    sentry_site.reset()

    assert_equal('test/[email protected]', get_sentry_server_principal())
    assert_equal(['hive', 'impala', 'hue'], get_sentry_server_admin_groups())

    security = SentryClient('test.com', 11111, 'test')._get_security()

    assert_equal('test', security['kerberos_principal_short_name'])
    assert_equal(False, security['use_sasl'])
    assert_equal('NOSASL', security['mechanism'])
  finally:
    sentry_site.reset()
    finish()
    shutil.rmtree(tmpdir)
Пример #13
0
def test_security_plain():
    tmpdir = tempfile.mkdtemp()
    finish = SENTRY_CONF_DIR.set_for_testing(tmpdir)

    try:
        xml = sentry_site_xml(provider='default')
        file(os.path.join(tmpdir, 'sentry-site.xml'), 'w').write(xml)
        sentry_site.reset()

        assert_equal('test/[email protected]', get_sentry_server_principal())
        assert_equal(['hive', 'impala', 'hue'],
                     get_sentry_server_admin_groups())

        security = SentryClient('test.com', 11111, 'test')._get_security()

        assert_equal('test', security['kerberos_principal_short_name'])
        assert_equal(False, security['use_sasl'])
        assert_equal('NOSASL', security['mechanism'])
    finally:
        sentry_site.reset()
        finish()
        shutil.rmtree(tmpdir)