Skip to content

[PS-Module] Specifications, Constraints, Assumptions #9

Description

@vScripter

Specifications, Assumptions & Constraints (SAC)

The description of this issue will serve as the curated list of Specs, Constraints & Assumptions for the PS-Module of vCheck.

Module Layout

Specifications

Must Support

  • Simplicity
    • Make it as easy as possible to both run the report and develop a plugin
    • An example of this would be simply adding the plugin directory to /Plugins - this would allow people to expand the functionality to suit their needs, without having plugins that people might not use baked in/embedded into the main vCheck module
  • Don't use numbers as a file prefix
    • for plugin/function names (it doesn't scale and it makes people guess on where they should start numbering for a new plugin)
  • Scope
    • Keep plugin configuration limited to the scope of the plugin/plugin functions
  • Configuration Flow
    • Make it easier to understand (and consume) configurations (variables) that are globally available for use/consumption by plugins
  • Configuration Locality
    • Don't read/parse strings at the top of files for config detail (too much can go wrong and it's kind of confusing) - come up with a standard plugin config file that can be imported to necessary plugin functions
  • Connectivity
    • Plugins should inherit connectivity; try to keep any connection specific details out of plugins, aside from checking for connectivity (there may be some exceptions; if so, come up with a standard on how to handle in the plugin 'config file'

Should Support (try)

  • Filtering - Offer the ability to filter based on common elements, such as:
    • Datacenter
    • Cluster
    • VMHost
    • Datastore
    • VM name containing a certain string value
    • SRM placeholder VMs
  • Support for multiple endpoints
  • Improved Performance
    • Try to parallelize execution of plugins
  • Credential Management
    • Consistent means of storing credentials
  • Tests
    • Utilize Pester tests to validate plugins - subsequently require modules to pass standard tests before allowing PRs to be accepted, etc.
    • Add Pester tests for module and functions

Assumptions

Contraints

  • Execution is performed within a single foreach loop
  • Report generation is somewhat complex in order to account for dynamic creation of sections, etc. - involves quite a bit of looping

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions