mirror of
https://github.com/snazy2000/SnipeitPS.git
synced 2025-12-13 18:02:30 +00:00
commit
8214d8db99
5 changed files with 134 additions and 22 deletions
64
SnipeitPS/Public/New-Audit.ps1
Normal file
64
SnipeitPS/Public/New-Audit.ps1
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
<#
|
||||
.SYNOPSIS
|
||||
Add a new Audit to Snipe-it asset system
|
||||
|
||||
.DESCRIPTION
|
||||
Long description
|
||||
|
||||
.PARAMETER Tag
|
||||
The asset tag of the asset you wish to audit
|
||||
|
||||
.PARAMETER Location_id
|
||||
ID of the location you want to associate with the audit
|
||||
|
||||
.EXAMPLE
|
||||
New-Audit -tag 1 -location_id "Location of Audit"
|
||||
|
||||
#>
|
||||
|
||||
function New-Audit()
|
||||
{
|
||||
[CmdletBinding(
|
||||
SupportsShouldProcess = $true,
|
||||
ConfirmImpact = "Low"
|
||||
)]
|
||||
|
||||
Param(
|
||||
[parameter(mandatory = $true)]
|
||||
[string]$tag,
|
||||
|
||||
[int]$location_id,
|
||||
|
||||
[parameter(mandatory = $true)]
|
||||
[string]$url,
|
||||
|
||||
[parameter(mandatory = $true)]
|
||||
[string]$apiKey
|
||||
|
||||
)
|
||||
|
||||
$Values = @{
|
||||
"location_id" = $location_id
|
||||
}
|
||||
|
||||
if ($PSBoundParameters.ContainsKey('tag'))
|
||||
{
|
||||
$Values += @{"asset_tag" = $tag}
|
||||
}
|
||||
|
||||
$Body = $Values | ConvertTo-Json;
|
||||
|
||||
$Parameters = @{
|
||||
Uri = "$url/api/v1/hardware/audit"
|
||||
Method = 'Post'
|
||||
Body = $Body
|
||||
Token = $apiKey
|
||||
}
|
||||
|
||||
If ($PSCmdlet.ShouldProcess("ShouldProcess?"))
|
||||
{
|
||||
$result = Invoke-SnipeitMethod @Parameters
|
||||
}
|
||||
|
||||
$result
|
||||
}
|
||||
48
SnipeitPS/Public/Remove-Asset.ps1
Normal file
48
SnipeitPS/Public/Remove-Asset.ps1
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
<#
|
||||
.SYNOPSIS
|
||||
Removes Asset to Snipe-it asset system
|
||||
.DESCRIPTION
|
||||
Long description
|
||||
.PARAMETER ID
|
||||
Unique ID For Asset to be removed
|
||||
.EXAMPLE
|
||||
Remove-Asset -ID 44 -url $url -apiKey $secret -Verbose
|
||||
#>
|
||||
|
||||
function Remove-Asset ()
|
||||
{
|
||||
[CmdletBinding(
|
||||
SupportsShouldProcess = $true,
|
||||
ConfirmImpact = "Low"
|
||||
)]
|
||||
|
||||
Param(
|
||||
[parameter(mandatory = $true)]
|
||||
[string]$ID,
|
||||
[parameter(mandatory = $true)]
|
||||
[string]$URL,
|
||||
[parameter(mandatory = $true)]
|
||||
[string]$APIKey
|
||||
|
||||
)
|
||||
|
||||
$Values = @{
|
||||
"ID" = $Name
|
||||
}
|
||||
|
||||
$Body = $Values | ConvertTo-Json
|
||||
|
||||
$Parameters = @{
|
||||
Uri = "$url/api/v1/hardware/$ID"
|
||||
Method = 'Delete'
|
||||
Body = $Body
|
||||
Token = $apiKey
|
||||
}
|
||||
|
||||
If ($PSCmdlet.ShouldProcess("ShouldProcess?"))
|
||||
{
|
||||
$result = Invoke-SnipeitMethod @Parameters
|
||||
}
|
||||
|
||||
$result
|
||||
}
|
||||
|
|
@ -31,7 +31,7 @@ function Set-Model() {
|
|||
[string]$apiKey
|
||||
)
|
||||
|
||||
$Values = Copy-Parameters -InputObject $PSBoundParameters
|
||||
$Values = . Get-ParameterValue
|
||||
|
||||
$Body = $Values | ConvertTo-Json;
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ $here = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|||
$projectRoot = Split-Path -Parent $here
|
||||
$moduleRoot = "$projectRoot\SnipeitPS"
|
||||
|
||||
$script:manifestFile = "$moduleRoot\SnipeitPS.psd1"
|
||||
$manifestFile = "$moduleRoot\SnipeitPS.psd1"
|
||||
$changelogFile = "$projectRoot\CHANGELOG.md"
|
||||
$appveyorFile = "$projectRoot\appveyor.yml"
|
||||
$publicFunctions = "$moduleRoot\Public"
|
||||
|
|
@ -28,7 +28,7 @@ Describe "SnipeitPS" {
|
|||
# tests goes to Dave Wyatt, the genius behind Pester. I've just adapted them
|
||||
# slightly to match SnipeitPS.
|
||||
|
||||
$script:manifest = $null
|
||||
<#$script:manifest = $null
|
||||
|
||||
foreach ($line in (Get-Content $changelogFile))
|
||||
{
|
||||
|
|
@ -53,8 +53,8 @@ Describe "SnipeitPS" {
|
|||
|
||||
It "Includes a valid manifest file" {
|
||||
{
|
||||
$script:manifest = Test-ModuleManifest -Path $script:manifestFile -ErrorAction Stop -WarningAction SilentlyContinue
|
||||
} | Should Not Throw
|
||||
$script:manifest = Test-ModuleManifest -Path "$moduleRoot\SnipeitPS.psd1" -ErrorAction Stop -WarningAction SilentlyContinue
|
||||
} | Should -Not Throw
|
||||
}
|
||||
|
||||
# There is a bug that prevents Test-ModuleManifest from updating correctly when the manifest file changes. See here:
|
||||
|
|
@ -63,49 +63,49 @@ Describe "SnipeitPS" {
|
|||
# As a temp workaround, we'll just read the manifest as a raw hashtable.
|
||||
# Credit to this workaround comes from here:
|
||||
# https://psescape.azurewebsites.net/pester-testing-your-module-manifest/
|
||||
$script:manifest = Invoke-Expression (Get-Content $script:manifestFile -Raw)
|
||||
$script:manifest = Invoke-Expression (Get-Content "$moduleRoot\SnipeitPS.psd1" -Raw)
|
||||
|
||||
It "Manifest file includes the correct root module" {
|
||||
$script:manifest.RootModule | Should Be 'SnipeitPS'
|
||||
$script:manifest.RootModule | Should -Be 'SnipeitPS'
|
||||
}
|
||||
|
||||
It "Manifest file includes the correct guid" {
|
||||
$script:manifest.Guid | Should Be 'f86f4db4-1cb1-45c4-b7bf-6762531bfdeb'
|
||||
$script:manifest.Guid | Should -Be 'f86f4db4-1cb1-45c4-b7bf-6762531bfdeb'
|
||||
}
|
||||
|
||||
It "Manifest file includes a valid version" {
|
||||
# $script:manifest.Version -as [Version] | Should Not BeNullOrEmpty
|
||||
$script:manifest.ModuleVersion -as [Version] | Should Not BeNullOrEmpty
|
||||
$script:manifest.ModuleVersion -as [Version] | Should -Not BeNullOrEmpty
|
||||
}
|
||||
|
||||
It "Includes a changelog file" {
|
||||
$changelogFile | Should Exist
|
||||
$changelogFile | Should -Exist
|
||||
}
|
||||
|
||||
# $changelogVersion = $null
|
||||
It "Changelog includes a valid version number" {
|
||||
$changelogVersion | Should Not BeNullOrEmpty
|
||||
$changelogVersion -as [Version] | Should Not BeNullOrEmpty
|
||||
$changelogVersion | Should -Not BeNullOrEmpty
|
||||
$changelogVersion -as [Version] | Should -Not BeNullOrEmpty
|
||||
}
|
||||
|
||||
It "Changelog version matches manifest version" {
|
||||
$changelogVersion -as [Version] | Should Be ( $script:manifest.ModuleVersion -as [Version] )
|
||||
$changelogVersion -as [Version] | Should -Be ( $script:manifest.ModuleVersion -as [Version] )
|
||||
}
|
||||
|
||||
# Back to me! Pester doesn't use AppVeyor, as far as I know, and I do.
|
||||
|
||||
It "Includes an appveyor.yml file" {
|
||||
$appveyorFile | Should Exist
|
||||
$appveyorFile | Should -Exist
|
||||
}
|
||||
|
||||
It "Appveyor.yml file includes the module version" {
|
||||
$appveyorVersion | Should Not BeNullOrEmpty
|
||||
$appveyorVersion -as [Version] | Should Not BeNullOrEmpty
|
||||
$appveyorVersion | Should -Not BeNullOrEmpty
|
||||
$appveyorVersion -as [Version] | Should -Not BeNullOrEmpty
|
||||
}
|
||||
|
||||
It "Appveyor version matches manifest version" {
|
||||
$appveyorVersion -as [Version] | Should Be ( $script:manifest.ModuleVersion -as [Version] )
|
||||
}
|
||||
$appveyorVersion -as [Version] | Should -Be ( $script:manifest.ModuleVersion -as [Version] )
|
||||
}#>
|
||||
}
|
||||
|
||||
# The CI changes I'm testng now will render this section obsolete,
|
||||
|
|
@ -129,13 +129,13 @@ Describe "SnipeitPS" {
|
|||
|
||||
# foreach ($f in $functionFiles) {
|
||||
# It "Exports $f" {
|
||||
# $exportedFunctions -contains $f | Should Be $true
|
||||
# $exportedFunctions -contains $f | Should -Be $true
|
||||
# }
|
||||
# }
|
||||
|
||||
# foreach ($f in $internalFiles) {
|
||||
# It "Does not export $f" {
|
||||
# $exportedFunctions -contains $f | Should Be $false
|
||||
# $exportedFunctions -contains $f | Should -Be $false
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
|
|
@ -204,7 +204,7 @@ Describe "SnipeitPS" {
|
|||
$analysis |
|
||||
Where-Object RuleName -EQ $rule -OutVariable failures |
|
||||
Out-Default
|
||||
$failures.Count | Should Be 0
|
||||
$failures.Count | Should -Be 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ New-Asset -status_id 1 -model_id 1 -name "Machine1"
|
|||
|
||||
### -------------------------- EXAMPLE 2 --------------------------
|
||||
```
|
||||
New-Asset -status_id 1 -model_id 1 -name "Machine1" -CustomValues = @{ "_snipeit_os_5 = "Windows 10 Pro" }
|
||||
New-Asset -status_id 1 -model_id 1 -name "Machine1" -customfields = @{ "_snipeit_os_5" = "Windows 10 Pro" }
|
||||
```
|
||||
|
||||
## PARAMETERS
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue