##
# Copyright 2015 Telefónica Investigación 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

*.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

