]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mgr/dashboard: carbonize smb service custom_dns input
authorPedro Gonzalez Gomez <pegonzal@ibm.com>
Tue, 30 Sep 2025 19:00:35 +0000 (21:00 +0200)
committerPedro Gonzalez Gomez <pegonzal@ibm.com>
Wed, 19 Nov 2025 08:56:56 +0000 (09:56 +0100)
Fixes: https://tracker.ceph.com/issues/73319
Signed-off-by: Pedro Gonzalez Gomez <pegonzal@ibm.com>
(cherry picked from commit 55efded0a95c0c0944bc3c4f8d2e051815080c13)

 Conflicts:
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/cluster.module.ts

src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/cluster.module.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-form/service-form.component.html
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-form/service-form.component.spec.ts
src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-form/service-form.component.ts
src/pybind/mgr/dashboard/frontend/src/app/shared/components/text-label-list/text-label-list.component.html
src/pybind/mgr/dashboard/frontend/src/app/shared/components/text-label-list/text-label-list.component.ts

index ff1eeb904f2f08e6299c8d2e14e40726069e9135..6a3c46ed10210b2b9e4f7c13fb2a84fcb2ab40c4 100644 (file)
@@ -14,7 +14,9 @@ import {
   ModalModule,
   TreeviewModule,
   ListModule,
-  ToggletipModule
+  ToggletipModule,
+  IconModule,
+  TagModule
 } from 'carbon-components-angular';
 
 import {
@@ -79,6 +81,7 @@ import { MultiClusterFormComponent } from './multi-cluster/multi-cluster-form/mu
 import { MultiClusterListComponent } from './multi-cluster/multi-cluster-list/multi-cluster-list.component';
 import { DashboardV3Module } from '../dashboard-v3/dashboard-v3.module';
 import { MultiClusterDetailsComponent } from './multi-cluster/multi-cluster-details/multi-cluster-details.component';
+import { TextLabelListComponent } from '~/app/shared/components/text-label-list/text-label-list.component';
 
 @NgModule({
   imports: [
@@ -110,7 +113,10 @@ import { MultiClusterDetailsComponent } from './multi-cluster/multi-cluster-deta
     InputModule,
     ModalModule,
     ListModule,
-    ToggletipModule
+    ToggletipModule,
+    IconModule,
+    TagModule,
+    TextLabelListComponent
   ],
   declarations: [
     MonitorComponent,
index 654f6d858bd936d2b15ef8bb66147b709defcf25..4625f2850259a840651e671f8e526ee408714c9b 100644 (file)
             </div>
           </div>
 
-          <div class="form-group row">
-            <label class="cd-col-form-label"
-                   for="custom_dns">
-              <span i18n>Custom DNS</span>
-              <cd-helper i18n>
-                <span>Comma separated list of DNSs.</span>
-                <br>
-                <span>A list of IP addresses that will be used as the DNS servers for a Samba container.</span>
-              </cd-helper>
-            </label>
-            <div class="cd-col-form-input">
-              <input id="custom_dns"
-                     class="form-control"
-                     type="text"
-                     formControlName="custom_dns"
-                     placeholder="192.168.76.204"
-                     i18n-placeholder>
-            </div>
+          <div class="form-item">
+            <cd-text-label-list formControlName="custom_dns"
+                                label="Custom DNS"
+                                helperText="IP addresses that will be used as the DNS servers for a Samba container."
+                                placeholder="192.168.76.204">
+            </cd-text-label-list>
           </div>
 
           <div class="form-group row">
index bf1ac3ddf43cad40be945d33428507ed358391fe..91552e31316eba25ff6d913ed62e97eebf6880a3 100644 (file)
@@ -538,7 +538,10 @@ x4Ea7kGVgx9kWh5XjWz9wjZvY49UKIT5ppIAWPMbLl3UpfckiuNhTA==
           unmanaged: false,
           service_id: 'foo',
           cluster_id: 'cluster_foo',
-          config_uri: 'rados://.smb/foo/scc.toml'
+          config_uri: 'rados://.smb/foo/scc.toml',
+          custom_dns: null,
+          join_sources: undefined,
+          user_sources: undefined
         });
       });
     });
index 827b41c84ad9b03157b3b373cada958630b4b6de..735c36fbc970a3d0dee836d942091fd17788beff 100644 (file)
@@ -1212,7 +1212,7 @@ export class ServiceFormComponent extends CdForm implements OnInit {
             (serviceSpec['features'] = serviceSpec['features'] || []).push(feature);
           }
         }
-        serviceSpec['custom_dns'] = values['custom_dns']?.trim();
+        serviceSpec['custom_dns'] = values['custom_dns'];
         serviceSpec['join_sources'] = values['join_sources']?.trim();
         serviceSpec['user_sources'] = values['user_sources']?.trim();
         serviceSpec['include_ceph_users'] = values['include_ceph_users']?.trim();
index bebe032b40e3089f231e052de2b51aedbf1010b7..0a3a2016a78b8b578d720babc307450aa4be315d 100644 (file)
@@ -2,20 +2,20 @@
   <cds-text-label [helperText]="helperText && $index === values.length - 1 ? helperText : null"
                   i18n-helperText
                   i18n>
-      <div class="cds-input-group">
-        <input cdsText
-              type="text"
-              [placeholder]="placeholder"
-              [value]="value"
-              (input)="onInputChange($index, $event.target.value)"/>
-        @if ($index > 0 ) {
-          <cds-icon-button kind="ghost"
-                          (click)="deleteInput($index)"
-                          size="md">
-            <cd-icon type="trash"></cd-icon>
-          </cds-icon-button>
-        }
-      </div>
-  {{$index === 0 ? label : ''}}
+    <div class="cds-input-group">
+      <input cdsText
+             type="text"
+             [placeholder]="placeholder"
+             [value]="value"
+             (input)="onInputChange($index, $event.target.value)" />
+      @if ($index > 0 ) {
+      <cds-icon-button kind="ghost"
+                       (click)="deleteInput($index)"
+                       size="md">
+        <cd-icon type="trash"></cd-icon>
+      </cds-icon-button>
+      }
+    </div>
+    {{$index === 0 ? label : ''}}
   </cds-text-label>
 }
index 7e667396484199a0bece531443e1259c48a17ad9..2d1680dfe7194319abe617c25e65200b6ab2a37f 100644 (file)
@@ -27,12 +27,12 @@ import { ComponentsModule } from '../components.module';
   ]
 })
 export class TextLabelListComponent implements ControlValueAccessor {
-  @Input()
-  label: string = '';
-  @Input()
-  helperText: string = '';
-  @Input()
-  placeholder: string = '';
+  // Label for the text list.
+  @Input() label: string = '';
+  // Optional helper text that appears under the label.
+  @Input() helperText: string = '';
+  // Value displayed if no item is present.
+  @Input() placeholder: string = '';
 
   values: string[] = [''];
   disabled: boolean = false;