From 53dc8b3bf92315a41b77bb78cfe01e9385456b40 Mon Sep 17 00:00:00 2001 From: paybackman Date: Wed, 4 Jun 2014 13:31:52 -0500 Subject: [PATCH] This change addresses the Code Review from the previous commit. Changes include the following Stronger Validation for Openstack.config. Better handling of detecting and raising NullReferenceExceptions Removal of dead code in a few places Added ability for each ServiceProvider to supply a ServiceMap which translates his name for a CoreService to something we can work with. Optimized code for dealing with Runspaces. This change implements 2 separate use cases for Multi-Vendor support. a. Initial Bootstrapping b. Switch Providers Change-Id: Ided462e5050214321e1ead50cf0498707d59128f Partially-implements: blueprint implement-multiple-vendor-support --- .gitignore | 164 + .../Deployment/HP.psd1 | 2 +- .../HP.Openstack.Client.Powershell.csproj | 28 +- .../Utility/HPRegistrationManager.cs | 3 +- .../bin/Debug/Deployment/HP.psd1 | 21 - .../packages.config | 9 + OpenStack-CLI.sln | 17 - .../Cmdlets/Common/BasePSCmdlet.cs | 35 +- .../Cmdlets/Common/GetConfigCmdlet.cs | 9 +- .../Common/GetServiceProvidersCmdlet.cs | 8 +- .../Cmdlets/Common/GetVersionCmdlet.cs | 1 - .../Cmdlets/Common/GetZoneCmdlet.cs | 20 +- .../Cmdlets/Common/GetZonesCmdlet.cs | 88 +- .../Common/NewServiceProviderCmdlet.cs | 10 +- .../Cmdlets/Common/SetConfigCmdlet.cs | 323 +- .../Common/SetServiceProviderCmdlet.cs | 213 +- .../Cmdlets/Common/SetZoneCmdlet.cs | 261 +- .../ObjectStorage/Objects/CopyItemCmdlet.cs | 121 +- .../Deployment/DevProfile.ps1 | 37 +- .../{Openstack.psd1 => Openstack-Core.psd1} | 2 +- .../Deployment/Openstack.config | 52 +- .../Openstack.Client.Powershell.csproj | 94 +- .../Common/BaseNavigationCmdletProvider.cs | 179 +- .../Providers/Common/CommonDriveInfo.cs | 87 +- .../ObjectStorageDriveConverter.cs | 159 + .../ObjectStorageDriveParameters.cs | 42 + .../ObjectStorageNavigationProvider.cs | 745 ++ .../ObjectStorage/ObjectStoragePSDriveInfo.cs | 369 + .../Utility/AccountCapabilities.cs | 406 +- .../Utility/AvailabilityZone.cs | 56 + .../Utility/ConfigurationManager.cs | 388 +- .../Utility/Context.cs | 25 +- .../Utility/ExtensionManager.cs | 194 +- .../OpenstackCoreRegistrationManager.cs | 4 +- .../Utility/RegistrationManager.cs | 61 +- .../Utility/ServiceMap.cs | 38 + .../Utility/ServiceProvider.cs | 32 + .../Utility/ServiceProviderAttribute.cs | 24 + Openstack.Client.Powershell/app.config | 15 +- .../bin/Release/Deployment/Aliases.txt | Bin 112 -> 0 bytes .../bin/Release/Deployment/CLI.config.example | 52 - .../Microsoft.PowerShell_profile.ps1 | 81 - .../bin/Release/Deployment/Openstack.config | 58 - .../bin/Release/Deployment/Openstack.psd1 | 21 - .../Deployment/OpenstackShell.format.ps1xml | 1729 --- .../bin/Release/Deployment/ReleaseNotes.xml | 47 - .../Openstack.Client.Powershell.dll-help.xml | 9685 ----------------- .../bin/Release/Openstack.psd1 | 21 - .../bin/Release/OpenstackShell.format.ps1xml | 1729 --- ...ent.Powershell.csproj.FileListAbsolute.txt | 51 - ...shell.csprojResolveAssemblyReference.cache | Bin 45688 -> 0 bytes .../obj/Debug/Openstack.Client.Powershell.dll | Bin 50688 -> 0 bytes .../Openstack.Client.Powershell.g.resources | Bin 484 -> 0 bytes .../obj/Debug/Openstack.Client.Powershell.pdb | Bin 151040 -> 0 bytes ...le_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs | 0 ...le_5937a670-0e60-4077-877b-f7221da3dda1.cs | 0 ...le_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs | 0 Openstack.Client.Powershell/packages.config | 6 +- .../Deployment/Rackspace.config | 18 +- .../Deployment/Rackspace.psd1 | 2 +- ...ckspace.Openstack.Client.Powershell.csproj | 30 +- .../Utility/RackspaceRegistrationManager.cs | 3 +- .../bin/Debug/Deployment/Rackspace.psd1 | 20 - Rackspace.Client.Powershell/packages.config | 8 + 64 files changed, 2930 insertions(+), 14973 deletions(-) create mode 100644 .gitignore delete mode 100644 HP.Openstack.Client.Powershell/bin/Debug/Deployment/HP.psd1 create mode 100644 HP.Openstack.Client.Powershell/packages.config rename Openstack.Client.Powershell/Deployment/{Openstack.psd1 => Openstack-Core.psd1} (85%) create mode 100644 Openstack.Client.Powershell/Providers/ObjectStorage/ObjectStorageDriveConverter.cs create mode 100644 Openstack.Client.Powershell/Providers/ObjectStorage/ObjectStorageDriveParameters.cs create mode 100644 Openstack.Client.Powershell/Providers/ObjectStorage/ObjectStorageNavigationProvider.cs create mode 100644 Openstack.Client.Powershell/Providers/ObjectStorage/ObjectStoragePSDriveInfo.cs create mode 100644 Openstack.Client.Powershell/Utility/AvailabilityZone.cs create mode 100644 Openstack.Client.Powershell/Utility/ServiceMap.cs create mode 100644 Openstack.Client.Powershell/Utility/ServiceProviderAttribute.cs delete mode 100644 Openstack.Client.Powershell/bin/Release/Deployment/Aliases.txt delete mode 100644 Openstack.Client.Powershell/bin/Release/Deployment/CLI.config.example delete mode 100644 Openstack.Client.Powershell/bin/Release/Deployment/Microsoft.PowerShell_profile.ps1 delete mode 100644 Openstack.Client.Powershell/bin/Release/Deployment/Openstack.config delete mode 100644 Openstack.Client.Powershell/bin/Release/Deployment/Openstack.psd1 delete mode 100644 Openstack.Client.Powershell/bin/Release/Deployment/OpenstackShell.format.ps1xml delete mode 100644 Openstack.Client.Powershell/bin/Release/Deployment/ReleaseNotes.xml delete mode 100644 Openstack.Client.Powershell/bin/Release/Openstack.Client.Powershell.dll-help.xml delete mode 100644 Openstack.Client.Powershell/bin/Release/Openstack.psd1 delete mode 100644 Openstack.Client.Powershell/bin/Release/OpenstackShell.format.ps1xml delete mode 100644 Openstack.Client.Powershell/obj/Debug/Openstack.Client.Powershell.csproj.FileListAbsolute.txt delete mode 100644 Openstack.Client.Powershell/obj/Debug/Openstack.Client.Powershell.csprojResolveAssemblyReference.cache delete mode 100644 Openstack.Client.Powershell/obj/Debug/Openstack.Client.Powershell.dll delete mode 100644 Openstack.Client.Powershell/obj/Debug/Openstack.Client.Powershell.g.resources delete mode 100644 Openstack.Client.Powershell/obj/Debug/Openstack.Client.Powershell.pdb delete mode 100644 Openstack.Client.Powershell/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs delete mode 100644 Openstack.Client.Powershell/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs delete mode 100644 Openstack.Client.Powershell/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs delete mode 100644 Rackspace.Client.Powershell/bin/Debug/Deployment/Rackspace.psd1 create mode 100644 Rackspace.Client.Powershell/packages.config diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..55be0d6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,164 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +CLI.config +*.cache +FileListAbsolute.txt + + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets +!packages/*/build/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc +*.dll +*.pdb + + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +packages/ + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf + + +#LightSwitch generated files +GeneratedArtifacts/ +_Pvt_Extensions/ +ModelManifest.xml + +# ========================= +# Windows detritus +# ========================= + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac desktop service store files +.DS_Store diff --git a/HP.Openstack.Client.Powershell/Deployment/HP.psd1 b/HP.Openstack.Client.Powershell/Deployment/HP.psd1 index ae97024..8d5f317 100644 --- a/HP.Openstack.Client.Powershell/Deployment/HP.psd1 +++ b/HP.Openstack.Client.Powershell/Deployment/HP.psd1 @@ -8,7 +8,7 @@ ModuleVersion="1.0.0.0" PowerShellVersion="2.0" CLRVersion="4.0.30319" FileList='' -RequiredAssemblies = 'OpenStack.dll', 'OpenStack.Common.dll' +RequiredAssemblies = 'OpenStack.dll' } diff --git a/HP.Openstack.Client.Powershell/HP.Openstack.Client.Powershell.csproj b/HP.Openstack.Client.Powershell/HP.Openstack.Client.Powershell.csproj index 86c96dd..0a5a4e9 100644 --- a/HP.Openstack.Client.Powershell/HP.Openstack.Client.Powershell.csproj +++ b/HP.Openstack.Client.Powershell/HP.Openstack.Client.Powershell.csproj @@ -18,7 +18,7 @@ true full false - ..\..\..\..\Documents\WindowsPowerShell\Modules\Openstack\HP\ + ..\..\..\..\..\Documents\WindowsPowerShell\Modules\Openstack\HP\ DEBUG;TRACE prompt 4 @@ -32,12 +32,28 @@ 4 + + False + ..\packages\Newtonsoft.Json.6.0.2\lib\net45\Newtonsoft.Json.dll + + + False + ..\packages\OpenStack-SDK-DotNet.0.9.1.0\lib\net40\OpenStack.dll + True ..\packages\System.Management.Automation.6.1.7601.17515\lib\net45\System.Management.Automation.dll + + + ..\packages\Microsoft.Net.Http.2.2.22\lib\net45\System.Net.Http.Extensions.dll + + + ..\packages\Microsoft.Net.Http.2.2.22\lib\net45\System.Net.Http.Primitives.dll + + @@ -50,16 +66,13 @@ + Always - - {b2c92371-b62b-45a2-adeb-edebefa3a75c} - Openstack - {32bac168-2ec8-4074-9e6d-8c13460dcfad} Openstack.Client.Powershell @@ -70,6 +83,11 @@ copy .\Deployment\HP.psd1 C:\Users\tplummer\Documents\WindowsPowerShell\Modules\Openstack\HP + + + + + - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Openstack.Client.Powershell/bin/Release/Deployment/Microsoft.PowerShell_profile.ps1 b/Openstack.Client.Powershell/bin/Release/Deployment/Microsoft.PowerShell_profile.ps1 deleted file mode 100644 index cb8fbd2..0000000 --- a/Openstack.Client.Powershell/bin/Release/Deployment/Microsoft.PowerShell_profile.ps1 +++ /dev/null @@ -1,81 +0,0 @@ -# --------------------------------------------------------------- -# Set up support methods first.. -# --------------------------------------------------------------- - - function is64bit() { - return ([IntPtr]::Size -eq 8) - } - - function get-programfilesdir() { - if (is64bit -eq $true) { - (Get-Item "Env:ProgramFiles(x86)").Value - } - else { - (Get-Item "Env:ProgramFiles").Value - } - } -# --------------------------------------------------------------- -# Set up the default windows size and color.... -# --------------------------------------------------------------- - - #$DebugPreference=$VerbosePreference="Continue" - #$DebugPreference = "Continue" - $a = (Get-Host).UI.RawUI - $b = $a.WindowSize - $b.Width = 109 - $b.Height = 61 - $a.WindowSize = $b - $a.BackgroundColor = "black" - $a.ForegroundColor = "green" - - cls -# --------------------------------------------------------------- -# Register known providers, write out welcome and status messages.. -# ----------------------------------------------------------------- - - $a.BackgroundColor = "black" - Echo '' - $a.ForegroundColor = "gray" - Echo '========================================================================================' - $a.ForegroundColor = "yellow" - Echo 'Welcome to the OpenStack Powershell Environment.' - $a.ForegroundColor = "gray" - Echo '========================================================================================' - Echo '' - $a.ForegroundColor = "green" - echo ' ==> Registering Providers...' - - $tempvar = get-programfilesdir - $tempvar = $tempvar + "\Openstack\OpenStack-Powershell" - cd $tempvar - import-module .\CLIManifest.psd1 -DisableNameChecking - - echo ' ==> Applying Command Aliases...' - echo ' ==> Registering Views...' - echo '' - -# --------------------------------------------------------------- -# Reset Shell to default colors.. -# --------------------------------------------------------------- - - $a.ForegroundColor = "yellow" - echo 'Ready..' - $a.ForegroundColor = "green" - echo '' - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Openstack.Client.Powershell/bin/Release/Deployment/Openstack.config b/Openstack.Client.Powershell/bin/Release/Deployment/Openstack.config deleted file mode 100644 index 139be7f..0000000 --- a/Openstack.Client.Powershell/bin/Release/Deployment/Openstack.config +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Openstack.Client.Powershell/bin/Release/Deployment/Openstack.psd1 b/Openstack.Client.Powershell/bin/Release/Deployment/Openstack.psd1 deleted file mode 100644 index 13128c2..0000000 --- a/Openstack.Client.Powershell/bin/Release/Deployment/Openstack.psd1 +++ /dev/null @@ -1,21 +0,0 @@ -@{ -ModuleToProcess = 'Openstack.Client.Powershell.dll' -GUID="{847a28a4-6407-4aa6-8070-a4a51396db70}" -Author="Travis Plummer" -CompanyName="Hewlett-Packard Corporation" -Copyright="© Hewlett-Packard. All rights reserved." -ModuleVersion="1.0.0.0" -PowerShellVersion="2.0" -CLRVersion="4.0.30319" -FormatsToProcess="OpenstackShell.format.ps1xml" -FileList='Openstack.config' -RequiredAssemblies = 'Openstack.dll', 'Openstack.Common.dll' - -} - - - - - - - diff --git a/Openstack.Client.Powershell/bin/Release/Deployment/OpenstackShell.format.ps1xml b/Openstack.Client.Powershell/bin/Release/Deployment/OpenstackShell.format.ps1xml deleted file mode 100644 index b88bb75..0000000 --- a/Openstack.Client.Powershell/bin/Release/Deployment/OpenstackShell.format.ps1xml +++ /dev/null @@ -1,1729 +0,0 @@ - - - - - - - service - - Openstack.Objects.Domain.Admin.Zone - - - - - - - 8 - left - - - - 20 - left - - - - 23 - left - - - - 10 - left - - - - - - - - Id - - - Name - - - ShellForegroundColor - - - IsDefault - - - - - - - - - service - - Openstack.Objects.Domain.BlockStorage.Snapshot - - - - - - - 3 - left - - - - 40 - left - - - - 20 - left - - - - 40 - left - - - - 22 - left - - - - 18 - left - - - - 7 - left - - - - 40 - left - - - - - - - QuickPickNumber - - - Id - - - DisplayName - - - Description - - - CreationDate - - - Status - - - Size - - - VolumeId - - - - - - - - - - - service - - Openstack.Objects.Domain.BlockStorage.VolumeBackup - - - - - - 3 - left - - - - 45 - left - - - - 20 - left - - - - 20 - left - - - - 8 - left - - - - 10 - left - - - - 10 - left - - - - 28 - left - - - - 18 - left - - - - 42 - left - - - - - - - QuickPickNumber - - - Id - - - Name - - - Container - - - Size - - - Status - - - AvailabilityZone - - - CreatedDate - - - ObjectCount - - - VolumeId - - - - - - - - - - service - - Openstack.Objects.Domain.BlockStorage.Volume - - - - - - 3 - left - - - - 45 - left - - - - 20 - left - - - - 30 - left - - - - 6 - left - - - - 8 - left - - - - 8 - left - - - - 22 - left - - - - 10 - left - - - - 10 - left - - - - 10 - left - - - - 30 - left - - - - 40 - left - - - - - - - QuickPickNumber - - - Id - - - Name - - - Description - - - VolumeType - - - Size - - - IsBootable - - - CreationDate - - - Status - - - AvailabilityZone - - - Device - - - AttachedTo - - - SourceVolid - - - - - - - - - KeyPair - - Openstack.Objects.Domain.Server.KeyPair - - - - - - - 40 - left - - - - - 50 - left - - - - - 330 - left - - - - - - - - - - Name - - - - Fingerprint - - - - PublicKey - - - - - - - - - - - - - Port - - Openstack.Objects.Domain.Networking.Port - - - - - - - - 3 - left - - - - - 40 - left - - - - - 13 - left - - - - - 6 - left - - - - 16 - left - - - - 25 - left - - - - 40 - left - - - - 40 - left - - - - 21 - left - - - - 16 - left - - - - - - - - - QuickPickNumber - - - Id - - - Name - - - Status - - - AdminStateUp - - - MacAddress - - - DeviceOwner - - - DeviceId - - - PortSecurityEnabled - - - BindingType - - - - - - - - - - Subnet - - Openstack.Objects.Domain.Networking.Subnet - - - - - - - 3 - left - - - - - 40 - left - - - - - 34 - left - - - - - 7 - left - - - - 24 - left - - - - 11 - left - - - - 24 - left - - - - - - - QuickPickNumber - - - Id - - - Name - - - EnableDHCP - - - Cidr - - - IPVersion - - - GatewayIP - - - - - - - - - service - - Openstack.Client.Powershell.Utility.ServiceProvider - - - - - - 15 - left - - - - 80 - left - - - - 7 - left - - - - 30 - left - - - - - - - Name - - - AuthenticationServiceURI - - - IsDefault - - - - DefaultTenantId - - - - - - - - - service - - Openstack.Objects.Domain.Networking.FloatingIP - - - - - - - 3 - left - - - - - 42 - left - - - - - 20 - left - - - - - 42 - left - - - - - 15 - left - - - - - 15 - left - - - - - 15 - left - - - - - - - - - - QuickPickNumber - - - - Id - - - - FloatingIPAddress - - - - FloatingNetworkId - - - - FixedIPAddress - - - - PortId - - - - RouterId - - - - - - - - - - StorageContainer - - Openstack.Objects.Domain.StorageContainer - - - - - - 40 - left - - - - - - - Name - - - - - - - - - Network - - Openstack.Objects.Domain.Networking.Network - - - - - - - - 3 - left - - - - - 40 - left - - - - - 13 - left - - - - - 6 - left - - - - - 6 - left - - - - - 6 - left - - - - - - - - - - QuickPickNumber - - - - Id - - - - Name - - - - IsExternal - - - - Shared - - - - PortSecurityEnabled - - - - - - - - - - service - - Openstack.Objects.Domain.Admin.Service - - - - - - - 20 - left - - - - - 27 - left - - - - - - - - - - Type - - - - Name - - - - - - - - - - process4 - - Openstack.Client.Powershell.Providers.ObjectStorage.StorageItemViewModel - - - - - - 47 - left - - - - 13 - left - - - - 25 - left - - - - 40 - left - - - - - - - Name - - - Size - - - LastModifiedDate - - - Type - - - - - - - - - - process4 - - Openstack.Storage.StorageObject - - - - - - 47 - left - - - - 13 - left - - - - 25 - left - - - - 40 - left - - - - - - - Name - - - Length - - - LastModified - - - ContentType - - - - - - - - - process5 - - Openstack.Storage.StorageFolder - - - - - - 47 - left - - - - - 40 - left - - - - - - - Name - - - - ContentType - - - - - - - - - Router - - Openstack.Objects.Domain.Networking.Router - - - - - - - 3 - left - - - - - 40 - left - - - - 47 - left - - - - - 13 - left - - - - - 14 - left - - - - - - - - - - - QuickPickNumber - - - - Id - - - Name - - - - Status - - - AdminStateUp - - - - - - - - - - - process - - Openstack.Client.Powershell.Providers.Common.BaseUIContainer - - - - - - - 15 - left - - - - - 100 - left - - - - - 13 - left - - - - - 40 - left - - - - - - - - - Name - - - - Description - - - ObjectType - - - Path - - - - - - - - - process - - Openstack.Administration.Domain.User - - - - - - - 15 - left - - - - - 20 - left - - - - - 20 - left - - - - - - - - - AccountId - - - - Username - - - Name - - - - - - - - - - process - - Openstack.Objects.Domain.Compute.Account - - - - - - - 15 - left - - - - - 20 - left - - - - - - - - - - Id - - - Name - - - - - - - - - - process - - Openstack.Administration.Domain.Group - - - - - - - 40 - left - - - - - 26 - left - - - - - 50 - left - - - - - - - - - GroupId - - - - Name - - - Description - - - - - - - - - - process - - Openstack.Objects.Domain.Compute.Server - - - - - - - - 3 - left - - - - - 40 - left - - - - - 40 - left - - - - - - 30 - left - - - - 25 - left - - - - 10 - left - - - - 15 - left - - - - - 100 - left - - - - - - - - QuickPickNumber - - - Id - - - - Name - - - CreationDate - - - LastUpdatedDate - - - KeyName - - - Status - - - DisplayIPAddresses - - - - - - - - - - - process - - Openstack.Objects.Domain.Compute.Image - - - - - - - - 3 - left - - - - - 40 - left - - - - - 70 - left - - - - - 25 - left - - - - - 25 - left - - - - - 15 - left - - - - - - - - - QuickPickNumber - - - - Id - - - - Name - - - - LastModified - - - - CreatedDate - - - - Status - - - - - - - - - - - process - - System.Collections.DictionaryEntry - - - - - - - 30 - left - - - - - 320 - left - - - - - - - - - - - Key - - - - Value - - - - - - - - - - - process - - Openstack.Objects.Domain.Security.SecurityGroup - - - - - - - 3 - left - - - - - 40 - left - - - - - 40 - left - - - - - 90 - left - - - - - 15 - left - - - - - - - - - QuickPickNumber - - - - Id - - - - Name - - - - Description - - - - TenantId - - - - - - - - - - - process - - Openstack.Objects.Domain.Compute.MetaDataElement - - - - - - - 20 - left - - - - - 20 - left - - - - - - - - - - - Key - - - - Value - - - - - - - - - - - - flavor - - Openstack.Objects.Domain.Compute.Flavor - - - - - - - 8 - left - - - - - 26 - left - - - - - 5 - left - - - - - 10 - left - - - - - - 11 - left - - - - - 11 - left - - - - - 5 - left - - - - - 5 - left - - - - - - - - - - - - - - Id - - - - Name - - - Disk - - - Ram - - - - RxtxCap - - - - RxtxQuota - - - - Swap - - - - Vcpus - - - - - - - - - - diff --git a/Openstack.Client.Powershell/bin/Release/Deployment/ReleaseNotes.xml b/Openstack.Client.Powershell/bin/Release/Deployment/ReleaseNotes.xml deleted file mode 100644 index b6571b6..0000000 --- a/Openstack.Client.Powershell/bin/Release/Deployment/ReleaseNotes.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - New Features - * Easier Zone management with Set-Zone and Get-Zones - - - - - - New Features - * Easier Zone management with Set-Zone and Get-Zones - - - - - - New Features - * Easier Zone management with Set-Zone and Get-Zones - - - - - - New Features - * Support for listing, adding, attaching, detaching and removing block volumes - * Support for creating and removing block storage snapshots - - - - - - New Features - * Migrate-Drive support for migrating full data sets from external sources - - - - - - New Features - * Full access to the OpenStack compute infrastructure - * CDN support - - - - diff --git a/Openstack.Client.Powershell/bin/Release/Openstack.Client.Powershell.dll-help.xml b/Openstack.Client.Powershell/bin/Release/Openstack.Client.Powershell.dll-help.xml deleted file mode 100644 index 4592fe0..0000000 --- a/Openstack.Client.Powershell/bin/Release/Openstack.Client.Powershell.dll-help.xml +++ /dev/null @@ -1,9685 +0,0 @@ - - - - - - - - - - - - - - - Copy-Id - - - This Cmdlet will copy a records Id column to the clipboard given a QuickPick Number. - - - - - Copy - Id - - - - - This Cmdlet will copy a records Id column to the clipboard given a QuickPick Number. - - - - - - - - - - - - - qp - - - The QuickPick Number of the row - - - string - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # copy-id 2 - - - Description - ----------- - - This command will copy the Id of the record represented by QuickPickNumber 2 - - - - - - - - - - - - - - - - - - - - - - - - Get-Config - - - This Cmdlet will print out what config file entries the current session is running under. - - - - - Get - Config - - - - - This Cmdlet will print out what config file entries the current session is running under. - - - - - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - PS yourstorageContainer:\> - - - # Get-Config - - - Description - ----------- - - Prints out settings for the current session. - - - - - - - - - - - - - - - - - - - - - - - Map-Drive - - - This Cmdlet will map a Container that someone else owns to your list of available drives. - - - - - Map - Drive - - - - - This Cmdlet will map a Container that someone else owns to your list of available drives. - - - - - - - - - s - - - The full Container path - - - string - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - PS yourContainer:\> - - - # map-drive https://objects.werr.net:443/v1/9153476658759/rgtest2 - - - Description - ----------- - - Maps the rgtest2 Container to the list of available drives for the user. - - - - - - - - - - - - - - - - - - - - - - - Remove-Drive - - - This Cmdlet will remove an existing mapped drive. - - - - - Map - Drive - - - - - This Cmdlet will remove an existing mapped drive. - - - - - - - - - s - - - The Container name - - - string - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - PS yourContainer:\> - - - # remove-drive rgtest - - - Description - ----------- - - removes the rgtest2 Container from the list of available drives. - - - - - - - - - - - - - - - - - - - - - - - Migrate-Drive - - - This Cmdlet is used migrate existing stores of data from external sources like S3, Dropbox and Skydrive to a target Container within OpenStack Object Storage. - - - - - Set - Config - - - - - This Cmdlet is used migrate existing stores of data from external sources like S3, Dropbox and Skydrive to a target Container within OpenStack Object Storage. - - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - PS yourContainer:\> - - - # Migrate-Drive -p "S3" -sk "aa78676dhhh100" -ak "jhjhgu64332" -b "testb1", "testb2" - - - Description - ----------- - - Copies the testb1 and testb2 S3 Buckets to OpenStack Object Storage Containers of the same name. -sk = SecretKey -ak = AccessKey - - - - - - - - - - - - - - - - EXAMPLE 2 - - - PS yourContainer:\> - - - # Migrate-Drive -p "S3" -sk "aa78676dhhh100" -ak "jhjhgu64332" - - - Description - ----------- - - This example omits the Buckets (-b) parameter which forces the cmdlet to migrate all S3 Buckets to OpenStack Object Storage Containers of the same name. - - - - - - - - - - - - - - - - EXAMPLE 3 - - - PS yourContainer:\> - - - # Migrate-Drive -p "Skydrive" - - - Description - ----------- - - Migrates the local Skydrive store over to a Container called "Skydrive" - - - - - - - - - - - - - - - - EXAMPLE 4 - - - PS yourContainer:\> - - - # Migrate-Drive -p "Dropbox" - - - Description - ----------- - - Migrates the local Dropbox store over to a Container called "Dropbox" - - - - - - - - - - - - - - - - - - - - - - - - Set-Config - - - This Cmdlet is used to change specific settings on a per session basis. In addition to this, all settings may be changed at once by supplying the path to a completely different config file. - - - - - Set - Config - - - - - This Cmdlet is used to change specific settings on a per session basis. In addition to this, all settings may be changed at once by supplying the path to a completely different config file. - - - - - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - PS yourContainer:\> - - - # Set-Config -k "HttpTimeOut" -v "100" - - - Description - ----------- - - Changes the HttpTimeout setting to 100 miliseconds - - - - - - - - - - - - - - - - EXAMPLE 2 - - - PS yourContainer:\> - - - # Set-Config -s "c:\testconfig.config" - - - Description - ----------- - - Replaces all current session settings with those defined within the testconfig.config file. - - - - - - - - - - - - - - - - EXAMPLE 3 - - - PS yourContainer:\> - - - # Set-Config -resercfg" - - - Description - ----------- - - Resets the current session settings to those defined within the default config file (Openstack.config) - - - - - - - - - - - - - - - - - - - - - - - - Get-Uri - - - This cmdlet will print out the fully qualified URI of the resource that you supply with optional parameters which constrain the URIs validity to a timepsan.. - - - - - Get - URI - - - - - When you issue this command the URI is also pasted to the Windows clipboard for your convenience. If you want to disable this behavior simply set the Openstack.config option entitled PasteGetURIResultsToClipboard to false. - - - - - - - - - s - - - The Source Path to the StorageObject. - - - string - - - dv - - - The number of days the URI is considered valid (optional) - - - string - - - sv - - - The number of seconds the URI is considered valid (optional) - - - string - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - PS yourContainer:\> - - - # get-uri anothertest.txt - - - Description - ----------- - - This prints out the fully qualified URI for the anothertest.txt file. - - - - - - - - - - - - - - - - - - - - - - - - Get-Notes - - - - This cmdlet will pull a list of release notes from the server. You can also filter the notes to a specific version. - - - - - - Get - Notes - - - - - - - - - - - - - - all - - - Prints all release notes - - - - - string - - - v - - - Prints release notes for a specific version - - - - - string - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # Get-Notes -all - - - Description - ----------- - - Prints the entire set of release notes from all releases. - - - - - - - - - - - - - - - - EXAMPLE 2 - - - - - - # Get-Notes -v "2.0.0.0" - - - Description - ----------- - - Prints out the release notes for the 2.0.0.0 release only. - - - - - - - - - - - - - - - - - - - - - - - - Get-Catalog - - - - This cmdlet will show the current Users service catalog that was retrieved when logging in. This catalog represents every service the user has authorization to use. - - - - - - Get - Catalog - - - - - - - - - - - - - - v - - - Verbose mode displays detailed information about each service that's available. - - - - - string - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # Get-Catalog - - - Description - ----------- - - Shows a simple listing of available services. - - - - - - - - - - - - - - - - EXAMPLE 2 - - - - - - # Get-Catalog -v - - - Description - ----------- - - Shows a more detailed list of services with additional technical information. - - - - - - - - - - - - - - - - - - - - - - - - Get-Version - - - - Shows the products version number. - - - - - - Get - Version - - - - - - - - - - - - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # Get-Version - - - Description - ----------- - - Shows the products current version. - - - - - - - - - - - - - - - - - - - - - - - - - - Remove-FloatingIP - - - This Cmdlet will completely remove an existing Floating IP address. - - - - - Remove - FloatingIP - - - - - This Cmdlet will completely remove an existing Floating IP address. - - - - - - - - - - - - - id - - - The identifier for the Floating IP address. - - - string - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # remove-floatingIP 4ee64397-1253-473c-a81d-bc23dceeef31 - - - Description - ----------- - - This command will delete the floatingIP with the id of 4ee64397-1253-473c-a81d-bc23dceeef31 - - - - - - - - - - - - - - - - - - - - - - Remove-Network - - - This Cmdlet will completely remove an existing Network. - - - - - Remove - Network - - - - - This Cmdlet will completely remove an existing Network. - - - - - - - - - - - - - id - - - The identifier of the Network - - - string - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # remove-network -id 12857174-99cf-40e9-999e-fb0fa2e84898 - - - Description - ----------- - - This command will delete the Network with the id of 12857174-99cf-40e9-999e-fb0fa2e84898 - - - - - - - - - - - - - - - - - - - - - - Remove-Port - - - This Cmdlet will completely remove an existing Port. - - - - - Remove - Port - - - - - This Cmdlet will completely remove an existing Port. - - - - - - - - - - - - - id - - - The identifier of the Port - - - string - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # remove-port -id 12857174-99cf-40e9-999e-fb0fa2e84898 - - - Description - ----------- - - This command will delete the Port with the id of 12857174-99cf-40e9-999e-fb0fa2e84898 - - - - - - - - - - - - - - - - - - - - - - Remove-Router - - - This Cmdlet will completely remove an existing Router. - - - - - Remove - Port - - - - - This Cmdlet will completely remove an existing Router. - - - - - - - - - - - - - id - - - The identifier of the Router - - - string - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # remove-router 12857174-99cf-40e9-999e-fb0fa2e84898 - - - Description - ----------- - - This command will delete the Router with the id of 12857174-99cf-40e9-999e-fb0fa2e84898 - - - - - - - - - - - - - - - - - - - - - - Remove-RouterInterface - - - TThis Cmdlet will completely remove an existing relation between a Subnet and Router. - - - - - Remove - Port - - - - - This Cmdlet will completely remove an existing relation between a Subnet and Router. - - - - - - - - - - - - - id - - - The identifier of the Router - - - string - - - - sid - - - The identifier of the Subnet. - - - string - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # remove-routerinterface -id 12857174-99cf-40e9-999e-fb0fa2e84898 -sid bd1c30f7-71f1-455e-b91e-8d03da7f5224 - - - Description - ----------- - - This command will remove the association between Router 12857174-99cf-40e9-999e-fb0fa2e84898 and Subnet bd1c30f7-71f1-455e-b91e-8d03da7f5224 - - - - - - - - - - - - - - - - - - - - - - Remove-Subnet - - - This Cmdlet will completely remove an existing Subnet. - - - - - Remove - Subnet - - - - - This Cmdlet will completely remove an existing Subnet. - - - - - - - - - - - - - id - - - The identifier of the Subnet - - - string - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # remove-Subnet 12857174-99cf-40e9-999e-fb0fa2e84898 - - - Description - ----------- - - This command will delete the Subnet with the id of 12857174-99cf-40e9-999e-fb0fa2e84898 - - - - - - - - - - - - - - - - - - - - - - New-FloatingIP - - - This Cmdlet will create a new FloatingIP. - - - - - New - FloatingIP - - - - - This Cmdlet will create a new FloatingIP. - - - - - - - - - - - - - pid - - - The identifier of the Port required to create the FloatingIP - - - string - - - - nid - - - The identifier of the Network required to create the FloatingIP - - - string - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # new-FloatingIP -pid 12857174-99cf-40e9-999e-fb0fa2e84898 -nid bd1c30f7-71f1-455e-b91e-8d03da7f5224 - - - Description - ----------- - - This command will create a new Floating IP address for Network 12857174-99cf-40e9-999e-fb0fa2e84898 and Port bd1c30f7-71f1-455e-b91e-8d03da7f5224 - - - - - - - - - - - - - - - - - - - - - - New-Network - - - This Cmdlet will create a new Network. - - - - - New - Network - - - - - This Cmdlet will create a new Network. - - - - - - - - - - - - - n - - - The name of the new Network - - - string - - - - asu - - - Determines if the AdminStateUp flag is true or false. - - - string - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # new-network "testNet1" -asu - - - Description - ----------- - - This command will create a new network called testNet1 with its AdminStateUp set to true. - - - - - - - - - - - - - - - - - - - - - - New-Port - - - This Cmdlet will create a new Port. - - - - - New - Port - - - - - This Cmdlet will create a new Port. - - - - - - - - - - - - - n - - - The name of the new Port - - - string - - - - asu - - - Determines if the AdminStateUp flag is true or false. - - - string - - - - nid - - - The id of the Network where the Port will exist. - - - string - - - - did - - - The Ports DeviceId - - - string - - - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # new-port "testPort1" -nid bd1c30f7-71f1-455e-b91e-8d03da7f5224 -asu -did "sdf\etc" - - - Description - ----------- - - This command will create a new Port called testNet1 on Network bd1c30f7-71f1-455e-b91e-8d03da7f5224 with its AdminStateUp set to true and a Device = sdf/etc. - - - - - - - - - - - - - - - - - - - - - - New-Router - - - This Cmdlet will create a new Router. - - - - - New - Router - - - - - This Cmdlet will create a new Router. - - - - - - - - - - - - - n - - - The name of the new Router - - - string - - - - asu - - - Determines if the AdminStateUp flag is true or false. - - - string - - - - egw - - - The id of the External Gateway Network Id. - - - string - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # new-router "testRouter1" -asu -egw bd1c30f7-71f1-455e-b91e-8d03da7f5224 - - - Description - ----------- - - This command will create a new Router called testRouter1 on External Network bd1c30f7-71f1-455e-b91e-8d03da7f5224 with its AdminStateUp set to true. - - - - - - - - - - - - - - - - - - - - - - New-RouterInterface - - - This Cmdlet will create a new Router. - - - - - New - RouterInterface - - - - - This Cmdlet will create a new RouterInterface. - - - - - - - - - - - - - rid - - - The Router Id - - - string - - - - sid - - - The Subnet Id - - - string - - - - pid - - - The Port Id - - - string - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # new-routerinterface -rid bd1c30f7-71f1-455e-b91e-8d03da7f5224 -pid c9e32588-5b69-4100-a1a6-fa49094ec0a8 -sid 7yuu9886-5b69-4100-a1a6-fa49094ec0a8 - - - Description - ----------- - - This command will create a new Relationship between Router (bd1c30f7-71f1-455e-b91e-8d03da7f5224), Port (c9e32588-5b69-4100-a1a6-fa49094ec0a8) and Subnet (7yuu9886-5b69-4100-a1a6-fa49094ec0a8) - - - - - - - - - - - - - - - - - - - - - - New-Subnet - - - This Cmdlet will create a new Subnet. - - - - - New - Subnet - - - - - This Cmdlet will create a new Subnet. - - - - - - - - - - - - - nid - - - The id of the Network Id. - - - string - - - - ipv - - - Sets the IP Version - - - string - - - - c - - - The CIDR value - - - string - - - a - - - A comma seperated list of Allocation Pools. - - - string - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # new-subnet -nid bd1c30f7-71f1-455e-b91e-8d03da7f5224 -ipv 4 -c "10.0.6.0/24" -a "10.0.6.20", "10.0.6.22" , "10.0.6.26", "10.0.6.29" - - - Description - ----------- - - This command will create a new Subnet. - - - - - - - - - - - - - - - - - - - - - - Update-FloatingIP - - - This Cmdlet will update an existing FloatingIP. - - - - - Update - FloatingIP - - - - - This Cmdlet will update an existing FloatingIP. - - - - - - - - - - - - - id - - - The identifier of the Floating IP - - - string - - - - pid - - - The identifier of the Port Id - - - string - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # update-FLoatingIP -fid 12857174-99cf-40e9-999e-fb0fa2e84898 -pid c9e32588-5b69-4100-a1a6-fa49094ec0a8 - - - Description - ----------- - - This command will reassign the Floating IP (12857174-99cf-40e9-999e-fb0fa2e84898) to the new Port (c9e32588-5b69-4100-a1a6-fa49094ec0a8) - - - - - - - - - - - - - - - - - - - - - - Update-Network - - - This Cmdlet will update an existing Network. - - - - - Update - Network - - - - - This Cmdlet will update an existing Network. - - - - - - - - - - - - - id - - - The identifier of the Network IP - - - string - - - - n - - - The Networks name - - - string - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # update-Network -id 12857174-99cf-40e9-999e-fb0fa2e84898 -n "NewNameTest" - - - Description - ----------- - - This command will change the Network(12857174-99cf-40e9-999e-fb0fa2e84898) name to NewNameTest. - - - - - - - - - - - - - - - - - - - - - - Update-Port - - - This Cmdlet will update an existing Port. - - - - - Update - Port - - - - - This Cmdlet will update an existing Port. - - - - - - - - - - - - - id - - - The identifier of the Port IP - - - string - - - - did - - - The Device Id - - - string - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # update-Port -id 12857174-99cf-40e9-999e-fb0fa2e84898 -did "984456484-76cf-431t-66f-uyt5674567543" - - - Description - ----------- - - This command will change the Port(12857174-99cf-40e9-999e-fb0fa2e84898) device to the devie with Id = 984456484-76cf-431t-66f-uyt5674567543 - - - - - - - - - - - - - - - - - - - - - - Update-Router - - - This Cmdlet will update an existing Router. - - - - - Update - Router - - - - - This Cmdlet will update an existing Router. - - - - - - - - - - - - - id - - - The identifier of the Router - - - string - - - - nid - - - The identifier of the Network - - - string - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # update-Router -id 12857174-99cf-40e9-999e-fb0fa2e84898 -nid c9e32588-5b69-4100-a1a6-fa49094ec0a8 - - - Description - ----------- - - This command will reassign the Router(12857174-99cf-40e9-999e-fb0fa2e84898) to Network (c9e32588-5b69-4100-a1a6-fa49094ec0a8) - - - - - - - - - - - - - - - - - - - - - - Update-Subnet - - - This Cmdlet will update an existing Subnet. - - - - - Update - Subnet - - - - - This Cmdlet will update an existing Subnet. - - - - - - - - - - - - - id - - - The identifier of the Subnet - - - string - - - - egw - - - The identifier of the External Network Gateway - - - string - - - - n - - - The new name of the Subnet - - - string - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # update-Subnet -id 12857174-99cf-40e9-999e-fb0fa2e84898 -egw c9e32588-5b69-4100-a1a6-fa49094ec0a8 -n "NewSubnetName" - - - Description - ----------- - - This command will reassign the Subnet(12857174-99cf-40e9-999e-fb0fa2e84898) to External Network (c9e32588-5b69-4100-a1a6-fa49094ec0a8) with the new name of "NewSubnetName" - - - - - - - - - - - - - - - - - - - - - - - - - - - - Get-Metadata - - - This Cmdlet will list out the Metadata entries assigned to the supplied resource. You can currently list metadata assigned to Servers, Storage Objects , Containers and CDN Containers. - - - - - Get - Metadata - - - - - Many resources can have zero to many custom meta-data entries assigned to them. This is essentially a list of Key Value Pairs attached to the resource that you may use for whatever you would like. - - - - - - - - - - - - - sp - - - The path to the remote Storage Object. Paths may be expressed as fully qualified or relative to the current location in the store. - - - string - - - - cn - - - The Container Name. - - - string - - - - cdn - - - The CDN Container Name. - - - string - - - - sid - - - The Server ID. - - - string - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - PS yourContainer:\> - - - # Get-metadata test.txt - - - Description - ----------- - - This command will print out a list of name value pairs assigned to the. For details on how to add meta-data elements see the Set-Metadata Cmdlet. - - - - - - - - - - - - - - - - EXAMPLE 2 - - - - - - # Get-metadata -sid 23465 - - - Description - ----------- - - This command will print out all Metadata entries for the Server with an ID = 23465. - - - - - - - - - - - - - - - - EXAMPLE 3 - - - - - - # Get-metadata -cn "Marketing" - - - Description - ----------- - - This command will print out all Metadata entries for the Marketing Container. - - - - - - - - - - - - - - - - EXAMPLE 4 - - - - - - # Get-metadata -cdn "Marketing" - - - Description - ----------- - - This command will print out all Metadata entries for the Marketing CDN Container. - - - - - - - - - - - - - - - - - - - - - - - - Set-Metadata - - - This Cmdlet can be used to add meta-data elements to an existing resource. - - - - - Set - Metadata - - - - - Resources can have zero to many custom meta-data entries assigned to them. This is essentially a list of Key Value Pairs attached to the object that you may use for whatever you would like. - - - - - - Set-Metadata [-sp] [-sid] [-cdn] -md - - - - - - - sp - - - The path to a remote Storage Object. Paths may be expressed as fully qualified or relative to the current location in the store. - - - string - - - md - - - This is a comma delimited set of Name Value Pairs enclosed in quotes. the Key and Values are delimited by the pipe symbol." - - - string - - - - sid - - - The Server Id - - - string - - - - cdn - - - The CDN Container name. - - - string - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - PS yourContainer:\> - - - # Set-metadata test.txt -md "Author|Tom", "Editor|Sam" - - - Description - ----------- - - This example shows us adding two seperate KVPs to the test.txt file. - - - - - - - - - - - - - - - - EXAMPLE 2 - - - - - - # Set-metadata -sid 1345 -md "Author|Tom", "Editor|Sam" - - - Description - ----------- - - This example applies the Key Value Pair (-md argument) to the Server with an Id = 1345. - - - - - - - - - - - - - - - - EXAMPLE 3 - - - - - - # Set-metadata -cdn "Marketing" -md "Author|Tom", "Editor|Sam" - - - Description - ----------- - - This example applies the Key Value Pair (-md argument) to the CDN Container called Marketing. - - - - - - - - - - - - - - - - - - - - - - - - Get-URI - - - This Cmdlet will show the fully qualified URI of an object in storage. - - - - - Get - Metadata - - - - - - - - - - - s - - - - - - - s - - - The path to the remote Storage Object. Paths may be expressed as fully qualified or relative to the current location in the store. - - - string - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - PS yourContainer:\> - - - # Get-URI test.xml - - - Description - ----------- - - This example shows the fully qualifed URI for the test.xml file located in the current directory. - - - - - - - - - - - - - - - - - - - - - - - Remove-Item - - - This Cmdlet remove an object in storage. - - - - - Remove - Item - - - - - - - - - - - s - - - - - - - t - - - The path to the remote Storage Object. Paths may be expressed as fully qualified or relative to the current location in the store. - - - string - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - PS yourContainer:\> - - - # Remove-Item test.xml - - - Description - ----------- - - This example the test.xml file located in the current directory. - - - - - - - - - - - - - - - - - - - - - - - - - - - Set-Scope - - - This sets a Containers scope to public. - - - - - Get - Metadata - - - - - To allow users other than the owner of a Container to access resources you need to set the Containers scope to Public with this cmdlet. - - - - - - SourcePath - - - - - - - Name - - - The Containers name. - - - string - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - PS yourContainer:\> - - - #set-scope testContainer -s public - - - Description - ----------- - - This example shows us changing the testContainers scope to public. - - - - - - - - - - - - - - - - - - - - - - - Remove-Container - - - Removes the specified Container from the system optionally forcing the operation to complete without confirmation. - - - - - Remove - Container - - - - - - - - - - - - - - Name - - - The name of the Container to remove. - - - string - - - - ForceDelete - - - This switch forces the Container to be removed without any confirmation prompt. - - - string - - - cdn - - - Removes any associated CDN entry when the Container is removed. - - - string - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - PS yourContainer:\> - - - # remove-container testContainer - - - Description - ----------- - - Removes testContainer from the system but prompts the user for confirmation before continuing. - - - - - - - - - - - - - - - - EXAMPLE 2 - - - PS yourContainer:\> - - - # remove-container testContainer -fd - - - Description - ----------- - - Forces the system to delete the specified Container without confirmation from the user. - - - - - - - - - - - - - - - - - - - - - - - - New-Container - - - This Cmdlet create a new storage Container. - - - - - New - Container - - - - - You must be a registered user of the OpenStack Cloud Services platform in order to perform this operation because it requires a valid access key id to authenticate the request. Therefore anonymous requests can not create Containers. When you create a Container, you become the Container owner. - - - - - - Name - - - - - - Name - - - The name of the Container to create. - - - - - string - - - Url - - - The url to a Shared Container. - - - - - string - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - PS yourContainer:\> - - - # New-Container marketing - - - Description - ----------- - - This command will create a new Container named marketing. - - - - - - - - - - - - - - - EXAMPLE 2 - - - PS yourContainer:\> - - - # New-Container https://region-a.geo-1.objects.Openstacksvc.com/v1/AUTH_2485a207-71a4-4429-9e24-f7bf49e207fc/testcon - - - Description - ----------- - - This command will allow use of the Shared Container named testcon. - - - - - - - - - - - - - - - - - - - - - - - - - - - - New-Volume - - - This Cmdlet creates a new Block Storage Volume. - - - - - New - Volume - - - - - - - - - - - New-Volume - - - - - - svid - - - The Source Volume Id to derive this volume from. The Source Volume Id must reside in the same AZ as the one you are creating. - - - - - string - - - az - - - The target Availability Zone to create the Volume in. - - - - - string - - - Name - - - The name of the Volume to create. - - - - - string - - - Description - - - A quick description of the Volumes purpose. - - - - - string - - - Size - - - The size (in Gb) of the Volume. - - - - - string - - - Metadata - - - Additional Metadata associated with the Volume. This will be a comma delimited set of name value pairs which are themselves pipe delimited. - - - - - string - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # New-Volume "TestVolume" "This is a simple Volume test" 20 - - - Description - ----------- - - This command will create a new 20 gig Volume. - - - - - - - - - - - - - - - EXAMPLE 2 - - - - - - # New-Volume "TestVolume" "This is a simple Volume test" 20 "test|data", "another|test" - - - Description - ----------- - - This command will create a new 20 gig Volume with additional metadata - - - - - - - - - - - - - - - - - - - - - - - - Remove-Volume - - - This Cmdlet deletes an existing Block Storage Volume. - - - - - Remove - Volume - - - - - - - - - - - Remove-Volume - - - - - - VolumeId - - - The Volumes unique identifier. - - - - - string - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # Remove-Volume 12857174-99cf-40e9-999e-fb0fa2e84898 - - - Description - ----------- - - This command will remove a existing Volume with an Id = 12857174-99cf-40e9-999e-fb0fa2e84898. - - - - - - - - - - - - - - - - - - - - - - - - - Attach-Volume - - - This Cmdlet associates a Volume with an existing Server. - - - - - Attach - Volume - - - - - - - - - - - Attach-Volume - - - - - - id - - - The id of the target Server. - - - - - string - - - VolumeId - - - The Volumes unique identifier. - - - - - string - - - Device - - - The associations Device name. - - - - - string - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # Attach-Volume -s 12857174-99cf-40e9-999e-fb0fa2e84898 -v 7da74520-9d5e-427b-a508-213c84e69616 "/dev/vdp" - - - Description - ----------- - - This command will associate Volume 7da74520-9d5e-427b-a508-213c84e69616 to Server 12857174-99cf-40e9-999e-fb0fa2e84898 with an assigned device name of /dev/vdX. - - - - - - - - - - - - - - - - - - - - - - - Detach-Volume - - - This Cmdlet disassociates a Volume with an existing Server. - - - - - Detach - Volume - - - - - - - - - - - Detach-Volume - - - - - - Id - - - The id of the target Server. - - - - - string - - - VolumeId - - - The Volumes unique identifier. - - - - - string - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # Detach-Volume -v 7da74520-9d5e-427b-a508-213c84e69616 -s 4ee64397-1253-473c-a81d-bc23dceeef31 - - - Description - ----------- - - This command will disassociate Volume a508 from Server 4ee64397-1253-473c-a81d-bc23dceeef31. - - - - - - - - - - - - - - - - - - - - - - - New-Snapshot - - - This Cmdlet creates a new Block Storage Snapshot. - - - - - New - Snapshot - - - - - - - - - - - New-Snapshot - - - - - - Name - - - The name of the Snapshot to create. - - - - - string - - - Description - - - A quick description of the Snapshots contents. - - - - - string - - - VolumeId - - - The Id of the Volume that we're taking the snapshot of. - - - - - string - - - Force - - - Force - - - - - string - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # New-Snapshot -n "TestSnapshot" -d "This is a simple Snapshot test" -v 4ee64397-1253-473c-a81d-bc23dceeef31 - - - Description - ----------- - - This command will create a new snapshot of Volume 4ee64397-1253-473c-a81d-bc23dceeef31 - - - - - - - - - - - - - - - - - - - - - - - Remove-Snapshot - - - This Cmdlet deletes an existing Block Storage Snapshot. - - - - - Remove - Snapshot - - - - - - - - - - - Remove-Snapshot - - - - - - SnapshotId - - - The Snapshots unique identifier. - - - - - string - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # Remove-Snapshot -s 4ee64397-1253-473c-a81d-bc23dceeef31 - - - Description - ----------- - - This command will remove a existing Snapshot with an Id = 4ee64397-1253-473c-a81d-bc23dceeef31. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - New-Keypair - - - This Cmdlet creates a new keypair for the user. - - - - - New - Keypair - - - - - - - - - - - New-Keypair - - - - - - Name - - - The name of the Keypair to create. - - - - - string - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # New-Keypair "TestKey" - - - Description - ----------- - - This command will create a new Keypair named TestKey. - - - - - - - - - - - - - - - - - - - - - - - - Remove-Keypair - - - This Cmdlet deletes a previously created keypair for the user. - - - - - Remove - Keypair - - - - - - - - - - - Remove-Keypair - - - - - - Name - - - The name of the Keypair to delete. - - - - - string - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # Remove-Keypair "TestKey" - - - Description - ----------- - - This command will delete an existing Keypair named TestKey. - - - - - - - - - - - - - - - - - - - - - - - - Disassociate-IP - - - This Cmdlet releases a previously allocated IP address. - - - - - Disassociate - IP - - - - - - - - - - - Disassociate-IP - - - - - - ip - - - The IP address to release. - - - - - string - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # Disassociate-IP 4ee64397-1253-473c-a81d-bc23dceeef31 - - - Description - ----------- - - This command will release a previously allocated IP address. - - - - - - - - - - - - - - - - - - - - - - - - UnAssign-IP - - - This Cmdlet assigns an existing IP address to an existing Server. - - - - - UnAssign - IP - - - - - - - - - - - UnAssign-IP - - - - - - ip - - - The IP address to disassociate. - - - - - string - - - sid - - - The Server Id that will be disassociated from the supplied IP address. - - - - - string - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - #Unassign-IP "192.168.110.45" -s 4ee64397-1253-473c-a81d-bc23dceeef31 - - - Description - ----------- - - This command will remove the supplied IP address from server 4ee64397-1253-473c-a81d-bc23dceeef31 - - - - - - - - - - - - - - - - - - - - - - - - Assign-IP - - - This Cmdlet assigns an existing IP address to an existing Server. - - - - - Assign - IP - - - - - - - - - - - Assign-IP - - - - - - ip - - - The IP address to assign. - - - - - string - - - sid - - - The Server Id that will be assigned to. - - - - - string - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - #Assign-IP "192.168.110.45" -s 4ee64397-1253-473c-a81d-bc23dceeef31 - - - Description - ----------- - - This command will assign the supplied IP address to server 4ee64397-1253-473c-a81d-bc23dceeef31 - - - - - - - - - - - - - - - - - - - - - - - - New-CDN - - - This Cmdlet will create a new CDN entry for the specified Container. - - - - - New - CDN - - - - - - - - - - - New-CDN - - - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # New-CDN -n "TestContainer" - - - Description - ----------- - - Associates a new CDN entry for the existing Container called TestContainer. - - - - - - - - - - - - - - - - - - - - - - - - Remove-CDN - - - This Cmdlet will remove a CDN entry for the specified Container. - - - - - Remove - CDN - - - - - - - - - - - Remove-CDN - - - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # Remove-CDN -n "TestContainer" - - - Description - ----------- - - Disassociates the CDN entry for existing container TestContainer. - - - - - - - - - - - - - - - - - - - - - - - - List-CDN - - - This Cmdlet will list out all Containers that have associated CDN entries. - - - - - List - CDN - - - - - - - - - - - List-CDN - - - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # List-CDN - - - Description - ----------- - - This cmdlet will list out all Containers with associated CDN entries. - - - - - - - - - - - - - - - - - - - - - - - - Set-Zone - - - This Cmdlet will force subsequent cmdlets to utilize the Availability Zone supplied. - - - - - Set - Zone - - - - - - - - - - - Set-Zone - - - - - - z - - - The Availability ZoneID to be set. - - - - - string - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # Set-Zone 1 - - - Description - ----------- - - This command will cause all susequent Compute related IO to be directed to the AZ-2 Zone which has the Id of 1. The Id's for each Zone can be found by issueing the Get-Zones cmdlet. - - - - - - - - - - - - - - - - - - - - - - - - Set-ZoneColor - - - This command will set all output to a specific color when the User selects the Zone via Set-Zone. - - - - - Set - ZoneColor - - - - - - - - - - - Set-ZoneColor - - - - - - z - - - The Availability ZoneID to be set. - - - - - string - - - c - - - The color for the zones output. Valid values are "Black", "Blue", "Cyan", "DarkBlue", "DarkCyan", "DarkGray", "DarkGreen", "DarkMagenta", "DarkRed", "DarkYellow", "Gray", "Green", "Magenta", "Red", "White", and "Yellow". - - - - - string - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # Set-ZoneColor -z 1 -c Green - - - Description - ----------- - - This command will set all output to Green when the User selects the Zone via Set-Zone. - - - - - - - - - - - - - - - - - - - - - - - - Get-Zone - - - This Cmdlet will current Availability Zone being used. - - - - - Get - Zone - - - - - - - - - - - Get-Zone - - - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # Get-Zone - - - Description - ----------- - - This command will simply show the current Availability Zone in use. - - - - - - - - - - - - - - - - - - - - - - - - Associate-IP - - - This Cmdlet will request a new Floating IP address from the server. - - - - - Associate - IP - - - - - - - - - - - Associate-IP - - - - - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # Associate-IP - - - Description - ----------- - - Request a new Floating IP address from the server. - - - - - - - - - - - - - - - - - - - - - - - - Add-Rule - - - This Cmdlet creates a new Security Group Rule and assigns it to an existing Security Group - - - - - Add - Rule - - - - - - - - - - - Add-Rule - - - - - - d - - - Ingress or egress: The direction in which the security group rule is applied. For a compute instance, an ‘ingress’ security group rule matches traffic that is incoming (ingress) for that instance. An ‘egress’ rule is applied to traffic leaving the instance. - - - - - string - - - max - - - The maximum port number in the range that is matched by the security group rule. The port_range_min attribute constrains the port_range_max attribute. If the protocol is ICMP, this value must be an ICMP type. - - - - - string - - - min - - - The minimum port number in the range that is matched by the security group rule. If the protocol is TCP or UDP, this value must be less than or equal to the value of the port_range_max attribute. If the protocol is ICMP, this value must be an ICMP type. - - - - - string - - - p - - - The protocol that is matched by the security group rule. Valid values are null, tcp, udp, and icmp. - - - - - string - - - rgid - - - The remote group ID to be associated with this security group rule. - - - - - string - - - ripp - - - The remote IP prefix to be associated with this security group rule. - - - - - string - - - sgid - - - The Security GroupId used to apply this rule. - - - - - string - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # Add-Rule -min "80" -max "85" -d "ingress" -et -p icmp IPv4 -sgid 2076db17-a522-4506-91de-c6dd8e837028 - - - Description - ----------- - - This will create a new Security Group Rule affecting the tcp protocol from port 80 to 85 and assign it to SecurityGroup 2076db17-a522-4506-91de-c6dd8e837028. - - - - - - - - - - - - - - - - - - - - - - - - Remove-Rule - - - This Cmdlet will delete an existing Security Group Rule. - - - - - Remove - Rule - - - - - - - - - - - Remove-Rule - - - - - - id - - - The Security GroupRuleId used to remove the rule. - - - - - string - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # Remove-Rule -id 4ee64397-1253-473c-a81d-bc23dceeef31 - - - Description - ----------- - - Remove the SecurityGroupRule with an Id of 4ee64397-1253-473c-a81d-bc23dceeef31. - - - - - - - - - - - - - - - - - - - - - - - - New-SecurityGroup - - - This Cmdlet creates a new Security Group. - - - - - New - SecurityGroup - - - - - - - - - - - New-SecurityGroup - - - - - - n - - - The name of the new Security Group. - - - - - string - - - d - - - A brief description of the groups purpose. - - - - - string - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # New-SecurityGroup -n "TestGroup" -d "SomeDescription" - - - Description - ----------- - - This command will create a simple test Security Group. - - - - - - - - - - - - - - - - - - - - - - - - Remove-SecurityGroup - - - This Cmdlet will delete an existing Security Group. - - - - - Remove - SecurityGroup - - - - - - - - - - - Remove-SecurityGroup - - - - - - id - - - The identifier used to remove the Security Group. - - - - - string - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # Remove-SecurityGroup -id 4ee64397-1253-473c-a81d-bc23dceeef31 - - - Description - ----------- - - Remove the Security Group with an Id of 4ee64397-1253-473c-a81d-bc23dceeef31. - - - - - - - - - - - - - - - - - - - - - - - - Add-Metadata - - - This Cmdlet associates a set of key value pairs with a Server. - - - - - Add - Metadata - - - - - - - - - - - Add-Metadata - - - - - - md - - - A pipe delimited set of Name Value Pairs seperated by commas. "Namevalue1 | value1" , "NameValue2 | value2", "NameValue3 | value3" etc.. - - - - - string - - - s - - - The identifier (ServerId) used to associate this metadata with. If your currently viewing a Servers details this parameter may be ommited as it's supplied for you. - - - - - string - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # Add-Metadata -md "Namevalue1 | value1" , "NameValue2 | value2", "NameValue3 | value3" -s 4ee64397-1253-473c-a81d-bc23dceeef31 - - - Description - ----------- - - This command will add threee Name Value Pairs to Server 4ee64397-1253-473c-a81d-bc23dceeef31. - - - - - - - - - - - - - - - - - - - - - - - - New-Server - - - This Cmdlet creates a new Server. - - - - - New - Server - - - - - - - - - - - New-Server - - - - - - nid - - - A Comma seperated list of targeted network Ids. - - - - - string - - - az - - - Ther Servers Availability Zone - - - - - string - - - - n - - - The Servers name. - - - - - string - - - i - - - The identifier (ImageRefId) used to define this Server. - - - - - string - - - k - - - The name of a keypair to assign to the newly created Server. - - - - - string - - - sg - - - A comma delimited set of quoted SecurityGroup names that are to be applied to the newly created Server. - - - - - string - - - f - - - The identifier (FlavorRefId) used to define this Server. - - - - - string - - - p - - - A password may be specified when creating the server via this optional parameter. If a password is not specified, a randomly generated password will be assigned and returned in the response. - - - - - string - - - ip4 - - - ip4 based access address. - - - - - string - - - ip6 - - - ip6 based access address. - - - - - string - - - md - - - A pipe delimited set of Name Value Pairs seperated by commas. "Namevalue1 | value1" , "NameValue2 | value2", "NameValue3 | value3" etc.. - - - - - string - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # New-Server -n "TestServer" -p "gooblygook" -i "2111" -f "100" -md "Namevalue1 | value1" , "NameValue2 | value2", "NameValue3 | value3" -s 4ee64397-1253-473c-a81d-bc23dceeef31 - - - Description - ----------- - - This command will create a new server with some metadata. - - - - - - - - - - - - - - - EXAMPLE 2 - - - - - - # New-Server -n "TestServer" -p "gooblygook" -i "2111" -f "100" -s "2133" -k "testkey" - - - Description - ----------- - - This command will create a new server using the testkey keypair name. - - - - - - - - - - - - - - - - - - - - - - - - Reboot-Server - - - This cmdlet allows for either a soft or hard reboot of a server. With a soft reboot, the operating system is signaled to restart, which allows for a graceful shutdown of all processes. A hard reboot is the equivalent of power cycling the server. - - - - - Reboot - Server - - - - - - - - - - - Reboot-Server - - - - - - id - - - The Servers identifier. - - - - - string - - - - - - - - - - - - t - - - - - - With a soft reboot (SOFT), the operating system is signaled to restart, which allows for a graceful shutdown of all processes. A hard reboot (HARD) is the equivalent of power cycling the server. - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # Reboot-Server -s 4ee64397-1253-473c-a81d-bc23dceeef31 -t "SOFT" - - - Description - ----------- - Perform a soft reboot on the specified server - - - - - - - - - - - - - - - - - - - - - - - - Remove-Server - - - This cmdlet deletes an existing Server. - - - - - Remove - Server - - - - - - - - - - - Remove-Server - - - - - - id - - - The Servers identifier. - - - - - string - - - - - - - - - - - - t - - - - - - Deletes an existing Server. - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # Remove-Server -s 4ee64397-1253-473c-a81d-bc23dceeef31 - - - Description - ----------- - - Deletes the server with the identifier 4ee64397-1253-473c-a81d-bc23dceeef31. - - - - - - - - - - - - - - - - - - - - - - - - Reset-Password - - - This cmdlet resets the administrators password for the given Server. - - - - - Reset - Password - - - - - - - - - - - Reset-Password - - - - - - id - - - The Servers identifier. - - - - - string - - - - - - - - - - - - p - - - - - - The password which must meet the complexity requirements set by your OpenStack Compute provider. - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # Reset-Password -id 4ee64397-1253-473c-a81d-bc23dceeef31 -p "testpassword08" - - - Description - ----------- - - Resets the Admin password on Server 4ee64397-1253-473c-a81d-bc23dceeef31. - - - - - - - - - - - - - - - - - - - - - - - - Update-Server - - - This cmdlet allows you to change the Servers name property. - - - - - Update - Server - - - - - - - - - - - Update-Server - - - - - - id - - - The Servers identifier. - - - - - string - - - - - - - - - - - - n - - - - - - The new Server name. - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # Update-Server -id 4ee64397-1253-473c-a81d-bc23dceeef31 -n "NewName" - - - Description - ----------- - - Updates Server 4ee64397-1253-473c-a81d-bc23dceeef31 to the new name of NewName. - - - - - - - - - - - - - - - - - - - - - - - - New-Image - - - This Cmdlet crfeates a new Image based on an existing Server. - - - - - New - Image - - - - - - - - - - - New-Image - - - - - - md - - - A pipe delimited set of Name Value Pairs seperated by commas. "Namevalue1 | value1" , "NameValue2 | value2", "NameValue3 | value3" etc.. - - - - - string - - - s - - - The identifier (ServerId) to base the Image on. - - - - string - - - n - - - The name of the new Image. - - - - - string - - - - - - - - - - - - None - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMPLE 1 - - - - - - # New-Image -md "Namevalue1 | value1" , "NameValue2 | value2", "NameValue3 | value3" -s 4ee64397-1253-473c-a81d-bc23dceeef31 -n "TestImage" - - - Description - ----------- - - This command will add three Name Value Pairs to the image for Server 4ee64397-1253-473c-a81d-bc23dceeef31. - - - - - - - - - - - - - - - - - - - diff --git a/Openstack.Client.Powershell/bin/Release/Openstack.psd1 b/Openstack.Client.Powershell/bin/Release/Openstack.psd1 deleted file mode 100644 index 13128c2..0000000 --- a/Openstack.Client.Powershell/bin/Release/Openstack.psd1 +++ /dev/null @@ -1,21 +0,0 @@ -@{ -ModuleToProcess = 'Openstack.Client.Powershell.dll' -GUID="{847a28a4-6407-4aa6-8070-a4a51396db70}" -Author="Travis Plummer" -CompanyName="Hewlett-Packard Corporation" -Copyright="© Hewlett-Packard. All rights reserved." -ModuleVersion="1.0.0.0" -PowerShellVersion="2.0" -CLRVersion="4.0.30319" -FormatsToProcess="OpenstackShell.format.ps1xml" -FileList='Openstack.config' -RequiredAssemblies = 'Openstack.dll', 'Openstack.Common.dll' - -} - - - - - - - diff --git a/Openstack.Client.Powershell/bin/Release/OpenstackShell.format.ps1xml b/Openstack.Client.Powershell/bin/Release/OpenstackShell.format.ps1xml deleted file mode 100644 index b88bb75..0000000 --- a/Openstack.Client.Powershell/bin/Release/OpenstackShell.format.ps1xml +++ /dev/null @@ -1,1729 +0,0 @@ - - - - - - - service - - Openstack.Objects.Domain.Admin.Zone - - - - - - - 8 - left - - - - 20 - left - - - - 23 - left - - - - 10 - left - - - - - - - - Id - - - Name - - - ShellForegroundColor - - - IsDefault - - - - - - - - - service - - Openstack.Objects.Domain.BlockStorage.Snapshot - - - - - - - 3 - left - - - - 40 - left - - - - 20 - left - - - - 40 - left - - - - 22 - left - - - - 18 - left - - - - 7 - left - - - - 40 - left - - - - - - - QuickPickNumber - - - Id - - - DisplayName - - - Description - - - CreationDate - - - Status - - - Size - - - VolumeId - - - - - - - - - - - service - - Openstack.Objects.Domain.BlockStorage.VolumeBackup - - - - - - 3 - left - - - - 45 - left - - - - 20 - left - - - - 20 - left - - - - 8 - left - - - - 10 - left - - - - 10 - left - - - - 28 - left - - - - 18 - left - - - - 42 - left - - - - - - - QuickPickNumber - - - Id - - - Name - - - Container - - - Size - - - Status - - - AvailabilityZone - - - CreatedDate - - - ObjectCount - - - VolumeId - - - - - - - - - - service - - Openstack.Objects.Domain.BlockStorage.Volume - - - - - - 3 - left - - - - 45 - left - - - - 20 - left - - - - 30 - left - - - - 6 - left - - - - 8 - left - - - - 8 - left - - - - 22 - left - - - - 10 - left - - - - 10 - left - - - - 10 - left - - - - 30 - left - - - - 40 - left - - - - - - - QuickPickNumber - - - Id - - - Name - - - Description - - - VolumeType - - - Size - - - IsBootable - - - CreationDate - - - Status - - - AvailabilityZone - - - Device - - - AttachedTo - - - SourceVolid - - - - - - - - - KeyPair - - Openstack.Objects.Domain.Server.KeyPair - - - - - - - 40 - left - - - - - 50 - left - - - - - 330 - left - - - - - - - - - - Name - - - - Fingerprint - - - - PublicKey - - - - - - - - - - - - - Port - - Openstack.Objects.Domain.Networking.Port - - - - - - - - 3 - left - - - - - 40 - left - - - - - 13 - left - - - - - 6 - left - - - - 16 - left - - - - 25 - left - - - - 40 - left - - - - 40 - left - - - - 21 - left - - - - 16 - left - - - - - - - - - QuickPickNumber - - - Id - - - Name - - - Status - - - AdminStateUp - - - MacAddress - - - DeviceOwner - - - DeviceId - - - PortSecurityEnabled - - - BindingType - - - - - - - - - - Subnet - - Openstack.Objects.Domain.Networking.Subnet - - - - - - - 3 - left - - - - - 40 - left - - - - - 34 - left - - - - - 7 - left - - - - 24 - left - - - - 11 - left - - - - 24 - left - - - - - - - QuickPickNumber - - - Id - - - Name - - - EnableDHCP - - - Cidr - - - IPVersion - - - GatewayIP - - - - - - - - - service - - Openstack.Client.Powershell.Utility.ServiceProvider - - - - - - 15 - left - - - - 80 - left - - - - 7 - left - - - - 30 - left - - - - - - - Name - - - AuthenticationServiceURI - - - IsDefault - - - - DefaultTenantId - - - - - - - - - service - - Openstack.Objects.Domain.Networking.FloatingIP - - - - - - - 3 - left - - - - - 42 - left - - - - - 20 - left - - - - - 42 - left - - - - - 15 - left - - - - - 15 - left - - - - - 15 - left - - - - - - - - - - QuickPickNumber - - - - Id - - - - FloatingIPAddress - - - - FloatingNetworkId - - - - FixedIPAddress - - - - PortId - - - - RouterId - - - - - - - - - - StorageContainer - - Openstack.Objects.Domain.StorageContainer - - - - - - 40 - left - - - - - - - Name - - - - - - - - - Network - - Openstack.Objects.Domain.Networking.Network - - - - - - - - 3 - left - - - - - 40 - left - - - - - 13 - left - - - - - 6 - left - - - - - 6 - left - - - - - 6 - left - - - - - - - - - - QuickPickNumber - - - - Id - - - - Name - - - - IsExternal - - - - Shared - - - - PortSecurityEnabled - - - - - - - - - - service - - Openstack.Objects.Domain.Admin.Service - - - - - - - 20 - left - - - - - 27 - left - - - - - - - - - - Type - - - - Name - - - - - - - - - - process4 - - Openstack.Client.Powershell.Providers.ObjectStorage.StorageItemViewModel - - - - - - 47 - left - - - - 13 - left - - - - 25 - left - - - - 40 - left - - - - - - - Name - - - Size - - - LastModifiedDate - - - Type - - - - - - - - - - process4 - - Openstack.Storage.StorageObject - - - - - - 47 - left - - - - 13 - left - - - - 25 - left - - - - 40 - left - - - - - - - Name - - - Length - - - LastModified - - - ContentType - - - - - - - - - process5 - - Openstack.Storage.StorageFolder - - - - - - 47 - left - - - - - 40 - left - - - - - - - Name - - - - ContentType - - - - - - - - - Router - - Openstack.Objects.Domain.Networking.Router - - - - - - - 3 - left - - - - - 40 - left - - - - 47 - left - - - - - 13 - left - - - - - 14 - left - - - - - - - - - - - QuickPickNumber - - - - Id - - - Name - - - - Status - - - AdminStateUp - - - - - - - - - - - process - - Openstack.Client.Powershell.Providers.Common.BaseUIContainer - - - - - - - 15 - left - - - - - 100 - left - - - - - 13 - left - - - - - 40 - left - - - - - - - - - Name - - - - Description - - - ObjectType - - - Path - - - - - - - - - process - - Openstack.Administration.Domain.User - - - - - - - 15 - left - - - - - 20 - left - - - - - 20 - left - - - - - - - - - AccountId - - - - Username - - - Name - - - - - - - - - - process - - Openstack.Objects.Domain.Compute.Account - - - - - - - 15 - left - - - - - 20 - left - - - - - - - - - - Id - - - Name - - - - - - - - - - process - - Openstack.Administration.Domain.Group - - - - - - - 40 - left - - - - - 26 - left - - - - - 50 - left - - - - - - - - - GroupId - - - - Name - - - Description - - - - - - - - - - process - - Openstack.Objects.Domain.Compute.Server - - - - - - - - 3 - left - - - - - 40 - left - - - - - 40 - left - - - - - - 30 - left - - - - 25 - left - - - - 10 - left - - - - 15 - left - - - - - 100 - left - - - - - - - - QuickPickNumber - - - Id - - - - Name - - - CreationDate - - - LastUpdatedDate - - - KeyName - - - Status - - - DisplayIPAddresses - - - - - - - - - - - process - - Openstack.Objects.Domain.Compute.Image - - - - - - - - 3 - left - - - - - 40 - left - - - - - 70 - left - - - - - 25 - left - - - - - 25 - left - - - - - 15 - left - - - - - - - - - QuickPickNumber - - - - Id - - - - Name - - - - LastModified - - - - CreatedDate - - - - Status - - - - - - - - - - - process - - System.Collections.DictionaryEntry - - - - - - - 30 - left - - - - - 320 - left - - - - - - - - - - - Key - - - - Value - - - - - - - - - - - process - - Openstack.Objects.Domain.Security.SecurityGroup - - - - - - - 3 - left - - - - - 40 - left - - - - - 40 - left - - - - - 90 - left - - - - - 15 - left - - - - - - - - - QuickPickNumber - - - - Id - - - - Name - - - - Description - - - - TenantId - - - - - - - - - - - process - - Openstack.Objects.Domain.Compute.MetaDataElement - - - - - - - 20 - left - - - - - 20 - left - - - - - - - - - - - Key - - - - Value - - - - - - - - - - - - flavor - - Openstack.Objects.Domain.Compute.Flavor - - - - - - - 8 - left - - - - - 26 - left - - - - - 5 - left - - - - - 10 - left - - - - - - 11 - left - - - - - 11 - left - - - - - 5 - left - - - - - 5 - left - - - - - - - - - - - - - - Id - - - - Name - - - Disk - - - Ram - - - - RxtxCap - - - - RxtxQuota - - - - Swap - - - - Vcpus - - - - - - - - - - diff --git a/Openstack.Client.Powershell/obj/Debug/Openstack.Client.Powershell.csproj.FileListAbsolute.txt b/Openstack.Client.Powershell/obj/Debug/Openstack.Client.Powershell.csproj.FileListAbsolute.txt deleted file mode 100644 index 1e11e46..0000000 --- a/Openstack.Client.Powershell/obj/Debug/Openstack.Client.Powershell.csproj.FileListAbsolute.txt +++ /dev/null @@ -1,51 +0,0 @@ -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\bin\Release\Deployment\Aliases.txt -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\bin\Release\Deployment\ScratchPad\AnotherTest.txt -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\bin\Release\Deployment\CLI.config -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\bin\Release\Deployment\CLI.config.example -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\bin\Release\Deployment\OpenstackShell.format.ps1xml -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\bin\Release\Deployment\Microsoft.PowerShell_profile.ps1 -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\bin\Release\Deployment\CLIManifest.psd1 -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\bin\Release\Deployment\ReleaseNotes.xml -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\bin\Release\Openstack.Client.Powershell.dll.config -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\bin\Release\Openstack.Client.Powershell.dll -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\bin\Release\Openstack.Client.Powershell.pdb -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\bin\Release\AWSSDK.dll -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\bin\Release\Openstack.Common.dll -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\bin\Release\Openstack.Objects.dll -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\bin\Release\System.Net.Http.Formatting.dll -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\bin\Release\Newtonsoft.Json.dll -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\bin\Release\Openstack.Common.pdb -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\bin\Release\Openstack.Objects.pdb -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\bin\Release\AWSSDK.pdb -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\bin\Release\System.Net.Http.Formatting.xml -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\obj\Debug\Openstack.Client.Powershell.csprojResolveAssemblyReference.cache -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\obj\Debug\Openstack.Client.Powershell.g.resources -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\obj\Debug\Openstack.Client.Powershell.dll -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\obj\Debug\Openstack.Client.Powershell.pdb -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\bin\Release\BouncyCastle.Crypto.pdb -C:\Users\tplummer\Source\Repos\OpenStack-CLI\Openstack.Client.Powershell\bin\Release\Newtonsoft.Json.xml -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\obj\Debug\Openstack.Client.Powershell.csprojResolveAssemblyReference.cache -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\obj\Debug\Openstack.Client.Powershell.g.resources -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\obj\Debug\Openstack.Client.Powershell.dll -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\obj\Debug\Openstack.Client.Powershell.pdb -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\bin\Release\Deployment\Aliases.txt -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\bin\Release\Deployment\ScratchPad\AnotherTest.txt -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\bin\Release\Deployment\CLI.config -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\bin\Release\Deployment\CLI.config.example -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\bin\Release\Deployment\OpenstackShell.format.ps1xml -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\bin\Release\Deployment\Microsoft.PowerShell_profile.ps1 -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\bin\Release\Deployment\CLIManifest.psd1 -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\bin\Release\Deployment\ReleaseNotes.xml -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\bin\Release\Openstack.Client.Powershell.dll.config -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\bin\Release\Openstack.Client.Powershell.dll -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\bin\Release\Openstack.Client.Powershell.pdb -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\bin\Release\AWSSDK.dll -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\bin\Release\Newtonsoft.Json.dll -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\bin\Release\Openstack.Common.dll -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\bin\Release\Openstack.dll -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\bin\Release\System.Net.Http.Formatting.dll -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\bin\Release\Openstack.Common.pdb -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\bin\Release\Openstack.pdb -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\bin\Release\AWSSDK.pdb -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\bin\Release\Newtonsoft.Json.xml -C:\Users\tplummer\Source\Repos\Openstack-NewCLI\Openstack.Client.Powershell\bin\Release\System.Net.Http.Formatting.xml diff --git a/Openstack.Client.Powershell/obj/Debug/Openstack.Client.Powershell.csprojResolveAssemblyReference.cache b/Openstack.Client.Powershell/obj/Debug/Openstack.Client.Powershell.csprojResolveAssemblyReference.cache deleted file mode 100644 index eeebf1ecfbec467d5630408592529a04a1ddef0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45688 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 xw#J5k(rux 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 L|9Jl2E`k3K3|Xf< diff --git a/Openstack.Client.Powershell/obj/Debug/Openstack.Client.Powershell.g.resources b/Openstack.Client.Powershell/obj/Debug/Openstack.Client.Powershell.g.resources deleted file mode 100644 index 40d5d534889ae5583a97a40d637b96e55d26beb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 484 zcma)2OHRWu5S_9_;tnP(iIVh3sFYAD*ukP|QTM4kEfG!}`BTU-xB>S-f;|hi?6^X& zz_(8Vd4DFc4Bk!YxG#G+dJvBmvnw(f~N!mav2z zR_-0xf2U*f_?!&y3c=RRSYA7byy3~-Zo*}`%vV-rhQ_4?V~IAIGPYt?<0Y;#Ue7v{ zPwpdb^7R%umNa~wdPZ6Fwq>r+R+Ur+7Y+QU-P-+QH|n+rUic4mhtT~f?!*l`2^&t1 Iarm3^2Or>)KL7v# diff --git a/Openstack.Client.Powershell/obj/Debug/Openstack.Client.Powershell.pdb b/Openstack.Client.Powershell/obj/Debug/Openstack.Client.Powershell.pdb deleted file mode 100644 index fb724eedea1869c4a3a0324e402a2a3020f48fc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151040 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 bgsp~yi@-a_I~I7y0`FMh9Si*LvB3WYfn3{D diff --git a/Openstack.Client.Powershell/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/Openstack.Client.Powershell/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs deleted file mode 100644 index e69de29..0000000 diff --git a/Openstack.Client.Powershell/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/Openstack.Client.Powershell/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs deleted file mode 100644 index e69de29..0000000 diff --git a/Openstack.Client.Powershell/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/Openstack.Client.Powershell/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs deleted file mode 100644 index e69de29..0000000 diff --git a/Openstack.Client.Powershell/packages.config b/Openstack.Client.Powershell/packages.config index 38bec45..b3bc224 100644 --- a/Openstack.Client.Powershell/packages.config +++ b/Openstack.Client.Powershell/packages.config @@ -2,5 +2,9 @@ - + + + + + \ No newline at end of file diff --git a/Rackspace.Client.Powershell/Deployment/Rackspace.config b/Rackspace.Client.Powershell/Deployment/Rackspace.config index 19ae892..9606837 100644 --- a/Rackspace.Client.Powershell/Deployment/Rackspace.config +++ b/Rackspace.Client.Powershell/Deployment/Rackspace.config @@ -5,7 +5,7 @@ - + @@ -32,10 +32,14 @@ - - - - + + + + + + + + @@ -44,9 +48,9 @@ - + \ No newline at end of file diff --git a/Rackspace.Client.Powershell/Deployment/Rackspace.psd1 b/Rackspace.Client.Powershell/Deployment/Rackspace.psd1 index 330f49c..76ac6e9 100644 --- a/Rackspace.Client.Powershell/Deployment/Rackspace.psd1 +++ b/Rackspace.Client.Powershell/Deployment/Rackspace.psd1 @@ -8,7 +8,7 @@ ModuleVersion="1.0.0.0" PowerShellVersion="2.0" CLRVersion="4.0.30319" FileList='' -RequiredAssemblies = 'OpenStack.dll', 'OpenStack.Common.dll' +RequiredAssemblies = 'OpenStack.dll' } diff --git a/Rackspace.Client.Powershell/Rackspace.Openstack.Client.Powershell.csproj b/Rackspace.Client.Powershell/Rackspace.Openstack.Client.Powershell.csproj index 4b53047..4405a65 100644 --- a/Rackspace.Client.Powershell/Rackspace.Openstack.Client.Powershell.csproj +++ b/Rackspace.Client.Powershell/Rackspace.Openstack.Client.Powershell.csproj @@ -18,7 +18,7 @@ true full false - ..\..\..\..\Documents\WindowsPowerShell\Modules\Openstack\Rackspace\ + ..\..\..\..\..\Documents\WindowsPowerShell\Modules\Openstack\Rackspace\ DEBUG;TRACE prompt 4 @@ -32,6 +32,14 @@ 4 + + False + ..\packages\Newtonsoft.Json.6.0.2\lib\net45\Newtonsoft.Json.dll + + + False + ..\packages\OpenStack-SDK-DotNet.0.9.1.0\lib\net40\OpenStack.dll + @@ -39,6 +47,14 @@ True ..\packages\System.Management.Automation.6.1.7601.17515\lib\net45\System.Management.Automation.dll + + + ..\packages\Microsoft.Net.Http.2.2.22\lib\net45\System.Net.Http.Extensions.dll + + + ..\packages\Microsoft.Net.Http.2.2.22\lib\net45\System.Net.Http.Primitives.dll + + @@ -51,6 +67,7 @@ + Designer Always @@ -61,10 +78,6 @@ - - {b2c92371-b62b-45a2-adeb-edebefa3a75c} - Openstack - {32bac168-2ec8-4074-9e6d-8c13460dcfad} Openstack.Client.Powershell @@ -73,8 +86,13 @@ - copy .\Deployment\Rackspace.psd1 C:\Users\tplummer\Documents\WindowsPowerShell\Modules\Openstack\Rackspace + copy .\Deployment\Rackspace.psd1 C:\Users\tplummer\Documents\WindowsPowerShell\Modules\Openstack\Rackspace\Rackspace.psd1 + + + + +