FederationStateStoreStoredProcs.sql 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. /**
  2. * Licensed to the Apache Software Foundation (ASF) under one
  3. * or more contributor license agreements. See the NOTICE file
  4. * distributed with this work for additional information
  5. * regarding copyright ownership. The ASF licenses this file
  6. * to you under the Apache License, Version 2.0 (the
  7. * "License"); you may not use this file except in compliance
  8. * with the License. You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an "AS IS" BASIS,
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. */
  18. -- Script to generate all the stored procedures for the Federation StateStore in MySQL
  19. USE FederationStateStore
  20. DELIMITER //
  21. CREATE PROCEDURE sp_registerSubCluster(
  22. IN subClusterId_IN varchar(256),
  23. IN amRMServiceAddress_IN varchar(256),
  24. IN clientRMServiceAddress_IN varchar(256),
  25. IN rmAdminServiceAddress_IN varchar(256),
  26. IN rmWebServiceAddress_IN varchar(256),
  27. IN state_IN varchar(256),
  28. IN lastStartTime_IN bigint, IN capability_IN varchar(6000),
  29. OUT rowCount_OUT int)
  30. BEGIN
  31. DELETE FROM membership WHERE (subClusterId = subClusterId_IN);
  32. INSERT INTO membership (subClusterId, amRMServiceAddress, clientRMServiceAddress,
  33. rmAdminServiceAddress, rmWebServiceAddress, lastHeartBeat, state, lastStartTime, capability)
  34. VALUES (subClusterId_IN, amRMServiceAddress_IN, clientRMServiceAddress_IN,
  35. rmAdminServiceAddress_IN, rmWebServiceAddress_IN, NOW(), state_IN, lastStartTime_IN, capability_IN);
  36. SELECT ROW_COUNT() INTO rowCount_OUT;
  37. END //
  38. CREATE PROCEDURE sp_deregisterSubCluster(
  39. IN subClusterId_IN varchar(256),
  40. IN state_IN varchar(64),
  41. OUT rowCount_OUT int)
  42. BEGIN
  43. UPDATE membership SET state = state_IN
  44. WHERE (subClusterId = subClusterId_IN AND state != state_IN);
  45. SELECT ROW_COUNT() INTO rowCount_OUT;
  46. END //
  47. CREATE PROCEDURE sp_subClusterHeartbeat(
  48. IN subClusterId_IN varchar(256), IN state_IN varchar(64),
  49. IN capability_IN varchar(6000), OUT rowCount_OUT int)
  50. BEGIN
  51. UPDATE membership
  52. SET capability = capability_IN,
  53. state = state_IN,
  54. lastHeartBeat = NOW()
  55. WHERE subClusterId = subClusterId_IN;
  56. SELECT ROW_COUNT() INTO rowCount_OUT;
  57. END //
  58. CREATE PROCEDURE sp_getSubCluster(
  59. IN subClusterId_IN varchar(256),
  60. OUT amRMServiceAddress_OUT varchar(256),
  61. OUT clientRMServiceAddress_OUT varchar(256),
  62. OUT rmAdminServiceAddress_OUT varchar(256),
  63. OUT rmWebServiceAddress_OUT varchar(256),
  64. OUT lastHeartBeat_OUT datetime, OUT state_OUT varchar(64),
  65. OUT lastStartTime_OUT bigint,
  66. OUT capability_OUT varchar(6000))
  67. BEGIN
  68. SELECT amRMServiceAddress, clientRMServiceAddress, rmAdminServiceAddress, rmWebServiceAddress,
  69. lastHeartBeat, state, lastStartTime, capability
  70. INTO amRMServiceAddress_OUT, clientRMServiceAddress_OUT, rmAdminServiceAddress_OUT,
  71. rmWebServiceAddress_OUT, lastHeartBeat_OUT, state_OUT, lastStartTime_OUT, capability_OUT
  72. FROM membership WHERE subClusterId = subClusterId_IN;
  73. END //
  74. CREATE PROCEDURE sp_getSubClusters()
  75. BEGIN
  76. SELECT subClusterId, amRMServiceAddress, clientRMServiceAddress,
  77. rmAdminServiceAddress, rmWebServiceAddress, lastHeartBeat,
  78. state, lastStartTime, capability
  79. FROM membership;
  80. END //
  81. CREATE PROCEDURE sp_addApplicationHomeSubCluster(
  82. IN applicationId_IN varchar(64), IN homeSubCluster_IN varchar(256),
  83. OUT storedHomeSubCluster_OUT varchar(256), OUT rowCount_OUT int)
  84. BEGIN
  85. INSERT INTO applicationsHomeSubCluster
  86. (applicationId,homeSubCluster)
  87. (SELECT applicationId_IN, homeSubCluster_IN
  88. FROM applicationsHomeSubCluster
  89. WHERE applicationId = applicationId_IN
  90. HAVING COUNT(*) = 0 );
  91. SELECT ROW_COUNT() INTO rowCount_OUT;
  92. SELECT homeSubCluster INTO storedHomeSubCluster_OUT
  93. FROM applicationsHomeSubCluster
  94. WHERE applicationId = applicationID_IN;
  95. END //
  96. CREATE PROCEDURE sp_updateApplicationHomeSubCluster(
  97. IN applicationId_IN varchar(64),
  98. IN homeSubCluster_IN varchar(256), OUT rowCount_OUT int)
  99. BEGIN
  100. UPDATE applicationsHomeSubCluster
  101. SET homeSubCluster = homeSubCluster_IN
  102. WHERE applicationId = applicationId_IN;
  103. SELECT ROW_COUNT() INTO rowCount_OUT;
  104. END //
  105. CREATE PROCEDURE sp_getApplicationHomeSubCluster(
  106. IN applicationId_IN varchar(64),
  107. OUT homeSubCluster_OUT varchar(256))
  108. BEGIN
  109. SELECT homeSubCluster INTO homeSubCluster_OUT
  110. FROM applicationsHomeSubCluster
  111. WHERE applicationId = applicationID_IN;
  112. END //
  113. CREATE PROCEDURE sp_getApplicationsHomeSubCluster(IN limit_IN int, IN homeSubCluster_IN varchar(256))
  114. BEGIN
  115. SELECT
  116. applicationId,
  117. homeSubCluster,
  118. createTime
  119. FROM (SELECT
  120. applicationId,
  121. homeSubCluster,
  122. createTime,
  123. @rownum := 0
  124. FROM applicationshomesubcluster
  125. ORDER BY createTime DESC) AS applicationshomesubcluster
  126. WHERE (homeSubCluster_IN = '' OR homeSubCluster = homeSubCluster_IN)
  127. AND (@rownum := @rownum + 1) <= limit_IN;
  128. END //
  129. CREATE PROCEDURE sp_deleteApplicationHomeSubCluster(
  130. IN applicationId_IN varchar(64), OUT rowCount_OUT int)
  131. BEGIN
  132. DELETE FROM applicationsHomeSubCluster
  133. WHERE applicationId = applicationId_IN;
  134. SELECT ROW_COUNT() INTO rowCount_OUT;
  135. END //
  136. CREATE PROCEDURE sp_setPolicyConfiguration(
  137. IN queue_IN varchar(256), IN policyType_IN varchar(256),
  138. IN params_IN varbinary(32768), OUT rowCount_OUT int)
  139. BEGIN
  140. DELETE FROM policies WHERE queue = queue_IN;
  141. INSERT INTO policies (queue, policyType, params)
  142. VALUES (queue_IN, policyType_IN, params_IN);
  143. SELECT ROW_COUNT() INTO rowCount_OUT;
  144. END //
  145. CREATE PROCEDURE sp_getPoliciesConfigurations()
  146. BEGIN
  147. SELECT queue, policyType, params FROM policies;
  148. END //
  149. CREATE PROCEDURE sp_getPolicyConfiguration(
  150. IN queue_IN varchar(256), OUT policyType_OUT varchar(256),
  151. OUT params_OUT varbinary(32768))
  152. BEGIN
  153. SELECT policyType, params INTO policyType_OUT, params_OUT
  154. FROM policies WHERE queue = queue_IN;
  155. END //
  156. CREATE PROCEDURE sp_addReservationHomeSubCluster(
  157. IN reservationId_IN varchar(128), IN homeSubCluster_IN varchar(256),
  158. OUT storedHomeSubCluster_OUT varchar(256), OUT rowCount_OUT int)
  159. BEGIN
  160. INSERT INTO reservationsHomeSubCluster
  161. (reservationId,homeSubCluster)
  162. (SELECT reservationId_IN, homeSubCluster_IN
  163. FROM applicationsHomeSubCluster
  164. WHERE reservationId = reservationId_IN
  165. HAVING COUNT(*) = 0 );
  166. SELECT ROW_COUNT() INTO rowCount_OUT;
  167. SELECT homeSubCluster INTO storedHomeSubCluster_OUT
  168. FROM reservationsHomeSubCluster
  169. WHERE reservationId = reservationId_IN;
  170. END //
  171. CREATE PROCEDURE sp_getReservationHomeSubCluster(
  172. IN reservationId_IN varchar(128),
  173. OUT homeSubCluster_OUT varchar(256))
  174. BEGIN
  175. SELECT homeSubCluster INTO homeSubCluster_OUT
  176. FROM reservationsHomeSubCluster
  177. WHERE reservationId = reservationId_IN;
  178. END //
  179. CREATE PROCEDURE sp_getReservationsHomeSubCluster()
  180. BEGIN
  181. SELECT reservationId, homeSubCluster
  182. FROM reservationsHomeSubCluster;
  183. END //
  184. CREATE PROCEDURE sp_updateReservationHomeSubCluster(
  185. IN reservationId_IN varchar(128),
  186. IN homeSubCluster_IN varchar(256), OUT rowCount_OUT int)
  187. BEGIN
  188. UPDATE reservationsHomeSubCluster
  189. SET homeSubCluster = homeSubCluster_IN
  190. WHERE reservationId = reservationId_IN;
  191. SELECT ROW_COUNT() INTO rowCount_OUT;
  192. END //
  193. CREATE PROCEDURE sp_deleteReservationHomeSubCluster(
  194. IN reservationId_IN varchar(128), OUT rowCount_OUT int)
  195. BEGIN
  196. DELETE FROM reservationsHomeSubCluster
  197. WHERE reservationId = reservationId_IN;
  198. SELECT ROW_COUNT() INTO rowCount_OUT;
  199. END //
  200. CREATE PROCEDURE sp_addMasterKey(
  201. IN keyId_IN bigint, IN masterKey_IN varchar(1024),
  202. OUT rowCount_OUT int)
  203. BEGIN
  204. INSERT INTO masterKeys(keyId, masterKey)
  205. (SELECT keyId_IN, masterKey_IN
  206. FROM masterKeys
  207. WHERE keyId = keyId_IN
  208. HAVING COUNT(*) = 0);
  209. SELECT ROW_COUNT() INTO rowCount_OUT;
  210. END //
  211. CREATE PROCEDURE sp_getMasterKey(
  212. IN keyId_IN bigint,
  213. OUT masterKey_OUT varchar(1024))
  214. BEGIN
  215. SELECT masterKey INTO masterKey_OUT
  216. FROM masterKeys
  217. WHERE keyId = keyId_IN;
  218. END //
  219. CREATE PROCEDURE sp_deleteMasterKey(
  220. IN keyId_IN bigint, OUT rowCount_OUT int)
  221. BEGIN
  222. DELETE FROM masterKeys
  223. WHERE keyId = keyId_IN;
  224. SELECT ROW_COUNT() INTO rowCount_OUT;
  225. END //
  226. CREATE PROCEDURE sp_addDelegationToken(
  227. IN sequenceNum_IN bigint, IN tokenIdent_IN varchar(1024),
  228. IN token_IN varchar(1024), IN renewDate_IN bigint,
  229. OUT rowCount_OUT int)
  230. BEGIN
  231. INSERT INTO delegationTokens(sequenceNum, tokenIdent, token, renewDate)
  232. (SELECT sequenceNum_IN, tokenIdent_IN, token_IN, renewDate_IN
  233. FROM delegationTokens
  234. WHERE sequenceNum = sequenceNum_IN
  235. HAVING COUNT(*) = 0);
  236. SELECT ROW_COUNT() INTO rowCount_OUT;
  237. END //
  238. CREATE PROCEDURE sp_getDelegationToken(
  239. IN sequenceNum_IN bigint, OUT tokenIdent_OUT varchar(1024),
  240. OUT token_OUT varchar(1024), OUT renewDate_OUT bigint)
  241. BEGIN
  242. SELECT tokenIdent, token, renewDate INTO tokenIdent_OUT, token_OUT, renewDate_OUT
  243. FROM delegationTokens
  244. WHERE sequenceNum = sequenceNum_IN;
  245. END //
  246. CREATE PROCEDURE sp_updateDelegationToken(
  247. IN sequenceNum_IN bigint, IN tokenIdent_IN varchar(1024),
  248. IN token_IN varchar(1024), IN renewDate_IN bigint, OUT rowCount_OUT int)
  249. BEGIN
  250. UPDATE delegationTokens
  251. SET tokenIdent = tokenIdent_IN,
  252. token = token_IN,
  253. renewDate = renewDate_IN
  254. WHERE sequenceNum = sequenceNum_IN;
  255. SELECT ROW_COUNT() INTO rowCount_OUT;
  256. END //
  257. CREATE PROCEDURE sp_deleteDelegationToken(
  258. IN sequenceNum_IN bigint, OUT rowCount_OUT int)
  259. BEGIN
  260. DELETE FROM delegationTokens
  261. WHERE sequenceNum = sequenceNum_IN;
  262. SELECT ROW_COUNT() INTO rowCount_OUT;
  263. END //
  264. DELIMITER ;