illumio-pylo 0.3.12__py3-none-any.whl → 0.3.13__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,15 +5,59 @@
5
5
  padding: 0;
6
6
  }
7
7
 
8
+ /* CSS Variables for theming */
9
+ :root {
10
+ /* Light mode colors */
11
+ --bg-primary: #f5f7fa;
12
+ --bg-secondary: #ffffff;
13
+ --bg-tertiary: #e2e8f0;
14
+ --text-primary: #333;
15
+ --text-secondary: #4a5568;
16
+ --text-tertiary: #718096;
17
+ --border-color: #e2e8f0;
18
+ --shadow-color: rgba(0, 0, 0, 0.1);
19
+ --shadow-hover: rgba(0, 0, 0, 0.15);
20
+ --input-bg: #ffffff;
21
+ --input-border: #cbd5e0;
22
+ --table-hover: #f7fafc;
23
+ --gradient-start: #667eea;
24
+ --gradient-end: #764ba2;
25
+ --warning-text: #7a4a12;
26
+ --warning-bg: #fff7e6;
27
+ --warning-border: #d69e2e;
28
+ }
29
+
30
+ /* Dark mode colors */
31
+ [data-theme="dark"] {
32
+ --bg-primary: #1a202c;
33
+ --bg-secondary: #2d3748;
34
+ --bg-tertiary: #4a5568;
35
+ --text-primary: #e2e8f0;
36
+ --text-secondary: #cbd5e0;
37
+ --text-tertiary: #a0aec0;
38
+ --border-color: #4a5568;
39
+ --shadow-color: rgba(0, 0, 0, 0.3);
40
+ --shadow-hover: rgba(0, 0, 0, 0.5);
41
+ --input-bg: #2d3748;
42
+ --input-border: #4a5568;
43
+ --table-hover: #374151;
44
+ --gradient-start: #667eea;
45
+ --gradient-end: #764ba2;
46
+ --warning-text: #fbbf24;
47
+ --warning-bg: #44403c;
48
+ --warning-border: #d69e2e;
49
+ }
50
+
8
51
  body {
9
52
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
10
- background-color: #f5f7fa;
11
- color: #333;
53
+ background-color: var(--bg-primary);
54
+ color: var(--text-primary);
12
55
  line-height: 1.6;
56
+ transition: background-color 0.3s ease, color 0.3s ease;
13
57
  }
14
58
 
15
59
  .container {
16
- max-width: 1200px;
60
+ max-width: 95%;
17
61
  margin: 0 auto;
18
62
  padding: 20px;
19
63
  }
@@ -23,9 +67,10 @@ header {
23
67
  text-align: center;
24
68
  margin-bottom: 30px;
25
69
  padding: 20px;
26
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
70
+ background: linear-gradient(135deg, var(--gradient-start) 0%, var(--gradient-end) 100%);
27
71
  border-radius: 10px;
28
72
  color: white;
73
+ position: relative;
29
74
  }
30
75
 
