PageRenderTime 43ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/redistributable/openstack.net/src/Samples/FSharpCodeSamples/QueueingServiceExamples.fs

https://gitlab.com/rekby-archive/onlyoffice-CommunityServer
F# | 121 lines | 83 code | 14 blank | 24 comment | 0 complexity | e1ccad88ea3c6b3e87e67a2cc685b162 MD5 | raw file
  1. module QueueingServiceExamples
  2. open System
  3. open System.Threading
  4. open System.Threading.Tasks
  5. open net.openstack.Core
  6. open net.openstack.Core.Collections
  7. open net.openstack.Core.Domain
  8. open net.openstack.Core.Domain.Queues
  9. open net.openstack.Core.Providers
  10. open net.openstack.Providers.Rackspace
  11. let identity = new CloudIdentity (Username = "MyUser", APIKey = "API_KEY_HERE")
  12. let region : string = null
  13. let clientId = Guid.NewGuid()
  14. let internalUrl = false
  15. let identityProvider : IIdentityProvider = null
  16. let getHomeAsyncAwait =
  17. async {
  18. //#region GetHomeAsync (await)
  19. let queueingService = new CloudQueuesProvider(identity, region, clientId, internalUrl, identityProvider)
  20. let! homeDocument = queueingService.GetHomeAsync(CancellationToken.None) |> Async.AwaitTask
  21. //#endregion
  22. ()
  23. }
  24. let getHome =
  25. //#region GetHomeAsync (TPL)
  26. let queueingService = new CloudQueuesProvider(identity, region, clientId, internalUrl, identityProvider)
  27. let task = queueingService.GetHomeAsync(CancellationToken.None)
  28. //#endregion
  29. ()
  30. let getNodeHealthAsyncAwait =
  31. async {
  32. //#region GetNodeHealthAsync (await)
  33. let queueingService = new CloudQueuesProvider(identity, region, clientId, internalUrl, identityProvider)
  34. queueingService.GetNodeHealthAsync(CancellationToken.None) |> Async.AwaitIAsyncResult |> ignore
  35. //#endregion
  36. ()
  37. }
  38. let getNodeHealth =
  39. //#region GetNodeHealthAsync (TPL)
  40. let queueingService = new CloudQueuesProvider(identity, region, clientId, internalUrl, identityProvider)
  41. let task = queueingService.GetNodeHealthAsync(CancellationToken.None)
  42. //#endregion
  43. ()
  44. let createQueueAsyncAwait =
  45. async {
  46. //#region CreateQueueAsync (await)
  47. let queueingService = new CloudQueuesProvider(identity, region, clientId, internalUrl, identityProvider)
  48. let queueName = new QueueName("ExampleQueue")
  49. let! createdQueue = queueingService.CreateQueueAsync(queueName, CancellationToken.None) |> Async.AwaitTask
  50. //#endregion
  51. ()
  52. }
  53. let createQueue =
  54. //#region CreateQueueAsync (TPL)
  55. let queueingService = new CloudQueuesProvider(identity, region, clientId, internalUrl, identityProvider)
  56. let queueName = new QueueName("ExampleQueue")
  57. let task = queueingService.CreateQueueAsync(queueName, CancellationToken.None)
  58. //#endregion
  59. ()
  60. let deleteQueueAsyncAwait =
  61. async {
  62. //#region DeleteQueueAsync (await)
  63. let queueingService = new CloudQueuesProvider(identity, region, clientId, internalUrl, identityProvider)
  64. let queueName = new QueueName("ExampleQueue")
  65. queueingService.DeleteQueueAsync(queueName, CancellationToken.None) |> Async.AwaitIAsyncResult |> ignore
  66. //#endregion
  67. ()
  68. }
  69. let deleteQueue =
  70. //#region DeleteQueueAsync (TPL)
  71. let queueingService = new CloudQueuesProvider(identity, region, clientId, internalUrl, identityProvider)
  72. let queueName = new QueueName("ExampleQueue")
  73. let task = queueingService.DeleteQueueAsync(queueName, CancellationToken.None)
  74. //#endregion
  75. ()
  76. let listQueuesAsyncAwait =
  77. async {
  78. //#region ListQueuesAsync (await)
  79. let queueingService = new CloudQueuesProvider(identity, region, clientId, internalUrl, identityProvider)
  80. let! queuesPage = queueingService.ListQueuesAsync(null, Nullable(), true, CancellationToken.None) |> Async.AwaitTask
  81. let! queues = queuesPage.GetAllPagesAsync(CancellationToken.None, null) |> Async.AwaitTask
  82. //#endregion
  83. ()
  84. }
  85. let listQueues =
  86. //#region ListQueuesAsync (TPL)
  87. let queueingService = new CloudQueuesProvider(identity, region, clientId, internalUrl, identityProvider)
  88. let queuesPageTask = queueingService.ListQueuesAsync(null, Nullable(), true, CancellationToken.None)
  89. let queuesTask = queuesPageTask.ContinueWith(fun (task:Task<ReadOnlyCollectionPage<CloudQueue>>) -> task.Result.GetAllPagesAsync(CancellationToken.None, null)) |> TaskExtensions.Unwrap
  90. //#endregion
  91. ()
  92. let queueExistsAsyncAwait =
  93. async {
  94. //#region QueueExistsAsync (await)
  95. let queueingService = new CloudQueuesProvider(identity, region, clientId, internalUrl, identityProvider)
  96. let queueName = new QueueName("ExampleQueue")
  97. let! exists = queueingService.QueueExistsAsync(queueName, CancellationToken.None) |> Async.AwaitTask
  98. //#endregion
  99. ()
  100. }
  101. let queueExists =
  102. //#region QueueExistsAsync (TPL)
  103. let queueingService = new CloudQueuesProvider(identity, region, clientId, internalUrl, identityProvider)
  104. let queueName = new QueueName("ExampleQueue")
  105. let task = queueingService.QueueExistsAsync(queueName, CancellationToken.None)
  106. //#endregion
  107. ()