# Eclipse IDE
#------------------------------------------------------------
**/.classpath
**/.project
**/.tern-project
**/.settings/**
**/bin/


# IntelliJ IDE
#------------------------------------------------------------
**/.idea/
/out/
*.iml

# Logs
#------------------------------------------------------------
*.log
*/logs/*
*/*/logs/*
/utils/DmaapPublisher/logs/*


#Excluded Script Folder
xFolder

# IntelliJ IDE
#------------------------------------------------------------
**/.idea/
/out/
*.iml


# Maven
#------------------------------------------------------------
**/target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
version.properties
*dependency-reduced-pom.xml

## sdc-os-chef
*.class
# Package Files

# Package Files
#------------------------------------------------------------
*.ear
*.iml
*.jar
*.war
#Gradle
.gradle/*

#Gradle
.gradle/*
*/*.gradle
*/settings.gradle
*/gradlew.bat
*/gradlew
gradlew.bat
gradlew
settings.gradle

/log
/log
*.kpf
*.orig


# catalog-ui
#------------------------------------------------------------
#------------------------------------------------------------
#------------------------------------------------------------
catalog-ui/app/dist/*
catalog-ui/dist
catalog-ui/*.tmp.txt
catalog-ui/tests/Coverage/*
catalog-ui/Chrome*
catalog-ui/PhantomJS_1.9.8_(Windows_7_0.0.0)/*

catalog-ui/app/dist/*
.metadata/
.metadata/*
.project
.settings/
Vagrantfile
a4c/
asdc-chef/cookbooks/Deploy-SDandC/attributes/version.rb
asdc-tests/ExtentReport/ASDC_CI_Extent_Report.html
asdc-tests/test-output/**
asdctool/tosca/*
bin/
catalog-be/.pydevproject
catalog-be/.checkstyle
catalog-be/data/*
catalog-be/src/main/java/META-INF/MANIFEST.MF
catalog-be/test-output/*
catalog-builders/bin/
catalog-dao/bin/
catalog-fe/bin
catalog-fe/src/main/webapp/*
catalog-ui/*.tmp.txt
catalog-ui/.*
catalog-ui/app/dist/*
catalog-ui/.editorconfig
catalog-ui/.jshintrc
catalog-ui/.yo-rc.json
catalog-ui/Chrome*
catalog-ui/PhantomJS_1.9.8_(Windows_7_0.0.0)/*
catalog-ui/app/**/*.css
catalog-ui/app/dist/*
catalog-ui/app/robots.txt
catalog-ui/app/scripts/**/*.js
catalog-ui/app/scripts/**/*.js.map
catalog-ui/app/scripts/references.ts
catalog-ui/app/scripts/tsconfig.json
catalog-ui/app/tsconfig.json
catalog-ui/package-lock.json
catalog-ui/dist
catalog-ui/*.tmp.txt
catalog-ui/tests/Coverage/*
catalog-ui/Chrome*
catalog-ui/PhantomJS_1.9.8_(Windows_7_0.0.0)/*
catalog-ui/*.tmp.txt
catalog-ui/tests/Coverage/*
catalog-ui/Chrome*
catalog-ui/PhantomJS_1.9.8_(Windows_7_0.0.0)/*
catalog-ui/tests/Coverage/*
catalog-ui/PhantomJS_1.9.8_(Windows_7_0.0.0)/*
catalog-ui/node/*
catalog-ui/node_modules/
catalog-ui/npm-debug.log
catalog-ui/tests/Coverage/*
common-app-api/bin/
data/compute.png
data/loadbalancer.png
data/mysql.png
data/network.png
data/normative-types-DBMS.yml
data/normative-types-blockStorage.yml
data/normative-types-compute.yml
data/normative-types-database.yml
data/normative-types-network.yml
data/normative-types-objectStorage.yml
data/normative-types-root.yml
data/normative-types-softwareComponent.yml
data/normative-types-webApplication.yml
data/normative-types-webServer.yml
data/objectstore.png
data/relational_db.png
data/root.png
data/router.png
data/software.png
data/volume.png

distribution-ci/logs/wordnik.log
distribution-ci/logs/wordnik.log.1
distribution-ci/logs/wordnik.log.10
distribution-ci/logs/wordnik.log.2
distribution-ci/logs/wordnik.log.3
distribution-ci/logs/wordnik.log.4
distribution-ci/logs/wordnik.log.5
distribution-ci/logs/wordnik.log.6
distribution-ci/logs/wordnik.log.7
distribution-ci/logs/wordnik.log.8
distribution-ci/logs/wordnik.log.9
dox-sequence-diagram-ui/node/*





log.home_IS_UNDEFINED/ASDC/ASDC-BE/Error.log
log.home_IS_UNDEFINED/ASDC/ASDC-BE/audit.log
log.home_IS_UNDEFINED/ASDC/ASDC-BE/debug.log
log.home_IS_UNDEFINED/ASDC/ASDC-BE/debug_by_package.log
log.home_IS_UNDEFINED/ASDC/ASDC-BE/transaction.log

node/*
openecomp-be/tools/swagger-ui/api-docs/api.html
openecomp-be/tools/swagger-ui/api-docs/api.json
openecomp-ui/node/*
sdc-os-chef/.idea/*

catalog-be/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/files/default/ecomp-error-configuration.yaml
catalog-be/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/files/default/error-configuration.yaml
catalog-be/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/files/default/logback.xml

sdc-os-chef/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/attributes/default.rb
sdc-os-chef/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/files/default/SDC-*.zip
sdc-os-chef/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/files/default/sdctool.tar
sdc-os-chef/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/files/default/tools/*
sdc-os-chef/sdc-normatives/chef-repo/cookbooks/sdc-normatives/files/default/normatives.tar.gz
test-apis-ci/sdc-api-tests/chef-repo/cookbooks/sdc-api-tests/files/default/testSuites/*
ui-ci/sdc-ui-tests/chef-repo/cookbooks/sdc-ui-tests/files/default/testSuites/*
 
sdnc-tests-new-frame-work/test-output/*
sdnc-tests-new-frame-work/test-output/**
sdnc-tests/logs/wordnik.log
sdnc-tests/test-output/*
target/
test-apis-ci/ExtentReport/*
test-apis-ci/ExtentReport/ASDC_CI_Extent_Report.html
test-apis-ci/extent.html
test-apis-ci/logfile.log*
test-apis-ci/test-output/*
ui-ci/.tern-project
ui-ci/ExtentReport/*
ui-ci/logfile.log*
ui-ci/src/main/resources/Files/output/*
ui-ci/src/main/resources/Files/outputMainServiceTemplate/*
ui-ci/test-output/*
ui-ci/test-output/Default suite/Default test.html
ui-ci/test-output/Default suite/Default test.xml
ui-ci/test-output/Default suite/testng-failed.xml
ui-ci/test-output/emailable-report.html
ui-ci/test-output/index.html
ui-ci/test-output/old/Default suite/classes.html
ui-ci/test-output/old/Default suite/methods-alphabetical.html
ui-ci/test-output/old/Default suite/methods.html
ui-ci/test-output/old/Default suite/testng.xml.html
ui-ci/test-output/old/Default suite/toc.html
ui-ci/test-output/old/index.html
ui-ci/test-output/testng-failed.xml
ui-ci/test-output/testng-results.xml
utils/webseal-simulator/sdc-simulator/chef-repo/cookbooks/sdc-simulator/files/default/logback.xml
vagrant-asdc-all-in-one/



ExtentReport/
automationDownloadDir*/

/asdctool/*.xls

/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/files/default/tools/build/scripts/*

*.xls


/sdc-os-chef/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/attributes/default.rb

/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/files/default/*
/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/attributes/default.rb
/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/vsp_*




utils/DmaapPublisher/logs/*





utils/DmaapPublisher/logs/*

*.xls





*normatives.tar.gz


/openecomp-ui/yarn.lock

/ui-ci/sdc-ui-tests/chef-repo/cookbooks/sdc-ui-tests/files/default/Files/VNFs/*

/openecomp-be/dist/sdc-onboard-db-init-docker/artifacts/init_keyspaces.cql
/openecomp-be/dist/sdc-onboard-db-init-docker/artifacts/init_schemas.cql

asdctool/*.csv
asdctool/test-output/*

asdctool/report_delete_1538046694389.json
asdctool/report_test_1538046722484.json