31
76
  header h1 {
@@ -38,6 +83,26 @@ header .subtitle {
38
83
  font-size: 1rem;
39
84
  }
40
85
 
86
+ /* Theme toggle button */
87
+ .theme-toggle {
88
+ position: absolute;
89
+ top: 20px;
90
+ right: 20px;
91
+ background: rgba(255, 255, 255, 0.2);
92
+ border: 1px solid rgba(255, 255, 255, 0.3);
93
+ color: white;
94
+ padding: 8px 12px;
95
+ border-radius: 5px;
96
+ cursor: pointer;
97
+ font-size: 1.2rem;
98
+ transition: all 0.2s ease;
99
+ }
100
+
101
+ .theme-toggle:hover {
102
+ background: rgba(255, 255, 255, 0.3);
103
+ transform: scale(1.05);
104
+ }
105
+
41
106
  /* Buttons */
42
107
  .btn {
43
108
  padding: 10px 20px;
@@ -59,12 +124,12 @@ header .subtitle {
59
124
  }
60
125
 
61
126
  .btn-secondary {
62
- background-color: #e2e8f0;
63
- color: #4a5568;
127
+ background-color: var(--bg-tertiary);
128
+ color: var(--text-secondary);
64
129
  }
65
130
 
66
131
  .btn-secondary:hover {
67
- background-color: #cbd5e0;
132
+ background-color: var(--border-color);
68
133
  }
69
134
 
70
135
  .btn-danger {
@@ -85,6 +150,15 @@ header .subtitle {
85
150
  background-color: #2f855a;
86
151
  }
87
152
 
153
+ .btn-warning {
154
+ background-color: #d69e2e;
155
+ color: white;
156
+ }
157
+
158
+ .btn-warning:hover {
159
+ background-color: #b7791f;
160
+ }
161
+
88
162
  .btn-small {
89
163
  padding: 5px 10px;
90
164
  font-size: 0.85rem;
@@ -92,10 +166,11 @@ header .subtitle {
92
166
 
93
167
  /* Section styles */
94
168
  section {
95
- background: white;
169
+ background: var(--bg-secondary);
96
170
  border-radius: 10px;
97
171
  padding: 25px;
98
- box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
172
+ box-shadow: 0 2px 10px var(--shadow-color);
173
+ transition: background-color 0.3s ease;
99
174
  }
100
175
 
101
176
  .section-header {
@@ -107,7 +182,7 @@ section {
107
182
 
108
183
  .section-header h2 {
109
184
  font-size: 1.3rem;
110
- color: #2d3748;
185
+ color: var(--text-primary);
111
186
  }
112
187
 
113
188
  /* Table styles */
@@ -119,24 +194,25 @@ table {
119
194
  th, td {
120
195
  padding: 12px 15px;
121
196
  text-align: left;
122
- border-bottom: 1px solid #e2e8f0;
197
+ border-bottom: 1px solid var(--border-color);
123
198
  }
124
199
 
125
200
  th {
126
- background-color: #f7fafc;
201
+ background-color: var(--bg-tertiary);
127
202
  font-weight: 600;
128
- color: #4a5568;
203
+ color: var(--text-secondary);
129
204
  font-size: 0.85rem;
130
205
  text-transform: uppercase;
131
206
  letter-spacing: 0.5px;
132
207
  }
133
208
 
134
209
  tr:hover {
135
- background-color: #f7fafc;
210
+ background-color: var(--table-hover);
136
211
  }
137
212
 
138
213
  td {
139
214
  font-size: 0.95rem;
215
+ color: var(--text-primary);
140
216
  }
141
217
 
142
218
  .actions-cell {
@@ -166,7 +242,7 @@ td {
166
242
  .loading, .empty-state {
167
243
  text-align: center;
168
244
  padding: 40px;
169
- color: #718096;
245
+ color: var(--text-tertiary);
170
246
  }
171
247
 
172
248
  .loading::before {
@@ -174,7 +250,7 @@ td {
174
250
  }
175
251
 
176
252
  .empty-state {
177
- background-color: #f7fafc;
253
+ background-color: var(--bg-tertiary);
178
254
  border-radius: 8px;
179
255
  }
180
256
 
@@ -219,13 +295,13 @@ td {
219
295
  }
220
296
 
221
297
  .modal-content {
222
- background: white;
298
+ background: var(--bg-secondary);
223
299
  border-radius: 12px;
224
300
  width: 90%;
225
301
  max-width: 550px;
226
302
  max-height: 90vh;
227
303
  overflow-y: auto;
228
- box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
304
+ box-shadow: 0 10px 40px var(--shadow-hover);
229
305
  }
230
306
 
231
307
  .modal-small {
@@ -237,25 +313,25 @@ td {
237
313
  justify-content: space-between;
238
314
  align-items: center;
239
315
  padding: 20px 25px;
240
- border-bottom: 1px solid #e2e8f0;
316
+ border-bottom: 1px solid var(--border-color);
241
317
  }
242
318
 
243
319
  .modal-header h2 {
244
320
  font-size: 1.2rem;
245
- color: #2d3748;
321
+ color: var(--text-primary);
246
322
  }
247
323
 
248
324
  .btn-close {
249
325
  background: none;
250
326
  border: none;
251
327
  font-size: 1.5rem;
252
- color: #a0aec0;
328
+ color: var(--text-tertiary);
253
329
  cursor: pointer;
254
330
  line-height: 1;
255
331
  }
256
332
 
257
333
  .btn-close:hover {
258
- color: #4a5568;
334
+ color: var(--text-secondary);
259
335
  }
260
336
 
261
337
  /* Form styles */
@@ -271,7 +347,7 @@ form {
271
347
  display: block;
272
348
  margin-bottom: 6px;
273
349
  font-weight: 500;
274
- color: #4a5568;
350
+ color: var(--text-secondary);
275
351
  font-size: 0.95rem;
276
352
  }
277
353
 
@@ -281,10 +357,12 @@ form {
281
357
  .form-group select {
282
358
  width: 100%;
283
359
  padding: 10px 12px;
284
- border: 1px solid #e2e8f0;
360
+ border: 1px solid var(--input-border);
285
361
  border-radius: 6px;
286
362
  font-size: 1rem;
287
363
  transition: border-color 0.2s;
364
+ background-color: var(--input-bg);
365
+ color: var(--text-primary);
288
366
  }
289
367
 
290
368
  .form-group input:focus,
@@ -297,7 +375,7 @@ form {
297
375
  .form-group small {
298
376
  display: block;
299
377
  margin-top: 5px;
300
- color: #718096;
378
+ color: var(--text-tertiary);
301
379
  font-size: 0.85rem;
302
380
  }
303
381
 
@@ -323,7 +401,7 @@ form {
323
401
  }
324
402
 
325
403
  .form-section {
326
- background-color: #f7fafc;
404
+ background-color: var(--bg-tertiary);
327
405
  padding: 15px;
328
406
  border-radius: 8px;
329
407
  margin-bottom: 20px;
@@ -331,7 +409,7 @@ form {
331
409
 
332
410
  .form-section h3 {
333
411
  font-size: 1rem;
334
- color: #4a5568;
412
+ color: var(--text-secondary);
335
413
  margin-bottom: 15px;
336
414
  }
337
415
 
@@ -340,7 +418,7 @@ form {
340
418
  justify-content: flex-end;
341
419
  gap: 10px;
342
420
  padding-top: 15px;
343
- border-top: 1px solid #e2e8f0;
421
+ border-top: 1px solid var(--border-color);
344
422
  }
345
423
 
346
424
  /* Test result */
@@ -389,6 +467,17 @@ form {
389
467
  display: none !important;
390
468
  }
391
469
 
470
+ /* Warning text used in modals/forms to indicate potential SSH agent prompts */
471
+ .warning-text {
472
+ color: var(--warning-text);
473
+ background-color: var(--warning-bg);
474
+ border-left: 4px solid var(--warning-border);
475
+ padding: 8px 12px;
476
+ border-radius: 6px;
477
+ margin-top: 12px;
478
+ font-size: 0.95rem;
479
+ }
480
+
392
481
  /* Responsive */
393
482
  @media (max-width: 768px) {
394
483
  .form-row {
@@ -420,6 +509,7 @@ form {
420
509
  .delete-confirmation p {
421
510
  margin-bottom: 10px;
422
511
  font-size: 1rem;
512
+ color: var(--text-primary);
423
513
  }
424
514
 
425
515
  .delete-confirmation .warning-text {
@@ -428,3 +518,64 @@ form {
428
518
  font-style: italic;
429
519
  }
430
520
 
521
+ /* Encrypt confirmation modal */
522
+ .encrypt-confirmation {
523
+ padding: 25px;
524
+ text-align: center;
525
+ }
526
+
527
+ .encrypt-confirmation p {
528
+ margin-bottom: 15px;
529
+ font-size: 1rem;
530
+ color: var(--text-primary);
531
+ }
532
+
533
+ .encrypt-confirmation .form-group {
534
+ text-align: left;
535
+ margin-top: 20px;
536
+ }
537
+
538
+ /* Shutdown button */
539
+ .shutdown-button-container {
540
+ position: fixed;
541
+ bottom: 20px;
542
+ right: 20px;
543
+ z-index: 100;
544
+ }
545
+
546
+ .btn-shutdown {
547
+ background-color: #c53030;
548
+ color: white;
549
+ padding: 12px 24px;
550
+ font-size: 1rem;
551
+ font-weight: 600;
552
+ border-radius: 8px;
553
+ box-shadow: 0 4px 12px rgba(197, 48, 48, 0.4);
554
+ transition: all 0.2s ease;
555
+ }
556
+
557
+ .btn-shutdown:hover {
558
+ background-color: #9b2c2c;
559
+ box-shadow: 0 6px 16px rgba(197, 48, 48, 0.5);
560
+ transform: translateY(-2px);
561
+ }
562
+
563
+ /* Shutdown confirmation modal */
564
+ .shutdown-confirmation {
565
+ padding: 25px;
566
+ text-align: center;
567
+ }
568
+
569
+ .shutdown-confirmation p {
570
+ margin-bottom: 10px;
571
+ font-size: 1rem;
572
+ color: var(--text-primary);
573
+ }
574
+
575
+ .shutdown-confirmation .countdown-text {
576
+ font-size: 1.2rem;
577
+ font-weight: 600;
578
+ color: #c53030;
579
+ margin-top: 15px;
580
+ }
581
+
@@ -14,8 +14,7 @@ objects_load_filter = None
14
14
 
15
15
 
16
16
  def fill_parser(parser: argparse.ArgumentParser):
17
- parser.add_argument('--include-deleted-workloads', action='store_true',
18
- help='should deleted workloads be downloaded as well')
17
+ pass # All options are now handled by the global CLI arguments
19
18
 
20
19
 
21
20
  def __main(args, org: pylo.Organization = None, connector: pylo.APIConnector = None, config_data=None, **kwargs):
@@ -5,6 +5,7 @@ from datetime import datetime
5
5
 
6
6
  import illumio_pylo as pylo
7
7
  from illumio_pylo import ArraysToExcel, ExcelHeader, ExcelHeaderSet
8
+ from illumio_pylo.FilterQuery import FilterQuery, get_workload_filter_registry
8
9
  from .utils.misc import make_filename_with_timestamp
9
10
  from . import Command
10
11
 
@@ -42,6 +43,14 @@ def fill_parser(parser: argparse.ArgumentParser):
42
43
  parser.add_argument('--verbose', '-v', action='store_true',
43
44
  help='')
44
45
 
46
+ parser.add_argument('--filter-query', '-q', type=str, required=False, default=None,
47
+ help='Filter workloads using a SQL-like query expression. '
48
+ 'Supports: ==, !=, <, >, <=, >=, contains, matches (regex), and/or/not, parentheses. '
49
+ 'Available fields: name, hostname, description, online, managed, deleted, '
50
+ 'ip_address, last_heartbeat, mode, env, app, role, loc, os_id, etc. '
51
+ 'Examples: "name contains \'prod\'" or "env == \'Production\' and online == true" '
52
+ 'or "(name == \'srv1\' or name == \'srv2\') and last_heartbeat <= \'2024-01-01\'"')
53
+
45
54
  parser.add_argument('--filter-file', '-i', type=str, required=False, default=None,
46
55
  help='CSV or Excel input filename')
47
56
  parser.add_argument('--filter-file-delimiter', type=str, required=False, default=',',
@@ -60,8 +69,10 @@ def fill_parser(parser: argparse.ArgumentParser):
60
69
  for extra_column in extra_columns:
61
70
  extra_column.apply_cli_args(parser)
62
71
 
72
+
63
73
  def __main(args, org: pylo.Organization, **kwargs):
64
74
 
75
+ filter_query_string = args['filter_query']
65
76
  filter_file = args['filter_file']
66
77
  filter_file_delimiter = args['filter_file_delimiter']
67
78
  filter_fields = args['filter_fields']
@@ -116,6 +127,24 @@ def __main(args, org: pylo.Organization, **kwargs):
116
127
  csv_sheet = csv_report.create_sheet('workloads', csv_report_headers, force_all_wrap_text=True)
117
128
 
118
129
  all_workloads = org.WorkloadStore.itemsByHRef.copy()
130
+
131
+ # Apply filter query if provided
132
+ if filter_query_string is not None:
133
+ print(" * Applying filter query: '{}'".format(filter_query_string))
134
+ try:
135
+ # Pass org to get registry with all configured label types for this PCE
136
+ registry = get_workload_filter_registry(org)
137
+ filter_query = FilterQuery(registry)
138
+
139
+ matching_workloads = filter_query.execute(filter_query_string, list(all_workloads.values()))
140
+
141
+ # Convert back to dict by href
142
+ all_workloads = {w.href: w for w in matching_workloads}
143
+ print(" - Filter query matched {} workload(s)".format(len(all_workloads)))
144
+ except pylo.PyloEx as e:
145
+ pylo.log.error("Filter query error: {}".format(e))
146
+ sys.exit(1)
147
+
119
148
  used_filters = {}
120
149
 
121
150
  def add_workload_to_report(wkl: pylo.Workload = None, filter=None, filter_append_prefix='_'):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: illumio_pylo
3
- Version: 0.3.12
3
+ Version: 0.3.13
4
4
  Summary: A set of tools and library for working with Illumio PCE
5
5
  Home-page: https://github.com/cpainchaud/pylo
6
6
  Author: Christophe Painchaud
@@ -1,14 +1,15 @@
1
1
  illumio_pylo/AgentStore.py,sha256=7xWpjGJHK5Xp69M-WzqcDeC1WMLCeMii1D_hh6xVqb4,5312
2
2
  illumio_pylo/Exception.py,sha256=3lxS-ANBaEvHAKhDb8UzNLj5IpQBmRHNs4YkHONmQjs,1033
3
+ illumio_pylo/FilterQuery.py,sha256=AeDCCg8aPR7IXw-Ho09Zng342ZsaMdJVDBuEufcnMeM,32391
3
4
  illumio_pylo/IPList.py,sha256=0fPsX6TYUQmmyWMQpl-QsMll9JwpvEiGN6lmbUtBwDU,4614
4
5
  illumio_pylo/IPMap.py,sha256=XrC-qvnTUWCVq38NCRDebDnXWQYCAyTRtdVX6fk9DiE,10575
5
6
  illumio_pylo/Label.py,sha256=hGeU3zQW8GIfRekSVcRAiTQbezbjYTF1nGHoH9DxvyY,834
6
- illumio_pylo/LabelCommon.py,sha256=fgmzE8tztufAXXzLgmOqo74z66e8uAyJYnM917e8wRE,1486
7
+ illumio_pylo/LabelCommon.py,sha256=TNIVaZ51TyL6XeNE4ShBzp6o7_htWOaUEL1fowpwtos,1930
8
+ illumio_pylo/LabelDimension.py,sha256=Ha0-mxQxfbDmH5aX0IedcsF-QkHJfw6l9kIqbTL8ccM,4427
7
9
  illumio_pylo/LabelGroup.py,sha256=ZPC3xBLJUEhStyBTMB3fTTcEi8Z4CDjHUwnq_T-8p5Y,2674
8
- illumio_pylo/LabelStore.py,sha256=RlkkrJYnA7pdMBs8iTjW0HXGpCOohA0b8aTInarFwrs,19960
10
+ illumio_pylo/LabelStore.py,sha256=t-4JI7AM2K6PHB5DyAt2-BM6oPwrVyFop2rLP4E5K8c,22777
9
11
  illumio_pylo/LabeledObject.py,sha256=uwLDt6dv1Ba1Zd_V3wpgrNtUCS4UilprGhgVbqH2w74,2023
10
12
  illumio_pylo/Organization.py,sha256=eOuMecm8oDsyQNEeHAxsxV9b1T4-6RuEwFRsS6kLcuI,12590
11
- illumio_pylo/Query.py,sha256=lgLjst41ma3HMVkngvTjL7zSLjh80RoXYL5vS3PWO7Q,13330
12
13
  illumio_pylo/ReferenceTracker.py,sha256=X-A6aGnZUkMoEdq17ER4K2YuP0ogg9wnHY786ciHcQg,1012
13
14
  illumio_pylo/Rule.py,sha256=5KE0rLlmG74Kesm5A0At8kvNt2YEwvraKwIdJEEVt4Y,26828
14
15
  illumio_pylo/Ruleset.py,sha256=VCXUqWZrCCzM3uJPWFJpVnKBv6bj0JPz4ydmb-UbSIc,12024
@@ -19,43 +20,44 @@ illumio_pylo/SoftwareVersion.py,sha256=H_5WM42ObUkVtuxVWak30KMbEuar567k33E6pb83Z
19
20
  illumio_pylo/VirtualService.py,sha256=K1GT8pzkMOYkD4ZEwDkdriLOAUFAr0oCYNErJAMy9Ck,617
20
21
  illumio_pylo/VirtualServiceStore.py,sha256=MNTwo1cvteUuID6JniWUk5oRHQHGY4OwrWvFaRXDuuk,3116
21
22
  illumio_pylo/Workload.py,sha256=k6s420rExq_Nb453f9UYjsLyNfxcCGuhgX6sPDBx9kU,19813
22
- illumio_pylo/WorkloadStore.py,sha256=3C6SMU0wRlet6C6UVbjkYNsTY7vkyK_ZwqM1dlCBpsQ,10989
23
+ illumio_pylo/WorkloadStore.py,sha256=SE2fn02uqUtXY3b6r_I8PKocA6ZzDiyp9ToLAAPpfx8,13611
23
24
  illumio_pylo/WorkloadStoreSubClasses.py,sha256=P9dUqT4Hb_tTCW14RmfJU3kVp5Zx9ZcfzeuD2VdsPDs,6101
24
- illumio_pylo/__init__.py,sha256=V0HyPA1VXx4jie4Vb4dNQIa74v9betxHervNCy05B5o,4173
25
+ illumio_pylo/__init__.py,sha256=hC61scY-eb8k7XooRK5VTMjM2bnic8nguI7hFKeDkbI,4598
25
26
  illumio_pylo/tmp.py,sha256=8WSnsdgnLgVS2m4lxc6qCpCfefADV77B8MqiwdqFkos,3914
26
- illumio_pylo/API/APIConnector.py,sha256=Uf_uYwl7qtCI8qXm6r-S5itXta0X7aLFXmwy6S05uPo,64281
27
+ illumio_pylo/API/APIConnector.py,sha256=bZkysEA53-Rac6Wn-1Hyfry9pVBnOM_JbN8dcJBNBx4,67025
27
28
  illumio_pylo/API/AuditLog.py,sha256=p0mfjrE5S8qoJgA5LIP_XGFBP3iL86Nl6BQEmhMVrPA,1533
28
29
  illumio_pylo/API/ClusterHealth.py,sha256=GdMpVQrHUW4zLM-409GcPHM8H8b3LAppO37ZcUZyT_Q,5122
29
- illumio_pylo/API/CredentialsManager.py,sha256=noIs8IuOIjh0Obt4KZ2I0O05YoBv-2_wqkxwdGTpKNU,14263
30
- illumio_pylo/API/Explorer.py,sha256=fZQDkjbbJTYYOAuVqsbb7STJDNKFVj2U5LsF4yQN6TE,49201
31
- illumio_pylo/API/JsonPayloadTypes.py,sha256=wrKMW3xSTM-PQk6ABUI4lNu-HAQMtnfaZ6FjGA1yypw,8963
30
+ illumio_pylo/API/CredentialsManager.py,sha256=0MN8zsGTYR73YV0gx7HXF2t4kQ5bdS9Unp96KQe7h-c,19745
31
+ illumio_pylo/API/Explorer.py,sha256=0BveCODg8s1OCg3c-5ECiiRz-1O-EVec3DXj4CcwBS4,75029
32
+ illumio_pylo/API/JsonPayloadTypes.py,sha256=j4_EIJHGNj-vcj7Z-DBuzVQb6DXVk5FLOKwXa-SrjRc,10737
32
33
  illumio_pylo/API/RuleSearchQuery.py,sha256=O0-MsUXhwmywoO0G-GXnLq6kkVC9LgmxMZwqVKc_oJE,5325
33
34
  illumio_pylo/API/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
35
  illumio_pylo/Helpers/__init__.py,sha256=6E2eTZe-4qfPKGjRRQNtYsPrBhJSAjbdvv_DpniV_rY,49
35
36
  illumio_pylo/Helpers/exports.py,sha256=3lme5g1UZYSlEkvfT3gU5dj86ndX0NIGQVFsAw2nZWQ,21896
36
37
  illumio_pylo/Helpers/functions.py,sha256=WmLCJjAHPLqJH6WM7bKSz4ZbP2zDAFJ73FCoJZRTIJE,4635
37
38
  illumio_pylo/cli/NativeParsers.py,sha256=nzDL54EV0J-Iz0P9EkeiPl6DWQBSbCu-MpEPRad3j6c,4055
38
- illumio_pylo/cli/__init__.py,sha256=hgp7KG4FZujnRnId3A1tAoaYpUDFkE_Fv2wXyF02GNM,7737
39
+ illumio_pylo/cli/__init__.py,sha256=HKhEI78i4byW_RjVzJK9EZEEY5_cBZm586DV6-ePl5w,8075
39
40
  illumio_pylo/cli/__main__.py,sha256=ll1gK8k1YL_kPsImI7WVlw2sCyNyhocnuCqko6mGaYI,223
40
- illumio_pylo/cli/commands/__init__.py,sha256=_M2qTOOfCN3FVnL_0j6CgfwYmatvobzwierJDtlVtz0,1537
41
- illumio_pylo/cli/commands/credential_manager.py,sha256=v7Jjbf7iFiUndN7ScKz1Wz1UBMDasqM0myjiV5LpYP4,27209
41
+ illumio_pylo/cli/commands/__init__.py,sha256=hbPDoNFm55hHtEUq5lLloGq6nJxDkjNbw4hZIAXwdJc,1580
42
+ illumio_pylo/cli/commands/credential_manager.py,sha256=x6NmKs3gSC2yD_-Uy853s7r6PYzjSJjEpOKntIcsTac,35639
42
43
  illumio_pylo/cli/commands/iplist_analyzer.py,sha256=OJB8hSDzLhICCkFF5NaRC3a0uCUSfaEDuJb2CLUJgu4,3709
43
44
  illumio_pylo/cli/commands/iplist_import_from_file.py,sha256=yqB6VvDT72VxC8tIyu2wRixorwzarhWF6t8J-MvLGlM,9836
44
45
  illumio_pylo/cli/commands/label_delete_unused.py,sha256=KRJDppSQFonKVet9kjrPOaHUiIhahfjHMs92KAE9mYQ,3434
45
46
  illumio_pylo/cli/commands/ruleset_export.py,sha256=MsT-jd0BzA_cpZcvbKtkD1Dvwqt6_9F5Q1vp8-qfEo0,6080
46
- illumio_pylo/cli/commands/update_pce_objects_cache.py,sha256=vSVSA9K9mXQhfiQPLoH7uEcSz5j1JddQW6UGGYvydKQ,1255
47
+ illumio_pylo/cli/commands/traffic_export.py,sha256=MvNad_gGtawDg9Hqdv-VhJAv7s6ejh8EjCpw1nZNQSo,19219
48
+ illumio_pylo/cli/commands/update_pce_objects_cache.py,sha256=r6zOpSezO2IV1MF2R3EABnE5UTqkuF2tof5I7OGHRJg,1168
47
49
  illumio_pylo/cli/commands/ven_compatibility_report_export.py,sha256=Hp58Z0cj-hX8tpcD9IyT0c2c36CutT9rrfhTfgx9sbI,8070
48
50
  illumio_pylo/cli/commands/ven_duplicate_remover.py,sha256=zPLbuZ3m2sFP6IbeZeUGM3R63K-ih8Db3C6H-JSqPNo,23397
49
51
  illumio_pylo/cli/commands/ven_idle_to_visibility.py,sha256=ez8NbryK_I7motzkhLWHOdKl0Uh-zCkO4ASD1exsOkY,13352
50
52
  illumio_pylo/cli/commands/ven_upgrader.py,sha256=h0XCcI-kMzq9GC-ovIph7r0-BObo_4GHdyuMnVfRYZA,7158
51
- illumio_pylo/cli/commands/workload_export.py,sha256=EcQR8AacJVe7rOqYH-HFxyTchwHHQ9ZTc-ALSMt9gDY,11421
53
+ illumio_pylo/cli/commands/workload_export.py,sha256=f0R9QVBnC45VI8rfh8pkkPNvHDD--6GN94z_dHanqto,13052
52
54
  illumio_pylo/cli/commands/workload_import.py,sha256=mpcHISn5qxM13eSYCWusQRvkkNuZ0bnrrOBfZE2s1R8,19024
53
55
  illumio_pylo/cli/commands/workload_reset_names_to_null.py,sha256=j87jbnDxT3kABlqCHlqVd1_U1mfV7y0mgFwEEdFmt0Q,3331
54
56
  illumio_pylo/cli/commands/workload_update.py,sha256=nPlSCOAx0wmshVWy4WNp-15wwg-IWcPPQy66AWEDTic,28659
55
57
  illumio_pylo/cli/commands/workload_used_in_rule_finder.py,sha256=35t_HpAw_gk9SjmNoyPI3eyZT6doPhqcFF6XkuzbNII,3340
56
- illumio_pylo/cli/commands/ui/credential_manager_ui/app.js,sha256=FROWIE-nIGv1X47hDgpL18t6lhgmc2kMNA8gIVbqdwQ,17221
57
- illumio_pylo/cli/commands/ui/credential_manager_ui/index.html,sha256=MOfSDkGvq8zpGdWfU9d-aPfMfdYt3BfQ2yaQ-MF8q9Q,7501
58
- illumio_pylo/cli/commands/ui/credential_manager_ui/styles.css,sha256=A8t4r1-rW5iEMyHT0ligUVWXwFgemR_5ONmsTPvBdB4,6765
58
+ illumio_pylo/cli/commands/ui/credential_manager_ui/app.js,sha256=eX_TT57w9P4dgtlmUl64F-LzOvHdP87pItxk_LLxSpo,25948
59
+ illumio_pylo/cli/commands/ui/credential_manager_ui/index.html,sha256=IsXslEHZpd17hk63I043LuwAVV9qJGIqJVNdqeOnAFY,10231
60
+ illumio_pylo/cli/commands/ui/credential_manager_ui/styles.css,sha256=3aemQRNquY2swElMyVwNDHF0CYwd5CAZ970njz7RSdM,10504
59
61
  illumio_pylo/cli/commands/utils/LabelCreation.py,sha256=cO_MWJrAIgeZGZrm0Dix50isrGzhckZ_kLnjy1VWWRI,4885
60
62
  illumio_pylo/cli/commands/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
63
  illumio_pylo/cli/commands/utils/misc.py,sha256=dsFHrmCaQ1OrRGms8dHaHtE_rTJ0j4-Q3JXcFCKNC_I,775
@@ -69,8 +71,8 @@ illumio_pylo/utilities/resources/iplists-import-example.xlsx,sha256=VW-7CRr8NA2V
69
71
  illumio_pylo/utilities/resources/workload-exporter-filter-example.csv,sha256=cn5IA8AGEPjvS-EsPXA_GJ-LFsdF9t_44rSzFTCmAzE,36
70
72
  illumio_pylo/utilities/resources/workloads-import-example.csv,sha256=HBZj5e1TFnJTzNrcgO3ZVzqAwqBoyGABJtd9Y8W8j7g,115
71
73
  illumio_pylo/utilities/resources/workloads-import-example.xlsx,sha256=B5LRCFjqkZ0xbGel7qlmLepmhAysoq1Cu9eVFUiZLq0,17191
72
- illumio_pylo-0.3.12.dist-info/licenses/LICENSE,sha256=WYmcYJG1QFgu1hfo7qrEkZ3Jhcz8NUWe6XUraZvlIFs,10172
73
- illumio_pylo-0.3.12.dist-info/METADATA,sha256=QnZMdnCzrIt0_B_2qoO0w8uyqU2hvDWeOWrhGuece7M,12403
74
- illumio_pylo-0.3.12.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
75
- illumio_pylo-0.3.12.dist-info/top_level.txt,sha256=c5cu_ZMuSuxjq48ih58Kc0Tr8-JdQtV8GrKJicvWNFE,13
76
- illumio_pylo-0.3.12.dist-info/RECORD,,
74
+ illumio_pylo-0.3.13.dist-info/licenses/LICENSE,sha256=WYmcYJG1QFgu1hfo7qrEkZ3Jhcz8NUWe6XUraZvlIFs,10172
75
+ illumio_pylo-0.3.13.dist-info/METADATA,sha256=qD7_8UV-sKxlflovdH-Hpxo0EBLGKMzffutfeLS8ILQ,12403
76
+ illumio_pylo-0.3.13.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
77
+ illumio_pylo-0.3.13.dist-info/top_level.txt,sha256=c5cu_ZMuSuxjq48ih58Kc0Tr8-JdQtV8GrKJicvWNFE,13
78
+ illumio_pylo-0.3.13.dist-info/RECORD,,