Skip to content

Commit 29b000f

Browse files
authored
Merge pull request #101 from splunk/FAST-11632
Fast 11632
2 parents 813e8cb + 943964f commit 29b000f

File tree

7 files changed

+51
-21
lines changed

7 files changed

+51
-21
lines changed

Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ test_collection_cleanup:
5858
docker cp ${EVENTGEN_TEST_IMAGE}:$(shell pwd)/tests/functional_orca_test.log functional_orca_test.log || echo "no functional_orca_test.log"
5959

6060
@echo 'Stopping test container'
61-
docker stop ${EVENTGEN_TEST_IMAGE}
61+
docker stop ${EVENTGEN_TEST_IMAGE} || true
6262

6363
clean:
6464
rm *.spl || true
@@ -69,6 +69,7 @@ clean:
6969
rm -rf docs/_book || true
7070
rm -rf node_modules || true
7171
rm -rf docs/node_modules || true
72+
rm splunk_eventgen/default/eventgen_wsgi.conf || true
7273
find . -name "*.pyc" -type f -delete || true
7374
find . -name "*.log" -type f -delete || true
7475
find . -name "*.pyc" -type f -delete || true

splunk_eventgen/__main__.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,9 +275,20 @@ def build_splunk_app(dest, source=os.getcwd(), remove=True):
275275
shutil.rmtree(directory)
276276
os.chdir(cwd)
277277

278+
def convert_verbosity_count_to_logging_level(verbosity):
279+
if verbosity == 0:
280+
return logging.ERROR
281+
elif verbosity == 1:
282+
return logging.INFO
283+
elif verbosity == 2:
284+
return logging.DEBUG
285+
else:
286+
return logging.ERROR
287+
278288
def main():
279289
cwd = os.getcwd()
280290
args = parse_args()
291+
args.verbosity = convert_verbosity_count_to_logging_level(args.verbosity)
281292
if args.subcommand == "generate":
282293
eventgen = eventgen_core.EventGenerator(args=args)
283294
eventgen.start()

splunk_eventgen/eventgen_core.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ def _create_generator_workers(self, workercount=20):
235235
def _setup_loggers(self, args=None, config=None):
236236
log_path = getattr(args, "log_path", os.path.join(file_path, 'logs'))
237237
eventgen_main_logger_path = os.path.join(log_path, 'eventgen-main.log')
238-
eventgen_listener_logger_path = os.path.join(log_path, 'eventgen-listener-process.log')
238+
eventgen_controller_logger_path = os.path.join(log_path, 'eventgen-controller.log')
239239
eventgen_metrics_logger_path = os.path.join(log_path, 'eventgen-metrics.log')
240240
eventgen_error_logger_path = os.path.join(log_path, 'eventgen-errors.log')
241241
eventgen_server_logger_path = os.path.join(log_path, 'eventgen-server.log')
@@ -256,9 +256,9 @@ def _setup_loggers(self, args=None, config=None):
256256
file_handler.setFormatter(detailed_formatter)
257257
file_handler.setLevel(logging.DEBUG)
258258

259-
eventgen_listener_file_handler = logging.handlers.RotatingFileHandler(eventgen_listener_logger_path, maxBytes=2500000, backupCount=20)
260-
eventgen_listener_file_handler.setFormatter(detailed_formatter)
261-
eventgen_listener_file_handler.setLevel(logging.DEBUG)
259+
eventgen_controller_file_handler = logging.handlers.RotatingFileHandler(eventgen_controller_logger_path, maxBytes=2500000, backupCount=20)
260+
eventgen_controller_file_handler.setFormatter(detailed_formatter)
261+
eventgen_controller_file_handler.setLevel(logging.DEBUG)
262262

263263
error_file_handler = logging.handlers.RotatingFileHandler(eventgen_error_logger_path, maxBytes=2500000, backupCount=20)
264264
error_file_handler.setFormatter(detailed_formatter)
@@ -274,7 +274,7 @@ def _setup_loggers(self, args=None, config=None):
274274

275275
# Configure eventgen logger
276276
logger = logging.getLogger('eventgen')
277-
logger.setLevel(self.args.VERBOSITY or logging.ERROR)
277+
logger.setLevel(self.args.verbosity or logging.ERROR)
278278
logger.propagate = False
279279
logger.handlers = []
280280
if args and not args.modinput_mode:
@@ -283,12 +283,13 @@ def _setup_loggers(self, args=None, config=None):
283283
logger.addHandler(error_file_handler)
284284

285285
# Configure eventgen listener
286-
logger = logging.getLogger('eventgen_listener')
287-
logger.setLevel(self.args.VERBOSITY or logging.ERROR)
286+
logger = logging.getLogger('eventgen_controller')
287+
logger.setLevel(self.args.verbosity or logging.ERROR)
288288
logger.propagate = False
289289
logger.handlers = []
290-
logger.addHandler(eventgen_listener_file_handler)
290+
logger.addHandler(eventgen_controller_file_handler)
291291
logger.addHandler(error_file_handler)
292+
logger.addHandler(console_handler)
292293

