Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
小 白蛋
Datree
Commits
937fa610
Commit
937fa610
authored
4 years ago
by
myishay
Browse files
Options
Download
Email Patches
Plain Diff
fix: add invalid files to yaml/json output
parent
6f697dcc
main
620-disable-spinner-when-detecting-runs-in-ci-to-avoid-messing-up-logs-with-spinner-etc
702-datree-not-working-in-our-air-gapped-environment
746-offline-mode-does-not-work
762-unexpected-yaml-validation-error-did-not-find-expected-indicator
DAT-3240-support-pipes
DAT-3422-brew-post-install
DAT-3451-create-trigger-for-production-release-deployment
DAT-3498-prettify-error-messages
DAT-3504-pre-release-deployment
DAT-3516-set-rules-table-with-a-fixed-size
DAT-3753_detect-ci-env
DAT-3759_datree_exec_helm_files_docs_link
DAT-3759_fix_message_color_and_remove_space
DAT-3784-create-yaml-schema-validation-command
DAT-3786-simple-output-on-ci
DAT-3793_implement_local_schema_validation_logic
DAT-3808_report_cli_errors
DAT-3815_prompt-helper-kustomize-test
DAT-3821_create-token-clientid
DAT-3842-add-policy-config-flag
DAT-3842-policy-config-flag
DAT-3843-create-schema-in-cli-for-policies.yaml-validation
DAT-3845_add_offline_flag_in_config_yaml
DAT-3873-helm-kustomize-msg-color
DAT-3877-skip-k8s-validation
DAT-3878_add_--no-record_flag
DAT-3879_implement_resource_quotas_custom_keys
DAT-3938_bug-fixes
DAT-3938_extract-skipping-annotations-policy-check-flow
DAT-3958_support_no_intetnet_connection_offline_local
DAT-4003-isCi-query-param
DAT-4011_evluation-duration
DAT-4019_datree-test-validate-yaml-command
DAT-4019_datree-validate-yaml-command
DAT-4060_validate-yaml-send-result-data
DAT-4065-fix-offline-mode
DAT-4075-yml-validation-array
DAT-4105-remove-validate-yaml
DAT-4132-junit-output-fix-crash-invalid-configurations
DAT-415-test-exit-code
DAT-4341-create-a-new-default-policy-all-rules
DAT-4389-verbose-support-all-output-formats
DAT-4405-remove-travis-cicd-impl
DAT-4427-cli-add-save-rendered-flag
DAT-add-architecture-image
ISSUE#222_add_developers_guide
ISSUE#570_support_customResourceDefinition_kind
ISSUE#573_support_JUnit_output_format
ISSUE#638_support_schema_validation_in_offline_mode
ISSUE#799_pre-commit_permission_denied_fix
add-aws-cli
add-kustomize-cmd-description
add-kustomize-intro
add-kustomize-support
add-not-strict-flag
add-v-tag-rc
add_cluster_integration_submodule
add_job_in_release_workflow_for_travis_polling
add_offline_check_in_k8s_validator
add_rego_support
add_tests_to_fragile_areas_of_code
adjust_error_message_for_k8s_schema_not_found
adr-poc
argo-rules
argoproj
auto-assign-workflow
changelog_gen_file
changelog_goreleaser
changelog_latest_release
changelog_permissions
ci/add_docker_image_build
cli_error_reporting_fixes
codeowners
custom_changelog
cverule
debug_save_read_default_rules_files
default-schema-version
delete-dockerignore
dima-wrong
dockerfile
docs
docs-template
downloads-badge
error-misspelling-metadataname
fix-CONTAINERS_MISSING_MEMORY_REQUEST_KEY
fix-changelog-messages
fix-homedir
fix-prompt-message
fix-properties-default-rules
fix-semver-commits
fix-type-in-default-rule
fix-version-message-print-empty
fix_defaultRules_test_files
hadar-co-patch-1
helm-links
ignore-main-in-commit-message-validation
limit-config-set-command
line-err
logfile
logo
metadatarule
minor_changes_to_policies_yaml_validation
nsa-docs
nsa-rules
nsa-test-files
offerings
offline_mode_indenify_network_error_fix
only-k8s-files-flag
patch-1-resove-conflicts
perf-files
policy-config-description
pre_commit_hook_with_datreeci
prestoprule
print_login_url_from_getPreRunData
probe-rules
readme-badge
readme-contributors
rebase_staging
refactor_datree_kustomize_test
refactor_datree_kustomize_test_2
refactors_in_printers
release-0.1.443
release-worflow-wait
release/0.14.1-test-yishay
release/0.14.17-yishay-test-yishay
release/0.14.18
release/0.14.20
release/0.14.26
release/0.14.29
release/0.14.33
release/0.14.36
release/0.14.46
release/0.14.49
release/0.14.62
release/0.14.85
release/0.14.87
release/0.14.90
release/0.14.91
release/0.14.92
release/0.14.93
release/0.14.95
release/0.15.0
release/0.15.16
release/0.15.18
release/0.15.19
release/0.15.21
release/0.15.22
release/0.15.5
release/0.15.51
release/0.15.52
release/1.0.1
release/1.0.15
release/1.0.6
release/1.1.10
release/1.1.14
release/1.1.17
release/1.1.2
release/1.1.20
release/1.1.22
release/1.1.4
release/1.1.5
release/1.1.6
release/1.2.0
release/1.2.10
release/1.2.2
release/1.2.9
release/1.3.0
release/1.3.2
release/1.3.4
release/1.3.5
release/1.4.0
release/1.4.10
release/1.4.13
release/1.4.17
release/1.4.19
release/1.4.20
release/1.4.22
release/1.4.26
release/1.4.28
release/1.4.3
release/1.4.30
release/1.4.32
release/1.4.33
release/1.4.35
release/1.4.37
release/1.4.4
release/1.5.0
release/1.5.15
release/1.5.16
release/1.5.17
release/1.5.19
release/1.5.2
release/1.5.20
release/1.5.25
release/1.5.29
release/1.5.3
release/1.5.30
release/1.5.35
release/1.5.36
release/1.5.37
release/1.5.7
release/1.5.9
release/1.6.0
release/1.6.12
release/1.6.13
release/1.6.14
release/1.6.16
release/1.6.18
release/1.6.19
release/1.6.23
release/1.6.24
release/1.6.25
release/1.6.26
release/1.6.27
release/1.6.28
release/1.6.29
release/1.6.32
release/1.6.33
release/1.6.36
release/1.6.37
release/1.6.40
release/1.6.42
release/1.6.44
release/1.6.46
release/1.6.48
release/1.6.6
release/1.7.1
release/1.7.3
release/1.8.0
release/1.8.1
remove-debug-log
remove-homebrew-bottle
report_execution_environment
resty-client
romanlab-patch-1
roy_test_branch
running_test_on_non_k8s_yaml_files_with_--only-k8s-files_raises_an_error_#430
sample-policy
sarif
schemadir
secretrules
shimont-patch-1
skip-schema-validation-flag
slack-button
sort_failed_rules_by_uniqe_names
staging
staging_temp
support-new-publish
svg-logo
temp
test-refactor
test_pre_commit_hook
update-architecture-img
update-docs
update-hackaton-guide
update-readme
update_xcode_version_to_13.3_in_travis.yaml
upload-install-scripts
use_DI_to_get_config_home
yishay-test
1.8.2-rc
1.8.1
1.8.1-rc
1.8.0
1.8.0-rc
1.7.3
1.7.3-rc
1.7.2-rc
1.7.1
1.7.1-rc
1.7.0-rc
1.6.49-rc
1.6.48
1.6.48-rc
1.6.47-rc
1.6.46
1.6.46-rc
1.6.45-rc
1.6.44
1.6.44-rc
1.6.43-rc
1.6.42
1.6.42-rc
1.6.41-rc
1.6.40
1.6.40-rc
1.6.39-rc
1.6.38-rc
1.6.37
1.6.37-rc
1.6.36
1.6.36-rc
1.6.35-rc
1.6.34-rc
1.6.33
1.6.33-rc
1.6.32
1.6.32-rc
1.6.31-rc
1.6.30-rc
1.6.29
1.6.29-rc
1.6.28
1.6.28-rc
1.6.27
1.6.27-rc
1.6.26
1.6.26-rc
1.6.25
1.6.25-rc
1.6.24
1.6.24-rc
1.6.23
1.6.23-rc
1.6.22-rc
1.6.21-rc
1.6.20-rc
1.6.19
1.6.19-rc
1.6.18
1.6.18-rc
1.6.17-rc
1.6.16
1.6.16-rc
1.6.15-rc
1.6.14
1.6.14-rc
1.6.13
1.6.13-rc
1.6.12
1.6.12-rc
1.6.11-rc
1.6.10-rc
1.6.9-rc
1.6.8-rc
1.6.7-rc
1.6.6
1.6.6-rc
1.6.5-rc
1.6.4-rc
1.6.3-rc
1.6.2-rc
1.6.1-rc
1.6.0
1.6.0-rc
1.5.38-rc
1.5.37
1.5.37-rc
1.5.36
1.5.36-rc
1.5.35
1.5.35-rc
1.5.34-rc
1.5.33-rc
1.5.32-rc
1.5.31-rc
1.5.30
1.5.30-rc
1.5.29
1.5.29-rc
1.5.28-rc
1.5.27-rc
1.5.26-rc
1.5.25
1.5.25-rc
1.5.24-rc
1.5.23-rc
1.5.22-rc
1.5.21-rc
1.5.20
1.5.20-rc
1.5.19
1.5.19-rc
1.5.18-rc
1.5.17
1.5.17-rc
1.5.16
1.5.16-rc
1.5.15
1.5.15-rc
1.5.14-rc
1.5.13-rc
1.5.12-rc
1.5.11-rc
1.5.10-rc
1.5.9
1.5.9-rc
1.5.8-rc
1.5.7
1.5.7-rc
1.5.6-rc
1.5.5-rc
1.5.4-rc
1.5.3
1.5.3-rc
1.5.2
1.5.2-rc
1.5.1-rc
1.5.0
1.5.0-rc
1.4.40-rc-dima-test
1.4.39-rc
1.4.38-rc
1.4.37
1.4.37-rc
1.4.36-rc
1.4.35
1.4.35-rc
1.4.34-rc
1.4.33
1.4.33-rc
1.4.32
1.4.32-rc
1.4.31-rc
1.4.30
1.4.30-rc
1.4.29-rc
1.4.28
1.4.28-rc
1.4.27-rc
1.4.26
1.4.26-rc
1.4.25-rc
1.4.24-rc
1.4.23-rc
1.4.22
1.4.22-rc
1.4.21-rc
1.4.20
1.4.20-rc
1.4.19
1.4.19-rc
1.4.18-rc
1.4.17
1.4.17-rc
1.4.16-rc
1.4.15-rc
1.4.14-rc
1.4.13
1.4.13-rc
1.4.12-rc
1.4.11-rc
1.4.10
1.4.10-rc
1.4.9-rc
1.4.8-rc
1.4.7-rc
1.4.6-rc
1.4.5-rc
1.4.4
1.4.4-rc
1.4.3
1.4.3-rc
1.4.2-rc
1.4.1-rc
1.4.0
1.4.0-rc
1.3.11-rc
1.3.10-rc
1.3.9-rc
1.3.8-rc
1.3.7-rc
1.3.6-rc
1.3.5
1.3.5-rc
1.3.4
1.3.4-rc
1.3.3-rc
1.3.2
1.3.2-rc
1.3.1-rc
1.3.0
1.3.0-rc
1.2.11-rc
1.2.10
1.2.10-rc
1.2.9
1.2.9-rc
1.2.8-rc
1.2.7-rc
1.2.6-rc
1.2.5-rc
1.2.4-rc
1.2.3-rc
1.2.2
1.2.2-rc
1.2.1-rc
1.2.0
1.2.0-rc
1.1.25-rc
1.1.24-rc
1.1.23-rc
1.1.22
1.1.22-rc
1.1.21-rc
1.1.20
1.1.20-rc
1.1.19-rc
1.1.18-rc
1.1.17
1.1.17-rc
1.1.16-rc
1.1.15-rc
1.1.14
1.1.14-rc
1.1.13-rc
1.1.12-rc
1.1.11-rc
1.1.10
1.1.10-rc
1.1.9-rc
1.1.8-rc
1.1.7-rc
1.1.6
1.1.6-rc
1.1.5
1.1.5-rc
1.1.4-rc
1.1.3-rc
1.1.2
1.1.2-rc
1.1.1-rc
1.1.0-rc
1.0.17-rc
1.0.16-rc
1.0.15
1.0.15-rc
1.0.14-rc
1.0.13-rc
1.0.12-rc
1.0.11-rc
1.0.10-yishay-rc
1.0.10-rc
1.0.9-rc
1.0.8-rc
1.0.7-rc
1.0.6
1.0.6-rc
1.0.5-rc
1.0.4-rc
1.0.3-rc
1.0.2-rc
1.0.1
1.0.1-rc
1.0.0-rc
0.16.19-rc
0.16.18-rc
0.16.17-rc
0.16.16-rc
0.16.15-rc
0.16.14-rc
0.16.13-rc
0.16.12-rc
0.16.11-rc
0.16.10-rc
0.16.9-rc
0.16.8-rc
0.16.7-rc
0.16.6-rc
0.16.5-rc
0.16.4-rc
0.16.3-rc
0.16.2-rc
0.16.1-rc
0.16.0-rc
0.15.53-rc
0.15.52
0.15.52-rc
0.15.51
0.15.51-rc
0.15.50-rc
0.15.49-rc
0.15.48
0.15.48-rc
0.15.47-rc
0.15.46-rc
0.15.45-rc
0.15.44-rc
0.15.43-rc
0.15.42-rc
0.15.41-rc
0.15.40-rc
0.15.39-rc
0.15.38-rc
0.15.37-rc
0.15.36-rc
0.15.35-rc
0.15.34-rc
0.15.33-rc
0.15.32-rc
0.15.31-rc
0.15.30-rc
0.15.29-rc
0.15.28-rc
0.15.27-rc
0.15.26-rc
0.15.25-rc
0.15.24-rc
0.15.23-rc
0.15.22
0.15.22-rc
0.15.21
0.15.21-rc
0.15.20-rc
0.15.19
0.15.19-rc
0.15.18
0.15.18-rc
0.15.17-rc
0.15.16
0.15.16-rc
0.15.15-rc
0.15.14-rc
0.15.13-rc
0.15.12-rc
0.15.11-rc
0.15.10-rc
0.15.9-rc
0.15.8
0.15.8-rc
0.15.7
0.15.7-rc
0.15.6-rc
0.15.5
0.15.5-rc
0.15.4-rc
0.15.3-rc
0.15.2-rc
0.15.1-rc
0.15.0
0.15.0-rc
0.14.143-rc-test-changelog
0.14.142-rc-test-changelog
0.14.141-rc-test-changelog
0.14.140-rc-test-changelog
0.14.139-rc-test-changelog
0.14.138-rc-test-changelog
0.14.137-rc-test-changelog
0.14.136-rc-test-changelog
0.14.135-rc-test-changelog
0.14.134-rc-test-changelog
0.14.133-rc-test-changelog
0.14.132-rc-test-changelog
0.14.131-rc-test-changelog
0.14.130-rc-test-changelog
0.14.129-rc-test-changelog
0.14.128-rc-test-changelog
0.14.127-rc-test-changelog
0.14.126-rc-test-changelog
0.14.125-rc-test-changelog
0.14.124-rc-test-changelog
0.14.123-rc-test-changelog
0.14.122-rc-test-changelog
0.14.121-rc-test-changelog
0.14.120-rc-test-changelog
0.14.119-rc-test-changelog
0.14.118-rc-test-changelog
0.14.117-rc-test-changelog
0.14.116-rc-test-changelog
0.14.115-rc
0.14.114-rc
0.14.113-rc-test-changelog
0.14.112-rc-test-changelog
0.14.111-rc-test-changelog
0.14.110-rc-test-changelog
0.14.109-rc-test-changelog
0.14.108-rc-test-changelog
0.14.107-rc-test-changelog
0.14.106-rc-test-changelog
0.14.105-rc-test-changelog
0.14.104-rc-test-changelog
0.14.103-rc-test-changelog
0.14.102-rc
0.14.102-rc-test-changelog
0.14.101-rc
0.14.101-rc-test-changelog
0.14.100-rc
0.14.100-rc-test-changelog
0.14.99-rc
0.14.99-rc-test-changelog
0.14.98-rc
0.14.98-rc-test-changelog
0.14.97-rc
0.14.97-rc-test-changelog
0.14.96-rc
0.14.96-rc-test-changelog
0.14.95
0.14.95-rc
0.14.95-rc-test-changelog
0.14.94-rc
0.14.94-rc-test-changelog
0.14.93
0.14.93-rc
0.14.93-rc-test-changelog
0.14.92-rc
0.14.92-rc-test-changelog
0.14.91-rc
0.14.91-rc-test-changelog
0.14.90
0.14.90-rc
0.14.90-rc-test-changelog
0.14.89-rc
0.14.89-rc-test-changelog
0.14.88-rc
0.14.88-rc-test-changelog
0.14.87
0.14.87-rc
0.14.86-rc
0.14.85
0.14.85-rc
0.14.84-rc
0.14.83-rc
0.14.82-rc
0.14.81-rc
0.14.80-rc
0.14.79-rc
0.14.78-rc
0.14.77-rc
0.14.76-rc
0.14.75-rc
0.14.74-rc
0.14.73-rc
0.14.72-rc
0.14.71
0.14.71-rc
0.14.70
0.14.70-rc
0.14.69
0.14.69-rc
0.14.68-rc
0.14.67-rc
0.14.66-rc
0.14.65-rc
0.14.64-rc
0.14.63-rc
0.14.62
0.14.62-rc
0.14.61-rc
0.14.60-rc
0.14.59-rc
0.14.58-rc
0.14.57-rc
0.14.56-rc
0.14.55-rc
0.14.54-rc
0.14.53-rc
0.14.52-rc
0.14.51-rc
0.14.50-rc
0.14.49
0.14.49-rc
0.14.48-rc
0.14.47-rc
0.14.46
0.14.46-rc
0.14.45-rc
0.14.44-rc
0.14.43-rc
0.14.42-rc
0.14.41-rc
0.14.40-rc
0.14.39-rc
0.14.38-rc
0.14.37-rc
0.14.36
0.14.36-rc
0.14.35-rc
0.14.34-rc
0.14.33
0.14.33-rc
0.14.32-rc
0.14.31-rc
0.14.30-rc
0.14.29
0.14.29-rc
0.14.28-rc
0.14.27-rc
0.14.26
0.14.26-rc
0.14.25-rc
0.14.24-rc
0.14.23-rc
0.14.22-rc
0.14.21-rc
0.14.20
0.14.20-rc
0.14.19-rc
0.14.18
0.14.18-staging
0.14.18-staging-test-yishay
0.14.18-rc
0.14.17
0.14.17-yishay-test-yishay
0.14.17-yishay-rc
0.14.17-staging
0.14.17-rc
0.14.16
0.14.16-staging
0.14.16-rc
0.14.15-staging
0.14.14-staging
0.14.13-staging
0.14.12-staging
0.14.11-staging
0.14.10-staging
0.14.9-staging
0.14.8-staging
0.14.7-staging
0.14.7-rc
0.14.6
0.14.6-staging
0.14.5-staging
0.14.5-rc
0.14.4
0.14.4-staging
0.14.3-staging
0.14.2
0.14.2-staging
0.14.2-rc
0.14.2-internal
0.14.1-test-yishay
0.14.1-staging
0.14.1-rc
0.14.0-staging
0.14.0-rc
0.13.7
0.13.7-staging
0.13.7-internal
0.13.6-staging
0.13.5-staging
0.13.4
0.13.4-staging
0.13.4-internal
0.13.3-staging
0.13.2
0.13.2-staging
0.13.2-internal
0.13.1-staging
0.13.0
0.13.0-staging
0.13.0-internal
0.12.1
0.12.1-staging
0.12.1-internal
0.12.0
0.12.0-staging
0.12.0-internal
0.11.0
0.11.0-staging
0.10.6-staging
0.10.5-staging
0.10.4-staging
0.10.3-staging
0.10.2-staging
0.10.1-staging
0.10.0
0.10.0-staging
0.9.4-internal
0.9.4-DAT-3420-remove-find-replace
0.9.3-internal
0.9.3-DAT-3420-remove-find-replace
0.9.2-yishay
0.9.2-DAT-3420-remove-find-replace
0.9.1-DAT-3420-remove-find-replace
0.9.0
0.9.0-temp
0.9.0-staging
0.9.0-internal
0.9.0-DAT-3420-remove-find-replace
0.8.2-staging
0.8.1-staging
0.8.0
0.8.0-staging
0.8.0-internal
0.7.1
0.7.1-internal
0.7.0
0.7.0-staging
0.7.0-internal
0.6.3-DAT-3371-homebrew
0.6.2-yishay
0.6.2-staging
0.6.1-staging
0.6.1-docker
0.6.0-staging
0.5.0
0.5.0-staging
0.5.0-internal
0.4.4-DAT-3363-docker-image
0.4.3-DAT-3363-docker-image
0.4.2-staging
0.4.2-DAT-3363-docker-image
0.4.1-staging
0.4.1-DAT-3363-docker-image
0.4.0
0.4.0-staging
0.4.0-internal
0.3.2
0.3.2-internal
0.3.1-staging
0.3.0-fix-semver
0.2.2
0.2.2-staging
0.2.2-internal
0.2.1
0.2.1-staging
0.2.1-internal
0.2.0
0.2.0-staging
0.2.0-internal
0.2.0-fix-semver
0.1.778-staging
0.1.777-staging
0.1.776-DAT-3209-semantic-versioning
0.1.775-DAT-3209-semantic-versioning
0.1.774-DAT-3209-semantic-versioning
0.1.772-staging
0.1.768-staging
0.1.763
0.1.763-internal
0.1.760-staging
0.1.752-staging
0.1.741
0.1.741-internal
0.1.738-staging
0.1.731
0.1.731-internal
0.1.723-staging
0.1.720-staging
0.1.708
0.1.708-internal
0.1.705-staging
0.1.692-staging
0.1.640-staging
0.1.550-DAT-3096-cicd-signing
0.1.547-DAT-3096-cicd-signing
0.1.544-DAT-3096-cicd-signing
0.1.541-DAT-3096-cicd-signing
0.1.538-DAT-3096-cicd-signing
0.1.535-DAT-3096-cicd-signing
0.1.532-DAT-3096-cicd-signing
0.1.529-DAT-3096-cicd-signing
0.1.526-DAT-3096-cicd-signing
0.1.523-DAT-3096-cicd-signing
0.1.516-DAT-3096-cicd-signing
0.1.514-DAT-3096-cicd-signing
0.1.512-DAT-3096-cicd-signing
0.1.510-DAT-3096-cicd-signing
0.1.508-DAT-3096-cicd-signing
0.1.503
0.1.503-staging
0.1.503-internal
0.1.498-DAT-3096-cicd-signing
0.1.493-DAT-3096-cicd-signing
0.1.487-DAT-3096-cicd-signing
0.1.481-DAT-3096-cicd-signing
0.1.471-DAT-3096-cicd-signing
0.1.460
0.1.460-staging
0.1.460-internal
0.1.454-staging
0.1.443
0.1.443-staging
0.1.443-internal
0.1.439-staging
0.1.431
0.1.431-staging
0.1.431-internal
0.1.423-staging
0.0.1-docker
vv1.4.41-rc
v1.8.2-rc
v1.8.1
v1.8.1-rc
v1.8.0
v1.8.0-rc
v1.7.3
v1.7.3-rc
v1.7.2-rc
v1.7.1
v1.7.1-rc
v1.7.0-rc
v1.6.49-rc
v1.6.48
v1.6.48-rc
v1.6.47-rc
v1.6.46
v1.6.46-rc
v1.6.45-rc
v1.6.44
v1.6.44-rc
v1.6.43-rc
v1.6.42
v1.6.42-rc
v1.6.41-rc
v1.6.40
v1.6.40-rc
v1.6.39-rc
v1.6.38-rc
v1.6.37
v1.6.37-rc
v1.6.36
v1.6.36-rc
v1.6.35-rc
v1.6.34-rc
v1.6.33
v1.6.33-rc
v1.6.32
v1.6.32-rc
v1.6.31-rc
v1.6.30-rc
v1.6.29
v1.6.29-rc
v1.6.28
v1.6.28-rc
v1.6.27
v1.6.27-rc
v1.6.26
v1.6.26-rc
v1.6.25
v1.6.25-rc
v1.6.24
v1.6.24-rc
v1.6.23
v1.6.23-rc
v1.6.22-rc
v1.6.21-rc
v1.6.20-rc
v1.6.19
v1.6.19-rc
v1.6.18
v1.6.18-rc
v1.6.17-rc
v1.6.16
v1.6.16-rc
v1.6.15-rc
v1.6.14
v1.6.14-rc
v1.6.13
v1.6.13-rc
v1.6.12
v1.6.12-rc
v1.6.11-rc
v1.6.10-rc
v1.6.9-rc
v1.6.8-rc
v1.6.7-rc
v1.6.6
v1.6.6-rc
v1.6.5-rc
v1.6.4-rc
v1.6.3-rc
v1.6.2-rc
v1.6.1-rc
v1.6.0
v1.6.0-rc
v1.5.38-rc
v1.5.37
v1.5.37-rc
v1.5.36
v1.5.36-rc
v1.5.35
v1.5.35-rc
v1.5.34-rc
v1.5.33-rc
v1.5.32-rc
v1.5.31-rc
v1.5.30
v1.5.30-rc
v1.5.29
v1.5.29-rc
v1.5.28-rc
v1.5.27-rc
v1.5.26-rc
v1.5.25
v1.5.25-rc
v1.5.24-rc
v1.5.23-rc
v1.5.22-rc
v1.5.21-rc
v1.5.20
v1.5.20-rc
v1.5.19
v1.5.19-rc
v1.5.18-rc
v1.5.17
v1.5.17-rc
v1.5.16
v1.5.16-rc
v1.5.15
v1.5.15-rc
v1.5.14
v1.5.13
v1.5.12
v1.5.11
v1.5.10
v1.5.9
v1.5.7
v1.5.4-rc
v1.5.3
v1.5.3-rc
v1.5.2
v1.5.0
v1.4.43-rc
v1.4.42-rc
v1.4.41-rc
v1.4.40-rc
v1.4.40-rc-dima-test
v0.1.773-DAT-3209-semantic-versioning
v0.0.189798_tzlil_debug
v0.0.3
v0.0.2-extract_evaluation
v0.0.1
v0.0.1-extract_evaluation
v-extract_evaluation
pull
No related merge requests found
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
bl/evaluation/evaluator.go
+2
-2
bl/evaluation/evaluator.go
bl/evaluation/printer.go
+31
-16
bl/evaluation/printer.go
bl/evaluation/printer_test.go
+12
-10
bl/evaluation/printer_test.go
bl/files/files.go
+5
-5
bl/files/files.go
bl/validation/k8sValidator.go
+7
-18
bl/validation/k8sValidator.go
cmd/test/main.go
+8
-10
cmd/test/main.go
cmd/test/main_test.go
+14
-14
cmd/test/main_test.go
cmd/test/testCommandHelper.go
+9
-2
cmd/test/testCommandHelper.go
pkg/printer/printer.go
+34
-29
pkg/printer/printer.go
with
122 additions
and
106 deletions
+122
-106
bl/evaluation/evaluator.go
+
2
-
2
View file @
937fa610
...
...
@@ -50,7 +50,7 @@ func (e *Evaluator) CreateEvaluation(cliId string, cliVersion string, k8sVersion
return
createEvaluationResponse
,
err
}
func
(
e
*
Evaluator
)
UpdateFailedYamlValidation
(
invalidFiles
[]
*
validation
.
InvalidFile
,
evaluationId
int
,
stopEvaluation
bool
)
error
{
func
(
e
*
Evaluator
)
UpdateFailedYamlValidation
(
invalidFiles
[]
*
validation
.
Invalid
Yaml
File
,
evaluationId
int
,
stopEvaluation
bool
)
error
{
invalidFilesPaths
:=
[]
*
string
{}
for
_
,
file
:=
range
invalidFiles
{
invalidFilesPaths
=
append
(
invalidFilesPaths
,
&
file
.
Path
)
...
...
@@ -63,7 +63,7 @@ func (e *Evaluator) UpdateFailedYamlValidation(invalidFiles []*validation.Invali
return
err
}
func
(
e
*
Evaluator
)
UpdateFailedK8sValidation
(
invalidFiles
[]
*
validation
.
InvalidFile
,
evaluationId
int
,
stopEvaluation
bool
)
error
{
func
(
e
*
Evaluator
)
UpdateFailedK8sValidation
(
invalidFiles
[]
*
validation
.
Invalid
K8s
File
,
evaluationId
int
,
stopEvaluation
bool
)
error
{
invalidFilesPaths
:=
[]
*
string
{}
for
_
,
file
:=
range
invalidFiles
{
invalidFilesPaths
=
append
(
invalidFilesPaths
,
&
file
.
Path
)
...
...
This diff is collapsed.
Click to expand it.
bl/evaluation/printer.go
+
31
-
16
View file @
937fa610
...
...
@@ -13,24 +13,26 @@ import (
)
type
Printer
interface
{
PrintWarnings
(
w
arnings
[]
printer
.
Warning
)
PrintWarnings
(
invalidYamlWarnings
[]
printer
.
Warning
,
invalidK8sWarnings
[]
printer
.
Warning
,
failedEvaluationW
arnings
[]
printer
.
Warning
)
PrintSummaryTable
(
summary
printer
.
Summary
)
PrintEvaluationSummary
(
summary
printer
.
EvaluationSummary
,
k8sVersion
string
)
}
type
FormattedOutput
struct
{
Results
*
EvaluationResults
Evaluationresults
*
EvaluationResults
EvaluationSummary
printer
.
EvaluationSummary
InvalidYamlFiles
[]
*
validation
.
InvalidYamlFile
InvalidK8sFiles
[]
*
validation
.
InvalidK8sFile
}
func
PrintResults
(
results
*
EvaluationResults
,
invalidFiles
[]
*
validation
.
InvalidFile
,
evaluationSummary
printer
.
EvaluationSummary
,
loginURL
string
,
outputFormat
string
,
printer
Printer
,
k8sVersion
string
)
error
{
func
PrintResults
(
results
*
EvaluationResults
,
invalid
Yaml
Files
[]
*
validation
.
Invalid
YamlFile
,
invalidK8sFiles
[]
*
validation
.
InvalidK8s
File
,
evaluationSummary
printer
.
EvaluationSummary
,
loginURL
string
,
outputFormat
string
,
printer
Printer
,
k8sVersion
string
)
error
{
switch
{
case
outputFormat
==
"json"
:
return
jsonOutput
(
&
FormattedOutput
{
R
esults
:
results
,
EvaluationSummary
:
evaluationSummary
})
return
jsonOutput
(
&
FormattedOutput
{
Evaluationr
esults
:
results
,
EvaluationSummary
:
evaluationSummary
,
InvalidYamlFiles
:
invalidYamlFiles
,
InvalidK8sFiles
:
invalidK8sFiles
})
case
outputFormat
==
"yaml"
:
return
yamlOutput
(
&
FormattedOutput
{
R
esults
:
results
,
EvaluationSummary
:
evaluationSummary
})
return
yamlOutput
(
&
FormattedOutput
{
Evaluationr
esults
:
results
,
EvaluationSummary
:
evaluationSummary
,
InvalidYamlFiles
:
invalidYamlFiles
,
InvalidK8sFiles
:
invalidK8sFiles
})
default
:
return
textOutput
(
results
,
invalidFiles
,
evaluationSummary
,
loginURL
,
printer
,
k8sVersion
)
return
textOutput
(
results
,
invalid
YamlFiles
,
invalidK8s
Files
,
evaluationSummary
,
loginURL
,
printer
,
k8sVersion
)
}
}
...
...
@@ -56,19 +58,19 @@ func yamlOutput(formattedOutput *FormattedOutput) error {
return
nil
}
func
textOutput
(
results
*
EvaluationResults
,
invalidFiles
[]
*
validation
.
InvalidFile
,
evaluationSummary
printer
.
EvaluationSummary
,
url
string
,
printer
Printer
,
k8sVersion
string
)
error
{
func
textOutput
(
results
*
EvaluationResults
,
invalid
Yaml
Files
[]
*
validation
.
Invalid
YamlFile
,
invalidK8sFiles
[]
*
validation
.
InvalidK8s
File
,
evaluationSummary
printer
.
EvaluationSummary
,
url
string
,
printer
Printer
,
k8sVersion
string
)
error
{
pwd
,
err
:=
os
.
Getwd
()
if
err
!=
nil
{
return
err
}
w
arnings
,
err
:=
parseToPrinterWarnings
(
results
,
invalidFiles
,
pwd
,
k8sVersion
)
invalidYamlWarnings
,
invalidK8sWarnings
,
failedEvaluationW
arnings
,
err
:=
parseToPrinterWarnings
(
results
,
invalid
YamlFiles
,
invalidK8s
Files
,
pwd
,
k8sVersion
)
if
err
!=
nil
{
fmt
.
Println
(
err
)
return
err
}
printer
.
PrintWarnings
(
w
arnings
)
printer
.
PrintWarnings
(
invalidYamlWarnings
,
invalidK8sWarnings
,
failedEvaluationW
arnings
)
summary
:=
parseEvaluationResultsToSummary
(
results
,
evaluationSummary
,
url
)
...
...
@@ -79,16 +81,29 @@ func textOutput(results *EvaluationResults, invalidFiles []*validation.InvalidFi
return
nil
}
func
parseToPrinterWarnings
(
results
*
EvaluationResults
,
invalidFiles
[]
*
validation
.
InvalidFile
,
pwd
string
,
k8sVersion
string
)
([]
printer
.
Warning
,
error
)
{
var
warnings
=
[]
printer
.
Warning
{}
func
parseToPrinterWarnings
(
results
*
EvaluationResults
,
invalidYamlFiles
[]
*
validation
.
InvalidYamlFile
,
invalidK8sFiles
[]
*
validation
.
InvalidK8sFile
,
pwd
string
,
k8sVersion
string
)
([]
printer
.
Warning
,
[]
printer
.
Warning
,
[]
printer
.
Warning
,
error
)
{
var
invalidYamlWarnings
=
[]
printer
.
Warning
{}
var
invalidK8sWarnings
=
[]
printer
.
Warning
{}
var
failedEvaluationWarnings
=
[]
printer
.
Warning
{}
for
_
,
invalidFile
:=
range
invalidFiles
{
warnings
=
append
(
warnings
,
printer
.
Warning
{
for
_
,
invalidFile
:=
range
invalidYamlFiles
{
invalidYamlWarnings
=
append
(
invalidYamlWarnings
,
printer
.
Warning
{
Title
:
fmt
.
Sprintf
(
">> File: %s
\n
"
,
invalidFile
.
Path
),
Details
:
[]
printer
.
WarningInfo
{},
ValidationInfo
:
printer
.
ValidationInfo
{
IsValid
:
false
,
ValidationErrors
:
invalidFile
.
ValidationErrors
,
K8sVersion
:
k8sVersion
,
},
})
}
for
_
,
invalidFile
:=
range
invalidK8sFiles
{
invalidK8sWarnings
=
append
(
invalidK8sWarnings
,
printer
.
Warning
{
Title
:
fmt
.
Sprintf
(
">> File: %s
\n
"
,
invalidFile
.
Path
),
Details
:
[]
printer
.
WarningInfo
{},
ValidationInfo
:
printer
.
ValidationInfo
{
IsValid
:
false
,
ValidationStatus
:
invalidFile
.
ValidationStatus
,
ValidationErrors
:
invalidFile
.
ValidationErrors
,
K8sVersion
:
k8sVersion
,
},
...
...
@@ -110,7 +125,7 @@ func parseToPrinterWarnings(results *EvaluationResults, invalidFiles []*validati
relativePath
,
_
:=
filepath
.
Rel
(
pwd
,
fileName
)
warnings
=
append
(
w
arnings
,
printer
.
Warning
{
failedEvaluationWarnings
=
append
(
failedEvaluationW
arnings
,
printer
.
Warning
{
Title
:
fmt
.
Sprintf
(
">> File: %s
\n
"
,
relativePath
),
Details
:
warningDetails
,
ValidationInfo
:
printer
.
ValidationInfo
{
...
...
@@ -122,7 +137,7 @@ func parseToPrinterWarnings(results *EvaluationResults, invalidFiles []*validati
}
}
return
w
arnings
,
nil
return
invalidYamlWarnings
,
invalidK8sWarnings
,
failedEvaluationW
arnings
,
nil
}
type
OutputTitle
int
...
...
This diff is collapsed.
Click to expand it.
bl/evaluation/printer_test.go
+
12
-
10
View file @
937fa610
...
...
@@ -14,8 +14,8 @@ type mockPrinter struct {
mock
.
Mock
}
func
(
m
*
mockPrinter
)
PrintWarnings
(
w
arnings
[]
printer
.
Warning
)
{
m
.
Called
(
w
arnings
)
func
(
m
*
mockPrinter
)
PrintWarnings
(
invalidYamlWarnings
[]
printer
.
Warning
,
invalidK8sWarnings
[]
printer
.
Warning
,
failedEvaluationW
arnings
[]
printer
.
Warning
)
{
m
.
Called
(
invalidYamlWarnings
,
invalidK8sWarnings
,
failedEvaluationW
arnings
)
}
func
(
c
*
mockPrinter
)
PrintSummaryTable
(
summary
printer
.
Summary
)
{
...
...
@@ -28,7 +28,8 @@ func (c *mockPrinter) PrintEvaluationSummary(summary printer.EvaluationSummary,
type
printResultsTestCaseArgs
struct
{
results
*
EvaluationResults
invalidFiles
[]
*
validation
.
InvalidFile
invalidYamlFiles
[]
*
validation
.
InvalidYamlFile
invalidK8sFiles
[]
*
validation
.
InvalidK8sFile
evaluationSummary
printer
.
EvaluationSummary
loginURL
string
outputFormat
string
...
...
@@ -49,12 +50,12 @@ func TestPrintResults(t *testing.T) {
}
for
_
,
tt
:=
range
tests
{
mockedPrinter
:=
&
mockPrinter
{}
mockedPrinter
.
On
(
"PrintWarnings"
,
mock
.
Anything
)
mockedPrinter
.
On
(
"PrintWarnings"
,
mock
.
Anything
,
mock
.
Anything
,
mock
.
Anything
)
mockedPrinter
.
On
(
"PrintSummaryTable"
,
mock
.
Anything
)
mockedPrinter
.
On
(
"PrintEvaluationSummary"
,
mock
.
Anything
,
mock
.
Anything
)
t
.
Run
(
tt
.
name
,
func
(
t
*
testing
.
T
)
{
_
=
PrintResults
(
tt
.
args
.
results
,
tt
.
args
.
invalidFiles
,
tt
.
args
.
evaluationSummary
,
tt
.
args
.
loginURL
,
tt
.
args
.
outputFormat
,
mockedPrinter
,
"1.18.0"
)
_
=
PrintResults
(
tt
.
args
.
results
,
tt
.
args
.
invalid
YamlFiles
,
tt
.
args
.
invalidK8s
Files
,
tt
.
args
.
evaluationSummary
,
tt
.
args
.
loginURL
,
tt
.
args
.
outputFormat
,
mockedPrinter
,
"1.18.0"
)
if
tt
.
args
.
outputFormat
==
"json"
{
mockedPrinter
.
AssertNotCalled
(
t
,
"PrintWarnings"
)
...
...
@@ -63,8 +64,8 @@ func TestPrintResults(t *testing.T) {
}
else
{
pwd
,
_
:=
os
.
Getwd
()
w
arnings
,
_
:=
parseToPrinterWarnings
(
tt
.
args
.
results
,
tt
.
args
.
invalidFiles
,
pwd
,
"1.18.0"
)
mockedPrinter
.
AssertCalled
(
t
,
"PrintWarnings"
,
w
arnings
)
invalidYamlWarnings
,
invalidK8sWarnings
,
failedEvaluationW
arnings
,
_
:=
parseToPrinterWarnings
(
tt
.
args
.
results
,
tt
.
args
.
invalid
YamlFiles
,
tt
.
args
.
invalidK8s
Files
,
pwd
,
"1.18.0"
)
mockedPrinter
.
AssertCalled
(
t
,
"PrintWarnings"
,
invalidYamlWarnings
,
invalidK8sWarnings
,
failedEvaluationW
arnings
)
}
})
}
...
...
@@ -88,11 +89,12 @@ func print_resultst(outputFormat string) *printResultsTestCase {
TotalPassedCount
:
0
,
},
},
invalidFiles
:
[]
*
validation
.
InvalidFile
{},
invalidYamlFiles
:
[]
*
validation
.
InvalidYamlFile
{},
invalidK8sFiles
:
[]
*
validation
.
InvalidK8sFile
{},
evaluationSummary
:
printer
.
EvaluationSummary
{},
loginURL
:
"login/url"
,
outputFormat
:
outputFormat
,
outputFormat
:
outputFormat
,
},
expected
:
nil
,
}
}
\ No newline at end of file
}
This diff is collapsed.
Click to expand it.
bl/files/files.go
+
5
-
5
View file @
937fa610
...
...
@@ -23,9 +23,9 @@ func ToAbsolutePath(path string) (string, error) {
return
""
,
fmt
.
Errorf
(
"failed parsing absolute path %s"
,
path
)
}
func
ExtractFilesConfigurations
(
paths
[]
string
,
concurrency
int
)
(
chan
*
extractor
.
FileConfigurations
,
chan
*
validation
.
InvalidFile
)
{
func
ExtractFilesConfigurations
(
paths
[]
string
,
concurrency
int
)
(
chan
*
extractor
.
FileConfigurations
,
chan
*
validation
.
Invalid
Yaml
File
)
{
filesConfigurationsChan
:=
make
(
chan
*
extractor
.
FileConfigurations
,
concurrency
)
invalidFilesChan
:=
make
(
chan
*
validation
.
InvalidFile
,
concurrency
)
invalidFilesChan
:=
make
(
chan
*
validation
.
Invalid
Yaml
File
,
concurrency
)
go
func
()
{
defer
func
()
{
...
...
@@ -37,19 +37,19 @@ func ExtractFilesConfigurations(paths []string, concurrency int) (chan *extracto
absolutePath
,
err
:=
ToAbsolutePath
(
path
)
if
err
!=
nil
{
invalidFilesChan
<-
&
validation
.
InvalidFile
{
Path
:
path
,
ValidationStatus
:
validation
.
InvalidYamlFile
,
ValidationErrors
:
[]
error
{
err
}}
invalidFilesChan
<-
&
validation
.
Invalid
Yaml
File
{
Path
:
path
,
ValidationErrors
:
[]
error
{
err
}}
continue
}
content
,
err
:=
extractor
.
ReadFileContent
(
absolutePath
)
if
err
!=
nil
{
invalidFilesChan
<-
&
validation
.
InvalidFile
{
Path
:
absolutePath
,
ValidationStatus
:
validation
.
InvalidYamlFile
,
ValidationErrors
:
[]
error
{
err
}}
invalidFilesChan
<-
&
validation
.
Invalid
Yaml
File
{
Path
:
absolutePath
,
ValidationErrors
:
[]
error
{
err
}}
continue
}
configurations
,
err
:=
extractor
.
ParseYaml
(
content
)
if
err
!=
nil
{
invalidFilesChan
<-
&
validation
.
InvalidFile
{
Path
:
absolutePath
,
ValidationStatus
:
validation
.
InvalidYamlFile
,
ValidationErrors
:
[]
error
{
err
}}
invalidFilesChan
<-
&
validation
.
Invalid
Yaml
File
{
Path
:
absolutePath
,
ValidationErrors
:
[]
error
{
err
}}
continue
}
...
...
This diff is collapsed.
Click to expand it.
bl/validation/k8sValidator.go
+
7
-
18
View file @
937fa610
...
...
@@ -21,30 +21,21 @@ func New() *K8sValidator {
return
&
K8sValidator
{}
}
type
ValidationStatus
int
const
(
InvalidYamlFile
ValidationStatus
=
iota
+
1
InvalidK8sFile
)
func
(
validationStatus
ValidationStatus
)
String
()
string
{
return
[
...
]
string
{
"InvalidYamlFile"
,
"InvalidK8sFile"
}[
validationStatus
]
}
type
InvalidFile
struct
{
Path
string
ValidationStatus
ValidationStatus
ValidationErrors
[]
error
}
type
InvalidYamlFile
InvalidFile
type
InvalidK8sFile
InvalidFile
func
(
val
*
K8sValidator
)
InitClient
(
k8sVersion
string
)
{
val
.
validationClient
=
newKubconformValidator
(
k8sVersion
)
}
func
(
val
*
K8sValidator
)
ValidateResources
(
filesConfigurationsChan
chan
*
extractor
.
FileConfigurations
,
concurrency
int
)
(
chan
*
extractor
.
FileConfigurations
,
chan
*
InvalidFile
)
{
func
(
val
*
K8sValidator
)
ValidateResources
(
filesConfigurationsChan
chan
*
extractor
.
FileConfigurations
,
concurrency
int
)
(
chan
*
extractor
.
FileConfigurations
,
chan
*
Invalid
K8s
File
)
{
validK8sFilesConfigurationsChan
:=
make
(
chan
*
extractor
.
FileConfigurations
,
concurrency
)
invalidK8sFilesChan
:=
make
(
chan
*
InvalidFile
,
concurrency
)
invalidK8sFilesChan
:=
make
(
chan
*
Invalid
K8s
File
,
concurrency
)
go
func
()
{
defer
func
()
{
...
...
@@ -56,9 +47,8 @@ func (val *K8sValidator) ValidateResources(filesConfigurationsChan chan *extract
isValid
,
validationErrors
,
err
:=
val
.
validateResource
(
fileConfigurations
.
FileName
)
if
err
!=
nil
{
invalidK8sFilesChan
<-
&
InvalidFile
{
invalidK8sFilesChan
<-
&
Invalid
K8s
File
{
Path
:
fileConfigurations
.
FileName
,
ValidationStatus
:
InvalidK8sFile
,
ValidationErrors
:
[]
error
{
err
},
}
continue
...
...
@@ -66,9 +56,8 @@ func (val *K8sValidator) ValidateResources(filesConfigurationsChan chan *extract
if
isValid
{
validK8sFilesConfigurationsChan
<-
fileConfigurations
}
else
{
invalidK8sFilesChan
<-
&
InvalidFile
{
invalidK8sFilesChan
<-
&
Invalid
K8s
File
{
Path
:
fileConfigurations
.
FileName
,
ValidationStatus
:
InvalidK8sFile
,
ValidationErrors
:
validationErrors
,
}
}
...
...
This diff is collapsed.
Click to expand it.
cmd/test/main.go
+
8
-
10
View file @
937fa610
...
...
@@ -19,8 +19,8 @@ import (
type
Evaluator
interface
{
Evaluate
(
filesConfigurationsChan
[]
*
extractor
.
FileConfigurations
,
evaluationId
int
)
(
*
evaluation
.
EvaluationResults
,
error
)
CreateEvaluation
(
cliId
string
,
cliVersion
string
,
k8sVersion
string
)
(
*
cliClient
.
CreateEvaluationResponse
,
error
)
UpdateFailedYamlValidation
(
invalidFiles
[]
*
validation
.
InvalidFile
,
evaluationId
int
,
stopEvaluation
bool
)
error
UpdateFailedK8sValidation
(
invalidFiles
[]
*
validation
.
InvalidFile
,
evaluationId
int
,
stopEvaluation
bool
)
error
UpdateFailedYamlValidation
(
invalidFiles
[]
*
validation
.
Invalid
Yaml
File
,
evaluationId
int
,
stopEvaluation
bool
)
error
UpdateFailedK8sValidation
(
invalidFiles
[]
*
validation
.
Invalid
K8s
File
,
evaluationId
int
,
stopEvaluation
bool
)
error
}
type
Messager
interface
{
...
...
@@ -28,7 +28,7 @@ type Messager interface {
}
type
K8sValidator
interface
{
ValidateResources
(
filesConfigurations
chan
*
extractor
.
FileConfigurations
,
concurrency
int
)
(
chan
*
extractor
.
FileConfigurations
,
chan
*
validation
.
InvalidFile
)
ValidateResources
(
filesConfigurations
chan
*
extractor
.
FileConfigurations
,
concurrency
int
)
(
chan
*
extractor
.
FileConfigurations
,
chan
*
validation
.
Invalid
K8s
File
)
InitClient
(
k8sVersion
string
)
}
...
...
@@ -38,7 +38,7 @@ type TestCommandFlags struct {
}
type
EvaluationPrinter
interface
{
PrintWarnings
(
w
arnings
[]
printer
.
Warning
)
PrintWarnings
(
invalidYamlWarnings
[]
printer
.
Warning
,
invalidK8sWarnings
[]
printer
.
Warning
,
failedEvaluationW
arnings
[]
printer
.
Warning
)
PrintSummaryTable
(
summary
printer
.
Summary
)
PrintMessage
(
messageText
string
,
messageColor
string
)
PrintEvaluationSummary
(
evaluationSummary
printer
.
EvaluationSummary
,
k8sVersion
string
)
...
...
@@ -133,7 +133,7 @@ func test(ctx *TestCommandContext, paths []string, flags TestCommandFlags) error
ctx
.
K8sValidator
.
InitClient
(
createEvaluationResponse
.
K8sVersion
)
validK8sFilesConfigurationsChan
,
invalidK8sFilesChan
:=
ctx
.
K8sValidator
.
ValidateResources
(
validYamlFilesConfigurationsChan
,
concurrency
)
invalidYamlFiles
:=
aggregateInvalidFiles
(
invalidYamlFilesChan
)
invalidYamlFiles
:=
aggregateInvalid
Yaml
Files
(
invalidYamlFilesChan
)
invalidYamlFilesLen
:=
len
(
invalidYamlFiles
)
...
...
@@ -144,7 +144,7 @@ func test(ctx *TestCommandContext, paths []string, flags TestCommandFlags) error
return
err
}
invalidK8sFiles
:=
aggregateInvalidFiles
(
invalidK8sFilesChan
)
invalidK8sFiles
:=
aggregateInvalid
K8s
Files
(
invalidK8sFilesChan
)
invalidK8sFilesLen
:=
len
(
invalidK8sFiles
)
stopEvaluation
=
invalidYamlFilesLen
+
invalidK8sFilesLen
==
filesPathsLen
...
...
@@ -186,16 +186,14 @@ func test(ctx *TestCommandContext, paths []string, flags TestCommandFlags) error
PassedPolicyCheckCount
:
passedPolicyCheckCount
,
}
invalidFiles
:=
append
(
invalidYamlFiles
,
invalidK8sFiles
...
)
err
=
evaluation
.
PrintResults
(
results
,
invalidFiles
,
evaluationSummary
,
fmt
.
Sprintf
(
"https://app.datree.io/login?cliId=%s"
,
ctx
.
LocalConfig
.
CliId
),
flags
.
Output
,
ctx
.
Printer
,
createEvaluationResponse
.
K8sVersion
)
err
=
evaluation
.
PrintResults
(
results
,
invalidYamlFiles
,
invalidK8sFiles
,
evaluationSummary
,
fmt
.
Sprintf
(
"https://app.datree.io/login?cliId=%s"
,
ctx
.
LocalConfig
.
CliId
),
flags
.
Output
,
ctx
.
Printer
,
createEvaluationResponse
.
K8sVersion
)
var
invocationFailedErr
error
=
nil
if
err
!=
nil
{
fmt
.
Println
(
err
.
Error
())
invocationFailedErr
=
err
}
else
if
len
(
invalidFiles
)
>
0
||
results
.
Summary
.
TotalFailedRules
>
0
{
}
else
if
len
(
invalid
YamlFiles
)
>
0
||
len
(
invalidK8s
Files
)
>
0
||
results
.
Summary
.
TotalFailedRules
>
0
{
invocationFailedErr
=
fmt
.
Errorf
(
"Evaluation failed"
)
}
...
...
This diff is collapsed.
Click to expand it.
cmd/test/main_test.go
+
14
-
14
View file @
937fa610
...
...
@@ -28,13 +28,13 @@ func (m *mockEvaluator) CreateEvaluation(cliId string, cliVersion string, k8sVer
return
args
.
Get
(
0
)
.
(
*
cliClient
.
CreateEvaluationResponse
),
args
.
Error
(
1
)
}
func
(
m
*
mockEvaluator
)
UpdateFailedYamlValidation
(
invalidFiles
[]
*
validation
.
InvalidFile
,
evaluationId
int
,
stopEvaluation
bool
)
error
{
args
:=
m
.
Called
(
invalidFiles
,
evaluationId
,
stopEvaluation
)
func
(
m
*
mockEvaluator
)
UpdateFailedYamlValidation
(
invalid
Yaml
Files
[]
*
validation
.
Invalid
Yaml
File
,
evaluationId
int
,
stopEvaluation
bool
)
error
{
args
:=
m
.
Called
(
invalid
Yaml
Files
,
evaluationId
,
stopEvaluation
)
return
args
.
Error
(
0
)
}
func
(
m
*
mockEvaluator
)
UpdateFailedK8sValidation
(
invalidFiles
[]
*
validation
.
InvalidFile
,
evaluationId
int
,
stopEvaluation
bool
)
error
{
args
:=
m
.
Called
(
invalidFiles
,
evaluationId
,
stopEvaluation
)
func
(
m
*
mockEvaluator
)
UpdateFailedK8sValidation
(
invalid
K8s
Files
[]
*
validation
.
Invalid
K8s
File
,
evaluationId
int
,
stopEvaluation
bool
)
error
{
args
:=
m
.
Called
(
invalid
K8s
Files
,
evaluationId
,
stopEvaluation
)
return
args
.
Error
(
0
)
}
...
...
@@ -62,9 +62,9 @@ type K8sValidatorMock struct {
mock
.
Mock
}
func
(
kv
*
K8sValidatorMock
)
ValidateResources
(
filesConfigurationsChan
chan
*
extractor
.
FileConfigurations
,
concurrency
int
)
(
chan
*
extractor
.
FileConfigurations
,
chan
*
validation
.
InvalidFile
)
{
func
(
kv
*
K8sValidatorMock
)
ValidateResources
(
filesConfigurationsChan
chan
*
extractor
.
FileConfigurations
,
concurrency
int
)
(
chan
*
extractor
.
FileConfigurations
,
chan
*
validation
.
Invalid
K8s
File
)
{
args
:=
kv
.
Called
(
filesConfigurationsChan
,
concurrency
)
return
args
.
Get
(
0
)
.
(
chan
*
extractor
.
FileConfigurations
),
args
.
Get
(
1
)
.
(
chan
*
validation
.
InvalidFile
)
return
args
.
Get
(
0
)
.
(
chan
*
extractor
.
FileConfigurations
),
args
.
Get
(
1
)
.
(
chan
*
validation
.
Invalid
K8s
File
)
}
func
(
kv
*
K8sValidatorMock
)
InitClient
(
k8sVersion
string
)
{
...
...
@@ -74,8 +74,8 @@ type PrinterMock struct {
mock
.
Mock
}
func
(
p
*
PrinterMock
)
PrintWarnings
(
w
arnings
[]
printer
.
Warning
)
{
p
.
Called
(
w
arnings
)
func
(
p
*
PrinterMock
)
PrintWarnings
(
invalidYamlWarnings
[]
printer
.
Warning
,
invalidK8sWarnings
[]
printer
.
Warning
,
failedEvaluationW
arnings
[]
printer
.
Warning
)
{
p
.
Called
(
invalidYamlWarnings
,
invalidK8sWarnings
,
failedEvaluationW
arnings
)
}
func
(
p
*
PrinterMock
)
PrintSummaryTable
(
summary
printer
.
Summary
)
{
...
...
@@ -125,13 +125,13 @@ func TestTestCommand(t *testing.T) {
filesConfigurationsChan
:=
newFilesConfigurationsChan
(
path
)
filesConfigurations
:=
newFilesConfigurations
(
path
)
inv
a
lidFilesChan
:=
newInvalidFilesChan
()
inv
e
lid
K8s
FilesChan
:=
newInvalid
K8s
FilesChan
()
k8sValidatorMock
.
On
(
"ValidateResources"
,
mock
.
Anything
,
mock
.
Anything
)
.
Return
(
filesConfigurationsChan
,
inv
a
lidFilesChan
,
newErrorsChan
())
k8sValidatorMock
.
On
(
"ValidateResources"
,
mock
.
Anything
,
mock
.
Anything
)
.
Return
(
filesConfigurationsChan
,
inv
e
lid
K8s
FilesChan
,
newErrorsChan
())
k8sValidatorMock
.
On
(
"InitClient"
,
mock
.
Anything
)
.
Return
()
printerMock
:=
&
PrinterMock
{}
printerMock
.
On
(
"PrintWarnings"
,
mock
.
Anything
)
printerMock
.
On
(
"PrintWarnings"
,
mock
.
Anything
,
mock
.
Anything
,
mock
.
Anything
)
printerMock
.
On
(
"PrintSummaryTable"
,
mock
.
Anything
)
printerMock
.
On
(
"PrintMessage"
,
mock
.
Anything
,
mock
.
Anything
)
printerMock
.
On
(
"PrintEvaluationSummary"
,
mock
.
Anything
,
mock
.
Anything
)
...
...
@@ -193,10 +193,10 @@ func newFilesConfigurations(path string) []*extractor.FileConfigurations {
return
filesConfigurations
}
func
newInvalidFilesChan
()
chan
*
validation
.
InvalidFile
{
invalidFilesChan
:=
make
(
chan
*
validation
.
InvalidFile
,
1
)
func
newInvalid
K8s
FilesChan
()
chan
*
validation
.
Invalid
K8s
File
{
invalidFilesChan
:=
make
(
chan
*
validation
.
Invalid
K8s
File
,
1
)
invalidFile
:=
&
validation
.
InvalidFile
{
invalidFile
:=
&
validation
.
Invalid
K8s
File
{
Path
:
"invalid/path"
,
ValidationErrors
:
[]
error
{},
}
...
...
This diff is collapsed.
Click to expand it.
cmd/test/testCommandHelper.go
+
9
-
2
View file @
937fa610
...
...
@@ -15,8 +15,15 @@ func createSpinner(text string, color string) *spinner.Spinner {
return
s
}
func
aggregateInvalidFiles
(
invalidFilesChan
chan
*
validation
.
InvalidFile
)
[]
*
validation
.
InvalidFile
{
var
invalidFiles
[]
*
validation
.
InvalidFile
func
aggregateInvalidK8sFiles
(
invalidFilesChan
chan
*
validation
.
InvalidK8sFile
)
[]
*
validation
.
InvalidK8sFile
{
var
invalidFiles
[]
*
validation
.
InvalidK8sFile
for
invalidFile
:=
range
invalidFilesChan
{
invalidFiles
=
append
(
invalidFiles
,
invalidFile
)
}
return
invalidFiles
}
func
aggregateInvalidYamlFiles
(
invalidFilesChan
chan
*
validation
.
InvalidYamlFile
)
[]
*
validation
.
InvalidYamlFile
{
var
invalidFiles
[]
*
validation
.
InvalidYamlFile
for
invalidFile
:=
range
invalidFilesChan
{
invalidFiles
=
append
(
invalidFiles
,
invalidFile
)
}
...
...
This diff is collapsed.
Click to expand it.
pkg/printer/printer.go
+
34
-
29
View file @
937fa610
...
...
@@ -4,7 +4,6 @@ import (
"fmt"
"os"
"github.com/datreeio/datree/bl/validation"
"github.com/fatih/color"
"github.com/olekukonko/tablewriter"
)
...
...
@@ -28,7 +27,6 @@ type WarningInfo struct {
type
ValidationInfo
struct
{
IsValid
bool
ValidationStatus
validation
.
ValidationStatus
ValidationErrors
[]
error
K8sVersion
string
}
...
...
@@ -38,40 +36,47 @@ type Warning struct {
ValidationInfo
ValidationInfo
}
func
(
p
*
Printer
)
PrintWarnings
(
w
arnings
[]
Warning
)
{
for
_
,
warning
:=
range
w
arnings
{
func
(
p
*
Printer
)
PrintWarnings
(
invalidYamlWarnings
[]
Warning
,
invalidK8sWarnings
[]
Warning
,
failedEvaluationW
arnings
[]
Warning
)
{
for
_
,
warning
:=
range
invalidYamlW
arnings
{
p
.
printInColor
(
warning
.
Title
,
p
.
theme
.
Colors
.
Yellow
)
fmt
.
Println
()
if
!
warning
.
ValidationInfo
.
IsValid
{
if
warning
.
ValidationInfo
.
ValidationStatus
==
validation
.
InvalidYamlFile
{
p
.
printInColor
(
"[X] YAML validation
\n
"
,
p
.
theme
.
Colors
.
White
)
fmt
.
Println
()
for
_
,
validationError
:=
range
warning
.
ValidationInfo
.
ValidationErrors
{
validationError
:=
p
.
theme
.
Colors
.
Red
.
Sprint
(
validationError
.
Error
())
fmt
.
Printf
(
"%v %v
\n
"
,
p
.
theme
.
Emoji
.
Error
,
validationError
)
}
fmt
.
Println
()
p
.
printInColor
(
"[X] YAML validation
\n
"
,
p
.
theme
.
Colors
.
White
)
fmt
.
Println
()
for
_
,
validationError
:=
range
warning
.
ValidationInfo
.
ValidationErrors
{
validationError
:=
p
.
theme
.
Colors
.
Red
.
Sprint
(
validationError
.
Error
())
fmt
.
Printf
(
"%v %v
\n
"
,
p
.
theme
.
Emoji
.
Error
,
validationError
)
}
fmt
.
Println
()
p
.
printInColor
(
"[?] Kubernetes schema validation
\n
"
,
p
.
theme
.
Colors
.
White
)
p
.
printInColor
(
"[?] Policy check didn’t run for this file
\n
"
,
p
.
theme
.
Colors
.
White
)
p
.
printInColor
(
"[?] Kubernetes schema validation
\n
"
,
p
.
theme
.
Colors
.
White
)
p
.
printInColor
(
"[?] Policy check didn’t run for this file
\n
"
,
p
.
theme
.
Colors
.
White
)
fmt
.
Println
()
fmt
.
Println
()
}
}
else
if
warning
.
ValidationInfo
.
ValidationStatus
==
validation
.
InvalidK8sFile
{
p
.
printInColor
(
"[V] YAML validation
\n
"
,
p
.
theme
.
Colors
.
Green
)
p
.
printInColor
(
"[X] Kubernetes schema validation
\n
"
,
p
.
theme
.
Colors
.
White
)
fmt
.
Println
()
for
_
,
warning
:=
range
invalidK8sWarnings
{
p
.
printInColor
(
warning
.
Title
,
p
.
theme
.
Colors
.
Yellow
)
fmt
.
Println
()
for
_
,
validationError
:=
range
warning
.
ValidationInfo
.
ValidationErrors
{
validationError
:=
p
.
theme
.
Colors
.
Red
.
Sprint
(
validationError
.
Error
())
fmt
.
Printf
(
"%v %v
\n
"
,
p
.
theme
.
Emoji
.
Error
,
validationError
)
}
fmt
.
Println
()
p
.
printInColor
(
"[?] Policy check didn’t run for this file
\n
"
,
p
.
theme
.
Colors
.
White
)
fmt
.
Println
()
}
}
else
{
p
.
printInColor
(
"[V] YAML validation
\n
"
,
p
.
theme
.
Colors
.
Green
)
p
.
printInColor
(
"[X] Kubernetes schema validation
\n
"
,
p
.
theme
.
Colors
.
White
)
fmt
.
Println
()
for
_
,
validationError
:=
range
warning
.
ValidationInfo
.
ValidationErrors
{
validationError
:=
p
.
theme
.
Colors
.
Red
.
Sprint
(
validationError
.
Error
())
fmt
.
Printf
(
"%v %v
\n
"
,
p
.
theme
.
Emoji
.
Error
,
validationError
)
}
fmt
.
Println
()
p
.
printInColor
(
"[?] Policy check didn’t run for this file
\n
"
,
p
.
theme
.
Colors
.
White
)
fmt
.
Println
()
}
for
_
,
warning
:=
range
failedEvaluationWarnings
{
p
.
printInColor
(
warning
.
Title
,
p
.
theme
.
Colors
.
Yellow
)
fmt
.
Println
()
if
warning
.
ValidationInfo
.
IsValid
{
p
.
printInColor
(
"[V] YAML validation
\n
"
,
p
.
theme
.
Colors
.
Green
)
p
.
printInColor
(
"[V] Kubernetes schema validation
\n
"
,
p
.
theme
.
Colors
.
Green
)
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets
Help