#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:
    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: 17

  misspell:
    locale: US

linters:
  enable:
    #- gocritic
    #- gochecknoglobals
    #- gochecknoinits
    - gocyclo
    - gofmt
    - golint
    - govet
    - ineffassign
    - misspell
    - gosec
    #- unparam

run:
  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_event"
    - "don't use underscores in Go names; method Unsuppress_event"
    - "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"
    - "don't use underscores in Go names; method Download_onu_image"
    - "don't use underscores in Go names; method Get_onu_image_status"
    - "don't use underscores in Go names; method Abort_onu_image_upgrade"
    - "don't use underscores in Go names; method Get_onu_images"
    - "don't use underscores in Go names; method Activate_onu_image"
    - "don't use underscores in Go names; method Commit_onu_image"
    - "don't use underscores in Go names; method Disable_port"
    - "don't use underscores in Go names; method Enable_port"
    - "don't use underscores in Go names; method Child_device_lost"
    - "don't use underscores in Go names; method Start_omci_test"
    - "don't use underscores in Go names; method Get_ext_value"
    - "don't use underscores in Go names; method Single_get_value_request"
    - "don't use underscores in Go names; method Process_tech_profile_instance_request"
  exclude-use-default: false