293294
# Configure eventgen mertics logger
294295
logger = logging.getLogger('eventgen_metrics')
@@ -303,6 +304,7 @@ def _setup_loggers(self, args=None, config=None):
303304
logger.propagate = False
304305
logger.handlers = []
305306
logger.addHandler(server_file_handler)
307+
logger.addHandler(console_handler)
306308
else:
307309
self.logger_config = config
308310
logging.config.dictConfig(self.logger_config)

splunk_eventgen/eventgen_nameko_controller.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,7 @@ def receive_conf(self, data):
456456
self.server_confs[data['server_name']] = data['server_conf']
457457

458458
def receive_volume(self, data):
459-
if data['server_name'] and data["total_volume"]:
459+
if data['server_name'] and "total_volume" in data:
460460
self.server_volumes[data['server_name']] = data['total_volume']
461461

462462
def process_server_status(self, current_time):

splunk_eventgen/eventgen_nameko_dependency.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def create_args():
3333
args.sample = None
3434
args.version = False
3535
args.subcommand = 'generate'
36-
args.verbosity = 0
36+
args.verbosity = 40
3737
args.wsgi = True
3838
args.modinput_mode = False
3939
return args

splunk_eventgen/eventgen_nameko_server.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ def start(self):
165165
return "There is not config file known to eventgen. Pass in the config file to /conf before you start."
166166
if self.eventgen_dependency.eventgen.check_running():
167167
return "Eventgen already started."
168-
self.eventgen_dependency.eventgen.start(join_after_start=True)
168+
self.eventgen_dependency.eventgen.start(join_after_start=False)
169169
return "Eventgen has successfully started."
170170
except Exception as e:
171171
self.log.exception(e)
@@ -418,7 +418,9 @@ def get_volume(self):
418418
try:
419419
config = json.loads(self.get_conf())
420420
self.log.info(config)
421-
self.total_volume = float(self.get_data_volumes(config))
421+
fetched_volume = float(self.get_data_volumes(config))
422+
if fetched_volume:
423+
self.total_volume = fetched_volume
422424
self.send_volume_to_controller(total_volume=self.total_volume)
423425
return str(self.total_volume)
424426
except Exception as e:
@@ -450,6 +452,8 @@ def set_volume(self, volume):
450452
if "perDayVolume" in config[stanza].keys():
451453
divided_value = float(config[stanza]["perDayVolume"]) * ratio
452454
else:
455+
if not num_stanzas:
456+
num_stanzas = 1
453457
divided_value = float(volume) / float(num_stanzas)
454458
update_json[stanza] = {"perDayVolume": divided_value}
455459
output = self.edit_conf(json.dumps(update_json))

tests/large/test_eventgen_orchestration.py

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,15 @@ def test_controller_index(self):
113113
assert "You are running Eventgen Controller" in r.content
114114

115115
def test_controller_status(self):
116-
r = requests.get("http://127.0.0.1:{}/status".format(self.controller_eventgen_webport))
117-
assert r.status_code == 200
118-
output = json.loads(r.content)
116+
max_retry = 5
117+
current_retry = 1
118+
output = {}
119+
while not output and current_retry <= max_retry:
120+
response = requests.get("http://127.0.0.1:{}/status".format(self.controller_eventgen_webport), timeout=10)
121+
if response.status_code == 200:
122+
output = json.loads(response.content)
123+
current_retry += 1
124+
time.sleep(10)
119125
assert output
120126

121127
def test_controller_start(self):
@@ -164,10 +170,16 @@ def test_controller_bundle_with_url_and_target(self):
164170
assert "Bundle event dispatched to {} with url http://server.com/bundle.tgz".format(TestEventgenOrchestration.server_id[:12]) in r.content
165171

166172
def test_controller_get_volume(self):
167-
r = requests.get("http://127.0.0.1:{}/volume".format(self.controller_eventgen_webport))
168-
assert r.status_code == 200
169-
output = json.loads(r.content)
170-
assert output[TestEventgenOrchestration.server_id[:12]] == {}
173+
max_retry = 5
174+
current_retry = 1
175+
output = {}
176+
while not output and current_retry <= max_retry:
177+
response = requests.get("http://127.0.0.1:{}/volume".format(self.controller_eventgen_webport), timeout=10)
178+
if response.status_code == 200:
179+
output = json.loads(response.content)
180+
current_retry += 1
181+
time.sleep(10)
182+
assert output[TestEventgenOrchestration.server_id[:12]] == 0.0
171183

172184
def test_controller_set_volume_invalid_request(self):
173185
r = requests.post("http://127.0.0.1:{}/volume".format(self.controller_eventgen_webport))
@@ -225,7 +237,7 @@ def test_server_get_and_set_conf(self):
225237
assert json.loads(r.content) == config_json
226238

227239
def test_server_start(self):
228-
r = requests.post("http://127.0.0.1:{}/start".format(self.server_eventgen_webport))
240+
r = requests.post("http://127.0.0.1:{}/start".format(self.server_eventgen_webport), timeout=5)
229241
assert r.status_code == 200
230242
assert json.loads(r.content) == "Eventgen has successfully started."
231243

0 commit comments

Comments
 (0)