Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

P2P-Nathan repair validation errors #19

Merged
merged 9 commits into from Oct 30, 2017
1 change: 1 addition & 0 deletions ABC.F5.BIGIP/details.json
Expand Up @@ -4,6 +4,7 @@
"URL": "https://github.com/Juanito99/F5_BIGIP_OpsMgr",
"Version": "1.0.0.40",
"Author": "Ruben Zimmerman",
"Description": "A management pack to monitor F5 BIGIP with OpsMgr",
"IsFree": true,
"Tags": [
"F5",
Expand Down
1 change: 1 addition & 0 deletions ABC.Network.SolarWinds.NPM/details.json
Expand Up @@ -5,6 +5,7 @@
"Version": "1.0.0.11",
"Author": "Ruben Zimmerman",
"IsFree": true,
"Description": "Integrate SolarWinds NPM into OpsMgr",
"Tags": [
"Solarwinds",
"NPM",
Expand Down
1 change: 1 addition & 0 deletions Autodefragment/details.json
Expand Up @@ -5,6 +5,7 @@
"Version": "6.0.0.1",
"Author": "Cameron Fuller",
"IsFree": true,
"Description": "How to automate defragmentation using OpsMgr",
"Tags": [
"MVP",
"PowerShell"
Expand Down
1 change: 1 addition & 0 deletions Community.DataOnDemand.Unix/details.json
Expand Up @@ -5,6 +5,7 @@
"Version": "1.2.4.35",
"Author": "Squared Up Ltd.",
"IsFree": true,
"Description": "The Data on Demand Management Unix Pack contains a number of useful SCOM agent tasks (targeted at Unix/Linux systems supported by SCOM), including the Netstat task required by Squared Up Visual Application Discovery & Analysis.",
"Tags": [
"Agent Task",
"Unix/Linux",
Expand Down
1 change: 1 addition & 0 deletions Community.DataOnDemand/details.json
Expand Up @@ -5,6 +5,7 @@
"Version": "1.2.4.36",
"Author": "Squared Up Ltd.",
"IsFree": true,
"Description": "The Data on Demand Management Pack contains a number of useful SCOM agent tasks, including the Netstat task required by Squared Up Visual Application Discovery & Analysis",
"Tags": [
"Agent Task",
"Discovery",
Expand Down
1 change: 1 addition & 0 deletions Community.ManagementPackCatalog/details.json
Expand Up @@ -5,6 +5,7 @@
"Version": "1.0.2.0",
"Author": "Squared Up Ltd.",
"IsFree": true,
"Description": "The Community Management Pack Catalog helps you discover new MPs and stay up-to-date with those that you already have.",
"Tags": [
"Essential",
"Open Source"
Expand Down
1 change: 1 addition & 0 deletions Community.PowershellMonitoring/details.json
Expand Up @@ -5,6 +5,7 @@
"Version": "1.1.1.0",
"Author": "Squared Up Ltd.",
"IsFree": true,
"Description": "The PowerShell Monitoring Management Pack adds support for PowerShell everywhere that you would expect to see it within the authoring pane of the SCOM console (i.e. everywhere there is currently VBScript).",
"Tags": [
"PowerShell",
"Templates",
Expand Down
1 change: 1 addition & 0 deletions HealthServiceStore.Monitoring/details.json
Expand Up @@ -5,6 +5,7 @@
"Version": "1.0.0.13",
"Author": "Jimmy Harper",
"IsFree": true,
"Description": "A Management Pack to monitor, collect, and reduce the size of the Health Service store file.",
"Tags": [
"Essential",
"Maintenance",
Expand Down
4 changes: 2 additions & 2 deletions Index.json.tests.ps1
Expand Up @@ -42,8 +42,8 @@ Describe "Index.json" -Tag $location {
}
}

It 'Is alphabetically sorted' {
$sortedJson = $json | Sort-Object -Property ManagementPackSystemName
It 'Is alphabetically sorted and unique' {
$sortedJson = $json | Sort-Object -Property ManagementPackSystemName -Unique
for ($i = 0; $i -lt $json.Count; $i++) {
$json[$i].ManagementPackSystemName | Should Be $sortedJson[$i].ManagementPackSystemName
}
Expand Down
2 changes: 1 addition & 1 deletion NutanixCluster/details.json
Expand Up @@ -4,7 +4,7 @@
"URL": "http://www.netwatch.me/2015/07/08/nutanix-scom-management-pack-monitor-your-nutanix-infrastructure/",
"Version": "1.2.0.0",
"Author": "Nutanix",
"Description": null,
"Description": "The management packs collect information about software (cluster) elements through SNMP and hardware elements through ipmiutil (Intelligent Platform Management Interface Utility) and REST API calls and then package that information for SCOM to digest.",
"IsFree": false,
"Tags": [
"Infrastructure",
Expand Down
1 change: 1 addition & 0 deletions OpsMgr.2012.Self.Maintenance/details.json
Expand Up @@ -5,6 +5,7 @@
"Version": "2.5.0.1",
"Author": "Tao Yang",
"IsFree": true,
"Description": "A collection of monitors, rules, and tasks to help maintain your SCOM Management Group.",
"Tags": [
"Maintained",
"Essential",
Expand Down
9 changes: 9 additions & 0 deletions OpsMgr.Group.Health.Rollup.Task/ReadMe.md
@@ -0,0 +1,9 @@
### Introduction

In OpsMgr, groups are frequently used when designing service level monitoring and dashboards. The group members' health rollup behaviours can be configured by creating various dependency monitors targeting against the group.

When creating groups, only instance groups can be created within the OpsMgr console. Unlike computer groups, instance groups do not inherit any dependent monitors from their base class. Therefore when an instance group is created in the OpsMgr console, by default, the health state of the group is "Not monitored" (Uninitialized):

[![SNAGHTML6ecbad9](http://blog.tyang.org/wp-content/uploads/2015/07/SNAGHTML6ecbad9_thumb.png "SNAGHTML6ecbad9")](http://blog.tyang.org/wp-content/uploads/2015/07/SNAGHTML6ecbad9.png)

In order to configure group members to rollup health state to the group object (so the group can be used in dashboards), one or more dependency monitors must be created manually after the group has been created. This manual process can be time consuming.
21 changes: 11 additions & 10 deletions OpsMgr.Group.Health.Rollup.Task/details.json
@@ -1,12 +1,13 @@
{
"ManagementPackSystemName": "OpsMgr.Group.Health.Rollup.Task",
"ManagementPackDisplayName": "OpsMgr Group Health Rollup Configuration Task Management Pack",
"URL": "https://blog.tyang.org/2015/07/28/opsmgr-group-health-rollup-configuration-task-management-pack/",
"Version": "1.0.0.0",
"Author": "Tao Yang",
"IsFree": true,
"Tags": [
"Tasks",
"MVP"
]
"ManagementPackSystemName": "OpsMgr.Group.Health.Rollup.Task",
"ManagementPackDisplayName": "OpsMgr Group Health Rollup Configuration Task Management Pack",
"URL": "https://blog.tyang.org/2015/07/28/opsmgr-group-health-rollup-configuration-task-management-pack/",
"Version": "1.0.0.0",
"Author": "Tao Yang",
"IsFree": true,
"Description": "The “OpsMgr group health Rollup Configuration Task Management Pack” provides an agent task to create dependency monitors for the selected groups using OpsMgr SDK.",
"Tags": [
"Tasks",
"MVP"
]
}
1 change: 1 addition & 0 deletions P2P.OMSAdministration/details.json
Expand Up @@ -5,6 +5,7 @@
"Version": "1.0.0.0",
"Author": "Nathan Foreman",
"IsFree": true,
"Description": "Take control over what data gets sent to OMS, as well as controlling when configuration changes are applied to your SCOM environment.",
"Tags": [
"OMS",
"UI Controls",
Expand Down
6 changes: 4 additions & 2 deletions Pack.tests.template.ps1
Expand Up @@ -20,7 +20,6 @@ foreach ($packFile in $packFiles) {
$folderName = (Split-Path $packFile.psparentpath -Leaf)
$folderPath = split-path $packFile.FullName
$contents = Get-Content $packFile.FullName -Raw -ErrorAction SilentlyContinue
$json = $contents | ConvertFrom-Json -ErrorAction SilentlyContinue

Describe "$folderName" -Tag "$folderPath" {

Expand All @@ -33,18 +32,21 @@ foreach ($packFile in $packFiles) {

It "Has a details.json" {
$packFile.FullName | Should Exist
$packFile.Name | Should BeExactly "details.json"
Copy link
Contributor

@shadeon shadeon Oct 27, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In AppVeyor and VSCode only the test name is surfaced - can you either update it to include this restriction or (preferably) create another test? Good unit testing practise is to only test a single thing with each test.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To increase the readability of the output I'll change the test name to "Has a details.json (case-sensitive)", this should help a user that gets the error even through they have a details.JSON in the folder.

}

It "Has a Readme.md" {
$readme = $packFile.FullName -replace $packFileName, 'README.md'
$readme | Should Exist
# Get-ChildItem is used as Get-Item returns the same case it is passed.
(Get-ChildItem -Path $packFile.DirectoryName -Filter "readme.md").Name | Should BeExactly "ReadMe.md"
Copy link
Contributor

@shadeon shadeon Oct 27, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In AppVeyor and VSCode only the test name is surfaced - can you either update it to include this restriction or (preferably) create another test? Good unit testing practise is to only test a single thing with each test.

(also, feel free to update my incorrectly cased file name above!)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To increase the readability of the output I'll change the test name to "Has a ReadMe.md (case-sensitive)", this should help a user that gets the error even through they have a README.md in the folder.

}
}

Context 'details.json' {

It "details.json is valid json" {
{ $contents | ConvertFrom-Json } | Should Not Throw
{$script:json = $contents | ConvertFrom-Json } | Should Not Throw
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This makes the tests order dependant (other tests will fail if this one isn't run first). The original call probably needs a try/catch wrapping it.

}

It "details.json has content" {
Expand Down
1 change: 1 addition & 0 deletions QND.Network.Kemp/details.json
Expand Up @@ -5,6 +5,7 @@
"Version": "2.0.1.5",
"Author": "Daniele Grandini",
"IsFree": true,
"Description": "This Management Pack discovers LoadMaster Virtual Services and Real Servers and monitors their state. Additionally performance data for Virtual Services and Real Servers is also collected.",
"Tags": [
"MVP",
"SNMP",
Expand Down
11 changes: 11 additions & 0 deletions SAMPLE.OPERATIONSMANAGER.2016.UPGRADE/ReadMe.md
@@ -0,0 +1,11 @@
### Main features

- **Discovery**: Registry discovery of main Operations Manager 2016 server roles -- the RMS Emulator, other additional Management Servers (MS) and Gateway Servers (GW).
- **Monitoring**: Monitors the registry value of all discovered Operations Manager server roles for the current version of the Operations Manager installation. If the version is anything other than 2016, the monitor will go into warning state.
- **Upgrade State of Operations Manager Management Group**: To provide a high-level summary of the upgrade state of the Operations Manager Management Group based on the upgrade state of its core components (not including agents). The core components consist of the RMS Emulator, all Management Server and Gateway Server roles discovered in the management group.
- **Dashboards:** A visualization feature that allows the user to switch back and forth between a **Summary Dashboard** and an **Agent Detail Dashboard** to keep track of the overall upgrade state and health of the core components and Windows agents in the management group.
- The **Summary Dashboard** displays all the core Operations Manager 2016 components or server roles discovered, the overall upgrade state of the management group, and a text and an instance detail widget to contextually display important recommendations and instance property values based on the core component selected.
- The **Agent Detail Dashboard** displays the upgrade state, installation method, patch level, agent and computer health of all the Windows Agents in the management group. The **search feature** provides further filtering capabilities to allow the health and upgrade state of a specific agent and it's corresponding host server or computer to be identified and displayed.\
**Summary Dashboard**:

![](https://i1.gallery.technet.s-msft.com/sample-management-pack-fd15caa7/image/file/160585/1/gallery01.jpg)
4 changes: 3 additions & 1 deletion SAMPLE.OPERATIONSMANAGER.2016.UPGRADE/details.json
Expand Up @@ -5,8 +5,10 @@
"Version": "1.0.2.38",
"Author": "Wei H Lim",
"IsFree": true,
"Description": "This is a sample upgrade helper management pack for System Center Operations Manager 2012 R2 to System Center 2016 Operations Manager.",
"Tags": [
"Upgrade",
"2016"
"2016",
"Sample"
]
}
9 changes: 9 additions & 0 deletions URLGenie/ReadMe.md
@@ -0,0 +1,9 @@
### Overview

The URL Genie Management Pack provides a fast and easy way to implement monitoring for a large numbers of URL instances from only a few instances up to many thousands! In addition there are some special features which allow monitoring sites which require client certificates in addition to pages that use forms-based authentication. With URLGenie you can easily configure monitoring for thousands of standard URL instances in less than a minute. 

The URL instances and their respective monitoring criteria get instantiated on any number of "watcher" nodes from one or more XML configuration files. Any managed Windows computer can be activated as a watcher node with a simple Console task during which the watcher nodes get configured with a path to where it should look for configuration files. There can exist any number of configuration files, each with any number of requests defined within. Typically the configuration files will be centrally located in a single shared network folder. A decent place for the shared configuration folder is on management server or the data warehouse server with all watcher nodes configured with the same shared folder path. This is the most simple and scalable configuration.

There are standard monitors which target the http and https class types. Each individual monitor will alert with plenty of alert specific context information. This is significantly different than the Operations Manager standard Web Availability or Synthetic Transaction monitoring which will only alert on the rollup and contain no specific or useful alert context information.

The standard monitors all support the various types of http authentication: *None*, *Basic*, *NTLM*, *Digest*, and*Negotiate*. In addition, there are special monitor types which can be enabled for URLs that require a client certificate or even for web sites that use forms-based authentication, a first for SCOM (to my knowledge)!
87 changes: 0 additions & 87 deletions ValidateContents.ps1

This file was deleted.

10 changes: 10 additions & 0 deletions appveyor.yml
@@ -0,0 +1,10 @@
install:
- cinst pester

build: false

test_script:
- ps: .\Update-Tests.ps1
- ps: $res = Invoke-Pester -Path ".\" -OutputFormat NUnitXml -OutputFile TestsResults.xml -PassThru
- ps: (New-Object 'System.Net.WebClient').UploadFile("https://ci.appveyor.com/api/testresults/nunit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path .\TestsResults.xml))
- ps: if ($res.FailedCount -gt 0) { throw "$($res.FailedCount) tests failed."}