Commit 5aff458e authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

WebUI component:

- updated grafana slice-grouping dashboard queries
- updated load-gen request form
parent 49f80049
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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": {},
+6 −6
Original line number Diff line number Diff line
@@ -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')

+23 −16
Original line number Diff line number Diff line
@@ -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)
+21 −15
Original line number Diff line number Diff line
@@ -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 class="col-sm-10">
                    {{ form_start.do_teardown }} {{ form_start.do_teardown.label(class="col-sm-3 col-form-label") }}<br/>
                </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>
            <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 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>
            <br />

            <div class="row mb-3">
                {{ form_start.running(class="form-control") }} {{ form_start.running.label(class="col-sm-2 col-form-label") }}
            </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 %}