• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

yast / yast-squid / 10845679279

13 Sep 2024 08:23AM UTC coverage: 37.03%. Remained the same
10845679279

push

github

lslezak
Adapt files for the SLE-15-SP7 branch

748 of 2020 relevant lines covered (37.03%)

3.87 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

16.55
/src/include/squid/inits.rb
1
# encoding: utf-8
2

3
# ------------------------------------------------------------------------------
4
# Copyright (c) 2006 Novell, Inc. All Rights Reserved.
5
#
6
#
7
# This program is free software; you can redistribute it and/or modify it under
8
# the terms of version 2 of the GNU General Public License as published by the
9
# Free Software Foundation.
10
#
11
# This program is distributed in the hope that it will be useful, but WITHOUT
12
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13
# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
14
#
15
# You should have received a copy of the GNU General Public License along with
16
# this program; if not, contact Novell, Inc.
17
#
18
# To contact Novell about this file by physical or electronic mail, you may find
19
# current contact information at www.novell.com.
20
# ------------------------------------------------------------------------------
21

22
# File:        include/squid/inits.ycp
23
# Package:        Configuration of squid
24
# Summary:        All Init... functions for dialogs.
25
# Authors:        Daniel Fiser <dfiser@suse.cz>
26
#
27
# $Id$
28
module Yast
1✔
29
  module SquidInitsInclude
1✔
30
    def initialize_squid_inits(include_target)
1✔
31
      Yast.import "UI"
5✔
32

33
      textdomain "squid"
5✔
34

35
      Yast.import "Squid"
5✔
36
      Yast.import "SquidACL"
5✔
37
      Yast.import "SquidErrorMessages"
5✔
38

39
      Yast.include include_target, "squid/helps.rb"
5✔
40
    end
41

42
    # Do simple initialization of dialog.
43
    # Given map has to be in form:
44
    #      $[ id_of_widget : value_on_which_has_to_be_set,
45
    #         ....
46
    #       ]
47
    def simpleInit(m)
1✔
48
      m = deep_copy(m)
×
49
      Builtins.foreach(m) do |key, value|
×
50
        UI.ChangeWidget(Id(key), :Value, value)
×
51
      end
52

53
      nil
54
    end
55

56
    # *******************  HTTP_PORT  ****************
57
    def InitHttpPortsTable(_key)
1✔
58
      items = []
×
59
      i = 0
×
60

61
      Builtins.foreach(Squid.GetHttpPorts) do |value|
×
62
        items = Builtins.add(
×
63
          items,
64
          Item(
65
            Id(i),
66
            Ops.get_string(value, "host", ""),
67
            Ops.get_string(value, "port", ""),
68
            # table cell
69
            Ops.get_boolean(value, "transparent", false) ? _("Transparent") : ""
×
70
          )
71
        )
72
        i = Ops.add(i, 1)
×
73
      end
74

75
      Builtins.y2debug(
×
76
        "complex::InitPortsTable() - items: %1, http_ports: %2",
77
        items,
78
        Squid.GetHttpPorts
79
      )
80
      UI.ChangeWidget(Id("http_port"), :Items, items)
×
81
      if Ops.greater_than(Builtins.size(items), 0)
×
82
        UI.ChangeWidget(Id(:edit), :Enabled, true)
×
83
        UI.ChangeWidget(Id(:del), :Enabled, true)
×
84
      else
85
        UI.ChangeWidget(Id(:edit), :Enabled, false)
×
86
        UI.ChangeWidget(Id(:del), :Enabled, false)
×
87
      end
88

89
      nil
90
    end
91

92
    def InitAddEditHttpPortDialog(id_item)
1✔
93
      if !id_item.nil?
×
94
        values = Squid.GetHttpPort(id_item)
×
95

96
        UI.ChangeWidget(Id("host"), :Value, Ops.get_string(values, "host", ""))
×
97
        UI.ChangeWidget(Id("port"), :Value, Ops.get_string(values, "port", ""))
×
98
        UI.ChangeWidget(
×
99
          Id("transparent"),
100
          :Value,
101
          Ops.get_boolean(values, "transparent", false)
102
        )
103
      end
104

105
      nil
106
    end
107
    # *******************  HTTP_PORT END  ************
108

109
    # ****************  REFRESH_PATTERNS  ************
110
    def InitRefreshPatternsTable(_key)
1✔
111
      items = []
×
112
      i = 0
×
113

114
      Builtins.foreach(Squid.GetRefreshPatterns) do |value|
×
115
        items = Builtins.add(
×
116
          items,
117
          Item(
118
            Id(i),
119
            Ops.get_string(value, "regexp", ""),
120
            Ops.get_string(value, "min", ""),
121
            Ops.get_string(value, "percent", ""),
122
            Ops.get_string(value, "max", "")
123
          )
124
        )
