[COMMON] Add and run pre-commit linters via tox

- create a .pre-commit-config.yaml configuration file with
  * gitlint
  * trailing blanks linter
  * tabs removal linter
    - exclude .git folder from it
    - exclude Makefiles since tabs are mandatory by default in them
- create a tox pre-commit profile to run it from tox
  note gitlint is not runnable at this pre-commit stage
- create pre-commit-install and pre-commit-uninstall tox profiles to
  (un)install hooks locally and (un)perform tests at each "git commit"
  call (i.e. without calling manually the pre-commit tox profile)
- precise pre-commit stages/types in the pre-commit configuration file
  so that hooks are installed correctly. This avoids messages about
  skipped tests when they are run at a wrong stage.

Issue-ID: OOM-2643
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: Ie95bb4f6f90be80b05a1398973caffeff7936881
diff --git a/kubernetes/aai/components/aai-babel/resources/config/logback.xml b/kubernetes/aai/components/aai-babel/resources/config/logback.xml
index 878d8c0..c29da77 100644
--- a/kubernetes/aai/components/aai-babel/resources/config/logback.xml
+++ b/kubernetes/aai/components/aai-babel/resources/config/logback.xml
@@ -28,20 +28,20 @@
   <property name="debugLogName" value="debug" />
 
   <property name="errorLogPattern"
-	    value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%mdc{RequestId}|%thread|%mdc{ServiceName}|%mdc{PartnerName}|%mdc{TargetEntity}|%mdc{TargetServiceName}|%.-5level|%logger|%mdc{ClassName}|%msg%n" />
+        value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%mdc{RequestId}|%thread|%mdc{ServiceName}|%mdc{PartnerName}|%mdc{TargetEntity}|%mdc{TargetServiceName}|%.-5level|%logger|%mdc{ClassName}|%msg%n" />
 
   <property name="auditLogPattern"
-	    value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%mdc{BeginTimestamp}|%mdc{EndTimestamp}|%mdc{RequestId}|%mdc{ServiceInstanceId}|%thread|%mdc{ServerFQDN}|%mdc{ServiceName}|%mdc{PartnerName}|%mdc{StatusCode}|%mdc{ResponseCode}|%mdc{ResponseDescription}|%logger|%.-5level|||%mdc{ElapsedTime}|%mdc{RemoteHost}|%mdc{ClientAddress}|%mdc{ClassName}|||%msg%n" />
+        value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%mdc{BeginTimestamp}|%mdc{EndTimestamp}|%mdc{RequestId}|%mdc{ServiceInstanceId}|%thread|%mdc{ServerFQDN}|%mdc{ServiceName}|%mdc{PartnerName}|%mdc{StatusCode}|%mdc{ResponseCode}|%mdc{ResponseDescription}|%logger|%.-5level|||%mdc{ElapsedTime}|%mdc{RemoteHost}|%mdc{ClientAddress}|%mdc{ClassName}|||%msg%n" />
 
   <property name="metricsLogPattern"
-	    value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%mdc{BeginTimestamp}|%mdc{EndTimestamp}|%mdc{RequestId}|%mdc{ServiceInstanceId}|%thread|%mdc{ServerFQDN}|%mdc{ServiceName}|%mdc{PartnerName}|%mdc{TargetEntity}|%mdc{TargetServiceName}|%mdc{StatusCode}|%mdc{ResponseCode}|%mdc{ResponseDescription}|%logger|%.-5level|||%mdc{ElapsedTime}|%mdc{RemoteHost}|%mdc{ClientAddress}|%mdc{ClassName}|||%msg%n" />
+        value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%mdc{BeginTimestamp}|%mdc{EndTimestamp}|%mdc{RequestId}|%mdc{ServiceInstanceId}|%thread|%mdc{ServerFQDN}|%mdc{ServiceName}|%mdc{PartnerName}|%mdc{TargetEntity}|%mdc{TargetServiceName}|%mdc{StatusCode}|%mdc{ResponseCode}|%mdc{ResponseDescription}|%logger|%.-5level|||%mdc{ElapsedTime}|%mdc{RemoteHost}|%mdc{ClientAddress}|%mdc{ClassName}|||%msg%n" />
 
   <!-- ============================================================================ -->
   <!-- EELF Appenders -->
   <!-- ============================================================================ -->
 
   <appender name="EELF"
