Revamp Bandit Config Layout

Registered by Travis McPeak

The Bandit config has grown to be unwieldy over time. It's comprised of three distinct parts:

Bandit program config options - these are generally unused
Profiles - are used to disable/enable plugins
Plugin options - these are used to configure and customize the behavior of plugins

The proposal is to get rid of the config options (since they aren't used), move profiles to a separate file, and automatically generate config options, which can be overridden in the profiles.

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Travis McPeak
Direction:
Needs approval
Assignee:
None
Definition:
Approved
Series goal:
Accepted for 1.0
Implementation:
Implemented
Milestone target:
None
Started by
Tim Kelsey
Completed by
Eric Brown

Related branches

Sprints

Whiteboard

see https://etherpad.openstack.org/p/security-mitaka-worksession-bandit
see https://review.openstack.org/#/c/249128/

Gerrit topic: https://review.openstack.org/#q,topic:bp/config-change,n,z

Addressed by: https://review.openstack.org/258834
    Remove show_progress_every from Bandit config file

Addressed by: https://review.openstack.org/#/c/250764/4
    Screen formatter

Addressed by: https://review.openstack.org/#/c/258938/
    Test IDs

Gerrit topic: https://review.openstack.org/#q,topic:test_ids,n,z

Addressed by: https://review.openstack.org/258938
    Adding test IDs

Addressed by: https://review.openstack.org/263282
    Putting plugin config in code

(?)

Work Items

Work items:
Strip out misc options: DONE
Add separate text formatter that includes terminal output: DONE
Support external profile files: TODO
Convert plugins to classes which implement one or more tests and a config generator: DONE
Assign canonical numbers to plugins: DONE
Update the config generator to output default configs: TODO
Delete the config file bundled with Bandit: DONE

This blueprint contains Public information 
Everyone can see this information.