125
        i = Ops.add(i, 1)
×
126
      end
127

128
      Builtins.y2debug("complex::InitRefreshPatternsTable() - items: %1", items)
×
129
      UI.ChangeWidget(Id("refresh_patterns"), :Items, items)
×
130
      if Ops.greater_than(Builtins.size(items), 0)
×
131
        UI.ChangeWidget(Id(:edit), :Enabled, true)
×
132
        UI.ChangeWidget(Id(:del), :Enabled, true)
×
133
        UI.ChangeWidget(Id(:up), :Enabled, true)
×
134
        UI.ChangeWidget(Id(:down), :Enabled, true)
×
135
      else
136
        UI.ChangeWidget(Id(:edit), :Enabled, false)
×
137
        UI.ChangeWidget(Id(:del), :Enabled, false)
×
138
        UI.ChangeWidget(Id(:up), :Enabled, false)
×
139
        UI.ChangeWidget(Id(:down), :Enabled, false)
×
140
      end
141

142
      nil
143
    end
144

145
    def InitAddEditRefreshPatternDialog(id_item)
1✔
146
      if !id_item.nil?
×
147
        values = Squid.GetRefreshPattern(id_item)
×
148

149
        UI.ChangeWidget(
×
150
          Id("regexp"),
151
          :Value,
152
          Ops.get_string(values, "regexp", "")
153
        )
154
        UI.ChangeWidget(
×
155
          Id("min"),
156
          :Value,
157
          Builtins.tointeger(Ops.get_string(values, "min", ""))
158
        )
159
        UI.ChangeWidget(
×
160
          Id("percent"),
161
          :Value,
162
          Builtins.tointeger(Ops.get_string(values, "percent", ""))
163
        )
164
        UI.ChangeWidget(
×
165
          Id("max"),
166
          :Value,
167
          Builtins.tointeger(Ops.get_string(values, "max", ""))
168
        )
169
        UI.ChangeWidget(
×
170
          Id("regexp_case_insensitive"),
171
          :Value,
172
          !Ops.get_boolean(values, "case_sensitive", true)
173
        )
174

175
        Builtins.y2debug(
×
176
          "complex::InitAddEditRefreshPatternDialog() - values: %1",
177
          values
178
        )
179
      end
180

181
      nil
182
    end
183
    # ****************  REFRESH_PATTERNS END  ********
184

185
    # ****************  CACHE DIALOG  ****************
186
    def InitCache2Dialog(_key)
1✔
187
      set = Convert.convert(
×
188
        Squid.GetSettings,
189
        from: "map <string, any>",
190
        to:   "map <string, list>"
191
      )
192
      simpleInit(
×
193
        "cache_mem"                   => Builtins.tointeger(
194
          Ops.get_string(Ops.get(set, "cache_mem", []), 0, "")
195
        ),
196
        "cache_mem_units"             => Ops.get_string(
197
          Ops.get(set, "cache_mem", []),
198
          1,
199
          ""
200
        ),
201
        "cache_max_object_size"       => Builtins.tointeger(
202
          Ops.get_string(Ops.get(set, "maximum_object_size", []), 0, "")
203
        ),
204
        "cache_max_object_size_units" => Ops.get_string(
205
          Ops.get(set, "maximum_object_size", []),
206
          1,
207
          ""
208
        ),
209
        "cache_min_object_size"       => Builtins.tointeger(
210
          Ops.get_string(Ops.get(set, "minimum_object_size", []), 0, "")
211
        ),
212
        "cache_min_object_size_units" => Ops.get_string(
213
          Ops.get(set, "minimum_object_size", []),
214
          1,
215
          ""
216
        ),
217
        "cache_swap_low"              => Builtins.tointeger(
218
          Ops.get_string(Ops.get(set, "cache_swap_low", []), 0, "")
219
        ),
220
        "cache_swap_high"             => Builtins.tointeger(
221
          Ops.get_string(Ops.get(set, "cache_swap_high", []), 0, "")
222
        ),
223
        "cache_replacement_policy"    => Ops.get_string(
224
          Ops.get(set, "cache_replacement_policy", []),
225
          0,
226
          ""
227
        ),
228
        "memory_replacement_policy"   => Ops.get_string(
229
          Ops.get(set, "memory_replacement_policy", []),
230
          0,
231
          ""
232
        )
233
      )
234
      UI.ChangeWidget(Id("cache_max_object_size"), :Notify, true)
×
235
      UI.ChangeWidget(Id("cache_min_object_size"), :Notify, true)
×
236
      UI.ChangeWidget(Id("cache_max_object_size_units"), :Notify, true)
