diff --git a/src/webui/grafana_db_slc_grps_psql.json b/src/webui/grafana_db_slc_grps_psql.json index 0b38a7c7ba1d1f4c8fa3f086b31d8c32764b20d9..6aa7a478b6a19a83fa1677579163859eca6dd348 100644 --- a/src/webui/grafana_db_slc_grps_psql.json +++ b/src/webui/grafana_db_slc_grps_psql.json @@ -126,14 +126,14 @@ { "datasource": { "type": "postgres", - "uid": "yTIXTo14z" + "uid": "questdb-slc-grp" }, "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, - "rawSql": "SELECT timestamp as \"time\", slice_uuid, slice_group, slice_color, slice_availability, slice_capacity, slice_capacity_center\nFROM slice_groups\nWHERE $__timeFilter(timestamp);", + "rawSql": "SELECT timestamp as \"time\", slice_uuid, slice_group, slice_color, slice_availability, slice_capacity, slice_capacity_center, is_deleted\nFROM tfs_slice_groups\nWHERE $__timeFilter(timestamp) AND is_deleted <> 'true';", "refId": "A", "select": [ [ @@ -145,7 +145,7 @@ } ] ], - "table": "slice_groups", + "table": "tfs_slice_groups", "timeColumn": "timestamp", "where": [] } @@ -163,7 +163,7 @@ "list": [] }, "time": { - "from": "now-5m", + "from": "now-30m", "to": "now" }, "timepicker": {}, diff --git a/src/webui/service/load_gen/forms.py b/src/webui/service/load_gen/forms.py index 3144fbe5dd2324dad904f1054e30735e27aacbd4..911d28e44cba83bec050e7588d94734a5d22ce27 100644 --- a/src/webui/service/load_gen/forms.py +++ b/src/webui/service/load_gen/forms.py @@ -18,7 +18,7 @@ from wtforms.validators import DataRequired, NumberRange class LoadGenStartForm(FlaskForm): num_requests = IntegerField('Num Requests', default=100, validators=[DataRequired(), NumberRange(min=0)]) - num_generated = IntegerField('Num Generated', render_kw={'readonly': True}) + num_generated = IntegerField('Num Generated', default=0, render_kw={'readonly': True}) request_type_service_l2nm = BooleanField('Service L2NM', default=False) request_type_service_l3nm = BooleanField('Service L3NM', default=False) @@ -27,17 +27,17 @@ class LoadGenStartForm(FlaskForm): request_type_slice_l2nm = BooleanField('Slice L2NM', default=True) request_type_slice_l3nm = BooleanField('Slice L3NM', default=False) - offered_load = FloatField('Offered Load [Erlang]', default=50, validators=[NumberRange(min=1.e-12)]) - holding_time = FloatField('Holding Time [seconds]', default=10, validators=[NumberRange(min=1.e-12)]) - inter_arrival_time = FloatField('Inter Arrival Time[seconds]', default=0, validators=[NumberRange(min=1.e-12)]) + offered_load = FloatField('Offered Load [Erlang]', default=50, validators=[NumberRange(min=0.0)]) + holding_time = FloatField('Holding Time [seconds]', default=10, validators=[NumberRange(min=0.0)]) + inter_arrival_time = FloatField('Inter Arrival Time[seconds]', default=0, validators=[NumberRange(min=0.0)]) do_teardown = BooleanField('Do Teardown', default=True) record_to_dlt = BooleanField('Record to DLT', default=False) dlt_domain_id = StringField('DLT Domain Id', default='') - infinite_loop = BooleanField('Infinite Loop', render_kw={'readonly': True}) - running = BooleanField('Running', render_kw={'readonly': True}) + infinite_loop = BooleanField('Infinite Loop', default=False, render_kw={'readonly': True}) + running = BooleanField('Running', default=False, render_kw={'readonly': True}) submit = SubmitField('Start') diff --git a/src/webui/service/load_gen/routes.py b/src/webui/service/load_gen/routes.py index 89390090819e65fb69277f2a5654f15232100ebc..ab1733013c1ecf8f72a0bde78871918222055668 100644 --- a/src/webui/service/load_gen/routes.py +++ b/src/webui/service/load_gen/routes.py @@ -20,6 +20,14 @@ from .forms import LoadGenStartForm, LoadGenStopForm load_gen = Blueprint('load_gen', __name__, url_prefix='/load_gen') +def make_read_only(field, readonly : bool) -> None: + if not hasattr(field, 'render_kw'): + field.render_kw = dict(readonly=readonly) + elif field.render_kw is None: + field.render_kw = dict(readonly=readonly) + else: + field.render_kw['readonly'] = readonly + @load_gen.route('home', methods=['GET', 'POST']) def home(): load_gen_client = LoadGeneratorClient() @@ -61,7 +69,7 @@ def home(): load_gen_client.connect() load_gen_client.Stop(Empty()) load_gen_client.close() - flash('Load Generator Stoped.', 'success') + flash('Load Generator Stopped.', 'success') except Exception as e: # pylint: disable=broad-except flash('Problem stopping Load Generator. {:s}'.format(str(e)), 'danger') @@ -88,19 +96,18 @@ def home(): form_start.request_type_slice_l2nm .default = RequestTypeEnum.REQUESTTYPE_SLICE_L2NM in request_types form_start.request_type_slice_l3nm .default = RequestTypeEnum.REQUESTTYPE_SLICE_L3NM in request_types - form_start.num_requests .render_kw['readonly'] = status.running - form_start.offered_load .render_kw['readonly'] = status.running - form_start.holding_time .render_kw['readonly'] = status.running - form_start.inter_arrival_time.render_kw['readonly'] = status.running - form_start.do_teardown .render_kw['readonly'] = status.running - form_start.record_to_dlt .render_kw['readonly'] = status.running - form_start.dlt_domain_id .render_kw['readonly'] = status.running - - form_start.request_type_service_l2nm.render_kw['readonly'] = status.running - form_start.request_type_service_l3nm.render_kw['readonly'] = status.running - form_start.request_type_service_mw .render_kw['readonly'] = status.running - form_start.request_type_service_tapi.render_kw['readonly'] = status.running - form_start.request_type_slice_l2nm .render_kw['readonly'] = status.running - form_start.request_type_slice_l3nm .render_kw['readonly'] = status.running + make_read_only(form_start.num_requests , status.running) + make_read_only(form_start.offered_load , status.running) + make_read_only(form_start.holding_time , status.running) + make_read_only(form_start.inter_arrival_time , status.running) + make_read_only(form_start.do_teardown , status.running) + make_read_only(form_start.record_to_dlt , status.running) + make_read_only(form_start.dlt_domain_id , status.running) + make_read_only(form_start.request_type_service_l2nm, status.running) + make_read_only(form_start.request_type_service_l3nm, status.running) + make_read_only(form_start.request_type_service_mw , status.running) + make_read_only(form_start.request_type_service_tapi, status.running) + make_read_only(form_start.request_type_slice_l2nm , status.running) + make_read_only(form_start.request_type_slice_l3nm , status.running) - return render_template('load_gen/home.html', form_start=form_start, form_stop=form_stop) + return render_template('load_gen/home.html', form_start=form_start, form_stop=form_stop, is_running=status.running) diff --git a/src/webui/service/templates/load_gen/home.html b/src/webui/service/templates/load_gen/home.html index 5aa7513927b86bf775b781e21fbd10b76b897ab2..684e60ed5223bca7ea5abfdfc3b7c3cea0cb0388 100644 --- a/src/webui/service/templates/load_gen/home.html +++ b/src/webui/service/templates/load_gen/home.html @@ -21,7 +21,9 @@ <br /> <form id="load_gen_start" method="POST"> + {% if not is_running %} {{ form_start.hidden_tag() }} + {% endif %} <fieldset> <div class="row mb-3"> {{ form_start.num_requests.label(class="col-sm-2 col-form-label") }} @@ -56,12 +58,14 @@ <div class="row mb-3"> <div class="col-sm-2 col-form-label">Service Types:</div> <div class="col-sm-10"> + {{ form_start.request_type_slice_l2nm }} {{ form_start.request_type_slice_l2nm .label(class="col-sm-3 col-form-label") }} + {{ form_start.request_type_slice_l3nm }} {{ form_start.request_type_slice_l3nm .label(class="col-sm-3 col-form-label") }} + <br/> {{ form_start.request_type_service_l2nm }} {{ form_start.request_type_service_l2nm.label(class="col-sm-3 col-form-label") }} {{ form_start.request_type_service_l3nm }} {{ form_start.request_type_service_l3nm.label(class="col-sm-3 col-form-label") }} + <br/> {{ form_start.request_type_service_mw }} {{ form_start.request_type_service_mw .label(class="col-sm-3 col-form-label") }} {{ form_start.request_type_service_tapi }} {{ form_start.request_type_service_tapi.label(class="col-sm-3 col-form-label") }} - {{ form_start.request_type_slice_l2nm }} {{ form_start.request_type_slice_l2nm .label(class="col-sm-3 col-form-label") }} - {{ form_start.request_type_slice_l3nm }} {{ form_start.request_type_slice_l3nm .label(class="col-sm-3 col-form-label") }} </div> </div> <br /> @@ -112,18 +116,17 @@ <br /> <div class="row mb-3"> - {{ form_start.do_teardown(class="form-control") }} {{ form_start.do_teardown.label(class="col-sm-2 col-form-label") }} - </div> - <br /> - - <div class="row mb-3"> - {{ form_start.record_to_dlt(class="form-control") }} {{ form_start.record_to_dlt.label(class="col-sm-2 col-form-label") }} + <div class="col-sm-10"> + {{ form_start.do_teardown }} {{ form_start.do_teardown.label(class="col-sm-3 col-form-label") }}<br/> + </div> </div> <br /> <div class="row mb-3"> - {{ form_start.dlt_domain_id.label(class="col-sm-2 col-form-label") }} + <div class="col-sm-2 col-form-label">DLT Settings:</div> <div class="col-sm-10"> + {{ form_start.record_to_dlt }} {{ form_start.record_to_dlt.label(class="col-sm-3 col-form-label") }} <br/> + {{ form_start.dlt_domain_id.label(class="col-sm-2 col-form-label") }} {% if form_start.dlt_domain_id.errors %} {{ form_start.dlt_domain_id(class="form-control is-invalid") }} <div class="invalid-feedback"> @@ -137,21 +140,23 @@ <br /> <div class="row mb-3"> - {{ form_start.infinite_loop(class="form-control") }} {{ form_start.infinite_loop.label(class="col-sm-2 col-form-label") }} - </div> - <br /> - - <div class="row mb-3"> - {{ form_start.running(class="form-control") }} {{ form_start.running.label(class="col-sm-2 col-form-label") }} + <div class="col-sm-2 col-form-label">Status:</div> + <div class="col-sm-10"> + {{ form_start.infinite_loop }} {{ form_start.infinite_loop.label(class="col-sm-3 col-form-label") }} + {{ form_start.running }} {{ form_start.running.label(class="col-sm-3 col-form-label") }} + </div> </div> <br /> + {% if not is_running %} <div class="d-grid gap-2 d-md-flex justify-content-md-start"> {{ form_start.submit(class="btn btn-primary") }} </div> + {% endif %} </fieldset> </form> + {% if is_running %} <form id="load_gen_stop" method="POST"> {{ form_stop.hidden_tag() }} <fieldset> @@ -160,5 +165,6 @@ </div> </fieldset> </form> + {% endif %} {% endblock %}