[VOL-1707]
Run golang SCA tools on the golang openolt adapter and fix the errors.
Used golangci-lint tool.
Makefile integrated with new target for running golangci-lint tool.

Change-Id: I8458d75bf4a997d6f93740acf10a03bf43c554c7
diff --git a/.golangci.yml b/.golangci.yml
new file mode 100644
index 0000000..ed56321
--- /dev/null
+++ b/.golangci.yml
@@ -0,0 +1,87 @@
+#Copyright 2018-present Open Networking Foundation
+#
+#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.
+
+linters-settings:
+  govet:
+    check-shadowing: true
+    settings:
+      printf:
+        funcs:
+          - (github.com/golangci/golangci-lint/pkg/logutils.Log).Infof
+          - (github.com/golangci/golangci-lint/pkg/logutils.Log).Warnf
+          - (github.com/golangci/golangci-lint/pkg/logutils.Log).Errorf
+          - (github.com/golangci/golangci-lint/pkg/logutils.Log).Fatalf
+  golint:
+    min-confidence: 0
+
+  gocyclo:
+    min-complexity: 15
+
+  misspell:
+    locale: US
+
+linters:
+  disable-all: true
+  enable:
+    - gofmt
+    - govet
+    - gocyclo
+    - golint
+    - ineffassign
+    - misspell
+
+run:
+  skip-dirs:
+    - vendor
+  modules-download-mode: vendor
+
+issues:
+  exclude-rules:
+    - text: "weak cryptographic primitive"
+      linters:
+        - gosec
+  exclude:
+    - "don't use underscores in Go names; method Adapter_descriptor"
+    - "don't use underscores in Go names; method Device_types"
+    - "don't use underscores in Go names; method Adopt_device"
+    - "don't use underscores in Go names; method Reconcile_device"
+    - "don't use underscores in Go names; method Abandon_device"
+    - "don't use underscores in Go names; method Disable_device"
+    - "don't use underscores in Go names; method Reenable_device"
+    - "don't use underscores in Go names; method Reboot_device"
+    - "don't use underscores in Go names; method Self_test_device"
+    - "don't use underscores in Go names; method Delete_device"
+    - "don't use underscores in Go names; method Get_device_details"
+    - "don't use underscores in Go names; method Update_flows_bulk"
+    - "don't use underscores in Go names; method Update_flows_incrementally"
+    - "don't use underscores in Go names; method Update_pm_config"
+    - "don't use underscores in Go names; method Receive_packet_out"
+    - "don't use underscores in Go names; method Suppress_alarm"
+    - "don't use underscores in Go names; method Unsuppress_alarm"
+    - "don't use underscores in Go names; method Get_ofp_device_info"
+    - "don't use underscores in Go names; method Get_ofp_port_info"
+    - "don't use underscores in Go names; method Process_inter_adapter_message"
+    - "don't use underscores in Go names; method Download_image"
+    - "don't use underscores in Go names; method Get_image_download_status"
+    - "don't use underscores in Go names; method Cancel_image_download"
+    - "don't use underscores in Go names; method Activate_image_update"
+    - "don't use underscores in Go names; method Revert_image_update"
+  exclude-use-default: false
+
+# golangci.com configuration
+# https://github.com/golangci/golangci/wiki/Configuration
+service:
+  golangci-lint-version: 1.17.1 # use the fixed version to not introduce new linters unexpectedly
+  prepare:
+    - echo "here I can run custom commands, but no preparation needed for this repo"