Skip to content

Commit

Permalink
Merge pull request #51113 from rhcs-dashboard/wip-59460-pacific
Browse files Browse the repository at this point in the history
pacific: mgr/dashboard: expose more grafana configs in service form

Reviewed-by: Pegonzal <NOT@FOUND>
  • Loading branch information
nizamial09 committed May 25, 2023
2 parents 68cecad + 1729d19 commit 2b08d67
Show file tree
Hide file tree
Showing 4 changed files with 104 additions and 12 deletions.
Expand Up @@ -682,6 +682,65 @@
</div>
</div>
</ng-container>
<!-- Grafana -->
<ng-container *ngIf="serviceForm.controls.service_type.value === 'grafana'">
<div class="form-group row">
<label class="cd-col-form-label"
for="grafana_port">
<span i18n>Grafana Port</span>
<cd-helper>
<span i18n>The default port used by grafana.</span>
</cd-helper>
</label>
<div class="cd-col-form-input">
<input id="grafana_port"
class="form-control"
type="number"
formControlName="grafana_port"
min="1"
max="65535">
<span class="invalid-feedback"
*ngIf="serviceForm.showError('grafana_port', frm, 'pattern')"
i18n>The entered value needs to be a number.</span>
<span class="invalid-feedback"
*ngIf="serviceForm.showError('grafana_port', frm, 'min')"
i18n>The value must be at least 1.</span>
<span class="invalid-feedback"
*ngIf="serviceForm.showError('grafana_port', frm, 'max')"
i18n>The value cannot exceed 65535.</span>
<span class="invalid-feedback"
*ngIf="serviceForm.showError('grafana_port', frm, 'required')"
i18n>This field is required.</span>
</div>
</div>

<div class="form-group row">
<label i18n
class="cd-col-form-label"
for="grafana_admin_password">
<span>Grafana Password</span>
<cd-helper>The password of the default Grafana Admin. Set once on first-run.</cd-helper>
</label>
<div class="cd-col-form-input">
<div class="input-group">
<input id="grafana_admin_password"
class="form-control"
type="password"
autocomplete="new-password"
[attr.disabled]="editing ? true:null"
formControlName="grafana_admin_password">
<span class="input-group-append">
<button type="button"
class="btn btn-light"
cdPasswordButton="grafana_admin_password">
</button>
<cd-copy-2-clipboard-button source="grafana_admin_password">
</cd-copy-2-clipboard-button>
</span>
</div>
</div>
</div>
</ng-container>
</div>

<div class="modal-footer">
Expand Down
Expand Up @@ -118,17 +118,7 @@ describe('ServiceFormComponent', () => {

it('should test various services', () => {
_.forEach(
[
'alertmanager',
'crash',
'grafana',
'mds',
'mgr',
'mon',
'node-exporter',
'prometheus',
'rbd-mirror'
],
['alertmanager', 'crash', 'mds', 'mgr', 'mon', 'node-exporter', 'prometheus', 'rbd-mirror'],
(serviceType) => {
formHelper.setValue('service_type', serviceType);
component.onSubmit();
Expand All @@ -141,6 +131,36 @@ describe('ServiceFormComponent', () => {
);
});

describe('should test service grafana', () => {
beforeEach(() => {
formHelper.setValue('service_type', 'grafana');
});

it('should sumbit grafana', () => {
component.onSubmit();
expect(cephServiceService.create).toHaveBeenCalledWith({
service_type: 'grafana',
placement: {},
unmanaged: false,
initial_admin_password: null,
port: null
});
});

it('should sumbit grafana with custom port and initial password', () => {
formHelper.setValue('grafana_port', 1234);
formHelper.setValue('grafana_admin_password', 'foo');
component.onSubmit();
expect(cephServiceService.create).toHaveBeenCalledWith({
service_type: 'grafana',
placement: {},
unmanaged: false,
initial_admin_password: 'foo',
port: 1234
});
});
});

describe('should test service nfs', () => {
beforeEach(() => {
formHelper.setValue('service_type', 'nfs');
Expand Down
Expand Up @@ -321,7 +321,9 @@ export class ServiceFormComponent extends CdForm implements OnInit {
privacy_protocol: { op: '!empty' }
})
]
]
],
grafana_port: [null, [CdValidators.number(false)]],
grafana_admin_password: [null]
});
}

Expand Down Expand Up @@ -461,6 +463,12 @@ export class ServiceFormComponent extends CdForm implements OnInit {
.setValue(response[0].spec['credentials']['snmp_community']);
}
break;
case 'grafana':
this.serviceForm.get('grafana_port').setValue(response[0].spec.port);
this.serviceForm
.get('grafana_admin_password')
.setValue(response[0].spec.initial_admin_password);
break;
}
});
}
Expand Down Expand Up @@ -635,6 +643,9 @@ export class ServiceFormComponent extends CdForm implements OnInit {
}
serviceSpec['virtual_interface_networks'] = values['virtual_interface_networks'];
break;
case 'grafana':
serviceSpec['port'] = values['grafana_port'];
serviceSpec['initial_admin_password'] = values['grafana_admin_password'];
}
}

Expand Down
Expand Up @@ -35,6 +35,8 @@ export interface CephServiceAdditionalSpec {
ssl: boolean;
ssl_cert: string;
ssl_key: string;
port: number;
initial_admin_password: string;
}

export interface CephServicePlacement {
Expand Down

0 comments on commit 2b08d67

Please sign in to comment.