-	    class="ch.qos.logback.core.rolling.RollingFileAppender">
+        class="ch.qos.logback.core.rolling.RollingFileAppender">
     <file>${logDirectory}/${generalLogName}.log</file>
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
       <fileNamePattern>${logDirectory}/${generalLogName}.%d{yyyy-MM-dd}.log.zip
@@ -66,7 +66,7 @@
        from other components, or it can be eliminated to record these events as part of the application root log. -->
 
   <appender name="EELFAudit"
-	    class="ch.qos.logback.core.rolling.RollingFileAppender">
+        class="ch.qos.logback.core.rolling.RollingFileAppender">
     <file>${logDirectory}/${auditLogName}.log</file>
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
       <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.log.zip
@@ -83,7 +83,7 @@
   </appender>
 
   <appender name="EELFMetrics"
-	    class="ch.qos.logback.core.rolling.RollingFileAppender">
+        class="ch.qos.logback.core.rolling.RollingFileAppender">
     <file>${logDirectory}/${metricsLogName}.log</file>
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
       <fileNamePattern>${logDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.log.zip
@@ -101,7 +101,7 @@
   </appender>
 
   <appender name="EELFDebug"
-	    class="ch.qos.logback.core.rolling.RollingFileAppender">
+        class="ch.qos.logback.core.rolling.RollingFileAppender">
     <file>
       ${logDirectory}/${debugLogName}.log
     </file>
@@ -119,9 +119,9 @@
     <!-- allow only events with a level below INFO, that is TRACE and DEBUG -->
     <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
       <evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator">
-	<expression>
-	  e.level.toInt() &lt; INFO.toInt()
-	</expression>
+        <expression>
+          e.level.toInt() &lt; INFO.toInt()
+        </expression>
       </evaluator>
       <OnMismatch>DENY</OnMismatch>
       <OnMatch>NEUTRAL</OnMatch>
diff --git a/kubernetes/aai/components/aai-babel/resources/config/tosca-mappings.json b/kubernetes/aai/components/aai-babel/resources/config/tosca-mappings.json
index fa3a9c9..65798e1 100644
--- a/kubernetes/aai/components/aai-babel/resources/config/tosca-mappings.json
+++ b/kubernetes/aai/components/aai-babel/resources/config/tosca-mappings.json
@@ -1,193 +1,193 @@
 {
-	"instanceGroupTypes": [
-		"org.openecomp.groups.NetworkCollection",
-		"org.openecomp.groups.VfcInstanceGroup",
-		"org.openecomp.groups.ResourceInstanceGroup"
-	],
-	"widgetTypes": [
-		{
-			"type": "SERVICE",
-			"name": "service-instance",
-			"deleteFlag": true,
-			"modelVersionId": "46b92144-923a-4d20-b85a-3cbd847668a9",
-			"modelInvariantId": "82194af1-3c2c-485a-8f44-420e22a9eaa4"
-		},
-		{
-			"type": "VF",
-			"name": "generic-vnf",
-			"deleteFlag": true,
-			"modelVersionId": "93a6166f-b3d5-4f06-b4ba-aed48d009ad9",
-			"modelInvariantId": "acc6edd8-a8d4-4b93-afaa-0994068be14c"
-		},
-		{
-			"type": "VFC",
-			"name": "vnfc",
-			"deleteFlag": true,
-			"modelVersionId": "5761e0a7-c6df-4d8a-9ebd-b8f445054dec",
-			"modelInvariantId": "96129eb9-f0de-4e05-8af2-73146473f766"
-		},
-		{
-			"type": "VSERVER",
-			"name": "vserver",
-			"deleteFlag": true,
-			"modelVersionId": "8ecb2c5d-7176-4317-a255-26274edfdd53",
-			"modelInvariantId": "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7"
-		},
-		{
-			"type": "VOLUME",
-			"name": "volume",
-			"deleteFlag": true,
-			"modelVersionId": "0fbe2e8f-4d91-4415-a772-88387049b38d",
-			"modelInvariantId": "ddd739b4-2b25-46c4-affc-41a32af5cc42"
-		},
-		{
-			"type": "FLAVOR",
-			"name": "flavor",
-			"deleteFlag": false,
-			"modelVersionId": "36200fb5-f251-4f5d-a520-7c5ad5c2cd4b",
-			"modelInvariantId": "bace8d1c-a261-4041-9e37-823117415d0f"
-		},
-		{
-			"type": "TENANT",
-			"name": "tenant",
-			"deleteFlag": false,
-			"modelVersionId": "abcc54bc-bb74-49dc-9043-7f7171707545",
-			"modelInvariantId": "97c26c99-6870-44c1-8a07-1d900d3f4ce6"
-		},
-		{
-			"type": "VOLUME_GROUP",
-			"name": "volume-group",
-			"deleteFlag": true,
-			"modelVersionId": "99d44c90-1f61-4418-b9a6-56586bf38c79",
-			"modelInvariantId": "fcec1b02-b2d0-4834-aef8-d71be04717dd"
-		},
-		{
-			"type": "LINT",
-			"name": "l-interface",
-			"deleteFlag": true,
-			"modelVersionId": "a32613fd-18b9-459e-aab8-fffb3912966a",
-			"modelInvariantId": "cea0a982-8d55-4093-921e-418fbccf7060"
-		},
-		{
-			"type": "L3_NET",
-			"name": "l3-network",
-			"deleteFlag": true,
-			"modelVersionId": "9111f20f-e680-4001-b83f-19a2fc23bfc1",
-			"modelInvariantId": "3d560d81-57d0-438b-a2a1-5334dba0651a"
-		},
-		{
-			"type": "VFMODULE",
-			"name": "vf-module",
-			"deleteFlag": true,
-			"modelVersionId": "c00563ae-812b-4e62-8330-7c4d0f47088a",
-			"modelInvariantId": "ef86f9c5-2165-44f3-8fc3-96018b609ea5"
-		},
-		{
-			"type": "IMAGE",
-			"name": "image",
-			"deleteFlag": false,
-			"modelVersionId": "f6a038c2-820c-42ba-8c2b-375e24e8f932",
-			"modelInvariantId": "3f4c7204-739b-4bbb-87a7-8a6856439c90"
-		},
-		{
-			"type": "OAM_NETWORK",
-			"name": "oam-network",
-			"deleteFlag": true,
-			"modelVersionId": "f4fb34f3-fd6e-4a8f-a3fb-4ab61a343b79",
-			"modelInvariantId": "2851cf01-9c40-4064-87d4-6184a6fcff35"
-		},
-		{
-			"type": "ALLOTTED_RESOURCE",
-			"name": "allotted-resource",
-			"deleteFlag": true,
-			"modelVersionId": "7ad0915f-25c0-4a70-b9bc-185a75f87564",
-			"modelInvariantId": "f6d6a23d-a1a9-48ff-8419-b6530da2d381"
-		},
-		{
-			"type": "TUNNEL_XCONNECT",
-			"name": "tunnel-xconnect",
-			"deleteFlag": true,
-			"modelVersionId": "e7cb4ca8-e1a5-4487-a716-4ae0bcd8aef5",
-			"modelInvariantId": "50b9e2fa-005c-4bbe-b651-3251dece4cd8"
-		},
-		{
-			"type": "CONFIGURATION",
-			"name": "configuration",
-			"deleteFlag": true,
-			"modelVersionId": "5a175add-57e4-4a5d-8b02-c36f1d69c52b",
-			"modelInvariantId": "166c050d-f69d-4305-943e-0bc58c3a26cf"
-		},
-		{
-			"type": "CR",
-			"name": "cr",
-			"deleteFlag": true,
-			"modelVersionId": "3f908abc-3a15-40d0-b674-2a639e52884d",
-			"modelInvariantId": "8bac3599-9a1c-4b7f-80e5-c1838f744c23"
-		},
-		{
-			"type": "INSTANCE_GROUP",
-			"name": "instance-group",
-			"deleteFlag": true,
-			"modelVersionId": "8e6ee9dc-9017-444a-83b3-219edb018128",
-			"modelInvariantId": "3bf1e610-45f7-4ad6-b833-ca4c5ee6a3fd"
-		},
-		{
-			"type": "PNF",
-			"name": "pnf",
-			"deleteFlag": true,
-			"modelVersionId": "e9f1fa7d-c839-418a-9601-03dc0d2ad687",
-			"modelInvariantId": "862b25a1-262a-4961-bdaa-cdc55d69785a"
-		}
-	],
-	"widgetMappings": [
-		{
-			"prefix": "org.openecomp.resource.vfc",
-			"type": "widget",
-			"widget": "VSERVER",
-			"deleteFlag": true
-		},
-		{
-			"prefix": "org.openecomp.resource.cp",
-			"type": "widget",
-			"widget": "LINT",
-			"deleteFlag": true
-		},
-		{
-			"prefix": "org.openecomp.cp",
-			"type": "widget",
-			"widget": "LINT",
-			"deleteFlag": true
-		},
-		{
-			"prefix": "org.openecomp.resource.vl",
-			"widget": "L3_NET",
-			"deleteFlag": false
-		},
-		{
-			"prefix": "org.openecomp.resource.vf",
-			"widget": "VF",
-			"deleteFlag": true
-		},
-		{
-			"prefix": "org.openecomp.groups.vfmodule",
-			"widget": "VFMODULE",
-			"deleteFlag": true
-		},
-		{
-			"prefix": "org.openecomp.groups.VfModule",
-			"widget": "VFMODULE",
-			"deleteFlag": true
-		},
-		{
-			"prefix": "org.openecomp.resource.vfc.nodes.heat.cinder",
-			"type": "widget",
-			"widget": "VOLUME",
-			"deleteFlag": true
-		},
-		{
-			"prefix": "org.openecomp.resource.pnf",
-			"widget": "PNF",
-			"deleteFlag": true
-		}
-	]
+    "instanceGroupTypes": [
+        "org.openecomp.groups.NetworkCollection",
+        "org.openecomp.groups.VfcInstanceGroup",
+        "org.openecomp.groups.ResourceInstanceGroup"
+    ],
+    "widgetTypes": [
+        {
+            "type": "SERVICE",
+            "name": "service-instance",
+            "deleteFlag": true,
+            "modelVersionId": "46b92144-923a-4d20-b85a-3cbd847668a9",
+            "modelInvariantId": "82194af1-3c2c-485a-8f44-420e22a9eaa4"
+        },
+        {
+            "type": "VF",
+            "name": "generic-vnf",
+            "deleteFlag": true,
+            "modelVersionId": "93a6166f-b3d5-4f06-b4ba-aed48d009ad9",
+            "modelInvariantId": "acc6edd8-a8d4-4b93-afaa-0994068be14c"
+        },
+        {
+            "type": "VFC",
+            "name": "vnfc",
+            "deleteFlag": true,
+            "modelVersionId": "5761e0a7-c6df-4d8a-9ebd-b8f445054dec",
+            "modelInvariantId": "96129eb9-f0de-4e05-8af2-73146473f766"
+        },
+        {
+            "type": "VSERVER",
+            "name": "vserver",
+            "deleteFlag": true,
+            "modelVersionId": "8ecb2c5d-7176-4317-a255-26274edfdd53",
+            "modelInvariantId": "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7"
+        },
+        {
+            "type": "VOLUME",
+            "name": "volume",
+            "deleteFlag": true,
+            "modelVersionId": "0fbe2e8f-4d91-4415-a772-88387049b38d",
+            "modelInvariantId": "ddd739b4-2b25-46c4-affc-41a32af5cc42"
+        },
+        {
+            "type": "FLAVOR",
+            "name": "flavor",
+            "deleteFlag": false,
+            "modelVersionId": "36200fb5-f251-4f5d-a520-7c5ad5c2cd4b",
+            "modelInvariantId": "bace8d1c-a261-4041-9e37-823117415d0f"
+        },
+        {
+            "type": "TENANT",
+            "name": "tenant",
+            "deleteFlag": false,
+            "modelVersionId": "abcc54bc-bb74-49dc-9043-7f7171707545",
+            "modelInvariantId": "97c26c99-6870-44c1-8a07-1d900d3f4ce6"
+        },
+        {
+            "type": "VOLUME_GROUP",
+            "name": "volume-group",
+            "deleteFlag": true,
+            "modelVersionId": "99d44c90-1f61-4418-b9a6-56586bf38c79",
+            "modelInvariantId": "fcec1b02-b2d0-4834-aef8-d71be04717dd"
+        },
+        {
+            "type": "LINT",
+            "name": "l-interface",
+            "deleteFlag": true,
+            "modelVersionId": "a32613fd-18b9-459e-aab8-fffb3912966a",
+            "modelInvariantId": "cea0a982-8d55-4093-921e-418fbccf7060"
+        },
+        {
+            "type": "L3_NET",
+            "name": "l3-network",
+            "deleteFlag": true,
+            "modelVersionId": "9111f20f-e680-4001-b83f-19a2fc23bfc1",
+            "modelInvariantId": "3d560d81-57d0-438b-a2a1-5334dba0651a"
+        },
+        {
+            "type": "VFMODULE",
+            "name": "vf-module",
+            "deleteFlag": true,
+            "modelVersionId": "c00563ae-812b-4e62-8330-7c4d0f47088a",
+            "modelInvariantId": "ef86f9c5-2165-44f3-8fc3-96018b609ea5"
+        },
+        {
+            "type": "IMAGE",
+            "name": "image",
+            "deleteFlag": false,
+            "modelVersionId": "f6a038c2-820c-42ba-8c2b-375e24e8f932",
+            "modelInvariantId": "3f4c7204-739b-4bbb-87a7-8a6856439c90"
+        },
+        {
+            "type": "OAM_NETWORK",
+            "name": "oam-network",
+            "deleteFlag": true,
+            "modelVersionId": "f4fb34f3-fd6e-4a8f-a3fb-4ab61a343b79",
+            "modelInvariantId": "2851cf01-9c40-4064-87d4-6184a6fcff35"
+        },
+        {
+            "type": "ALLOTTED_RESOURCE",
+            "name": "allotted-resource",
+            "deleteFlag": true,
+            "modelVersionId": "7ad0915f-25c0-4a70-b9bc-185a75f87564",
+            "modelInvariantId": "f6d6a23d-a1a9-48ff-8419-b6530da2d381"
+        },
+        {
+            "type": "TUNNEL_XCONNECT",
+            "name": "tunnel-xconnect",
+            "deleteFlag": true,
+            "modelVersionId": "e7cb4ca8-e1a5-4487-a716-4ae0bcd8aef5",
+            "modelInvariantId": "50b9e2fa-005c-4bbe-b651-3251dece4cd8"
+        },
+        {
+            "type": "CONFIGURATION",
+            "name": "configuration",
+            "deleteFlag": true,
+            "modelVersionId": "5a175add-57e4-4a5d-8b02-c36f1d69c52b",
+            "modelInvariantId": "166c050d-f69d-4305-943e-0bc58c3a26cf"
+        },
+        {
+            "type": "CR",
+            "name": "cr",
+            "deleteFlag": true,
+            "modelVersionId": "3f908abc-3a15-40d0-b674-2a639e52884d",
+            "modelInvariantId": "8bac3599-9a1c-4b7f-80e5-c1838f744c23"
+        },
+        {
+            "type": "INSTANCE_GROUP",
+            "name": "instance-group",
+            "deleteFlag": true,
+            "modelVersionId": "8e6ee9dc-9017-444a-83b3-219edb018128",
+            "modelInvariantId": "3bf1e610-45f7-4ad6-b833-ca4c5ee6a3fd"
+        },
+        {
+            "type": "PNF",
+            "name": "pnf",
+            "deleteFlag": true,
+            "modelVersionId": "e9f1fa7d-c839-418a-9601-03dc0d2ad687",
+            "modelInvariantId": "862b25a1-262a-4961-bdaa-cdc55d69785a"
+        }
+    ],
+    "widgetMappings": [
+        {
+            "prefix": "org.openecomp.resource.vfc",
+            "type": "widget",
+            "widget": "VSERVER",
+            "deleteFlag": true
+        },
+        {
+            "prefix": "org.openecomp.resource.cp",
+            "type": "widget",
+            "widget": "LINT",
+            "deleteFlag": true
+        },
+        {
+            "prefix": "org.openecomp.cp",
+            "type": "widget",
+            "widget": "LINT",
+            "deleteFlag": true
+        },
+        {
+            "prefix": "org.openecomp.resource.vl",
+            "widget": "L3_NET",
+            "deleteFlag": false
+        },
+        {
+            "prefix": "org.openecomp.resource.vf",
+            "widget": "VF",
+            "deleteFlag": true
+        },
+        {
+            "prefix": "org.openecomp.groups.vfmodule",
+            "widget": "VFMODULE",
+            "deleteFlag": true
+        },
+        {
+            "prefix": "org.openecomp.groups.VfModule",
+            "widget": "VFMODULE",
+            "deleteFlag": true
+        },
+        {
+            "prefix": "org.openecomp.resource.vfc.nodes.heat.cinder",
+            "type": "widget",
+            "widget": "VOLUME",
+            "deleteFlag": true
+        },
+        {
+            "prefix": "org.openecomp.resource.pnf",
+            "widget": "PNF",
+            "deleteFlag": true
+        }
+    ]
 }