×
237
      UI.ChangeWidget(Id("cache_min_object_size_units"), :Notify, true)
×
238

239
      UI.ChangeWidget(Id("cache_swap_low"), :Notify, true)
×
240
      UI.ChangeWidget(Id("cache_swap_high"), :Notify, true)
×
241

242
      nil
243
    end
244

245
    def InitCacheDirectoryDialog(_key)
1✔
246
      set = Convert.convert(
×
247
        Squid.GetSettings,
248
        from: "map <string, any>",
249
        to:   "map <string, list>"
250
      )
251
      simpleInit(
×
252
        "cache_dir" => Ops.get_string(Ops.get(set, "cache_dir", []), 1, ""),
253
        "mbytes"    => Builtins.tointeger(
254
          Ops.get_string(Ops.get(set, "cache_dir", []), 2, "")
255
        ),
256
        "l1dirs"    => Builtins.tointeger(
257
          Ops.get_string(Ops.get(set, "cache_dir", []), 3, "")
258
        ),
259
        "l2dirs"    => Builtins.tointeger(
260
          Ops.get_string(Ops.get(set, "cache_dir", []), 4, "")
261
        )
262
      )
263

264
      nil
265
    end
266
    # ****************  CACHE DIALOG END  ************
267

268
    # ****************  ACL  *************************
269
    def InitACLGroupsTable(_key)
1✔
270
      items = []
×
271
      i = 0
×
272
      sup_acls = SquidACL.SupportedACLs
×
273

274
      Builtins.foreach(Squid.GetACLs) do |value|
×
275
        # test, if know how to handle this ACL
276
        if Builtins.contains(sup_acls, Ops.get_string(value, "type", ""))
×
277
          items = Builtins.add(
×
278
            items,
279
            Item(
280
              Id(i),
281
              Ops.get_string(value, "name", ""),
282
              Ops.get_string(value, "type", ""),
283
              Builtins.mergestring(Ops.get_list(value, "options", []), " ")
284
            )
285
          )
286
          i = Ops.add(i, 1)
×
287
        end
288
      end
289

290
      UI.ChangeWidget(Id("acl"), :Items, items)
×
291
      if Ops.greater_than(Builtins.size(items), 0)
×
292
        UI.ChangeWidget(Id(:edit_acl), :Enabled, true)
×
293
        UI.ChangeWidget(Id(:del_acl), :Enabled, true)
×
294
      else
295
        UI.ChangeWidget(Id(:edit_acl), :Enabled, false)
×
296
        UI.ChangeWidget(Id(:del_acl), :Enabled, false)
×
297
      end
298

299
      nil
300
    end
301

302
    def InitAddEditACLDialog(id_item)
1✔
303
      if !id_item.nil?
×
304
        acl = Squid.GetACL(id_item)
×
305
        UI.ChangeWidget(Id("name"), :Value, Ops.get_string(acl, "name", ""))
×
306
        UI.ChangeWidget(Id("type"), :Value, Ops.get_string(acl, "type", ""))
×
307
      end
308

309
      nil
310
    end
311
    # ****************  ACL END  *********************
312

313
    # ****************  HTTP_ACCESS  *****************
314
    def InitHttpAccessTable(_key)
1✔
315
      items = []
×
316
      i = 0
×
317

318
      Builtins.foreach(Squid.GetHttpAccesses) do |value|
×
319
        items = Builtins.add(
×
320
          items,
321
          Item(
322
            Id(i),
323
            Ops.get_boolean(value, "allow", true) ? "allow" : "deny",
×
324
            Builtins.mergestring(Ops.get_list(value, "acl", []), " ")
325
          )
326
        )
327
        i = Ops.add(i, 1)
×
328
      end
329

330
      UI.ChangeWidget(Id("http_access"), :Items, items)
×
331
      if Ops.greater_than(Builtins.size(items), 0)
×
332
        UI.ChangeWidget(Id(:edit_http_access), :Enabled, true)
×
333
        UI.ChangeWidget(Id(:del_http_access), :Enabled, true)
×
334
        UI.ChangeWidget(Id(:up_http_access), :Enabled, true)
×
335
        UI.ChangeWidget(Id(:down_http_access), :Enabled, true)
×
336
      else
337
        UI.ChangeWidget(Id(:edit_http_access), :Enabled, false)
×
338
        UI.ChangeWidget(Id(:del_http_access), :Enabled, false)
×
339
        UI.ChangeWidget(Id(:up_http_access), :Enabled, false)
×
340
        UI.ChangeWidget(Id(:down_http_access), :Enabled, false)
×
341
      end
342

343
      nil
344
    end
345

346
    def InitAddEditHttpAccessDialog(id_item)
1✔
347
      items = []
×
348
      acls_items = []
