##
# Copyright 2015 Telefonica Investigacion y Desarrollo, S.A.U.
# This file is part of openmano
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# For those usages not covered by the Apache License, Version 2.0 please
# contact with: nfvlabs@tid.es
##

# This is a template with common files to be igonored, after clone make a copy to .gitignore
# cp .gitignore-common .gitignore

.tox/
.coverage

*.pyc
*.pyo

#auto-ignore
.gitignore

#logs of openmano
logs 

#pycharm
.idea

#eclipse
.project     
.pydevproject
.settings

#local stuff files that end in ".local" or folders called "local"
*.local
vnfs/*.local
test/*.local
scenarios/*.local
instance-scenarios/*.local
database_utils/*.local
scripts/*.local
local
vnfs/local
test/local
scenarios/local
instance-scenarios/local
database_utils/local
scripts/local

