@InterfaceAudience.Private public class VisibilityLabelsCache extends Object implements VisibilityLabelOrdinalProvider
| Modifier and Type | Field and Description |
|---|---|
private static List<String> |
EMPTY_LIST |
private static Set<Integer> |
EMPTY_SET |
private Map<String,Set<Integer>> |
groupAuths |
private static VisibilityLabelsCache |
instance |
private Map<String,Integer> |
labels |
private ReentrantReadWriteLock |
lock
This covers the members labels, ordinalVsLabels and userAuths
|
private static org.slf4j.Logger |
LOG |
private Map<Integer,String> |
ordinalVsLabels |
private Map<String,Set<Integer>> |
userAuths |
private ZKVisibilityLabelWatcher |
zkVisibilityWatcher |
| Modifier | Constructor and Description |
|---|---|
private |
VisibilityLabelsCache(ZKWatcher watcher,
org.apache.hadoop.conf.Configuration conf) |
| Modifier and Type | Method and Description |
|---|---|
static VisibilityLabelsCache |
createAndGet(ZKWatcher watcher,
org.apache.hadoop.conf.Configuration conf)
Creates the singleton instance, if not yet present, and returns the same.
|
static VisibilityLabelsCache |
get() |
List<String> |
getGroupAuths(String[] groups) |
Set<Integer> |
getGroupAuthsAsOrdinals(String[] groups)
Returns the list of ordinals of labels associated with the groups
|
String |
getLabel(int ordinal)
Returns the string associated with the ordinal.
|
int |
getLabelOrdinal(String label) |
int |
getLabelsCount() |
List<String> |
getUserAuths(String user) |
Set<Integer> |
getUserAuthsAsOrdinals(String user)
Returns the list of ordinals of labels associated with the user
|
void |
refreshLabelsCache(byte[] data) |
void |
refreshUserAuthsCache(byte[] data) |
void |
writeToZookeeper(byte[] data,
boolean labelsOrUserAuths) |
private static final org.slf4j.Logger LOG
private static final List<String> EMPTY_LIST
private static VisibilityLabelsCache instance
private ZKVisibilityLabelWatcher zkVisibilityWatcher
private Map<Integer,String> ordinalVsLabels
private Map<String,Set<Integer>> groupAuths
private ReentrantReadWriteLock lock
private VisibilityLabelsCache(ZKWatcher watcher, org.apache.hadoop.conf.Configuration conf) throws IOException
IOExceptionpublic static VisibilityLabelsCache createAndGet(ZKWatcher watcher, org.apache.hadoop.conf.Configuration conf) throws IOException
watcher - conf - IOExceptionpublic static VisibilityLabelsCache get()
IllegalStateException - when this is called before calling
createAndGet(ZKWatcher, Configuration)public void refreshLabelsCache(byte[] data) throws IOException
IOExceptionpublic void refreshUserAuthsCache(byte[] data) throws IOException
IOExceptionpublic int getLabelOrdinal(String label)
getLabelOrdinal in interface VisibilityLabelOrdinalProviderlabel - Not null label stringpublic String getLabel(int ordinal)
VisibilityLabelOrdinalProvidergetLabel in interface VisibilityLabelOrdinalProviderordinal - The ordinal of label which we are looking for.null when no label exist in
the system with given ordinalpublic int getLabelsCount()
public List<String> getUserAuths(String user)
public List<String> getGroupAuths(String[] groups)
public Set<Integer> getUserAuthsAsOrdinals(String user)
user - Not null value.public Set<Integer> getGroupAuthsAsOrdinals(String[] groups)
groups - public void writeToZookeeper(byte[] data, boolean labelsOrUserAuths) throws IOException
IOExceptionCopyright © 2007–2020 The Apache Software Foundation. All rights reserved.