class WssAgent::ResponsePolicies

Constants

REJECT_ACTION

Public Instance Methods

add_resource(resource) click to toggle source
# File lib/wss_agent/response_policies.rb, line 58
def add_resource(resource)
  @policy_violations ||= []
  @policy_violations << resource
end
check(resource) click to toggle source
# File lib/wss_agent/response_policies.rb, line 63
def check(resource)
  if resource.key?('resource') && resource.key?('policy') &&
     (resource['policy']['actionType'] == REJECT_ACTION)
    add_resource(
      'resource' => resource['resource'],
      'policy' => resource['policy']
    )
  end

  if resource.key?('children') && resource['children'].is_a?(Array)
    resource['children'].each { |j| check(j) }
  end
end
check_existing_projects() click to toggle source
# File lib/wss_agent/response_policies.rb, line 50
def check_existing_projects
  data['existingProjects'].each { |_proj_name, resource| check(resource) }
end
check_new_projects() click to toggle source
# File lib/wss_agent/response_policies.rb, line 54
def check_new_projects
  data['newProjects'].each { |_proj_name, resource| check(resource) }
end
message() click to toggle source
# File lib/wss_agent/response_policies.rb, line 23
def message
  if success?
    if policy_violations?
      @message = [
        'Some dependencies do not conform with open source policies',
        'List of violations:'
      ]
      @message << policy_violations.each_with_index.map { |j, i|
        "#{i + 1}. Package: #{j['resource']['displayName']} - #{j['policy']['displayName']}"
      }.join("\n")
      @message.join("\n")
    else
      'All dependencies conform with open source policies'
    end
  end
end
parse_response() click to toggle source
# File lib/wss_agent/response_policies.rb, line 5
def parse_response
  if response.success?
    begin
      @response_data = MultiJson.load(response.body)
      @status = @response_data['status'].to_i
      @message = @response_data['message']
      check_new_projects
      check_existing_projects
    rescue
      @status = SERVER_ERROR_STATUS
      @message = response.body
    end
  else
    @status = SERVER_ERROR_STATUS
    @message = response.body
  end
end
policy_violations() click to toggle source
# File lib/wss_agent/response_policies.rb, line 40
def policy_violations
  @policy_violations || []
end
policy_violations?() click to toggle source
# File lib/wss_agent/response_policies.rb, line 44
def policy_violations?
  !policy_violations.nil? &&
    !policy_violations.empty? &&
    policy_violations.size > 0
end