class gp_ext(object):
__metaclass__ = ABCMeta
- def __init__(self, logger):
+ def __init__(self, logger, lp, creds, store):
self.logger = logger
+ self.lp = lp
+ self.creds = creds
+ self.gp_db = store.get_gplog(creds.get_username())
@abstractmethod
def list(self, rootpath):
def read(self, policy):
pass
- def parse(self, afile, gp_db, lp, creds):
- self.gp_db = gp_db
- self.lp = lp
- self.creds = creds
-
+ def parse(self, afile):
local_path = self.lp.cache_path('gpo_cache')
data_file = os.path.join(local_path, check_safe_path(afile).upper())
if os.path.exists(data_file):
store.start()
for ext in gp_extensions:
try:
- ext.parse(ext.list(path), gp_db, lp, creds)
+ ext.parse(ext.list(path))
except Exception as e:
logger.error('Failed to parse gpo %s for extension %s' %
(guid, str(ext)))
lp.configfile)
gp_extensions = []
if opts.target == 'Computer':
- gp_extensions.append(gp_sec_ext(logger))
+ gp_extensions.append(gp_sec_ext(logger, lp, creds, store))
for ext in machine_exts:
- gp_extensions.append(ext(logger))
+ gp_extensions.append(ext(logger, lp, creds, store))
elif opts.target == 'User':
for ext in user_exts:
- gp_extensions.append(ext(logger))
+ gp_extensions.append(ext(logger, lp, creds, store))
if not opts.unapply:
apply_gp(lp, creds, logger, store, gp_extensions)