Skip to content

Commit

Permalink
refactor: Remove Report Modifiers fonctionality. They are replaced by…
Browse files Browse the repository at this point in the history
… pre-processors
  • Loading branch information
roda82 committed Nov 6, 2023
1 parent 8866117 commit a9e232a
Show file tree
Hide file tree
Showing 16 changed files with 27 additions and 399 deletions.
24 changes: 1 addition & 23 deletions powerapi/cli/common_cli_parsing_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,7 @@
POWERAPI_OUTPUT_ENVIRONMENT_VARIABLE_PREFIX = POWERAPI_ENVIRONMENT_VARIABLE_PREFIX + 'OUTPUT_'
POWERAPI_INPUT_ENVIRONMENT_VARIABLE_PREFIX = POWERAPI_ENVIRONMENT_VARIABLE_PREFIX + 'INPUT_'
POWERAPI_PRE_PROCESSOR_ENVIRONMENT_VARIABLE_PREFIX = POWERAPI_ENVIRONMENT_VARIABLE_PREFIX + 'PRE_PROCESSOR_'
POWERAPI_POST_PROCESSOR_ENVIRONMENT_VARIABLE_PREFIX = POWERAPI_ENVIRONMENT_VARIABLE_PREFIX + 'POST_PROCESSOR_'
POWERAPI_BINDING_ENVIRONMENT_VARIABLE_PREFIX = POWERAPI_ENVIRONMENT_VARIABLE_PREFIX + 'BINDING_'
POWERAPI_REPORT_MODIFIER_ENVIRONMENT_VARIABLE_PREFIX = POWERAPI_ENVIRONMENT_VARIABLE_PREFIX + 'REPORT_MODIFIER_'
POWERAPI_POST_PROCESSOR_ENVIRONMENT_VARIABLE_PREFIX = POWERAPI_ENVIRONMENT_VARIABLE_PREFIX + 'POST_PROCESSOR'


def extract_file_names(arg, val, args, acc):
Expand All @@ -63,11 +61,6 @@ def __init__(self):

self.add_argument_prefix(argument_prefix=POWERAPI_ENVIRONMENT_VARIABLE_PREFIX)
# Subgroups
self.add_subgroup(name='report_modifier',
prefix=POWERAPI_REPORT_MODIFIER_ENVIRONMENT_VARIABLE_PREFIX,
help_text="Specify a report modifier to change input report values : "
"--report_modifier ARG1 ARG2 ...")

self.add_subgroup(name='input',
prefix=POWERAPI_INPUT_ENVIRONMENT_VARIABLE_PREFIX,
help_text="specify a database input : --input database_name ARG1 ARG2 ... ")
Expand Down Expand Up @@ -103,21 +96,6 @@ def __init__(self):
help_text="enable stream mode",
)

subparser_libvirt_mapper_modifier = SubgroupConfigParsingManager("libvirt_mapper")
subparser_libvirt_mapper_modifier.add_argument(
"u", "uri", help_text="libvirt daemon uri", default_value=""
)
subparser_libvirt_mapper_modifier.add_argument(
"d",
"domain_regexp",
help_text="regexp used to extract domain from cgroup string",
)
subparser_libvirt_mapper_modifier.add_argument("n", "name", help_text="")
self.add_subgroup_parser(
subgroup_name="report_modifier",
subgroup_parser=subparser_libvirt_mapper_modifier
)

