diff --git a/.gitignore b/.gitignore
index b363c8808..a4f6e5283 100644
--- a/.gitignore
+++ b/.gitignore
@@ -80,3 +80,4 @@ docs/html/
packages
paket.exe
paket.lock
+paket.bootstrapper.exe
diff --git a/.paket/paket.targets b/.paket/paket.targets
new file mode 100644
index 000000000..0fd370f90
--- /dev/null
+++ b/.paket/paket.targets
@@ -0,0 +1,41 @@
+
+
+
+
+ true
+
+ true
+ $(MSBuildThisFileDirectory)
+ $(MSBuildThisFileDirectory)..\
+ /Library/Frameworks/Mono.framework/Commands/mono
+ mono
+
+
+
+ $(PaketToolsPath)paket.exe
+ $(PaketToolsPath)paket.bootstrapper.exe
+ "$(PaketExePath)"
+ $(MonoPath) --runtime=v4.0.30319 "$(PaketExePath)"
+ "$(PaketBootStrapperExePath)" $(PaketBootStrapperCommandArgs)
+ $(MonoPath) --runtime=v4.0.30319 $(PaketBootStrapperExePath) $(PaketBootStrapperCommandArgs)
+
+ $(MSBuildProjectDirectory)\paket.references
+ $(MSBuildStartupDirectory)\paket.references
+ $(MSBuildProjectFullPath).paket.references
+ $(PaketCommand) restore --references-files "$(PaketReferences)"
+ $(PaketBootStrapperCommand)
+
+ RestorePackages; $(BuildDependsOn);
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/NuGet.config b/NuGet.config
deleted file mode 100644
index 19982907e..000000000
--- a/NuGet.config
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/README.md b/README.md
index 11d338f38..920375f46 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,8 @@
-# OpenStack.NET
+# OpenStack.NET - Unsupported
-Need Help? Email us at [sdk-support@rackspace.com](mailto:sdk-support@rackspace.com).
+**This project is in-between maintainers.** Interested? Contact sdk-support@rackspace.com.
+[](https://www.myget.org/)
[](https://gitter.im/openstacknetsdk/openstack.net?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
OpenStack.NET is an OpenStack .NET SDK, written for the Microsoft .NET platform, is designed to enable developers to seamlessly work with
diff --git a/build.cmd b/build.cmd
index 468a85e74..1109b35c4 100644
--- a/build.cmd
+++ b/build.cmd
@@ -7,7 +7,9 @@ IF "%1"=="help" ( GOTO :help )
:parse
IF NOT "%1"=="" (
- IF /I "%1"=="/Configuration" (
+ IF /I "%1"=="/Version" (
+ SET VersionArg=/p:Version=%2
+ ) ELSE IF /I "%1"=="/Configuration" (
SET ConfigArg=/p:Configuration=%2
) ELSE (
SET TargetArg=/t:%1
@@ -33,7 +35,7 @@ if not defined VisualStudioVersion (
)
:build
-msbuild build\build.proj %TargetArg% %ConfigArg% /nologo
+msbuild build\build.proj %TargetArg% %ConfigArg% %VersionArg% /nologo
exit /b %ERRORLEVEL%
:help
diff --git a/build/build.proj b/build/build.proj
index 547282d62..602a6b129 100644
--- a/build/build.proj
+++ b/build/build.proj
@@ -3,15 +3,16 @@
Debug
-
- $(bamboo_GitVersion_NuGetVersion)
- 0.0.0-dev
-
- $(MSBuildThisFileDirectory.Replace('build\','src'))\packages\ILMerge.2.14.1208\tools\ILMerge.exe
- $(LocalAppData)\NuGet\NuGet.exe
+ 0.0.0-dev
+ 2.66.9
+ $(MSBuildThisFileDirectory.Replace('build\','.paket'))\paket.bootstrapper.exe
+ $(MSBuildThisFileDirectory.Replace('build\','.paket'))\paket.exe
+ $(MSBuildThisFileDirectory.Replace('build\','packages'))
+ $(PackagesFolder)\NuGet.CommandLine\tools\NuGet.exe
"$(MSBuildToolsPath)\MSBuild.exe"
- $(MSBuildThisFileDirectory.Replace('build\','src'))\packages\xunit.runner.console.2.0.0\tools\xunit.console.exe
- $(MSBuildThisFileDirectory.Replace('build\','src'))\packages\xunit.runner.console.2.0.0\tools\NUnitXml.xslt
+ $(PackagesFolder)\xunit.runner.console\tools\xunit.console.exe
+ $(PackagesFolder)\xunit.runner.console\tools\NUnitXml.xslt
+ $(PackagesFolder)\ILMerge\tools\ILMerge.exe
@@ -20,9 +21,10 @@
-
-
+
+
+
@@ -33,20 +35,20 @@
- $(MSBuildThisFileDirectory.Replace('build\','src'))\packages\EWSoftware.SHFB.2014.11.22-beta\tools
+ $(PackagesFolder)\EWSoftware.SHFB\tools
-
-
-
+
+
+
-
-
-
+
+
+
@@ -57,20 +59,20 @@
-
-
+
+
-
+
-
+
..\src\testing\migration\migration.sln
@@ -96,12 +98,12 @@
WorkingDirectory="..\src\corelib\bin\v4.0\$(Configuration)" />
-
+
-
+
@@ -113,7 +115,7 @@
Condition=" '$(ShouldPublishToNuGet)' == 'True' " />
-
+
diff --git a/myget.ps1 b/myget.ps1
new file mode 100644
index 000000000..e01edbec1
--- /dev/null
+++ b/myget.ps1
@@ -0,0 +1,2 @@
+.\build.cmd CI /Version ${env:GitVersion.NuGetVersion}
+exit $LastExitCode
diff --git a/paket.dependencies b/paket.dependencies
new file mode 100644
index 000000000..f3d2df6ac
--- /dev/null
+++ b/paket.dependencies
@@ -0,0 +1,48 @@
+source https://www.myget.org/F/openstacknetsdk/api/v2
+source https://www.nuget.org/api/v2
+redirects: on
+
+nuget EWSoftware.SHFB = 2014.11.22-beta
+nuget Flurl.Http.Signed ~> 0.7.0
+nuget Flurl.Signed ~> 1.0
+nuget ILMerge
+nuget Marvin.JsonPatch.Signed ~> 0.7.0
+nuget Moq
+nuget Newtonsoft.Json ~> 6.0
+nuget NuGet.CommandLine
+nuget SharpZipLib
+nuget SimpleRESTServices = 1.3.0.1
+nuget xunit
+nuget xunit.abstractions
+nuget xunit.assert
+nuget xunit.core
+nuget xunit.extensibility.core
+nuget xunit.runner.console
+nuget xunit.runner.visualstudio
+
+group History-1.5
+ redirects: on
+ source https://www.nuget.org/api/v2
+ framework: net45
+ strategy: min
+
+ nuget openstack.net = 1.5.0.2
+ nuget SimpleRESTServices = 1.3.0.1
+
+group History-1.4
+ redirects: on
+ source https://www.nuget.org/api/v2
+ framework: net45
+ strategy: min
+
+ nuget openstack.net = 1.4.0.2
+ nuget SimpleRESTServices = 1.3.0.1
+
+group History-1.3.6
+ redirects: on
+ source https://www.nuget.org/api/v2
+ framework: net35
+ strategy: min
+
+ nuget openstack.net = 1.3.6.1
+ nuget SimpleRESTServices = 1.3.0.1
\ No newline at end of file
diff --git a/paket.lock b/paket.lock
new file mode 100644
index 000000000..fc9e8a48a
--- /dev/null
+++ b/paket.lock
@@ -0,0 +1,253 @@
+REDIRECTS: ON
+NUGET
+ remote: https://www.myget.org/F/openstacknetsdk/api/v2
+ EWSoftware.SHFB (2014.11.22-beta)
+ remote: https://www.nuget.org/api/v2
+ Flurl.Http.Signed (0.7)
+ Flurl.Signed (>= 1.0.10) - framework: >= net45, portable-net45+sl50+win+wpa81+wp80
+ Microsoft.Bcl.Async (>= 1.0.168) - framework: portable-net45+sl50+win+wpa81+wp80
+ Microsoft.Net.Http (>= 2.2.22) - framework: portable-net45+sl50+win+wpa81+wp80
+ Newtonsoft.Json (>= 6.0.3) - framework: >= net45, portable-net45+sl50+win+wpa81+wp80
+ PCLStorage (>= 0.9.6) - framework: portable-net45+sl50+win+wpa81+wp80
+ Flurl.Signed (1.0.10)
+ ilmerge (2.14.1208)
+ Marvin.JsonPatch.Signed (0.7)
+ Newtonsoft.Json (>= 6.0.4)
+ Microsoft.Bcl (1.1.10) - framework: portable-net45+sl50+win+wpa81+wp80
+ Microsoft.Bcl.Build (>= 1.0.14)
+ Microsoft.Bcl.Async (1.0.168) - framework: portable-net45+sl50+win+wpa81+wp80
+ Microsoft.Bcl (>= 1.1.8)
+ Microsoft.Bcl.Build (1.0.21) - import_targets: false, framework: portable-net45+sl50+win+wpa81+wp80
+ Microsoft.Net.Http (2.2.29) - framework: portable-net45+sl50+win+wpa81+wp80
+ Microsoft.Bcl (>= 1.1.10)
+ Microsoft.Bcl.Build (>= 1.0.14)
+ Moq (4.2.1510.2205)
+ Newtonsoft.Json (6.0.8)
+ NuGet.CommandLine (3.4.3)
+ PCLStorage (1.0.2) - framework: portable-net45+sl50+win+wpa81+wp80
+ Microsoft.Bcl (>= 1.1.6) - framework: net10, net11, net20, net30, net35, net40, net40-full
+ Microsoft.Bcl.Async (>= 1.0.165) - framework: net10, net11, net20, net30, net35, net40, net40-full
+ SharpZipLib (0.86)
+ SimpleRESTServices (1.3.0.1)
+ Newtonsoft.Json (>= 5.0.6)
+ System.Collections (4.0.10) - framework: dnxcore50
+ System.Diagnostics.Debug (>= 4.0) - framework: dnxcore50
+ System.Resources.ResourceManager (>= 4.0) - framework: dnxcore50
+ System.Runtime (>= 4.0) - framework: dnxcore50
+ System.Runtime (>= 4.0.20) - framework: dnxcore50
+ System.Runtime.Extensions (>= 4.0) - framework: dnxcore50
+ System.Threading (>= 4.0) - framework: dnxcore50
+ System.Diagnostics.Contracts (4.0) - framework: dnxcore50
+ System.Runtime (>= 4.0) - framework: dnxcore50
+ System.Diagnostics.Debug (4.0.10) - framework: dnxcore50
+ System.Runtime (>= 4.0) - framework: dnxcore50
+ System.Globalization (4.0.10) - framework: dnxcore50
+ System.Runtime (>= 4.0) - framework: dnxcore50
+ System.IO (4.0.10) - framework: dnxcore50
+ System.Globalization (>= 4.0) - framework: dnxcore50
+ System.Runtime (>= 4.0.20) - framework: dnxcore50
+ System.Text.Encoding (>= 4.0) - framework: dnxcore50
+ System.Text.Encoding (>= 4.0.10) - framework: dnxcore50
+ System.Text.Encoding.Extensions (>= 4.0) - framework: dnxcore50
+ System.Threading (>= 4.0) - framework: dnxcore50
+ System.Threading.Tasks (>= 4.0) - framework: dnxcore50
+ System.Linq (4.0) - framework: dnxcore50
+ System.Collections (>= 4.0.10) - framework: dnxcore50
+ System.Diagnostics.Debug (>= 4.0.10) - framework: dnxcore50
+ System.Resources.ResourceManager (>= 4.0) - framework: dnxcore50
+ System.Runtime (>= 4.0.20) - framework: dnxcore50
+ System.Runtime.Extensions (>= 4.0.10) - framework: dnxcore50
+ System.Linq.Expressions (4.0.10) - framework: dnxcore50
+ System.Collections (>= 4.0) - framework: dnxcore50
+ System.Diagnostics.Debug (>= 4.0) - framework: dnxcore50
+ System.Globalization (>= 4.0) - framework: dnxcore50
+ System.IO (>= 4.0) - framework: dnxcore50
+ System.Linq (>= 4.0) - framework: dnxcore50
+ System.ObjectModel (>= 4.0) - framework: dnxcore50
+ System.Reflection (>= 4.0) - framework: dnxcore50
+ System.Reflection.Emit (>= 4.0) - framework: dnxcore50
+ System.Reflection.Extensions (>= 4.0) - framework: dnxcore50
+ System.Reflection.Primitives (>= 4.0) - framework: dnxcore50
+ System.Reflection.TypeExtensions (>= 4.0) - framework: dnxcore50
+ System.Resources.ResourceManager (>= 4.0) - framework: dnxcore50
+ System.Runtime (>= 4.0) - framework: dnxcore50
+ System.Runtime (>= 4.0.20) - framework: dnxcore50
+ System.Runtime.Extensions (>= 4.0) - framework: dnxcore50
+ System.Threading (>= 4.0) - framework: dnxcore50
+ System.ObjectModel (4.0.10) - framework: dnxcore50
+ System.Collections (>= 4.0.10) - framework: dnxcore50
+ System.Diagnostics.Debug (>= 4.0.10) - framework: dnxcore50
+ System.Resources.ResourceManager (>= 4.0) - framework: dnxcore50
+ System.Runtime (>= 4.0.20) - framework: dnxcore50
+ System.Threading (>= 4.0.10) - framework: dnxcore50
+ System.Private.Uri (4.0) - framework: dnxcore50
+ System.Reflection (4.0.10) - framework: dnxcore50
+ System.IO (>= 4.0) - framework: dnxcore50
+ System.Reflection.Primitives (>= 4.0) - framework: dnxcore50
+ System.Runtime (>= 4.0.20) - framework: dnxcore50
+ System.Reflection.Emit (4.0) - framework: dnxcore50
+ System.IO (>= 4.0) - framework: dnxcore50
+ System.Reflection (>= 4.0) - framework: dnxcore50
+ System.Reflection.Emit.ILGeneration (>= 4.0) - framework: dnxcore50
+ System.Reflection.Primitives (>= 4.0) - framework: dnxcore50
+ System.Runtime (>= 4.0) - framework: dnxcore50
+ System.Reflection.Emit.ILGeneration (4.0) - framework: dnxcore50
+ System.Reflection (>= 4.0) - framework: dnxcore50
+ System.Reflection.Primitives (>= 4.0) - framework: dnxcore50
+ System.Runtime (>= 4.0) - framework: dnxcore50
+ System.Reflection.Extensions (4.0) - framework: dnxcore50
+ System.Diagnostics.Debug (>= 4.0.10) - framework: dnxcore50
+ System.Reflection (>= 4.0) - framework: dnxcore50
+ System.Reflection (>= 4.0.10) - framework: dnxcore50
+ System.Reflection.Primitives (>= 4.0) - framework: dnxcore50
+ System.Reflection.TypeExtensions (>= 4.0) - framework: dnxcore50
+ System.Resources.ResourceManager (>= 4.0) - framework: dnxcore50
+ System.Runtime (>= 4.0) - framework: dnxcore50
+ System.Runtime (>= 4.0.20) - framework: dnxcore50
+ System.Runtime.Extensions (>= 4.0.10) - framework: dnxcore50
+ System.Reflection.Primitives (4.0) - framework: dnxcore50
+ System.Runtime (>= 4.0) - framework: dnxcore50
+ System.Threading (>= 4.0) - framework: dnxcore50
+ System.Reflection.TypeExtensions (4.0) - framework: dnxcore50
+ System.Diagnostics.Contracts (>= 4.0) - framework: dnxcore50
+ System.Diagnostics.Debug (>= 4.0.10) - framework: dnxcore50
+ System.Linq (>= 4.0) - framework: dnxcore50
+ System.Reflection (>= 4.0) - framework: dnxcore50
+ System.Reflection (>= 4.0.10) - framework: dnxcore50
+ System.Reflection.Primitives (>= 4.0) - framework: dnxcore50
+ System.Resources.ResourceManager (>= 4.0) - framework: dnxcore50
+ System.Runtime (>= 4.0) - framework: dnxcore50
+ System.Runtime (>= 4.0.20) - framework: dnxcore50
+ System.Runtime.Extensions (>= 4.0.10) - framework: dnxcore50
+ System.Resources.ResourceManager (4.0) - framework: dnxcore50
+ System.Globalization (>= 4.0) - framework: dnxcore50
+ System.Reflection (>= 4.0) - framework: dnxcore50
+ System.Reflection (>= 4.0.10) - framework: dnxcore50
+ System.Runtime (>= 4.0) - framework: dnxcore50
+ System.Runtime (>= 4.0.20) - framework: dnxcore50
+ System.Runtime (4.0.20) - framework: dnxcore50
+ System.Private.Uri (>= 4.0) - framework: dnxcore50
+ System.Runtime.Extensions (4.0.10) - framework: dnxcore50
+ System.Runtime (>= 4.0.20) - framework: dnxcore50
+ System.Text.Encoding (4.0.10) - framework: dnxcore50
+ System.Runtime (>= 4.0) - framework: dnxcore50
+ System.Text.Encoding.Extensions (4.0.10) - framework: dnxcore50
+ System.Runtime (>= 4.0) - framework: dnxcore50
+ System.Text.Encoding (>= 4.0.10) - framework: dnxcore50
+ System.Text.RegularExpressions (4.0.10) - framework: dnxcore50
+ System.Collections (>= 4.0.10) - framework: dnxcore50
+ System.Globalization (>= 4.0.10) - framework: dnxcore50
+ System.Resources.ResourceManager (>= 4.0) - framework: dnxcore50
+ System.Runtime (>= 4.0.20) - framework: dnxcore50
+ System.Runtime.Extensions (>= 4.0.10) - framework: dnxcore50
+ System.Threading (>= 4.0.10) - framework: dnxcore50
+ System.Threading (4.0.10) - framework: dnxcore50
+ System.Runtime (>= 4.0) - framework: dnxcore50
+ System.Threading.Tasks (>= 4.0) - framework: dnxcore50
+ System.Threading.Tasks (4.0.10) - framework: dnxcore50
+ System.Runtime (>= 4.0) - framework: dnxcore50
+ xunit (2.1)
+ xunit.assert (2.1)
+ xunit.core (2.1)
+ xunit.abstractions (2.0)
+ xunit.assert (2.1)
+ System.Collections (>= 4.0) - framework: dnxcore50
+ System.Diagnostics.Debug (>= 4.0) - framework: dnxcore50
+ System.Globalization (>= 4.0) - framework: dnxcore50
+ System.Linq (>= 4.0) - framework: dnxcore50
+ System.ObjectModel (>= 4.0) - framework: dnxcore50
+ System.Reflection (>= 4.0) - framework: dnxcore50
+ System.Reflection.Extensions (>= 4.0) - framework: dnxcore50
+ System.Runtime (>= 4.0) - framework: dnxcore50
+ System.Runtime.Extensions (>= 4.0) - framework: dnxcore50
+ System.Text.RegularExpressions (>= 4.0) - framework: dnxcore50
+ System.Threading.Tasks (>= 4.0) - framework: dnxcore50
+ xunit.core (2.1)
+ System.Collections (>= 4.0) - framework: dnxcore50
+ System.Diagnostics.Debug (>= 4.0) - framework: dnxcore50
+ System.Globalization (>= 4.0) - framework: dnxcore50
+ System.Linq (>= 4.0) - framework: dnxcore50
+ System.Reflection (>= 4.0) - framework: dnxcore50
+ System.Reflection.Extensions (>= 4.0) - framework: dnxcore50
+ System.Runtime (>= 4.0) - framework: dnxcore50
+ System.Runtime.Extensions (>= 4.0) - framework: dnxcore50
+ System.Threading.Tasks (>= 4.0) - framework: dnxcore50
+ xunit.abstractions (>= 2.0) - framework: dnxcore50
+ xunit.extensibility.core (2.1) - framework: >= net45, dnx451, dnxcore50, monoandroid, monotouch, portable-net45+win80+wp80+wpa81, xamarinios, winv4.5, wpv8.0, wpav8.1
+ xunit.extensibility.execution (2.1) - framework: >= net45, dnx451, dnxcore50, monoandroid, monotouch, portable-net45+win80+wp80+wpa81, xamarinios, winv4.5, wpv8.0, wpav8.1
+ xunit.extensibility.core (2.1)
+ xunit.abstractions (2.0)
+ xunit.extensibility.execution (2.1) - framework: >= net45, dnx451, dnxcore50, monoandroid, monotouch, portable-net45+win80+wp80+wpa81, xamarinios, winv4.5, wpv8.0, wpav8.1
+ System.Collections (>= 4.0) - framework: dnxcore50
+ System.Diagnostics.Debug (>= 4.0) - framework: dnxcore50
+ System.Globalization (>= 4.0) - framework: dnxcore50
+ System.IO (>= 4.0) - framework: dnxcore50
+ System.Linq (>= 4.0) - framework: dnxcore50
+ System.Linq.Expressions (>= 4.0) - framework: dnxcore50
+ System.Reflection (>= 4.0) - framework: dnxcore50
+ System.Reflection.Extensions (>= 4.0) - framework: dnxcore50
+ System.Runtime (>= 4.0) - framework: dnxcore50
+ System.Runtime.Extensions (>= 4.0) - framework: dnxcore50
+ System.Text.Encoding (>= 4.0) - framework: dnxcore50
+ System.Threading (>= 4.0) - framework: dnxcore50
+ System.Threading.Tasks (>= 4.0) - framework: dnxcore50
+ xunit.abstractions (>= 2.0) - framework: dnxcore50
+ xunit.extensibility.core (2.1) - framework: >= net45, dnx451, dnxcore50, monoandroid, monotouch, xamarinios, winv4.5, wpv8.0, wpav8.1
+ xunit.runner.console (2.1)
+ xunit.runner.visualstudio (2.1)
+
+GROUP History-1.3.6
+REDIRECTS: ON
+STRATEGY: MIN
+FRAMEWORK: NET35
+NUGET
+ remote: https://www.nuget.org/api/v2
+ Newtonsoft.Json (5.0.8)
+ openstack.net (1.3.6.1)
+ Newtonsoft.Json (>= 5.0.8)
+ SimpleRESTServices (>= 1.3.0.1)
+ TaskParallelLibrary (>= 1.0.2856)
+ SimpleRESTServices (1.3.0.1)
+ Newtonsoft.Json (>= 5.0.6)
+ TaskParallelLibrary (1.0.2856)
+
+GROUP History-1.4
+REDIRECTS: ON
+STRATEGY: MIN
+FRAMEWORK: NET45
+NUGET
+ remote: https://www.nuget.org/api/v2
+ Flurl.Http.Signed (0.6.2.2015062601)
+ Flurl.Signed (>= 1.0.8)
+ Newtonsoft.Json (>= 6.0.3)
+ Flurl.Signed (1.0.8)
+ Marvin.JsonPatch.Signed (0.7)
+ Newtonsoft.Json (>= 6.0.4)
+ Newtonsoft.Json (6.0.4)
+ openstack.net (1.4.0.2)
+ Flurl.Http.Signed (>= 0.6.2.2015062601)
+ Marvin.JsonPatch.Signed (>= 0.7)
+ Newtonsoft.Json (>= 6.0.4)
+ SimpleRESTServices (1.3.0.1)
+ SimpleRESTServices (1.3.0.1)
+ Newtonsoft.Json (>= 5.0.6)
+
+GROUP History-1.5
+REDIRECTS: ON
+STRATEGY: MIN
+FRAMEWORK: NET45
+NUGET
+ remote: https://www.nuget.org/api/v2
+ Flurl.Http.Signed (0.6.2.2015062601)
+ Flurl.Signed (>= 1.0.8)
+ Newtonsoft.Json (>= 6.0.3)
+ Flurl.Signed (1.0.8)
+ Marvin.JsonPatch.Signed (0.7)
+ Newtonsoft.Json (>= 6.0.4)
+ Newtonsoft.Json (6.0.4)
+ openstack.net (1.5.0.2)
+ Flurl.Http.Signed (>= 0.6.2.2015062601 < 0.7)
+ Marvin.JsonPatch.Signed (0.7)
+ Newtonsoft.Json (>= 6.0.1 < 7.0)
+ SimpleRESTServices (1.3.0.1)
+ Newtonsoft.Json (>= 5.0.6)
diff --git a/pre-myget.ps1 b/pre-myget.ps1
new file mode 100644
index 000000000..30defacb1
--- /dev/null
+++ b/pre-myget.ps1
@@ -0,0 +1 @@
+GitVersion /Output BuildServer /UpdateAssemblyInfo
diff --git a/samples/NuGet.config b/samples/NuGet.config
deleted file mode 100644
index acfd54951..000000000
--- a/samples/NuGet.config
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Documentation/AdditionalReferenceDocumentation.Portable.shfbproj b/src/Documentation/AdditionalReferenceDocumentation.Portable.shfbproj
index 2d0cf45db..110e478dd 100644
--- a/src/Documentation/AdditionalReferenceDocumentation.Portable.shfbproj
+++ b/src/Documentation/AdditionalReferenceDocumentation.Portable.shfbproj
@@ -27,10 +27,10 @@
-
-
-
-
+
+
+
+
OnlyWarningsAndErrors
HtmlHelp1
@@ -58,9 +58,6 @@
-
-
-
diff --git a/src/Documentation/AdditionalReferenceDocumentation.shfbproj b/src/Documentation/AdditionalReferenceDocumentation.shfbproj
index 4fae5189c..1f9e56bbb 100644
--- a/src/Documentation/AdditionalReferenceDocumentation.shfbproj
+++ b/src/Documentation/AdditionalReferenceDocumentation.shfbproj
@@ -27,10 +27,10 @@
-
-
-
-
+
+
+
+
@@ -53,9 +53,6 @@
-
-
-
\ No newline at end of file
diff --git a/src/Documentation/Documentation.v4.0.shfbproj b/src/Documentation/Documentation.v4.0.shfbproj
index 211b9721c..21cdb8ece 100644
--- a/src/Documentation/Documentation.v4.0.shfbproj
+++ b/src/Documentation/Documentation.v4.0.shfbproj
@@ -99,8 +99,25 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -180,9 +197,6 @@
-
-
-
\ No newline at end of file
diff --git a/src/Documentation/History/1.3.6/Documentation.1.3.6.shfbproj b/src/Documentation/History/1.3.6/Documentation.1.3.6.shfbproj
index 4f99ab45b..8d5e63f57 100644
--- a/src/Documentation/History/1.3.6/Documentation.1.3.6.shfbproj
+++ b/src/Documentation/History/1.3.6/Documentation.1.3.6.shfbproj
@@ -20,8 +20,8 @@
API Reference Documentation
en-US
-
-
+
+
OnlyWarningsAndErrors
Website
@@ -85,19 +85,16 @@
..\..\
-
-
-
-
- ..\..\..\packages\Newtonsoft.Json.5.0.8\lib\net35\Newtonsoft.Json.dll
+
+ ..\..\..\..\packages\history-1.3.6\Newtonsoft.Json\lib\net35\Newtonsoft.Json.dll
True
-
- ..\..\..\packages\SimpleRESTServices.1.3.0.1\lib\net35\SimpleRESTServices.dll
+
+ ..\..\..\..\packages\history-1.3.6\SimpleRESTServices\lib\net35\SimpleRESTServices.dll
True
-
- ..\..\..\packages\TaskParallelLibrary.1.0.2856.0\lib\Net35\System.Threading.dll
+
+ ..\..\..\..\packages\history-1.3.6\TaskParallelLibrary\lib\Net35\System.Threading.dll
True
@@ -110,4 +107,4 @@
-
+
\ No newline at end of file
diff --git a/src/Documentation/History/1.3.6/packages.config b/src/Documentation/History/1.3.6/packages.config
deleted file mode 100644
index 5dcd6cfa9..000000000
--- a/src/Documentation/History/1.3.6/packages.config
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/src/Documentation/History/1.4/Documentation.1.4.shfbproj b/src/Documentation/History/1.4/Documentation.1.4.shfbproj
index f69808eb3..898868109 100644
--- a/src/Documentation/History/1.4/Documentation.1.4.shfbproj
+++ b/src/Documentation/History/1.4/Documentation.1.4.shfbproj
@@ -20,8 +20,8 @@
API Reference Documentation
en-US
-
-
+
+
OnlyWarningsAndErrors
Website
@@ -85,31 +85,28 @@
..\..\
-
-
-
-
- ..\..\..\packages\Flurl.Signed.1.0.8\lib\portable-net40+sl50+win+wpa81+wp80+MonoAndroid10+MonoTouch10\Flurl.dll
+
+ ..\..\..\..\packages\history-1.4\Flurl.Signed\lib\portable-net40+sl50+win+wpa81+wp80+MonoAndroid10+MonoTouch10\Flurl.dll
True
-
- ..\..\..\packages\Flurl.Http.Signed.0.6.2.2015062601\lib\net45\Flurl.Http.dll
+
+ ..\..\..\..\packages\history-1.4\Flurl.Http.Signed\lib\net45\Flurl.Http.dll
True
-
- ..\..\..\packages\Marvin.JsonPatch.Signed.0.7.0\lib\portable-net40+win+wpa81\Marvin.JsonPatch.dll
+
+ ..\..\..\..\packages\history-1.4\Marvin.JsonPatch.Signed\lib\portable-net40+win+wpa81\Marvin.JsonPatch.dll
True
-
- ..\..\..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll
+
+ ..\..\..\..\packages\history-1.4\Newtonsoft.Json\lib\net45\Newtonsoft.Json.dll
True
-
- ..\..\..\packages\SimpleRESTServices.1.3.0.1\lib\net35\SimpleRESTServices.dll
+
+ ..\..\..\..\packages\history-1.4\SimpleRESTServices\lib\net35\SimpleRESTServices.dll
True
-
- ..\..\..\packages\TaskParallelLibrary.1.0.2856.0\lib\Net35\System.Threading.dll
+
+ ..\..\..\..\packages\history-1.4\TaskParallelLibrary\lib\Net35\System.Threading.dll
True
@@ -122,4 +119,4 @@
-
+
\ No newline at end of file
diff --git a/src/Documentation/History/1.4/packages.config b/src/Documentation/History/1.4/packages.config
deleted file mode 100644
index c35eb401b..000000000
--- a/src/Documentation/History/1.4/packages.config
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Documentation/History/1.5/Documentation.1.5.shfbproj b/src/Documentation/History/1.5/Documentation.1.5.shfbproj
index 9c8bc1711..910d0bbef 100644
--- a/src/Documentation/History/1.5/Documentation.1.5.shfbproj
+++ b/src/Documentation/History/1.5/Documentation.1.5.shfbproj
@@ -20,8 +20,8 @@
API Reference Documentation
en-US
-
-
+
+
OnlyWarningsAndErrors
Website
@@ -85,31 +85,28 @@
..\..\
-
-
-
-
- ..\..\..\packages\Flurl.Signed.1.0.8\lib\portable-net40+sl50+win+wpa81+wp80+MonoAndroid10+MonoTouch10\Flurl.dll
+
+ ..\..\..\..\packages\history-1.5\Flurl.Signed\lib\portable-net40+sl50+win+wpa81+wp80+MonoAndroid10+MonoTouch10\Flurl.dll
True
-
- ..\..\..\packages\Flurl.Http.Signed.0.6.2.2015062601\lib\net45\Flurl.Http.dll
+
+ ..\..\..\..\packages\history-1.5\Flurl.Http.Signed\lib\net45\Flurl.Http.dll
True
-
- ..\..\..\packages\Marvin.JsonPatch.Signed.0.7.0\lib\portable-net40+win+wpa81\Marvin.JsonPatch.dll
+
+ ..\..\..\..\packages\history-1.5\Marvin.JsonPatch.Signed\lib\portable-net40+win+wpa81\Marvin.JsonPatch.dll
True
-
- ..\..\..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll
+
+ ..\..\..\..\packages\history-1.5\Newtonsoft.Json\lib\net45\Newtonsoft.Json.dll
True
-
- ..\..\..\packages\SimpleRESTServices.1.3.0.1\lib\net35\SimpleRESTServices.dll
+
+ ..\..\..\..\packages\history-1.5\SimpleRESTServices\lib\net35\SimpleRESTServices.dll
True
-
- ..\..\..\packages\TaskParallelLibrary.1.0.2856.0\lib\Net35\System.Threading.dll
+
+ ..\..\..\..\packages\history-1.5\TaskParallelLibrary\lib\Net35\System.Threading.dll
True
diff --git a/src/Documentation/History/1.5/packages.config b/src/Documentation/History/1.5/packages.config
deleted file mode 100644
index a2150cdfc..000000000
--- a/src/Documentation/History/1.5/packages.config
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Documentation/History/Current/Documentation.Current.shfbproj b/src/Documentation/History/Current/Documentation.Current.shfbproj
index 9162374a8..114c2b182 100644
--- a/src/Documentation/History/Current/Documentation.Current.shfbproj
+++ b/src/Documentation/History/Current/Documentation.Current.shfbproj
@@ -93,9 +93,6 @@
False
..\..\
-
-
-
diff --git a/src/Documentation/History/Current/packages.config b/src/Documentation/History/Current/packages.config
deleted file mode 100644
index 445d1f16e..000000000
--- a/src/Documentation/History/Current/packages.config
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/src/Documentation/NuGet.config b/src/Documentation/NuGet.config
deleted file mode 100644
index 278737ecf..000000000
--- a/src/Documentation/NuGet.config
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/Documentation/packages.config b/src/Documentation/packages.config
deleted file mode 100644
index b915eaadf..000000000
--- a/src/Documentation/packages.config
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/src/Samples/CPPCodeSamples/CPPCodeSamples.vcxproj b/src/Samples/CPPCodeSamples/CPPCodeSamples.vcxproj
index 641d3239e..6fc77e3ad 100644
--- a/src/Samples/CPPCodeSamples/CPPCodeSamples.vcxproj
+++ b/src/Samples/CPPCodeSamples/CPPCodeSamples.vcxproj
@@ -40,7 +40,6 @@
-
true
diff --git a/src/Samples/FSharpCodeSamples/FSharpCodeSamples.fsproj b/src/Samples/FSharpCodeSamples/FSharpCodeSamples.fsproj
index 376f0d377..d4752e391 100644
--- a/src/Samples/FSharpCodeSamples/FSharpCodeSamples.fsproj
+++ b/src/Samples/FSharpCodeSamples/FSharpCodeSamples.fsproj
@@ -54,7 +54,7 @@
-
+
@@ -62,14 +62,6 @@
True
-
- ..\..\packages\Newtonsoft.Json.6.0.4\lib\net40\Newtonsoft.Json.dll
- True
-
-
- ..\..\packages\SimpleRESTServices.1.3.0.1-json6\lib\net40\SimpleRESTServices.dll
- True
-
@@ -88,4 +80,90 @@
-->
+
+
+
+
+
+ ..\..\..\packages\Newtonsoft.Json\lib\net20\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Newtonsoft.Json\lib\net35\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Newtonsoft.Json\lib\net40\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Newtonsoft.Json\lib\net45\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Newtonsoft.Json\lib\netcore45\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Newtonsoft.Json\lib\portable-net40+sl5+wp80+win8+wpa81\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Newtonsoft.Json\lib\portable-net45+wp80+win8+wpa81+aspnetcore50\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\SimpleRESTServices\lib\net35\SimpleRESTServices.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\SimpleRESTServices\lib\net40\SimpleRESTServices.dll
+ True
+ True
+
+
+
+
\ No newline at end of file
diff --git a/src/Samples/FSharpCodeSamples/app.config b/src/Samples/FSharpCodeSamples/app.config
index 44298137a..a38c807f2 100644
--- a/src/Samples/FSharpCodeSamples/app.config
+++ b/src/Samples/FSharpCodeSamples/app.config
@@ -1,11 +1,10 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+ True
+
+
+
+
\ No newline at end of file
diff --git a/src/Samples/FSharpCodeSamples/packages.config b/src/Samples/FSharpCodeSamples/packages.config
deleted file mode 100644
index 37f0597d1..000000000
--- a/src/Samples/FSharpCodeSamples/packages.config
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Samples/FSharpCodeSamples/paket.references b/src/Samples/FSharpCodeSamples/paket.references
new file mode 100644
index 000000000..c74a3de10
--- /dev/null
+++ b/src/Samples/FSharpCodeSamples/paket.references
@@ -0,0 +1,2 @@
+Newtonsoft.Json
+SimpleRESTServices
\ No newline at end of file
diff --git a/src/corelib/Compute/v2_1/IPProtocol.cs b/src/corelib/Compute/v2_1/IPProtocol.cs
index 2c8a87b40..5455a39c7 100644
--- a/src/corelib/Compute/v2_1/IPProtocol.cs
+++ b/src/corelib/Compute/v2_1/IPProtocol.cs
@@ -1,30 +1,8 @@
-using OpenStack.Serialization;
-
namespace OpenStack.Compute.v2_1
{
///
/// Internet Protocols.
///
- public class IPProtocol : StringEnumeration
- {
- ///
- protected IPProtocol(string displayName)
- : base(displayName)
- { }
-
- ///
- /// ICMP
- ///
- public static readonly IPProtocol ICMP = new IPProtocol("icmp");
-
- ///
- /// TCP
- ///
- public static readonly IPProtocol TCP = new IPProtocol("tcp");
-
- ///
- /// UDP
- ///
- public static readonly IPProtocol UDP = new IPProtocol("udp");
- }
+ public class IPProtocol : Networking.v2.Serialization.IPProtocol
+ { }
}
\ No newline at end of file
diff --git a/src/corelib/Compute/v2_1/Image.cs b/src/corelib/Compute/v2_1/Image.cs
index 8872d330c..c0c2bcee6 100644
--- a/src/corelib/Compute/v2_1/Image.cs
+++ b/src/corelib/Compute/v2_1/Image.cs
@@ -40,19 +40,19 @@ public Image()
/// The minimum disk size in GB that is required to boot the image.
///
[JsonProperty("minDisk")]
- public int MinimumDiskSize { get; set; }
+ public Int64 MinimumDiskSize { get; set; }
///
/// The minimum amount of RAM in MB that is required to boot the image.
///
[JsonProperty("minRam")]
- public int MinimumMemorySize { get; set; }
+ public Int64 MinimumMemorySize { get; set; }
///
/// The size of the image data, in bytes.
///
[JsonProperty("OS-EXT-IMG-SIZE:size")]
- public int? Size { get; set; }
+ public Int64? Size { get; set; }
///
/// The build completion progress, as a percentage.
@@ -111,7 +111,7 @@ public ImageType Type
{
return WaitForStatus(ImageStatus.Active, refreshDelay, timeout, progress, cancellationToken);
}
-
+
///
/// When this instance was not constructed by the , as it is missing the appropriate internal state to execute service calls.
public override async Task WaitUntilDeletedAsync(TimeSpan? refreshDelay = null, TimeSpan? timeout = null, IProgress progress = null, CancellationToken cancellationToken = default(CancellationToken))
diff --git a/src/corelib/ContentDeliveryNetworks/v1/ServiceOperationFailedException.cs b/src/corelib/ContentDeliveryNetworks/v1/ServiceOperationFailedException.cs
index 689de1c47..ba8f35596 100644
--- a/src/corelib/ContentDeliveryNetworks/v1/ServiceOperationFailedException.cs
+++ b/src/corelib/ContentDeliveryNetworks/v1/ServiceOperationFailedException.cs
@@ -27,7 +27,7 @@ public ServiceOperationFailedException(IEnumerable errors)
/// The that contains contextual information about the source or destination.
private ServiceOperationFailedException(SerializationInfo info, StreamingContext context) : base(info, context)
{
- Errors = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Deserialize>(info.GetString("service_errors"));
+ Errors = OpenStackNet.Deserialize>(info.GetString("service_errors"));
}
///
@@ -48,7 +48,7 @@ private ServiceOperationFailedException(SerializationInfo info, StreamingContext
public override void GetObjectData(SerializationInfo info, StreamingContext context)
{
// ReSharper disable once ExceptionNotDocumented
- info.AddValue("service_errors", OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Serialize(Errors));
+ info.AddValue("service_errors", OpenStackNet.Serialize(Errors));
base.GetObjectData(info, context);
}
}
diff --git a/src/corelib/Core/Providers/OpenStackIdentityProvider.cs b/src/corelib/Core/Providers/OpenStackIdentityProvider.cs
index d5f48a6c1..ee08b700d 100644
--- a/src/corelib/Core/Providers/OpenStackIdentityProvider.cs
+++ b/src/corelib/Core/Providers/OpenStackIdentityProvider.cs
@@ -1,4 +1,5 @@
using System.Collections.Generic;
+using Newtonsoft.Json;
using OpenStack;
using OpenStack.Authentication;
@@ -109,11 +110,12 @@ public override UserAccess GetUserAccess(CloudIdentity identity, bool forceCache
if (response == null || response.Data == null)
return null;
- JToken userAccessObject = response.Data["access"];
- if (userAccessObject == null)
+ // The defalut json serialization is helpfully formatting the expires date string. Use our custom serializer for this part to prevent chaos of timezone proportions.
+ var rawJson = response.Data["access"]?.ToString(Formatting.None);
+ if (rawJson == null)
return null;
- UserAccess access = userAccessObject.ToObject();
+ UserAccess access = OpenStackNet.Deserialize(rawJson);
if (access == null || access.Token == null)
return null;
diff --git a/src/corelib/Networking/v2/IPProtocol.cs b/src/corelib/Networking/v2/IPProtocol.cs
new file mode 100644
index 000000000..3a1f37096
--- /dev/null
+++ b/src/corelib/Networking/v2/IPProtocol.cs
@@ -0,0 +1,8 @@
+using OpenStack.Networking.v2.Serialization;
+
+namespace OpenStack.Networking.v2
+{
+ ///
+ public class IPProtocol : IPProtocol
+ { }
+}
\ No newline at end of file
diff --git a/src/corelib/Networking/v2/Layer3/NetworkingService_Layer3_Extensions.cs b/src/corelib/Networking/v2/Layer3/NetworkingService_Layer3_Extensions.cs
index 4cff952a9..0ad8e74bf 100644
--- a/src/corelib/Networking/v2/Layer3/NetworkingService_Layer3_Extensions.cs
+++ b/src/corelib/Networking/v2/Layer3/NetworkingService_Layer3_Extensions.cs
@@ -6,6 +6,8 @@
using OpenStack.Networking.v2.Serialization;
using OpenStack.Serialization;
using OpenStack.Synchronous.Extensions;
+using Flurl.Extensions;
+using Flurl.Http;
namespace OpenStack.Networking.v2.Layer3
{
@@ -102,6 +104,20 @@ public static class NetworkingService_Layer3_Extensions
return service._networkingApiBuilder.DeleteFloatingIPAsync(floatingIPId, cancellationToken);
}
#endregion
+
+ #region Security Groups
+ ///
+ public static async Task> ListSecurityGroupsAsync(this NetworkingService service, SecurityGroupListOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
+ {
+ return await service._networkingApiBuilder.ListSecurityGroupsAsync(options, cancellationToken).ConfigureAwait(false);
+ }
+
+ ///
+ public static async Task> ListSecurityGroupRulesAsync(this NetworkingService service, SecurityGroupRuleListOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
+ {
+ return await service._networkingApiBuilder.ListSecurityGroupRulesAsync(options, cancellationToken).ConfigureAwait(false);
+ }
+ #endregion
}
}
@@ -200,5 +216,19 @@ public static void DeleteFloatingIP(this NetworkingService service, Identifier f
service._networkingApiBuilder.DeleteFloatingIPAsync(floatingIPId).ForceSynchronous();
}
#endregion
+
+ #region Security Groups
+ ///
+ public static IEnumerable ListSecurityGroups(this NetworkingService service, SecurityGroupListOptions options = null)
+ {
+ return service.ListSecurityGroupsAsync(options).ForceSynchronous();
+ }
+ ///
+ public static IEnumerable ListSecurityGroupRules(this NetworkingService service, SecurityGroupRuleListOptions options = null)
+ {
+ return service.ListSecurityGroupRulesAsync(options).ForceSynchronous();
+ }
+ #endregion
+
}
}
diff --git a/src/corelib/Networking/v2/Layer3/SecurityGroup.cs b/src/corelib/Networking/v2/Layer3/SecurityGroup.cs
new file mode 100644
index 000000000..03e27eabd
--- /dev/null
+++ b/src/corelib/Networking/v2/Layer3/SecurityGroup.cs
@@ -0,0 +1,43 @@
+using System.Collections.Generic;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using OpenStack.Serialization;
+
+namespace OpenStack.Networking.v2.Layer3
+{
+ ///
+ /// Represents the security group of the
+ ///
+ [JsonConverterWithConstructor(typeof(RootWrapperConverter), "security_group")]
+ public class SecurityGroup : IHaveExtraData, IServiceResource
+ {
+ ///
+ /// The security group description
+ ///
+ [JsonProperty("description")]
+ public string Description;
+
+ ///
+ /// The UUID of security group
+ ///
+ [JsonProperty("id")]
+ public Identifier Id;
+
+ ///
+ /// The security group name
+ ///
+ [JsonProperty("name")]
+ public string Name;
+
+ ///
+ /// A list of objects.
+ ///
+ [JsonProperty("security_group_rules")]
+ public IList SecurityGroupRules;
+
+ [JsonExtensionData]
+ IDictionary IHaveExtraData.Data { get; set; } = new Dictionary();
+
+ object IServiceResource.Owner { get; set; }
+ }
+}
diff --git a/src/corelib/Networking/v2/Layer3/SecurityGroupListOptions.cs b/src/corelib/Networking/v2/Layer3/SecurityGroupListOptions.cs
new file mode 100644
index 000000000..47ed19ba6
--- /dev/null
+++ b/src/corelib/Networking/v2/Layer3/SecurityGroupListOptions.cs
@@ -0,0 +1,26 @@
+using System.Collections.Generic;
+
+namespace OpenStack.Networking.v2.Layer3
+{
+ ///
+ /// Optional filter and paging options when listing security groups.
+ ///
+ public class SecurityGroupListOptions : FilterOptions
+ {
+ ///
+ /// Filter by the group name.
+ ///
+ public string Name { get; set; }
+
+ ///
+ protected override IDictionary BuildQueryString()
+ {
+ var queryString = new Dictionary
+ {
+ ["name"] = Name
+ };
+
+ return queryString;
+ }
+ }
+}
diff --git a/src/corelib/Networking/v2/Layer3/SecurityGroupRule.cs b/src/corelib/Networking/v2/Layer3/SecurityGroupRule.cs
new file mode 100644
index 000000000..04c46f79c
--- /dev/null
+++ b/src/corelib/Networking/v2/Layer3/SecurityGroupRule.cs
@@ -0,0 +1,82 @@
+using System.Collections.Generic;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using OpenStack.Serialization;
+
+namespace OpenStack.Networking.v2.Layer3
+{
+ ///
+ ///
+ ///
+ [JsonConverterWithConstructor(typeof(RootWrapperConverter), "security_group_rule")]
+ public class SecurityGroupRule : IHaveExtraData, IServiceResource
+ {
+ ///
+ /// ingress or egress: the direction in which the security group rule is applied.
+ /// For a compute instance, an ingress security group rule is applied to incoming (ingress) traffic for that instance.
+ /// An egress rule is applied to traffic leaving the instance.
+ ///
+ [JsonProperty("direction")]
+ public TrafficDirection Direction;
+
+ ///
+ /// The internet protocol version. Addresses represented in CIDR must match the ingress or egress rules.
+ ///
+ [JsonProperty("ethertype")]
+ public IPVersion Ethertype;
+
+ ///
+ /// The UUID of the security group rule.
+ ///
+ [JsonProperty("id")]
+ public Identifier Id;
+
+ ///
+ /// 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 port_range_max attribute value.
+ /// If the protocol is ICMP, this value must be an ICMP type.
+ ///
+ [JsonProperty("port_range_min")]
+ public int MinPort { get; set; }
+
+ ///
+ /// 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.
+ ///
+ [JsonProperty("port_range_max")]
+ public int MaxPort { get; set; }
+
+ ///
+ /// The protocol that is matched by the security group rule.
+ ///
+ [JsonProperty("protocol")]
+ public IPProtocol Protocol;
+
+ ///
+ /// The remote group UUID to associate with this security group rule.
+ /// You can specify either the remote_group_id or remote_ip_prefix attribute in the request body.
+ ///
+ [JsonProperty("remote_group_id")]
+ public Identifier RemoteGroupId;
+
+ ///
+ /// The remote IP prefix or CIDR to associate with this security group rule.
+ /// You can specify either the remote_group_id or remote_ip_prefix attribute in the request body.
+ /// This attribute value matches the IP prefix as the source IP address of the IP packet.
+ ///
+ [JsonProperty("remote_ip_prefix")]
+ public string RemoteCIDR;
+
+ ///
+ /// The UUId of security group
+ ///
+ [JsonProperty("security_group_id")]
+ public Identifier SecurityGroupId;
+
+ [JsonExtensionData]
+ IDictionary IHaveExtraData.Data { get; set; } = new Dictionary();
+
+ object IServiceResource.Owner { get; set; }
+ }
+}
diff --git a/src/corelib/Networking/v2/Layer3/SecurityGroupRuleListOptions.cs b/src/corelib/Networking/v2/Layer3/SecurityGroupRuleListOptions.cs
new file mode 100644
index 000000000..32144f2c5
--- /dev/null
+++ b/src/corelib/Networking/v2/Layer3/SecurityGroupRuleListOptions.cs
@@ -0,0 +1,26 @@
+using System.Collections.Generic;
+
+namespace OpenStack.Networking.v2.Layer3
+{
+ ///
+ /// Optional filter and paging options when listing security group rules.
+ ///
+ public class SecurityGroupRuleListOptions : FilterOptions
+ {
+ ///
+ /// Filter by the group name.
+ ///
+ public TrafficDirection Direction { get; set; }
+
+ ///
+ protected override IDictionary BuildQueryString()
+ {
+ var queryString = new Dictionary
+ {
+ ["direction"] = Direction
+ };
+
+ return queryString;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/corelib/Networking/v2/NetworkingApiBuilder.cs b/src/corelib/Networking/v2/NetworkingApiBuilder.cs
index cc86c88d0..d5a2fbaf1 100644
--- a/src/corelib/Networking/v2/NetworkingApiBuilder.cs
+++ b/src/corelib/Networking/v2/NetworkingApiBuilder.cs
@@ -384,7 +384,7 @@ public NetworkingApiBuilder(IServiceType serviceType, IAuthenticationProvider au
}
#endregion
- #region Level 3 Extension
+ #region Layer 3 Extension
#region Routers
///
@@ -667,6 +667,80 @@ public NetworkingApiBuilder(IServiceType serviceType, IAuthenticationProvider au
}
#endregion
+ #region SecurityGroup
+ ///
+ /// Lists all network security groups associated with the account.
+ ///
+ /// Options for filtering.
+ /// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
+ ///
+ /// A collection of network security group resources associated with the account.
+ ///
+ public async Task ListSecurityGroupsAsync(IQueryStringBuilder queryString, CancellationToken cancellationToken = default(CancellationToken))
+ where T : IEnumerable
+ {
+ return await BuildListSecurityGroupsRequest(queryString, cancellationToken)
+ .SendAsync()
+ .ReceiveJson()
+ .PropogateOwnerToChildren(this).ConfigureAwait(false);
+ }
+
+ ///
+ /// Builds a request.
+ ///
+ /// Options for filtering.
+ /// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
+ public async Task BuildListSecurityGroupsRequest(IQueryStringBuilder queryString, CancellationToken cancellationToken = default(CancellationToken))
+ {
+ Url endpoint = await Endpoint.GetEndpoint(cancellationToken).ConfigureAwait(false);
+
+ var request = endpoint
+ .AppendPathSegments("security-groups")
+ .Authenticate(AuthenticationProvider)
+ .PrepareGet(cancellationToken);
+
+ request.Url.SetQueryParams(queryString?.Build());
+
+ return request;
+ }
+
+ ///
+ /// Lists all network security group rules associated with the account.
+ ///
+ /// Options for filtering.
+ /// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
+ ///
+ /// A collection of network security group rule resources associated with the account.
+ ///
+ public async Task ListSecurityGroupRulesAsync(IQueryStringBuilder queryString, CancellationToken cancellationToken = default(CancellationToken))
+ where T : IEnumerable
+ {
+ return await BuildListSecurityGroupRulesRequest(queryString, cancellationToken)
+ .SendAsync()
+ .ReceiveJson()
+ .PropogateOwnerToChildren(this).ConfigureAwait(false);
+ }
+
+ ///
+ /// Builds a request.
+ ///
+ /// Options for filtering.
+ /// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
+ public async Task BuildListSecurityGroupRulesRequest(IQueryStringBuilder queryString, CancellationToken cancellationToken = default(CancellationToken))
+ {
+ Url endpoint = await Endpoint.GetEndpoint(cancellationToken).ConfigureAwait(false);
+
+ var request = endpoint
+ .AppendPathSegments("security-group-rules")
+ .Authenticate(AuthenticationProvider)
+ .PrepareGet(cancellationToken);
+
+ request.Url.SetQueryParams(queryString?.Build());
+
+ return request;
+ }
+ #endregion
+
#region Floating IPs
///
/// Shows details for a server group.
diff --git a/src/corelib/Networking/v2/Serialization/IPProtocol.cs b/src/corelib/Networking/v2/Serialization/IPProtocol.cs
new file mode 100644
index 000000000..58dc7c80e
--- /dev/null
+++ b/src/corelib/Networking/v2/Serialization/IPProtocol.cs
@@ -0,0 +1,27 @@
+using OpenStack.Serialization;
+
+namespace OpenStack.Networking.v2.Serialization
+{
+ ///
+ /// Internet Protocols.
+ ///
+ ///
+ public class IPProtocol : StringEnumeration
+ where T : IPProtocol, new()
+ {
+ ///
+ /// ICMP
+ ///
+ public static readonly T ICMP = new T {DisplayName = "icmp"};
+
+ ///
+ /// TCP
+ ///
+ public static readonly T TCP = new T {DisplayName = "tcp"};
+
+ ///
+ /// UDP
+ ///
+ public static readonly T UDP = new T {DisplayName = "udp"};
+ }
+}
diff --git a/src/corelib/Networking/v2/Serialization/SecurityGroupCollection.cs b/src/corelib/Networking/v2/Serialization/SecurityGroupCollection.cs
new file mode 100644
index 000000000..4e8a5785d
--- /dev/null
+++ b/src/corelib/Networking/v2/Serialization/SecurityGroupCollection.cs
@@ -0,0 +1,32 @@
+using System.Collections.Generic;
+using OpenStack.Serialization;
+using OpenStack.Networking.v2.Layer3;
+
+namespace OpenStack.Networking.v2.Serialization
+{
+ ///
+ /// Represents a collection of security groups resources returned by the .
+ /// Intended for custom implementations and stubbing responses in unit tests.
+ ///
+ [JsonConverterWithConstructor(typeof(RootWrapperConverter), "security_groups")]
+ public class SecurityGroupCollection : List
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public SecurityGroupCollection()
+ {
+
+ }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// items
+ public SecurityGroupCollection(IEnumerable items)
+ : base(items)
+ {
+
+ }
+ }
+}
diff --git a/src/corelib/Networking/v2/Serialization/SecurityGroupRuleCollection.cs b/src/corelib/Networking/v2/Serialization/SecurityGroupRuleCollection.cs
new file mode 100644
index 000000000..3f1aff34e
--- /dev/null
+++ b/src/corelib/Networking/v2/Serialization/SecurityGroupRuleCollection.cs
@@ -0,0 +1,32 @@
+using System.Collections.Generic;
+using OpenStack.Networking.v2.Layer3;
+using OpenStack.Serialization;
+
+namespace OpenStack.Networking.v2.Serialization
+{
+ ///
+ /// Represents a collection of security group rule resources returned by the .
+ /// Intended for custom implementations and stubbing responses in unit tests.
+ ///
+ [JsonConverterWithConstructor(typeof(RootWrapperConverter), "security_group_rules")]
+ public class SecurityGroupRuleCollection : List
+ {
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public SecurityGroupRuleCollection()
+ {
+
+ }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ ///
+ public SecurityGroupRuleCollection(IEnumerable items) : base(items)
+ {
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/corelib/Networking/v2/Serialization/TrafficDirection.cs b/src/corelib/Networking/v2/Serialization/TrafficDirection.cs
new file mode 100644
index 000000000..fc39d32c7
--- /dev/null
+++ b/src/corelib/Networking/v2/Serialization/TrafficDirection.cs
@@ -0,0 +1,22 @@
+using OpenStack.Serialization;
+
+namespace OpenStack.Networking.v2.Serialization
+{
+ ///
+ /// Direction of network traffic.
+ ///
+ ///
+ public class TrafficDirection : StringEnumeration
+ where T : TrafficDirection, new()
+ {
+ ///
+ /// Incoming network traffic (ingress).
+ ///
+ public static readonly T Incoming = new T { DisplayName = "ingress" };
+
+ ///
+ /// Outgoing network traffic (egress).
+ ///
+ public static readonly T Outgoing = new T { DisplayName = "egress" };
+ }
+}
diff --git a/src/corelib/Networking/v2/TrafficDirection.cs b/src/corelib/Networking/v2/TrafficDirection.cs
new file mode 100644
index 000000000..1a41e415e
--- /dev/null
+++ b/src/corelib/Networking/v2/TrafficDirection.cs
@@ -0,0 +1,8 @@
+using OpenStack.Networking.v2.Serialization;
+
+namespace OpenStack.Networking.v2
+{
+ ///
+ public class TrafficDirection : TrafficDirection
+ { }
+}
\ No newline at end of file
diff --git a/src/corelib/OpenStack.csproj b/src/corelib/OpenStack.csproj
index f2e0c7a99..557b01642 100644
--- a/src/corelib/OpenStack.csproj
+++ b/src/corelib/OpenStack.csproj
@@ -48,27 +48,7 @@
..\..\build\keys\OpenStackNetV1.dev.snk
-
- ..\packages\Flurl.Signed.1.0.10\lib\portable-net40+sl50+win+wpa81+wp80+MonoAndroid10+MonoTouch10\Flurl.dll
- True
-
-
- ..\packages\Flurl.Http.Signed.0.7.0\lib\net45\Flurl.Http.dll
- True
-
-
- ..\packages\Marvin.JsonPatch.Signed.0.7.0\lib\portable-net40+win+wpa81\Marvin.JsonPatch.dll
- True
-
-
- ..\packages\Newtonsoft.Json.8.0.3\lib\net45\Newtonsoft.Json.dll
- True
-
-
- False
- ..\packages\SimpleRESTServices.1.3.0.1-json6\lib\net40\SimpleRESTServices.dll
-
@@ -194,8 +174,13 @@
+
+
+
+
+
@@ -222,6 +207,7 @@
+
@@ -234,11 +220,15 @@
+
+
+
+
@@ -878,12 +868,11 @@
-
+
-
+
+
+
+
+
+ ..\..\packages\Flurl.Http.Signed\lib\net45\Flurl.Http.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\Flurl.Http.Signed\lib\portable-net45+sl50+win+wpa81+wp80\Flurl.Http.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\packages\Flurl.Signed\lib\portable-net40+sl50+win+wpa81+wp80+MonoAndroid10+MonoTouch10\Flurl.dll
+ True
+ True
+
+
+
+
+
+
+ True
+
+
+
+
+
+
+ ..\..\packages\Marvin.JsonPatch.Signed\lib\portable-net40+win+wpa81\Marvin.JsonPatch.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8\System.IO.dll
+ True
+ True
+
+
+ ..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8\System.Runtime.dll
+ True
+ True
+
+
+ ..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8\System.Threading.Tasks.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8+wp71+wpa81\System.IO.dll
+ True
+ True
+
+
+ ..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8+wp71+wpa81\System.Runtime.dll
+ True
+ True
+
+
+ ..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8+wp71+wpa81\System.Threading.Tasks.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8+wp8+wpa81\System.IO.dll
+ True
+ True
+
+
+ ..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8+wp8+wpa81\System.Runtime.dll
+ True
+ True
+
+
+ ..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8+wp8+wpa81\System.Threading.Tasks.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\Microsoft.Bcl\lib\portable-net40+sl5+win8+wp8+wpa81\System.IO.dll
+ True
+ True
+
+
+ ..\..\packages\Microsoft.Bcl\lib\portable-net40+sl5+win8+wp8+wpa81\System.Runtime.dll
+ True
+ True
+
+
+ ..\..\packages\Microsoft.Bcl\lib\portable-net40+sl5+win8+wp8+wpa81\System.Threading.Tasks.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\Microsoft.Bcl\lib\portable-net40+win8\System.IO.dll
+ True
+ True
+
+
+ ..\..\packages\Microsoft.Bcl\lib\portable-net40+win8\System.Runtime.dll
+ True
+ True
+
+
+ ..\..\packages\Microsoft.Bcl\lib\portable-net40+win8\System.Threading.Tasks.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\Microsoft.Bcl\lib\portable-net40+win8+wp8+wpa81\System.IO.dll
+ True
+ True
+
+
+ ..\..\packages\Microsoft.Bcl\lib\portable-net40+win8+wp8+wpa81\System.Runtime.dll
+ True
+ True
+
+
+ ..\..\packages\Microsoft.Bcl\lib\portable-net40+win8+wp8+wpa81\System.Threading.Tasks.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\packages\Microsoft.Bcl.Async\lib\portable-net40+sl4+win8+wp71+wpa81\Microsoft.Threading.Tasks.dll
+ True
+ True
+
+
+ ..\..\packages\Microsoft.Bcl.Async\lib\portable-net40+sl4+win8+wp71+wpa81\Microsoft.Threading.Tasks.Extensions.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\Microsoft.Bcl.Async\lib\portable-net45+win8+wp8+wpa81\Microsoft.Threading.Tasks.dll
+ True
+ True
+
+
+ ..\..\packages\Microsoft.Bcl.Async\lib\portable-net45+win8+wp8+wpa81\Microsoft.Threading.Tasks.Extensions.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\Microsoft.Bcl.Async\lib\portable-net45+win8+wpa81\Microsoft.Threading.Tasks.dll
+ True
+ True
+
+
+ ..\..\packages\Microsoft.Bcl.Async\lib\portable-net45+win8+wpa81\Microsoft.Threading.Tasks.Extensions.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\packages\Microsoft.Net.Http\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.Extensions.dll
+ True
+ True
+
+
+ ..\..\packages\Microsoft.Net.Http\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.Primitives.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\Microsoft.Net.Http\lib\portable-net45+win8\System.Net.Http.Extensions.dll
+ True
+ True
+
+
+ ..\..\packages\Microsoft.Net.Http\lib\portable-net45+win8\System.Net.Http.Primitives.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\Microsoft.Net.Http\lib\portable-net45+win8+wpa81\System.Net.Http.Extensions.dll
+ True
+ True
+
+
+ ..\..\packages\Microsoft.Net.Http\lib\portable-net45+win8+wpa81\System.Net.Http.Primitives.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\packages\Newtonsoft.Json\lib\net20\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\Newtonsoft.Json\lib\net35\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\Newtonsoft.Json\lib\net40\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\Newtonsoft.Json\lib\net45\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\Newtonsoft.Json\lib\netcore45\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\Newtonsoft.Json\lib\portable-net40+sl5+wp80+win8+wpa81\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\Newtonsoft.Json\lib\portable-net45+wp80+win8+wpa81+aspnetcore50\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\packages\PCLStorage\lib\portable-net45+sl5+wp8+wpa81+win8+monoandroid+monotouch+Xamarin.iOS+Xamarin.Mac\PCLStorage.dll
+ True
+ True
+
+
+ ..\..\packages\PCLStorage\lib\portable-net45+sl5+wp8+wpa81+win8+monoandroid+monotouch+Xamarin.iOS+Xamarin.Mac\PCLStorage.Abstractions.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\PCLStorage\lib\portable-net45+wp8+wpa81+win8+monoandroid+monotouch+Xamarin.iOS+Xamarin.Mac\PCLStorage.dll
+ True
+ True
+
+
+ ..\..\packages\PCLStorage\lib\portable-net45+wp8+wpa81+win8+monoandroid+monotouch+Xamarin.iOS+Xamarin.Mac\PCLStorage.Abstractions.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\PCLStorage\lib\portable-win8+wpa81\PCLStorage.dll
+ True
+ True
+
+
+ ..\..\packages\PCLStorage\lib\portable-win8+wpa81\PCLStorage.Abstractions.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\packages\SimpleRESTServices\lib\net35\SimpleRESTServices.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\packages\SimpleRESTServices\lib\net40\SimpleRESTServices.dll
+ True
+ True
+
+
+
+
\ No newline at end of file
diff --git a/src/corelib/OpenStackNet.cs b/src/corelib/OpenStackNet.cs
index 5f2fb985d..a8eff122f 100644
--- a/src/corelib/OpenStackNet.cs
+++ b/src/corelib/OpenStackNet.cs
@@ -89,6 +89,26 @@ public static void ResetDefaults()
}
}
+ ///
+ /// Deserializes an object from a json string representation.
+ ///
+ /// The object type.
+ /// The json string.
+ public static T Deserialize(string json)
+ {
+ return Configuration.FlurlHttpSettings.JsonSerializer.Deserialize(json);
+ }
+
+ ///
+ /// Serializes an object to a json string representation
+ ///
+ /// The object.
+ /// The json string representation of the object.
+ public static string Serialize(object obj)
+ {
+ return Configuration.FlurlHttpSettings.JsonSerializer.Serialize(obj);
+ }
+
///
/// Provides global point for programmatically configuraing tracing
///
diff --git a/src/corelib/Providers/Rackspace/Objects/LoadBalancers/LoadBalancerSslConfiguration.cs b/src/corelib/Providers/Rackspace/Objects/LoadBalancers/LoadBalancerSslConfiguration.cs
index 3c3184424..221d5834f 100644
--- a/src/corelib/Providers/Rackspace/Objects/LoadBalancers/LoadBalancerSslConfiguration.cs
+++ b/src/corelib/Providers/Rackspace/Objects/LoadBalancers/LoadBalancerSslConfiguration.cs
@@ -48,7 +48,7 @@ public class LoadBalancerSslConfiguration : ExtensibleJsonObject
///
/// This is the backing field for the property.
///
- [JsonProperty("intermediatecertificate", DefaultValueHandling = DefaultValueHandling.Ignore)]
+ [JsonProperty("intermediateCertificate", DefaultValueHandling = DefaultValueHandling.Ignore)]
private string _intermediateCertificate;
///
diff --git a/src/corelib/Testing/HttpTest.cs b/src/corelib/Testing/HttpTest.cs
index 7d3d058ac..f26328914 100644
--- a/src/corelib/Testing/HttpTest.cs
+++ b/src/corelib/Testing/HttpTest.cs
@@ -54,7 +54,7 @@ private void SetTestMode(OpenStackNetConfigurationOptions options)
ResponseQueue.Enqueue(new HttpResponseMessage
{
StatusCode = (HttpStatusCode)status,
- Content = new CapturedJsonContent(OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Serialize(data))
+ Content = new CapturedJsonContent(OpenStackNet.Serialize(data))
});
return this;
}
diff --git a/src/corelib/app.config b/src/corelib/app.config
index 5ac8598cf..19027a646 100644
--- a/src/corelib/app.config
+++ b/src/corelib/app.config
@@ -1,11 +1,10 @@
-
-
-
-
-
-
-
-
-
+
+
+
+ True
+
+
+
+
diff --git a/src/corelib/corelib.nuspec b/src/corelib/corelib.nuspec
index 343c2ff71..1d2b63994 100644
--- a/src/corelib/corelib.nuspec
+++ b/src/corelib/corelib.nuspec
@@ -15,7 +15,7 @@
openstack
-
+
diff --git a/src/corelib/packages.config b/src/corelib/packages.config
deleted file mode 100644
index 167200d48..000000000
--- a/src/corelib/packages.config
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/corelib/paket.references b/src/corelib/paket.references
new file mode 100644
index 000000000..0eb4a8c65
--- /dev/null
+++ b/src/corelib/paket.references
@@ -0,0 +1,6 @@
+Flurl.Http.Signed
+Flurl.Signed
+ILMerge
+Marvin.JsonPatch.Signed
+Newtonsoft.Json
+SimpleRESTServices
\ No newline at end of file
diff --git a/src/openstack.net.sln b/src/openstack.net.sln
index 0ab3aadc4..42d94cf18 100644
--- a/src/openstack.net.sln
+++ b/src/openstack.net.sln
@@ -3,6 +3,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".paket", ".paket", "{AB148713-068A-48E0-B8D9-4D53310809FC}"
+ ProjectSection(SolutionItems) = preProject
+ ..\paket.dependencies = ..\paket.dependencies
+ EndProjectSection
+EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{DD863CE0-64D7-43AC-9DDD-C745B36CCD2C}"
ProjectSection(SolutionItems) = preProject
..\appveyor.yml = ..\appveyor.yml
@@ -16,7 +21,6 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{EFFA0DAE-1829-4783-92CF-390CFCE22E43}"
ProjectSection(SolutionItems) = preProject
..\build\build.proj = ..\build\build.proj
- ..\NuGet.config = ..\NuGet.config
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenStack", "corelib\OpenStack.csproj", "{1A4FB67F-8642-4402-B931-118955AE7538}"
diff --git a/src/testing/integration/App.config b/src/testing/integration/App.config
index f43e940d0..4919419b5 100644
--- a/src/testing/integration/App.config
+++ b/src/testing/integration/App.config
@@ -1,17 +1,16 @@
-
-
-
-
-
-
-
-
+
-
\ No newline at end of file
+
+
+ True
+
+
+
+
\ No newline at end of file
diff --git a/src/testing/integration/Networking/v2/Layer3/Layer3ExtensionTests.cs b/src/testing/integration/Networking/v2/Layer3/Layer3ExtensionTests.cs
index 53774e54b..c86fcd2eb 100644
--- a/src/testing/integration/Networking/v2/Layer3/Layer3ExtensionTests.cs
+++ b/src/testing/integration/Networking/v2/Layer3/Layer3ExtensionTests.cs
@@ -1,5 +1,6 @@
using System;
using System.Diagnostics;
+using System.Linq;
using System.Threading.Tasks;
using OpenStack.Compute.v2_1;
using Xunit;
@@ -80,5 +81,26 @@ public async Task AssignFloatingIP()
// 8. Disassociate the floating ip from the server
await server.DisassociateFloatingIPAsync(floatingIP.FloatingIPAddress);
}
+
+ [Fact]
+ public async Task ListSecurityGroups()
+ {
+ var groups = await _networkingService.ListSecurityGroupsAsync(new SecurityGroupListOptions {Name = "default"});
+
+ Assert.NotEmpty(groups);
+
+ var defaultGroup = groups.First();
+ Assert.NotNull(defaultGroup);
+ Assert.NotNull(defaultGroup.Name);
+ Assert.NotNull(defaultGroup.Description);
+ Assert.NotNull(defaultGroup.Id);
+ Assert.NotEmpty(defaultGroup.SecurityGroupRules);
+
+ var defaultRule = defaultGroup.SecurityGroupRules.First();
+ Assert.NotNull(defaultRule.Id);
+ Assert.NotNull(defaultRule.Direction);
+ Assert.NotNull(defaultRule.Ethertype);
+ Assert.NotNull(defaultRule.SecurityGroupId);
+ }
}
}
\ No newline at end of file
diff --git a/src/testing/integration/OpenStack.IntegrationTests.csproj b/src/testing/integration/OpenStack.IntegrationTests.csproj
index 28d72787c..7c9882a98 100644
--- a/src/testing/integration/OpenStack.IntegrationTests.csproj
+++ b/src/testing/integration/OpenStack.IntegrationTests.csproj
@@ -1,7 +1,5 @@
-
-
Debug
AnyCPU
@@ -48,36 +46,10 @@
..\..\..\build\keys\SDKTestingKey.snk
-
- ..\..\packages\Flurl.Signed.1.0.10\lib\portable-net40+sl50+win+wpa81+wp80+MonoAndroid10+MonoTouch10\Flurl.dll
- True
-
-
- ..\..\packages\Flurl.Http.Signed.0.7.0\lib\net45\Flurl.Http.dll
- True
-
-
- ..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll
-
-
- ..\..\packages\Marvin.JsonPatch.Signed.0.7.0\lib\portable-net40+win+wpa81\Marvin.JsonPatch.dll
- True
-
-
- ..\..\packages\Moq.4.0.10827\lib\NET40\Moq.dll
-
-
- ..\..\packages\Newtonsoft.Json.8.0.3\lib\net45\Newtonsoft.Json.dll
- True
-
..\..\lib\Security.Cryptography\Security.Cryptography.dll
-
- False
- ..\..\packages\SimpleRESTServices.1.3.0.1-json6\lib\net40\SimpleRESTServices.dll
-
@@ -86,18 +58,6 @@
-
- ..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll
- True
-
-
- ..\..\packages\xunit.assert.2.0.0\lib\portable-net45+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS\xunit.assert.dll
- True
-
-
- ..\..\packages\xunit.extensibility.core.2.0.0\lib\portable-net45+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS\xunit.core.dll
- True
-
@@ -143,16 +103,58 @@
Designer
-
+
-
-
- This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
-
-
-
+
+
+
+ <__paket__xunit_runner_visualstudio_props>net20\xunit.runner.visualstudio
+
+
+
+
+ <__paket__xunit_runner_visualstudio_props>portable-net45+win8+wp8+wpa81\xunit.runner.visualstudio
+
+
+
+
+ <__paket__xunit_runner_visualstudio_props>uap10.0\xunit.runner.visualstudio
+ <__paket__xunit_runner_visualstudio_targets>uap10.0\xunit.runner.visualstudio
+
+
+
+
+ <__paket__xunit_runner_visualstudio_props>win81\xunit.runner.visualstudio
+ <__paket__xunit_runner_visualstudio_targets>win81\xunit.runner.visualstudio
+
+
+
+
+ <__paket__xunit_runner_visualstudio_props>wpa81\xunit.runner.visualstudio
+ <__paket__xunit_runner_visualstudio_targets>wpa81\xunit.runner.visualstudio
+
+
+
+
+
+
+
+ <__paket__xunit_core_props>portable-net45+win8+wp8+wpa81\xunit.core
+
+
+
+
+ <__paket__xunit_core_props>win81\xunit.core
+
+
+
+
+ <__paket__xunit_core_props>wpa81\xunit.core
+
+
+
+
+
+
+
+
+
+ ..\..\..\packages\Flurl.Http.Signed\lib\net45\Flurl.Http.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Flurl.Http.Signed\lib\portable-net45+sl50+win+wpa81+wp80\Flurl.Http.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\Flurl.Signed\lib\portable-net40+sl50+win+wpa81+wp80+MonoAndroid10+MonoTouch10\Flurl.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\Marvin.JsonPatch.Signed\lib\portable-net40+win+wpa81\Marvin.JsonPatch.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8\System.IO.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8\System.Runtime.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8\System.Threading.Tasks.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8+wp71+wpa81\System.IO.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8+wp71+wpa81\System.Runtime.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8+wp71+wpa81\System.Threading.Tasks.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8+wp8+wpa81\System.IO.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8+wp8+wpa81\System.Runtime.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8+wp8+wpa81\System.Threading.Tasks.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+sl5+win8+wp8+wpa81\System.IO.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+sl5+win8+wp8+wpa81\System.Runtime.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+sl5+win8+wp8+wpa81\System.Threading.Tasks.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+win8\System.IO.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+win8\System.Runtime.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+win8\System.Threading.Tasks.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+win8+wp8+wpa81\System.IO.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+win8+wp8+wpa81\System.Runtime.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+win8+wp8+wpa81\System.Threading.Tasks.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Bcl.Async\lib\portable-net40+sl4+win8+wp71+wpa81\Microsoft.Threading.Tasks.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl.Async\lib\portable-net40+sl4+win8+wp71+wpa81\Microsoft.Threading.Tasks.Extensions.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Bcl.Async\lib\portable-net45+win8+wp8+wpa81\Microsoft.Threading.Tasks.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl.Async\lib\portable-net45+win8+wp8+wpa81\Microsoft.Threading.Tasks.Extensions.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Bcl.Async\lib\portable-net45+win8+wpa81\Microsoft.Threading.Tasks.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl.Async\lib\portable-net45+win8+wpa81\Microsoft.Threading.Tasks.Extensions.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Net.Http\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.Extensions.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Net.Http\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.Primitives.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Net.Http\lib\portable-net45+win8\System.Net.Http.Extensions.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Net.Http\lib\portable-net45+win8\System.Net.Http.Primitives.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Net.Http\lib\portable-net45+win8+wpa81\System.Net.Http.Extensions.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Net.Http\lib\portable-net45+win8+wpa81\System.Net.Http.Primitives.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\Moq\lib\net35\Moq.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Moq\lib\net40\Moq.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Moq\lib\sl5\Moq.Silverlight.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\Newtonsoft.Json\lib\net20\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Newtonsoft.Json\lib\net35\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Newtonsoft.Json\lib\net40\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Newtonsoft.Json\lib\net45\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Newtonsoft.Json\lib\netcore45\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Newtonsoft.Json\lib\portable-net40+sl5+wp80+win8+wpa81\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Newtonsoft.Json\lib\portable-net45+wp80+win8+wpa81+aspnetcore50\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\PCLStorage\lib\portable-net45+sl5+wp8+wpa81+win8+monoandroid+monotouch+Xamarin.iOS+Xamarin.Mac\PCLStorage.dll
+ True
+ True
+
+
+ ..\..\..\packages\PCLStorage\lib\portable-net45+sl5+wp8+wpa81+win8+monoandroid+monotouch+Xamarin.iOS+Xamarin.Mac\PCLStorage.Abstractions.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\PCLStorage\lib\portable-net45+wp8+wpa81+win8+monoandroid+monotouch+Xamarin.iOS+Xamarin.Mac\PCLStorage.dll
+ True
+ True
+
+
+ ..\..\..\packages\PCLStorage\lib\portable-net45+wp8+wpa81+win8+monoandroid+monotouch+Xamarin.iOS+Xamarin.Mac\PCLStorage.Abstractions.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\PCLStorage\lib\portable-win8+wpa81\PCLStorage.dll
+ True
+ True
+
+
+ ..\..\..\packages\PCLStorage\lib\portable-win8+wpa81\PCLStorage.Abstractions.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\SharpZipLib\lib\11\ICSharpCode.SharpZipLib.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\SharpZipLib\lib\20\ICSharpCode.SharpZipLib.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\SharpZipLib\lib\SL3\SharpZipLib.Silverlight3.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\SharpZipLib\lib\SL4\SharpZipLib.Silverlight4.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\SimpleRESTServices\lib\net35\SimpleRESTServices.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\SimpleRESTServices\lib\net40\SimpleRESTServices.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\xunit.abstractions\lib\net35\xunit.abstractions.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\xunit.abstractions\lib\portable-net45+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS\xunit.abstractions.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\xunit.assert\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\xunit.extensibility.core\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\xunit.extensibility.execution\lib\monoandroid\xunit.execution.dotnet.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\xunit.extensibility.execution\lib\monotouch\xunit.execution.dotnet.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\xunit.extensibility.execution\lib\net45\xunit.execution.desktop.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\xunit.extensibility.execution\lib\portable-net45+win8+wp8+wpa81\xunit.execution.dotnet.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\xunit.extensibility.execution\lib\win8\xunit.execution.dotnet.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\xunit.extensibility.execution\lib\wp8\xunit.execution.dotnet.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\xunit.extensibility.execution\lib\wpa81\xunit.execution.dotnet.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\xunit.extensibility.execution\lib\xamarinios\xunit.execution.dotnet.dll
+ True
+ True
+
+
+
+
+
\ No newline at end of file
diff --git a/src/testing/integration/packages.config b/src/testing/integration/packages.config
deleted file mode 100644
index 815e1c581..000000000
--- a/src/testing/integration/packages.config
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/testing/integration/paket.references b/src/testing/integration/paket.references
new file mode 100644
index 000000000..d4b064a17
--- /dev/null
+++ b/src/testing/integration/paket.references
@@ -0,0 +1,14 @@
+Flurl.Http.Signed
+Flurl.Signed
+Marvin.JsonPatch.Signed
+Moq
+Newtonsoft.Json
+SharpZipLib
+SimpleRESTServices
+xunit
+xunit.abstractions
+xunit.assert
+xunit.core
+xunit.extensibility.core
+xunit.runner.console
+xunit.runner.visualstudio
\ No newline at end of file
diff --git a/src/testing/migration/NuGet.config b/src/testing/migration/NuGet.config
deleted file mode 100644
index acfd54951..000000000
--- a/src/testing/migration/NuGet.config
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/testing/migration/migration.csproj b/src/testing/migration/migration.csproj
index e20994c36..c61660132 100644
--- a/src/testing/migration/migration.csproj
+++ b/src/testing/migration/migration.csproj
@@ -33,26 +33,6 @@
4
-
- ..\..\packages\Flurl.Signed.1.0.8\lib\portable-net40+sl50+win+wpa81+wp80+MonoAndroid10+MonoTouch10\Flurl.dll
- True
-
-
- ..\..\packages\Flurl.Http.Signed.0.6.2.2015062601\lib\net45\Flurl.Http.dll
- True
-
-
- ..\..\packages\Marvin.JsonPatch.Signed.0.7.0\lib\portable-net40+win+wpa81\Marvin.JsonPatch.dll
- True
-
-
- ..\..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll
- True
-
-
- ..\..\packages\openstack.net.1.5.0.2\lib\net45\openstacknet.dll
- True
-
@@ -69,7 +49,7 @@
-
+
+
+
+
+
+
+ ..\..\..\packages\history-1.5\Flurl.Http.Signed\lib\net45\Flurl.Http.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\history-1.5\Flurl.Signed\lib\portable-net40+sl50+win+wpa81+wp80+MonoAndroid10+MonoTouch10\Flurl.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\history-1.5\Marvin.JsonPatch.Signed\lib\portable-net40+win+wpa81\Marvin.JsonPatch.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\history-1.5\Newtonsoft.Json\lib\net45\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\history-1.5\openstack.net\lib\net45\openstacknet.dll
+ True
+ True
+
+
+
+
\ No newline at end of file
diff --git a/src/testing/migration/migration.sln b/src/testing/migration/migration.sln
index d2d49d8ab..017a3d4f2 100644
--- a/src/testing/migration/migration.sln
+++ b/src/testing/migration/migration.sln
@@ -3,6 +3,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".paket", ".paket", "{54A07A31-92EE-43F5-8505-9B7D023EE650}"
+ ProjectSection(SolutionItems) = preProject
+ ..\..\..\paket.dependencies = ..\..\..\paket.dependencies
+ EndProjectSection
+EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "migration", "migration.csproj", "{3C26C430-5553-4B34-AF5A-C99EF44ED756}"
EndProject
Global
diff --git a/src/testing/migration/packages.config b/src/testing/migration/packages.config
deleted file mode 100644
index b3174070c..000000000
--- a/src/testing/migration/packages.config
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/testing/migration/paket.references b/src/testing/migration/paket.references
new file mode 100644
index 000000000..6a377c254
--- /dev/null
+++ b/src/testing/migration/paket.references
@@ -0,0 +1,2 @@
+group History-1.5
+ openstack.net
\ No newline at end of file
diff --git a/src/testing/unit/Compute/v2_1/KeyPairTests.cs b/src/testing/unit/Compute/v2_1/KeyPairTests.cs
index 6f880b3a3..69e391475 100644
--- a/src/testing/unit/Compute/v2_1/KeyPairTests.cs
+++ b/src/testing/unit/Compute/v2_1/KeyPairTests.cs
@@ -43,7 +43,7 @@ public void DeserializeKeyPairCollection()
]
}").ToString();
- var results = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Deserialize(json);
+ var results = OpenStackNet.Deserialize(json);
Assert.NotNull(results);
Assert.Equal(2, results.Count());
var result = results.First();
diff --git a/src/testing/unit/Compute/v2_1/SecurityGroupTests.cs b/src/testing/unit/Compute/v2_1/SecurityGroupTests.cs
index 77e4a123c..b67deee14 100644
--- a/src/testing/unit/Compute/v2_1/SecurityGroupTests.cs
+++ b/src/testing/unit/Compute/v2_1/SecurityGroupTests.cs
@@ -98,7 +98,7 @@ public void DeserializeSecurityGroupRule()
},
'id': '55d75417-37df-48e2-96aa-20ba53a82900'
}}";
- var result = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Deserialize(JObject.Parse(json).ToString());
+ var result = OpenStackNet.Deserialize(JObject.Parse(json).ToString());
Assert.Equal("0.0.0.0 / 24", result.CIDR);
}
diff --git a/src/testing/unit/Compute/v2_1/ServerTests.cs b/src/testing/unit/Compute/v2_1/ServerTests.cs
index ab673c0c1..3b926a19b 100644
--- a/src/testing/unit/Compute/v2_1/ServerTests.cs
+++ b/src/testing/unit/Compute/v2_1/ServerTests.cs
@@ -29,7 +29,7 @@ public void SerializeServerWithSchedulerHints()
server.SchedulerHints = new SchedulerHints();
server.SchedulerHints.Add("group", "groupId");
- var json = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Serialize(server);
+ var json = OpenStackNet.Serialize(server);
Assert.Equal(expectedJson, json);
}
@@ -40,7 +40,7 @@ public void SerializeServerWithoutSchedulerHints()
.ToString(Formatting.None);
var server = new ServerCreateDefinition("name", Guid.Empty, Guid.Empty);
- var json = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Serialize(server);
+ var json = OpenStackNet.Serialize(server);
Assert.Equal(expectedJson, json);
}
diff --git a/src/testing/unit/Compute/v2_1/VolumeTests.cs b/src/testing/unit/Compute/v2_1/VolumeTests.cs
index 7cda497b5..bcfca48fc 100644
--- a/src/testing/unit/Compute/v2_1/VolumeTests.cs
+++ b/src/testing/unit/Compute/v2_1/VolumeTests.cs
@@ -24,7 +24,7 @@ public VolumeTests()
public void DeserializeVolumeWithEmptyAttachment()
{
var json = JObject.Parse(@"{'volume': {'attachments': [{}]}}").ToString();
- var result = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Deserialize(json);
+ var result = OpenStackNet.Deserialize(json);
Assert.Empty(result.Attachments);
}
diff --git a/src/testing/unit/ContentDeliveryNetworks/v1/ServiceCacheTests.cs b/src/testing/unit/ContentDeliveryNetworks/v1/ServiceCacheTests.cs
index f2cb8ce49..696b31ead 100644
--- a/src/testing/unit/ContentDeliveryNetworks/v1/ServiceCacheTests.cs
+++ b/src/testing/unit/ContentDeliveryNetworks/v1/ServiceCacheTests.cs
@@ -12,7 +12,7 @@ public void SerializeTimeToLiveToSeconds()
{
var cache = new ServiceCache("cache", TimeSpan.FromSeconds(60));
- var json = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Serialize(cache);
+ var json = OpenStackNet.Serialize(cache);
var result = JObject.Parse(json);
Assert.Equal(60, result.Value("ttl"));
@@ -22,9 +22,9 @@ public void SerializeTimeToLiveToSeconds()
public void DeserializeTimeToLiveFromSeconds()
{
var cache = new ServiceCache("cache", TimeSpan.FromSeconds(60));
- var json = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Serialize(cache);
+ var json = OpenStackNet.Serialize(cache);
- var result = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Deserialize(json);
+ var result = OpenStackNet.Deserialize(json);
Assert.Equal(60, result.TimeToLive.TotalSeconds);
}
diff --git a/src/testing/unit/ContentDeliveryNetworks/v1/ServiceTests.cs b/src/testing/unit/ContentDeliveryNetworks/v1/ServiceTests.cs
index 8295f7255..f1c75a469 100644
--- a/src/testing/unit/ContentDeliveryNetworks/v1/ServiceTests.cs
+++ b/src/testing/unit/ContentDeliveryNetworks/v1/ServiceTests.cs
@@ -32,11 +32,11 @@ public void SerializeServiceCollection()
Items = {new Service {Id = "service-id"}},
Links = {new PageLink("next", "http://api.com/next")}
};
- string json = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Serialize(services);
+ string json = OpenStackNet.Serialize(services);
Assert.Contains("\"services\"", json);
Assert.DoesNotContain("\"service\"", json);
- var result = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Deserialize(json);
+ var result = OpenStackNet.Deserialize(json);
Assert.NotNull(result);
Assert.Equal(1, result.Count());
Assert.Equal(1, result.Items.Count());
@@ -48,9 +48,9 @@ public void SerializeServiceCollection()
public void SerializePageLink()
{
var link = new PageLink("next", "http://api.com/next");
- string json = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Serialize(link);
+ string json = OpenStackNet.Serialize(link);
- var result = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Deserialize(json);
+ var result = OpenStackNet.Deserialize(json);
Assert.NotNull(result);
Assert.True(result.IsNextPage);
}
diff --git a/src/testing/unit/IdentifierTests.cs b/src/testing/unit/IdentifierTests.cs
index d96b3d361..9503d28f9 100644
--- a/src/testing/unit/IdentifierTests.cs
+++ b/src/testing/unit/IdentifierTests.cs
@@ -17,7 +17,7 @@ public void Serialize()
var rawId = Guid.NewGuid();
var id = (Identifier)rawId;
- var result = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Serialize(id);
+ var result = OpenStackNet.Serialize(id);
Assert.Equal(string.Format("\"{0}\"", rawId.ToString("D")), result);
}
@@ -27,7 +27,7 @@ public void Serialize_WithinAClass()
{
var thing = new Thing {Id = Guid.NewGuid()};
- var result = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Serialize(thing);
+ var result = OpenStackNet.Serialize(thing);
Assert.Equal(string.Format("{{\"Id\":\"{0}\"}}", thing.Id), result);
}
@@ -37,8 +37,8 @@ public void Deserialize()
{
var id = new Identifier(Guid.NewGuid());
- var json = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Serialize(id);
- var result = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Deserialize(json);
+ var json = OpenStackNet.Serialize(id);
+ var result = OpenStackNet.Deserialize(json);
Assert.Equal(id, result);
}
diff --git a/src/testing/unit/Networking/v2/DHCPOptionConverterTests.cs b/src/testing/unit/Networking/v2/DHCPOptionConverterTests.cs
index c20ae1e32..a73f128e8 100644
--- a/src/testing/unit/Networking/v2/DHCPOptionConverterTests.cs
+++ b/src/testing/unit/Networking/v2/DHCPOptionConverterTests.cs
@@ -19,7 +19,7 @@ public void Serialize()
}
};
- string result = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Serialize(input);
+ string result = OpenStackNet.Serialize(input);
string expectedJson = JObject.Parse("{'port':{'extra_dhcp_opts':[{'opt_name':'a','opt_value':'stuff'},{'opt_name':'b','opt_value':'things'}]}}").ToString(Formatting.None);
Assert.Equal(expectedJson, result);
@@ -30,7 +30,7 @@ public void Deserialize()
{
string json = JObject.Parse("{'port':{'extra_dhcp_opts':[{'opt_name':'a','opt_value':'stuff'},{'opt_name':'b','opt_value':'things'}]}}").ToString(Formatting.None);
- var result = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Deserialize(json).DHCPOptions;
+ var result = OpenStackNet.Deserialize(json).DHCPOptions;
Assert.NotNull(result);
Assert.Equal(2, result.Count);
@@ -52,8 +52,8 @@ public void OpenStackNet_UsesDHCPOptionConverter()
}
};
- var json = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Serialize(port);
- var result = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Deserialize(json);
+ var json = OpenStackNet.Serialize(port);
+ var result = OpenStackNet.Deserialize(json);
Assert.NotNull(result.DHCPOptions);
Assert.Equal(1, result.DHCPOptions.Count);
diff --git a/src/testing/unit/Networking/v2/Layer3/Layer3Tests.cs b/src/testing/unit/Networking/v2/Layer3/Layer3Tests.cs
index fa8141f17..7a3c70d28 100644
--- a/src/testing/unit/Networking/v2/Layer3/Layer3Tests.cs
+++ b/src/testing/unit/Networking/v2/Layer3/Layer3Tests.cs
@@ -11,6 +11,7 @@
using OpenStack.Synchronous;
using OpenStack.Testing;
using Xunit;
+using SecurityGroupCollection = OpenStack.Networking.v2.Serialization.SecurityGroupCollection;
namespace OpenStack.Networking.v2.Layer3
{
@@ -313,5 +314,55 @@ public void DeleteFloatingIP(HttpStatusCode responseCode)
}
#endregion
+ #region Security Groups
+ [Fact]
+ public void ListSecurityGroups()
+ {
+ using (var httpTest = new HttpTest())
+ {
+ Identifier securityGroupId = Guid.NewGuid();
+ Identifier securityGroupRuleId = Guid.NewGuid();
+ SecurityGroupRule rule = new SecurityGroupRule { Id = securityGroupRuleId };
+ List rules = new List { rule };
+
+ httpTest.RespondWithJson(new SecurityGroupCollection
+ {
+ new SecurityGroup { Id = securityGroupId, SecurityGroupRules = rules }
+ });
+
+ var results = _networking.ListSecurityGroups();
+
+ httpTest.ShouldHaveCalled("*/security-groups");
+ Assert.Equal(1, results.Count());
+ var result = results.First();
+ var resultRule = result.SecurityGroupRules.First();
+ Assert.Equal(securityGroupId, result.Id);
+ Assert.Equal(rule.Id, resultRule.Id);
+ }
+ }
+
+ [Fact]
+ public void ListSecurityGroupRules()
+ {
+ using (var httpTest = new HttpTest())
+ {
+ Identifier securityGroupId = Guid.NewGuid();
+ Identifier securityGroupRuleId = Guid.NewGuid();
+ httpTest.RespondWithJson(new SecurityGroupRuleCollection
+ {
+ new SecurityGroupRule {Id = securityGroupRuleId, SecurityGroupId = securityGroupId}
+ });
+
+ var results = _networking.ListSecurityGroupRules();
+
+ httpTest.ShouldHaveCalled("*/security-group-rules");
+ Assert.Equal(1, results.Count());
+ var result = results.First();
+ Assert.Equal(securityGroupRuleId, result.Id);
+ Assert.Equal(securityGroupId, result.SecurityGroupId);
+ }
+ }
+ #endregion
+
}
}
diff --git a/src/testing/unit/OpenStack.UnitTests.csproj b/src/testing/unit/OpenStack.UnitTests.csproj
index 4302b4e98..88381c8e5 100644
--- a/src/testing/unit/OpenStack.UnitTests.csproj
+++ b/src/testing/unit/OpenStack.UnitTests.csproj
@@ -1,7 +1,5 @@
-
-
Debug
AnyCPU
@@ -47,49 +45,14 @@
..\..\..\build\keys\SDKTestingKey.snk
-
- ..\..\packages\Flurl.Signed.1.0.10\lib\portable-net40+sl50+win+wpa81+wp80+MonoAndroid10+MonoTouch10\Flurl.dll
- True
-
-
- ..\..\packages\Flurl.Http.Signed.0.7.0\lib\net45\Flurl.Http.dll
- True
-
-
- ..\..\packages\Marvin.JsonPatch.Signed.0.7.0\lib\portable-net40+win+wpa81\Marvin.JsonPatch.dll
- True
-
-
- ..\..\packages\Moq.4.0.10827\lib\NET40\Moq.dll
-
-
- ..\..\packages\Newtonsoft.Json.8.0.3\lib\net45\Newtonsoft.Json.dll
- True
-
-
- False
- ..\..\packages\SimpleRESTServices.1.3.0.1-json6\lib\net40\SimpleRESTServices.dll
-
3.5
-
- ..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll
- True
-
-
- ..\..\packages\xunit.assert.2.0.0\lib\portable-net45+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS\xunit.assert.dll
- True
-
-
- ..\..\packages\xunit.extensibility.core.2.0.0\lib\portable-net45+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS\xunit.core.dll
- True
-
@@ -145,7 +108,7 @@
SDKTestingKey.snk
-
+
@@ -153,15 +116,56 @@
OpenStack
-
-
-
- This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
-
-
-
+
+
+
+ <__paket__xunit_runner_visualstudio_props>net20\xunit.runner.visualstudio
+
+
+
+
+ <__paket__xunit_runner_visualstudio_props>portable-net45+win8+wp8+wpa81\xunit.runner.visualstudio
+
+
+
+
+ <__paket__xunit_runner_visualstudio_props>uap10.0\xunit.runner.visualstudio
+ <__paket__xunit_runner_visualstudio_targets>uap10.0\xunit.runner.visualstudio
+
+
+
+
+ <__paket__xunit_runner_visualstudio_props>win81\xunit.runner.visualstudio
+ <__paket__xunit_runner_visualstudio_targets>win81\xunit.runner.visualstudio
+
+
+
+
+ <__paket__xunit_runner_visualstudio_props>wpa81\xunit.runner.visualstudio
+ <__paket__xunit_runner_visualstudio_targets>wpa81\xunit.runner.visualstudio
+
+
+
+
+
+
+
+ <__paket__xunit_core_props>portable-net45+win8+wp8+wpa81\xunit.core
+
+
+
+
+ <__paket__xunit_core_props>win81\xunit.core
+
+
+
+
+ <__paket__xunit_core_props>wpa81\xunit.core
+
+
+
+
+
+
+
+
+
+ ..\..\..\packages\Flurl.Http.Signed\lib\net45\Flurl.Http.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Flurl.Http.Signed\lib\portable-net45+sl50+win+wpa81+wp80\Flurl.Http.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\Flurl.Signed\lib\portable-net40+sl50+win+wpa81+wp80+MonoAndroid10+MonoTouch10\Flurl.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\Marvin.JsonPatch.Signed\lib\portable-net40+win+wpa81\Marvin.JsonPatch.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8\System.IO.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8\System.Runtime.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8\System.Threading.Tasks.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8+wp71+wpa81\System.IO.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8+wp71+wpa81\System.Runtime.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8+wp71+wpa81\System.Threading.Tasks.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8+wp8+wpa81\System.IO.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8+wp8+wpa81\System.Runtime.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+sl4+win8+wp8+wpa81\System.Threading.Tasks.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+sl5+win8+wp8+wpa81\System.IO.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+sl5+win8+wp8+wpa81\System.Runtime.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+sl5+win8+wp8+wpa81\System.Threading.Tasks.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+win8\System.IO.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+win8\System.Runtime.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+win8\System.Threading.Tasks.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+win8+wp8+wpa81\System.IO.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+win8+wp8+wpa81\System.Runtime.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl\lib\portable-net40+win8+wp8+wpa81\System.Threading.Tasks.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Bcl.Async\lib\portable-net40+sl4+win8+wp71+wpa81\Microsoft.Threading.Tasks.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl.Async\lib\portable-net40+sl4+win8+wp71+wpa81\Microsoft.Threading.Tasks.Extensions.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Bcl.Async\lib\portable-net45+win8+wp8+wpa81\Microsoft.Threading.Tasks.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl.Async\lib\portable-net45+win8+wp8+wpa81\Microsoft.Threading.Tasks.Extensions.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Bcl.Async\lib\portable-net45+win8+wpa81\Microsoft.Threading.Tasks.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Bcl.Async\lib\portable-net45+win8+wpa81\Microsoft.Threading.Tasks.Extensions.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Net.Http\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.Extensions.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Net.Http\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.Primitives.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Net.Http\lib\portable-net45+win8\System.Net.Http.Extensions.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Net.Http\lib\portable-net45+win8\System.Net.Http.Primitives.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Microsoft.Net.Http\lib\portable-net45+win8+wpa81\System.Net.Http.Extensions.dll
+ True
+ True
+
+
+ ..\..\..\packages\Microsoft.Net.Http\lib\portable-net45+win8+wpa81\System.Net.Http.Primitives.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\Moq\lib\net35\Moq.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Moq\lib\net40\Moq.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Moq\lib\sl5\Moq.Silverlight.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\Newtonsoft.Json\lib\net20\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Newtonsoft.Json\lib\net35\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Newtonsoft.Json\lib\net40\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Newtonsoft.Json\lib\net45\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Newtonsoft.Json\lib\netcore45\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Newtonsoft.Json\lib\portable-net40+sl5+wp80+win8+wpa81\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\Newtonsoft.Json\lib\portable-net45+wp80+win8+wpa81+aspnetcore50\Newtonsoft.Json.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\PCLStorage\lib\portable-net45+sl5+wp8+wpa81+win8+monoandroid+monotouch+Xamarin.iOS+Xamarin.Mac\PCLStorage.dll
+ True
+ True
+
+
+ ..\..\..\packages\PCLStorage\lib\portable-net45+sl5+wp8+wpa81+win8+monoandroid+monotouch+Xamarin.iOS+Xamarin.Mac\PCLStorage.Abstractions.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\PCLStorage\lib\portable-net45+wp8+wpa81+win8+monoandroid+monotouch+Xamarin.iOS+Xamarin.Mac\PCLStorage.dll
+ True
+ True
+
+
+ ..\..\..\packages\PCLStorage\lib\portable-net45+wp8+wpa81+win8+monoandroid+monotouch+Xamarin.iOS+Xamarin.Mac\PCLStorage.Abstractions.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\PCLStorage\lib\portable-win8+wpa81\PCLStorage.dll
+ True
+ True
+
+
+ ..\..\..\packages\PCLStorage\lib\portable-win8+wpa81\PCLStorage.Abstractions.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\SimpleRESTServices\lib\net35\SimpleRESTServices.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\SimpleRESTServices\lib\net40\SimpleRESTServices.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\xunit.abstractions\lib\net35\xunit.abstractions.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\xunit.abstractions\lib\portable-net45+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS\xunit.abstractions.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\xunit.assert\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\xunit.extensibility.core\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ ..\..\..\packages\xunit.extensibility.execution\lib\monoandroid\xunit.execution.dotnet.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\xunit.extensibility.execution\lib\monotouch\xunit.execution.dotnet.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\xunit.extensibility.execution\lib\net45\xunit.execution.desktop.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\xunit.extensibility.execution\lib\portable-net45+win8+wp8+wpa81\xunit.execution.dotnet.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\xunit.extensibility.execution\lib\win8\xunit.execution.dotnet.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\xunit.extensibility.execution\lib\wp8\xunit.execution.dotnet.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\xunit.extensibility.execution\lib\wpa81\xunit.execution.dotnet.dll
+ True
+ True
+
+
+
+
+
+
+ ..\..\..\packages\xunit.extensibility.execution\lib\xamarinios\xunit.execution.dotnet.dll
+ True
+ True
+
+
+
+
+
\ No newline at end of file
diff --git a/src/testing/unit/Serialization/EmptyEnumerableTests.cs b/src/testing/unit/Serialization/EmptyEnumerableTests.cs
index 98aaca6af..86f10021c 100644
--- a/src/testing/unit/Serialization/EmptyEnumerableTests.cs
+++ b/src/testing/unit/Serialization/EmptyEnumerableTests.cs
@@ -21,10 +21,10 @@ public ExampleThing()
public void WhenDeserializingNullCollection_ItShouldUseAnEmptyCollection()
{
var thing = new ExampleThing{Messages = null};
- string json = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Serialize(thing);
+ string json = OpenStackNet.Serialize(thing);
Assert.DoesNotContain("messages", json);
- var result = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Deserialize(json);
+ var result = OpenStackNet.Deserialize(json);
Assert.NotNull(result.Messages);
Assert.Empty(result.Messages);
@@ -35,7 +35,7 @@ public void WhenSerializingEmptyCollection_ItShouldBeIgnored()
{
var thing = new ExampleThing { Messages = new List() };
- string json = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Serialize(thing);
+ string json = OpenStackNet.Serialize(thing);
Assert.DoesNotContain("messages", json);
}
diff --git a/src/testing/unit/Serialization/RootWrapperConverterTests.cs b/src/testing/unit/Serialization/RootWrapperConverterTests.cs
index a88a25c71..155a11e1c 100644
--- a/src/testing/unit/Serialization/RootWrapperConverterTests.cs
+++ b/src/testing/unit/Serialization/RootWrapperConverterTests.cs
@@ -23,7 +23,7 @@ class ThingCollection : List
[Fact]
public void Serialize()
{
- var json = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Serialize(new Thing());
+ var json = OpenStackNet.Serialize(new Thing());
var jsonObj = JObject.Parse(json);
JProperty rootProperty = jsonObj.Properties().FirstOrDefault();
@@ -34,15 +34,15 @@ public void Serialize()
[Fact]
public void Deserialize()
{
- var json = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Serialize(new Thing {Id = "thing-id"});
- var thing = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Deserialize(json);
+ var json = OpenStackNet.Serialize(new Thing {Id = "thing-id"});
+ var thing = OpenStackNet.Deserialize(json);
Assert.Equal("thing-id", thing.Id);
}
[Fact]
public void SerializeWhenNotRoot()
{
- var json = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Serialize(new List{ new Thing() });
+ var json = OpenStackNet.Serialize(new List{ new Thing() });
Assert.DoesNotContain("\"thing\"", json);
}
@@ -50,7 +50,7 @@ public void SerializeWhenNotRoot()
[Fact]
public void SerializeWhenNested()
{
- var json = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Serialize(new ThingCollection { new Thing() });
+ var json = OpenStackNet.Serialize(new ThingCollection { new Thing() });
Assert.DoesNotContain("\"thing\"", json);
}
@@ -59,7 +59,7 @@ public void SerializeWhenNested()
public void DeserializeWhenNotRoot()
{
var json = JArray.Parse("[{'id':'thing-id'}]").ToString();
- var things = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Deserialize>(json);
+ var things = OpenStackNet.Deserialize>(json);
Assert.Equal(1, things.Count);
Assert.Equal("thing-id", things[0].Id);
}
@@ -68,7 +68,7 @@ public void DeserializeWhenNotRoot()
public void DeserializeWhenNested()
{
var json = JObject.Parse("{'things':[{'id':'thing-id'}]}").ToString();
- var things = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Deserialize(json);
+ var things = OpenStackNet.Deserialize(json);
Assert.NotNull(things);
Assert.Equal(1, things.Count);
Assert.Equal("thing-id", things[0].Id);
@@ -78,7 +78,7 @@ public void DeserializeWhenNested()
public void ShouldIgnoreUnexpectedRootProperties()
{
var json = JObject.Parse("{'links': [{'name': 'next', 'link': 'http://nextlink'}], 'thing': {'id': 'thing-id'}}").ToString();
- var thing = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Deserialize(json);
+ var thing = OpenStackNet.Deserialize(json);
Assert.NotNull(thing);
Assert.Equal("thing-id", thing.Id);
}
diff --git a/src/testing/unit/Serialization/TolerantEnumConverterTests.cs b/src/testing/unit/Serialization/TolerantEnumConverterTests.cs
index 46ab46d0b..dc8967f2a 100644
--- a/src/testing/unit/Serialization/TolerantEnumConverterTests.cs
+++ b/src/testing/unit/Serialization/TolerantEnumConverterTests.cs
@@ -25,7 +25,7 @@ enum StuffStatus
[Fact]
public void WhenValueIsRecognized_MatchToValue()
{
- var result = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Deserialize("\"ACTIVE\"");
+ var result = OpenStackNet.Deserialize("\"ACTIVE\"");
Assert.Equal(ThingStatus.Active, result);
}
@@ -33,7 +33,7 @@ public void WhenValueIsRecognized_MatchToValue()
[Fact]
public void WhenAttributedValueIsRecognized_MatchToValue()
{
- var result = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Deserialize("\"REMOVE_FAILED\"");
+ var result = OpenStackNet.Deserialize("\"REMOVE_FAILED\"");
Assert.Equal(ThingStatus.RemoveFailed, result);
}
@@ -41,7 +41,7 @@ public void WhenAttributedValueIsRecognized_MatchToValue()
[Fact]
public void WhenValueIsUnrecognized_MatchToUnknownValue()
{
- var result = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Deserialize("\"bad-enum-value\"");
+ var result = OpenStackNet.Deserialize("\"bad-enum-value\"");
Assert.Equal(ThingStatus.Unknown, result);
}
@@ -49,7 +49,7 @@ public void WhenValueIsUnrecognized_MatchToUnknownValue()
[Fact]
public void WhenValueIsUnrecognized_AndUnknownIsNotPresent_MatchToFirstValue()
{
- var result = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Deserialize("\"bad-enum-value\"");
+ var result = OpenStackNet.Deserialize("\"bad-enum-value\"");
Assert.Equal(StuffStatus.Missing, result);
}
@@ -57,7 +57,7 @@ public void WhenValueIsUnrecognized_AndUnknownIsNotPresent_MatchToFirstValue()
[Fact]
public void WhenValueIsUnrecognized_AndDestinationIsNullable_UseNull()
{
- var result = OpenStackNet.Configuration.FlurlHttpSettings.JsonSerializer.Deserialize("\"bad-enum-value\"");
+ var result = OpenStackNet.Deserialize("\"bad-enum-value\"");
Assert.Null(result);
}
diff --git a/src/testing/unit/app.config b/src/testing/unit/app.config
index 5ac8598cf..19027a646 100644
--- a/src/testing/unit/app.config
+++ b/src/testing/unit/app.config
@@ -1,11 +1,10 @@
-
-
-
-
-
-
-
-
-
+
+
+
+ True
+
+
+
+
diff --git a/src/testing/unit/packages.config b/src/testing/unit/packages.config
deleted file mode 100644
index 5a2c1906d..000000000
--- a/src/testing/unit/packages.config
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/testing/unit/paket.references b/src/testing/unit/paket.references
new file mode 100644
index 000000000..c37c4c738
--- /dev/null
+++ b/src/testing/unit/paket.references
@@ -0,0 +1,13 @@
+Flurl.Http.Signed
+Flurl.Signed
+Marvin.JsonPatch.Signed
+Moq
+Newtonsoft.Json
+SimpleRESTServices
+xunit
+xunit.abstractions
+xunit.assert
+xunit.core
+xunit.extensibility.core
+xunit.runner.console
+xunit.runner.visualstudio
\ No newline at end of file