PageRenderTime 47ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/tests/rackspace/requests/load_balancers/helper.rb

https://gitlab.com/debian-ruby/ruby-fog-rackspace
Ruby | 229 lines | 220 code | 9 blank | 0 comment | 0 complexity | 4c862034873b1bcd9904ba26697b3533 MD5 | raw file
  1. SINGLE_NODE_FORMAT = {'address' => String, 'id' => Integer, 'status' => String, 'weight' => Fog::Nullable::Integer, 'port' => Integer, 'condition' => String, 'type' => String}
  2. NODE_FORMAT = {'node' => SINGLE_NODE_FORMAT.merge({ 'metadata' => []})}
  3. NODES_FORMAT = {'nodes' => [SINGLE_NODE_FORMAT]}
  4. VIRTUAL_IP_FORMAT = {'type' => String, 'id' => Integer, 'type' => String, 'ipVersion' => String, 'address' => String}
  5. VIRTUAL_IPS_FORMAT = { 'virtualIps' => [VIRTUAL_IP_FORMAT] }
  6. SOURCE_ADDRESSES = {
  7. 'ipv4Servicenet' => String,
  8. 'ipv4Public' => String,
  9. 'ipv6Public' => String,
  10. }
  11. LOAD_BALANCER_USAGE_FORMAT = {
  12. 'links' => [
  13. {
  14. 'otherAttributes' => [],
  15. 'href' => Fog::Nullable::String,
  16. 'rel' => Fog::Nullable::String
  17. }
  18. ],
  19. 'loadBalancerUsageRecords' => [
  20. {
  21. 'id' => Fog::Nullable::Integer,
  22. 'eventType' => Fog::Nullable::String,
  23. 'averageNumConnections' => Fog::Nullable::Float,
  24. 'incomingTransfer' => Fog::Nullable::Integer,
  25. 'outgoingTransfer' => Fog::Nullable::Integer,
  26. 'numVips' => Fog::Nullable::Integer,
  27. 'numPolls' => Fog::Nullable::Integer,
  28. 'startTime' => Fog::Nullable::String,
  29. 'endTime' => Fog::Nullable::String,
  30. 'vipType' => Fog::Nullable::String,
  31. }
  32. ]
  33. }
  34. LOAD_BALANCER_STATS_FORMAT = {
  35. 'connectTimeOut' => Integer,
  36. 'connectError' => Integer,
  37. 'connectFailure' => Integer,
  38. 'dataTimedOut' => Integer,
  39. 'keepAliveTimedOut' => Integer,
  40. 'maxConn' => Integer
  41. }
  42. SSL_TERMINATION_FORMAT = {
  43. 'sslTermination' => {
  44. 'certificate' => String,
  45. 'privatekey' => String,
  46. 'enabled' => Fog::Boolean,
  47. 'securePort' => Integer,
  48. 'secureTrafficOnly' => Fog::Boolean,
  49. 'intermediateCertificate' => Fog::Nullable::String
  50. }
  51. }
  52. USAGE_FORMAT = {
  53. 'accountId' => Integer,
  54. 'loadBalancerUsages' => [
  55. {
  56. 'loadBalancerId' => Fog::Nullable::Integer,
  57. 'loadBalancerName' => Fog::Nullable::String
  58. }.merge(LOAD_BALANCER_USAGE_FORMAT)
  59. ],
  60. 'accountUsage' => [
  61. {
  62. 'startTime' => Fog::Nullable::String,
  63. 'numLoadBalancers' => Fog::Nullable::Integer,
  64. 'numPublicVips' => Fog::Nullable::Integer,
  65. 'numServicenetVips' => Fog::Nullable::Integer
  66. }
  67. ]
  68. }
  69. CONNECTION_LOGGING_FORMAT = {
  70. 'connectionLogging' => {
  71. 'enabled' => Fog::Boolean
  72. }
  73. }
  74. CONNECTION_THROTTLING_FORMAT = {
  75. 'connectionThrottle' => {
  76. 'maxConnections' => Fog::Nullable::Integer,
  77. 'minConnections' => Fog::Nullable::Integer,
  78. 'maxConnectionRate' => Fog::Nullable::Integer,
  79. 'rateInterval' => Fog::Nullable::Integer
  80. }
  81. }
  82. SESSION_PERSISTENCE_FORMAT = {
  83. 'sessionPersistence' => {
  84. 'persistenceType' => Fog::Nullable::String
  85. }
  86. }
  87. CONTENT_CACHING_FORMAT = {
  88. 'contentCaching' => {
  89. 'enabled' => Fog::Boolean
  90. }
  91. }
  92. ACCESS_LIST_FORMAT = {
  93. 'accessList' => [
  94. {
  95. 'address' => String,
  96. 'id' => Integer,
  97. 'type' => String
  98. }
  99. ]
  100. }
  101. HEALTH_MONITOR_FORMAT = {
  102. 'healthMonitor' => {
  103. 'type' => Fog::Nullable::String,
  104. 'delay' => Fog::Nullable::Integer,
  105. 'timeout' => Fog::Nullable::Integer,
  106. 'attemptsBeforeDeactivation' => Fog::Nullable::Integer,
  107. 'path' => Fog::Nullable::String,
  108. 'bodyRegex' => Fog::Nullable::String,
  109. 'statusRegex' => Fog::Nullable::String
  110. }
  111. }
  112. STATUS_ACTIVE = 'ACTIVE'
  113. LOAD_BALANCERS_FORMAT = {
  114. 'loadBalancers' => [
  115. {
  116. 'name' => String,
  117. 'id' => Integer,
  118. 'port' => Integer,
  119. 'protocol' => String,
  120. 'algorithm' => String,
  121. 'status' => String,
  122. 'virtualIps' => [VIRTUAL_IP_FORMAT],
  123. 'created' => { 'time' => String },
  124. 'updated' => { 'time' => String },
  125. 'nodeCount' => Integer
  126. }]
  127. }
  128. LOAD_BALANCERS_DETAIL_FORMAT = {
  129. 'loadBalancers' => [
  130. {
  131. 'name' => String,
  132. 'id' => Integer,
  133. 'port' => Integer,
  134. 'protocol' => String,
  135. 'algorithm' => String,
  136. 'sourceAddresses' => SOURCE_ADDRESSES,
  137. 'status' => String,
  138. 'timeout' => Integer,
  139. 'virtualIps' => [VIRTUAL_IP_FORMAT],
  140. 'nodes' => [SINGLE_NODE_FORMAT],
  141. 'created' => { 'time' => String },
  142. 'updated' => { 'time' => String }
  143. }]
  144. }
  145. LOAD_BALANCER_FORMAT = {
  146. 'loadBalancer' => {
  147. 'name' => String,
  148. 'id' => Integer,
  149. 'port' => Integer,
  150. 'protocol' => String,
  151. 'algorithm' => String,
  152. 'sourceAddresses' => SOURCE_ADDRESSES,
  153. 'status' => String,
  154. 'timeout' => Integer,
  155. 'cluster' => { 'name' => String },
  156. 'virtualIps' => [VIRTUAL_IP_FORMAT],
  157. 'nodes' => Fog::Nullable::Array,
  158. 'created' => { 'time' => String },
  159. 'updated' => { 'time' => String },
  160. 'contentCaching' => { 'enabled' => Fog::Boolean }
  161. }.merge(CONNECTION_LOGGING_FORMAT)
  162. }
  163. ERROR_PAGE_FORMAT = {
  164. 'errorpage' => {
  165. 'content' => String
  166. }
  167. }
  168. PRIVATE_KEY = '-----BEGIN RSA PRIVATE KEY-----
  169. MIIEpAIBAAKCAQEAqSXePu8qLmniU7jNxoWq3SLkR8txMsl1gFYftpq7NIFaGfzV
  170. f4ZswYdEYDVWWRepQjS0TvsB0d5+usEUy/pcdZAlQLnn+540iLkvxKPVMzojUbG6
  171. yOAmjC/xAZuExJHtfCrRHUQ4WQCwqyqANfP81y1inAb0zJGbtWUreV+nv8Ue77qX
  172. 77fOuqI6zOHinGZU7l25XGLcVUphgt8UtHZBzz2ahoftZ97DhUyQiSJQCaHXJd3Q
  173. eIHAq9qc7hu+usiYZWz34A0lw/gAl+RYcdvVc8kIwWxpiSieqqBPOwNzN5B0+9uu
  174. 5sDzMGMFnnSWcNKIPumX0rke3xFUl3UD6GJwvwIDAQABAoIBABQ7alT+yH3avm6j
  175. OUHYtTJUPRf1VqnrfPmH061E3sWN/1gCbQse6h1P77bOSnDHqsA3i6Wy0mnnAiOW
  176. esVXQf3x6vLOCdiH+OKtu+/6ZMMG3jikWKI0ZYf5KAu4LW5RwiVK/c5RXagPtBIV
  177. OFa7w299h0EAeAGMHSLaYhPXhDokyJa6yDkAQL3n+9L3V8kNWeCELfrqXnXF4X0K
  178. CJp622tS/fW6kzppJyLJ4GPkK9HNMpu02/n2Z7swWypfF+7set+9/aNTooDYWzCu
  179. dbnRgqEIG1IP8+t6HG6x9VujJVJLIW/WLITnQ/WTRXOQHBGhazgmwe1GPdxsQgXu
  180. /wIcsIkCgYEA8Si0q+QhmJyoAm8vTHjo6+DD06YYTvSODLJOpOqr1ncGGDJ/evBw
  181. x+9QsK3veXMbAK5G7Xss32IuXbBfjqQ89+/q/YT4BnS3T0OQa2WlR8tURNphCDr5
  182. B3yD212kJTTehC+p7BI9zhnWXD9kImh4vm4XcOsC9iqOSCZkGfvRPRsCgYEAs46t
  183. Y85v2Pk235r1BPbgKwqYR+jElH4VWKu+EguUeQ4BlS47KktlLhvHtwrTv/UZ+lPx
  184. 8gSJTgyy7iEmzcGwPf1/MI5xg+DPgGhbr2G8EvrThmdHy+rPF2YSp1iBmJ4xq/1r
  185. 6XYKvf6ST3iujxTPU5xPEDUSLsH2ejJD/ddqSS0CgYEAkIdxyDa//8ObWWIjObSY
  186. +4zIMBcyKFeernNKeMH/3FeW+neBOT/Sh7CgblK/28ylWUIZVghlOzePTC0BB+7c
  187. b0eFUQ0YzF204rc+XW8coCt2xJEQaCtXxinUqGq1jmriFNyv/MBt9BA+DSkcrRZp
  188. js9SEyV1r+yPOyRvB7eIjhMCgYEAkd5yG+fkU1c6bfNb4/mPaUgFKD4AHUZEnzF+
  189. ivhfWOy4+nGBXT285/VnjNs95O8AeK3jmyJ2TTLh1bSW6obUX7flsRO3QlTLHd0p
  190. xtPWT3D3kHOtDwslzDN/KfYr6klxvvB0z0e3OFxsjiVTYiecuqb8UAVdTSED1Ier
  191. Vre+v80CgYB86OqcAlR3diNaIwHgwK5kP2NAH1DaSwZXoobYpdkjsUQfJN5jwJbD
  192. 4/6HVydoc5xe0z8B+O1VUzC+QA0gdXgHbmLZBIUeQU8sE4hGELoe/eWULXGwI91M
  193. FyEWg03jZj8FkFh2954zwU6BOcbeL+9GrTdTPu1vuHoTitmNEye4iw==
  194. -----END RSA PRIVATE KEY-----'
  195. CERTIFICATE = '-----BEGIN CERTIFICATE-----
  196. MIIEWjCCA0KgAwIBAgIGATTTGu/tMA0GCSqGSIb3DQEBBQUAMHkxCzAJBgNVBAYT
  197. AlVTMQ4wDAYDVQQIEwVUZXhhczEOMAwGA1UEBxMFVGV4YXMxGjAYBgNVBAoTEVJh
  198. Y2tTcGFjZSBIb3N0aW5nMRQwEgYDVQQLEwtSYWNrRXhwIENBNTEYMBYGA1UEAxMP
  199. Y2E1LnJhY2tleHAub3JnMB4XDTEyMDExMjE4MDgwNVoXDTM5MDUzMDE4MDgwNVow
  200. gZcxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIEwVUZXhhczEUMBIGA1UEBxMLU2FuIEFu
  201. dG9uaW8xEDAOBgNVBAoTB1JhY2tFeHAxEDAOBgNVBAsTB1JhY2tEZXYxPjA8BgNV
  202. BAMMNW15c2l0ZS5jb20vZW1haWxBZGRyZXNzPXBoaWxsaXAudG9vaGlsbEByYWNr
  203. c3BhY2UuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqSXePu8q
  204. LmniU7jNxoWq3SLkR8txMsl1gFYftpq7NIFaGfzVf4ZswYdEYDVWWRepQjS0TvsB
  205. 0d5+usEUy/pcdZAlQLnn+540iLkvxKPVMzojUbG6yOAmjC/xAZuExJHtfCrRHUQ4
  206. WQCwqyqANfP81y1inAb0zJGbtWUreV+nv8Ue77qX77fOuqI6zOHinGZU7l25XGLc
  207. VUphgt8UtHZBzz2ahoftZ97DhUyQiSJQCaHXJd3QeIHAq9qc7hu+usiYZWz34A0l
  208. w/gAl+RYcdvVc8kIwWxpiSieqqBPOwNzN5B0+9uu5sDzMGMFnnSWcNKIPumX0rke
  209. 3xFUl3UD6GJwvwIDAQABo4HIMIHFMIGjBgNVHSMEgZswgZiAFIkXQizRaftxVDaL
  210. P/Fb/F2ht017oX2kezB5MQswCQYDVQQGEwJVUzEOMAwGA1UECBMFVGV4YXMxDjAM
  211. BgNVBAcTBVRleGFzMRowGAYDVQQKExFSYWNrU3BhY2UgSG9zdGluZzEUMBIGA1UE
  212. CxMLUmFja0V4cCBDQTQxGDAWBgNVBAMTD2NhNC5yYWNrZXhwLm9yZ4IBAjAdBgNV
  213. HQ4EFgQUQUXHjce1JhjJDA4nhYcbebMrIGYwDQYJKoZIhvcNAQEFBQADggEBACLe
  214. vxcDSx91uQoc1uancb+vfkaNpvfAxOkUtrdRSHGXxvUkf/EJpIyG/M0jt5CLmEpE
  215. UedeCFlRN+Qnsqt589ZemWWJwth/Jbu0wQodfSo1cP0J2GFZDyTd5cWgm0IxD8A/
  216. ZRGzNnTx3xskv6/lOh7so9ULppEbOsZTNqQ4ahbxbiaR2iDTQGF3XKSHha8O93RB
  217. YlnFahKZ2j0CpYvg0lJjfN0Lvj7Sm6GBA74n2OrGuB14H27wklD+PtIEFniyxKbq
  218. 5TDO0l4yDgkR7PsckmZqK22GP9c3fQkmXodtpV1wRjcSAxxVWYm+S24XvMFERs3j
  219. yXEf+VJ0H+voAvxgbAk=
  220. -----END CERTIFICATE-----'