subparser_mongo_input = SubgroupConfigParsingManager("mongodb")
subparser_mongo_input.add_argument("u", "uri", help_text="specify MongoDB uri")
subparser_mongo_input.add_argument(
Expand Down
29 changes: 1 addition & 28 deletions powerapi/cli/generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@
from powerapi.puller import PullerActor
from powerapi.pusher import PusherActor

from powerapi.report_modifier.libvirt_mapper import LibvirtMapper
from powerapi.puller.simple.simple_puller_actor import SimplePullerActor
from powerapi.pusher.simple.simple_pusher_actor import SimplePusherActor

Expand Down Expand Up @@ -270,18 +269,13 @@ class PullerGenerator(DBActorGenerator):
Generate Puller Actor class and Puller start message from config
"""

def __init__(self, report_filter: Filter, report_modifier_list=None):
def __init__(self, report_filter: Filter):
DBActorGenerator.__init__(self, 'input')
self.report_filter = report_filter

if report_modifier_list is None:
report_modifier_list = []
self.report_modifier_list = report_modifier_list

def _actor_factory(self, actor_name: str, main_config, component_config: dict):
return PullerActor(name=actor_name, database=component_config[COMPONENT_DB_MANAGER_KEY],
report_filter=self.report_filter, stream_mode=main_config[GENERAL_CONF_STREAM_MODE_KEY],
report_modifier_list=self.report_modifier_list,
report_model=component_config[COMPONENT_MODEL_KEY],
level_logger=logging.DEBUG if main_config[GENERAL_CONF_VERBOSE_KEY] else logging.INFO)

Expand Down Expand Up @@ -343,27 +337,6 @@ def _actor_factory(self, actor_name: str, main_config: dict, component_config: d
number_of_reports_to_store=component_config['number_of_reports_to_store'])


class ReportModifierGenerator:
"""
Generate Report modifier list from config
"""

def __init__(self):
self.factory = {'libvirt_mapper': lambda config: LibvirtMapper(config['uri'], config['domain_regexp'])}

def generate(self, config: dict):
"""
Generate Report modifier list from config
"""
report_modifier_list = []
if 'report_modifier' not in config:
return []
for report_modifier_name in config['report_modifier'].keys():
report_modifier = self.factory[report_modifier_name](config['report_modifier'][report_modifier_name])
report_modifier_list.append(report_modifier)
return report_modifier_list


class ProcessorGenerator(Generator):
"""
Generator that initialises the processor from config
Expand Down
1 change: 0 additions & 1 deletion powerapi/message.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@
from powerapi.filter import Filter
from powerapi.dispatcher import RouteTable
from powerapi.formula import FormulaActor, FormulaState
from powerapi.report_modifier import ReportModifier


class Message:
Expand Down
2 changes: 1 addition & 1 deletion powerapi/processor/pre/k8s/k8s_pre_processor_handlers.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

from powerapi.actor import State
from powerapi.handler import Handler, StartHandler, PoisonPillMessageHandler
from powerapi.handler import StartHandler, PoisonPillMessageHandler
from powerapi.message import Message
from powerapi.processor.handlers import ProcessorReportHandler

Expand Down
12 changes: 3 additions & 9 deletions powerapi/puller/handlers.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,17 +87,12 @@ def _pull_database(self):
def _get_dispatchers(self, report):
return self.state.report_filter.route(report)

def _modify_report(self, report):
for report_modifier in self.state.report_modifier_list:
report = report_modifier.modify_report(report)
return report

def run(self):
"""
Read data from Database and send it to the dispatchers.
If there is no more data, send a kill message to every
dispatcher.
If stream mode is disable, kill the actor.
If stream mode is disabled, kill the actor.
:param None msg: None.
"""
Expand All @@ -113,11 +108,10 @@ def run(self):
while self.state.alive:
try:
raw_report = self._pull_database()
report = self._modify_report(raw_report)

dispatchers = self._get_dispatchers(report)
dispatchers = self._get_dispatchers(raw_report)
for dispatcher in dispatchers:
dispatcher.send_data(report)
dispatcher.send_data(raw_report)

except NoReportExtractedException:
time.sleep(self.state.timeout_puller / 1000)
Expand Down
9 changes: 3 additions & 6 deletions powerapi/puller/puller_actor.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ class PullerState(State):
"""

def __init__(self, actor: Actor, database, report_filter, report_model, stream_mode, timeout_puller,
report_modifier_list=[], asynchrone=False):
asynchrone=False):
"""
:param BaseDB database: Allow to interact with a Database
:param Filter report_filter: Filter of the Puller
Expand Down Expand Up @@ -84,8 +84,6 @@ def __init__(self, actor: Actor, database, report_filter, report_model, stream_m

self.loop = None

self.report_modifier_list = report_modifier_list


class PullerActor(Actor):
"""
Expand All @@ -95,7 +93,7 @@ class PullerActor(Actor):
to many Dispatcher depending on some rules.
"""

def __init__(self, name, database, report_filter, report_model, stream_mode=False, report_modifier_list=[],
def __init__(self, name, database, report_filter, report_model, stream_mode=False,
level_logger=logging.WARNING,
timeout=5000, timeout_puller=100):
"""
Expand All @@ -110,8 +108,7 @@ def __init__(self, name, database, report_filter, report_model, stream_mode=Fals
Actor.__init__(self, name, level_logger, timeout)
#: (State): Actor State.
self.state = PullerState(self, database=database, report_filter=report_filter, report_model=report_model,
stream_mode=stream_mode, timeout_puller=timeout_puller,
report_modifier_list=report_modifier_list, asynchrone=database.asynchrone)
stream_mode=stream_mode, timeout_puller=timeout_puller, asynchrone=database.asynchrone)

self.low_exception += database.exceptions

Expand Down
31 changes: 0 additions & 31 deletions powerapi/report_modifier/__init__.py

This file was deleted.

68 changes: 0 additions & 68 deletions powerapi/report_modifier/libvirt_mapper.py

This file was deleted.

41 changes: 0 additions & 41 deletions powerapi/report_modifier/report_modifier.py

This file was deleted.

Loading

0 comments on commit a9e232a

Please sign in to comment.