×
349

350
      if !id_item.nil?
×
351
        http_access = Squid.GetHttpAccess(id_item)
×
352
        i = 0
×
353

354
        Builtins.foreach(Ops.get_list(http_access, "acl", [])) do |value|
×
355
          items = Builtins.add(
×
356
            items,
357
            Item(
358
              Id(i),
359
              Builtins.search(value, "!") == 0 ? "not" : "",
×
360
              Builtins.deletechars(value, "!")
361
            )
362
          )
363
          i = Ops.add(i, 1)
×
364
        end
365
        UI.ChangeWidget(Id("acls"), :Items, items)
×
366
        UI.ChangeWidget(
×
367
          Id("allow_deny"),
368
          :Value,
369
          Ops.get_boolean(http_access, "allow", true) ? "allow" : "deny"
×
370
        )
371

372
        items = []
×
373
      end
374

375
      Builtins.foreach(
376
        Convert.convert(
377
          UI.QueryWidget(Id("acls"), :Items),
378
          from: "any",
379
          to:   "list <term>"
380
        )
381
      ) do |value|
×
382
        acls_items = Builtins.add(acls_items, Ops.get_string(value, 2, ""))
×
383
      end
384

385
      Builtins.foreach(Squid.GetACLs) do |value|
×
386
        if !Builtins.contains(
387
          items,
388
          Item(
389
            Id(Ops.get_string(value, "name", "")),
390
            Ops.get_string(value, "name", "")
391
          )
392
        ) &&
×
393
            !Builtins.contains(acls_items, Ops.get_string(value, "name", ""))
394
          items = Builtins.add(
×
395
            items,
396
            Item(
397
              Id(Ops.get_string(value, "name", "")),
398
              Ops.get_string(value, "name", "")
399
            )
400
          )
401
        end
402
      end
403
      UI.ChangeWidget(Id("acl"), :Items, items)
×
404
      UI.ChangeWidget(Id("acl_not"), :Value, false)
×
405

406
      nil
407
    end
408
    # ****************  HTTP_ACCESS END  *************
409

410
    # *********  LOGGING AND TIMETOUS DIALOG  ********
411
    def InitLoggingFrame(_key)
1✔
412
      set = Convert.convert(
×
413
        Squid.GetSettings,
414
        from: "map <string, any>",
415
        to:   "map <string, list>"
416
      )
417
      simpleInit(
×
418
        "access_log"      => Ops.get_string(
419
          Ops.get(set, "access_log", []),
420
          0,
421
          ""
422
        ),
423
        "cache_log"       => Ops.get_string(
424
          Ops.get(set, "cache_log", []),
425
          0,
426
          ""
427
        ),
428
        "cache_store_log" => Ops.get_string(
429
          Ops.get(set, "cache_store_log", []),
430
          0,
431
          ""
432
        )
433
      )
434

435
      nil
436
    end
437

438
    def InitTimeoutsFrame(_key)
1✔
439
      set = Convert.convert(
×
440
        Squid.GetSettings,
441
        from: "map <string, any>",
442
        to:   "map <string, list>"
443
      )
444
      simpleInit(
×
445
        "connect_timeout"       => Builtins.tointeger(
446
          Ops.get_string(Ops.get(set, "connect_timeout", []), 0, "")
447
        ),
448
        "connect_timeout_units" => Ops.get_string(
449
          Ops.get(set, "connect_timeout", []),
450
          1,
451
          ""
452
        ),
453
        "client_lifetime"       => Builtins.tointeger(
454
          Ops.get_string(Ops.get(set, "client_lifetime", []), 0, "")
455
        ),
456
        "client_lifetime_units" => Ops.get_string(
457
          Ops.get(set, "client_lifetime", []),
458
          1,
459
          ""
460
        )
461
      )
462

463
      nil
464
    end
465
    # *********  LOGGING AND TIMETOUS DIALOG END  ****
466

467
    def InitMiscellaneousFrame(_key)
1✔
468
      simpleInit(
×
469
        "cache_mgr"   => Ops.get(Squid.GetSetting("cache_mgr"), 0, ""),
470
        "ftp_passive" => Ops.get(Squid.GetSetting("ftp_passive"), 0, "") == "on" ? true : false
×
471
      )
472
      UI.ChangeWidget(
×
473
        Id("error_language"),
474
        :Items,
475
        SquidErrorMessages.GetLanguagesToComboBox
476
      )
477
      UI.ChangeWidget(
×
478
        Id("error_language"),
479
        :Value,
480
        SquidErrorMessages.GetLanguageFromPath(
481
          Ops.get(Squid.GetSetting("error_directory"), 0, "")
482
        )
483
      )
484

485
      nil
486
    end
487
  end
488
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc