Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
F
force-bdss
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Adham Hashibon
force-bdss
Commits
9c1f5d84
Commit
9c1f5d84
authored
6 years ago
by
James Johnson
Browse files
Options
Downloads
Patches
Plain Diff
kpi checks, more details of errors in verifier
parent
7a88b086
No related branches found
No related tags found
1 merge request
!163
Verifier Additions
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
force_bdss/core/verifier.py
+25
-17
25 additions, 17 deletions
force_bdss/core/verifier.py
force_bdss/tests/test_core_mco_driver.py
+2
-2
2 additions, 2 deletions
force_bdss/tests/test_core_mco_driver.py
with
27 additions
and
19 deletions
force_bdss/core/verifier.py
+
25
−
17
View file @
9c1f5d84
...
...
@@ -9,17 +9,14 @@ class VerifierError(HasStrictTraits):
error
=
Str
()
def
verify_workflow
(
workflow
):
"""
Verifies if the workflow can be executed, and specifies where the
error occurs and why.
"""
result
=
[]
result
.
extend
(
_check_mco
(
workflow
))
result
.
extend
(
_check_execution_layers
(
workflow
))
return
result
...
...
@@ -39,21 +36,26 @@ def _check_mco(workflow):
errors
.
append
(
VerifierError
(
subject
=
mco
,
error
=
"
MCO has no defined parameters
"
))
for
param
in
mco
.
parameters
:
for
idx
,
param
in
enumerate
(
mco
.
parameters
)
:
if
len
(
param
.
name
.
strip
())
==
0
:
errors
.
append
(
VerifierError
(
subject
=
param
,
error
=
"
Parameter has empty name
"
))
error
=
"
Parameter {}
"
"
has empty name
"
.
format
(
idx
)))
if
len
(
param
.
type
.
strip
())
==
0
:
errors
.
append
(
VerifierError
(
subject
=
param
,
error
=
"
Parameter has empty type
"
))
error
=
"
Parameter {}
"
"
has empty type
"
.
format
(
idx
)))
for
kpi
in
mco
.
kpis
:
for
idx
,
kpi
in
enumerate
(
mco
.
kpis
)
:
if
len
(
kpi
.
name
.
strip
())
==
0
:
errors
.
append
(
VerifierError
(
subject
=
kpi
,
error
=
"
Kpi has empty name
"
))
error
=
"
KPI {} has empty name
"
.
format
(
idx
)))
if
len
(
kpi
.
objective
.
strip
())
==
0
:
errors
.
append
(
VerifierError
(
subject
=
kpi
,
error
=
"
Kpi objective is not set
"
))
error
=
"
KPI {} has empty
"
"
objective
"
.
format
(
idx
)))
return
errors
...
...
@@ -71,17 +73,19 @@ def _check_execution_layers(workflow):
return
errors
for
layer
in
layers
:
for
idx
,
layer
in
enumerate
(
layers
)
:
if
len
(
layer
.
data_sources
)
==
0
:
errors
.
append
(
VerifierError
(
subject
=
layer
,
error
=
"
Layer has no data sources
"
))
error
=
"
Layer {} has no
"
"
data sources
"
.
format
(
idx
)))
for
ds
in
layer
.
data_sources
:
errors
.
extend
(
_check_data_source
(
ds
))
errors
.
extend
(
_check_data_source
(
ds
,
idx
))
return
errors
def
_check_data_source
(
data_source_model
):
def
_check_data_source
(
data_source_model
,
layer_no
):
errors
=
[]
factory
=
data_source_model
.
factory
...
...
@@ -108,23 +112,27 @@ def _check_data_source(data_source_model):
if
len
(
input_slots
)
!=
len
(
data_source_model
.
input_slot_info
):
errors
.
append
(
VerifierError
(
subject
=
data_source_model
,
error
=
"
Missing input slot name assignment
"
))
error
=
"
Missing input slot name assignment
"
"
in layer {}
"
.
format
(
layer_no
)))
for
idx
,
info
in
enumerate
(
data_source_model
.
input_slot_info
):
if
len
(
info
.
name
.
strip
())
==
0
:
errors
.
append
(
VerifierError
(
subject
=
data_source_model
,
error
=
"
Undefined name for input parameter {}
"
.
format
(
idx
)))
error
=
"
Undefined name for input
"
"
parameter {} in layer {}
"
.
format
(
idx
,
layer_no
)))
if
len
(
output_slots
)
!=
len
(
data_source_model
.
output_slot_info
):
errors
.
append
(
VerifierError
(
subject
=
data_source_model
,
error
=
"
Missing output slot name assignment
"
))
error
=
"
Missing output slot name assignment
"
"
in layer {}
"
.
format
(
layer_no
)))
for
idx
,
info
in
enumerate
(
data_source_model
.
output_slot_info
):
if
len
(
info
.
name
.
strip
())
==
0
:
errors
.
append
(
VerifierError
(
subject
=
data_source_model
,
error
=
"
Undefined name for output parameter {}
"
.
format
(
idx
)))
error
=
"
Undefined name for output
"
"
parameter {} in layer {}
"
.
format
(
idx
,
layer_no
)))
return
errors
This diff is collapsed.
Click to expand it.
force_bdss/tests/test_core_mco_driver.py
+
2
−
2
View file @
9c1f5d84
...
...
@@ -233,6 +233,6 @@ class TestCoreMCODriver(unittest.TestCase):
(
'
force_bdss.core_mco_driver
'
,
'
ERROR
'
,
'
MCO has no defined parameters
'
),
(
'
force_bdss.core_mco_driver
'
,
'
ERROR
'
,
'
Missing input slot name assignment
'
),
'
Missing input slot name assignment
in layer 0
'
),
(
'
force_bdss.core_mco_driver
'
,
'
ERROR
'
,
'
Missing output slot name assignment
'
))
'
Missing output slot name assignment
in layer 0
'
))
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment