FederationStateStoreStoredProcs.sql 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  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. IN applicationContext_IN BLOB,
  84. OUT storedHomeSubCluster_OUT varchar(256), OUT rowCount_OUT int)
  85. BEGIN
  86. INSERT INTO applicationsHomeSubCluster
  87. (applicationId, homeSubCluster, createTime, applicationContext)
  88. (SELECT applicationId_IN, homeSubCluster_IN, NOW(), applicationContext_IN
  89. FROM applicationsHomeSubCluster
  90. WHERE applicationId = applicationId_IN
  91. HAVING COUNT(*) = 0 );
  92. SELECT ROW_COUNT() INTO rowCount_OUT;
  93. SELECT homeSubCluster INTO storedHomeSubCluster_OUT
  94. FROM applicationsHomeSubCluster
  95. WHERE applicationId = applicationID_IN;
  96. END //
  97. CREATE PROCEDURE sp_updateApplicationHomeSubCluster(
  98. IN applicationId_IN varchar(64),
  99. IN homeSubCluster_IN varchar(256), IN applicationContext_IN BLOB, OUT rowCount_OUT int)
  100. BEGIN
  101. UPDATE applicationsHomeSubCluster
  102. SET homeSubCluster = homeSubCluster_IN,
  103. applicationContext = applicationContext_IN
  104. WHERE applicationId = applicationId_IN;
  105. SELECT ROW_COUNT() INTO rowCount_OUT;
  106. END //
  107. CREATE PROCEDURE sp_getApplicationHomeSubCluster(
  108. IN applicationId_IN varchar(64),
  109. OUT homeSubCluster_OUT varchar(256),
  110. OUT createTime_OUT datetime,
  111. OUT applicationContext_OUT BLOB)
  112. BEGIN
  113. SELECT homeSubCluster, applicationContext, createTime
  114. INTO homeSubCluster_OUT, applicationContext_OUT, createTime_OUT
  115. FROM applicationsHomeSubCluster
  116. WHERE applicationId = applicationID_IN;
  117. END //
  118. CREATE PROCEDURE sp_getApplicationsHomeSubCluster(IN limit_IN int, IN homeSubCluster_IN varchar(256))
  119. BEGIN
  120. SELECT
  121. applicationId,
  122. homeSubCluster,
  123. createTime
  124. FROM (SELECT
  125. applicationId,
  126. homeSubCluster,
  127. createTime,
  128. @rownum := 0
  129. FROM applicationshomesubcluster
  130. ORDER BY createTime DESC) AS applicationshomesubcluster
  131. WHERE (homeSubCluster_IN = '' OR homeSubCluster = homeSubCluster_IN)
  132. AND (@rownum := @rownum + 1) <= limit_IN;
  133. END //
  134. CREATE PROCEDURE sp_deleteApplicationHomeSubCluster(
  135. IN applicationId_IN varchar(64), OUT rowCount_OUT int)
  136. BEGIN
  137. DELETE FROM applicationsHomeSubCluster
  138. WHERE applicationId = applicationId_IN;
  139. SELECT ROW_COUNT() INTO rowCount_OUT;
  140. END //
  141. CREATE PROCEDURE sp_setPolicyConfiguration(
  142. IN queue_IN varchar(256), IN policyType_IN varchar(256),
  143. IN params_IN varbinary(32768), OUT rowCount_OUT int)
  144. BEGIN
  145. DELETE FROM policies WHERE queue = queue_IN;
  146. INSERT INTO policies (queue, policyType, params)
  147. VALUES (queue_IN, policyType_IN, params_IN);
  148. SELECT ROW_COUNT() INTO rowCount_OUT;
  149. END //
  150. CREATE PROCEDURE sp_getPoliciesConfigurations()
  151. BEGIN
  152. SELECT queue, policyType, params FROM policies;
  153. END //
  154. CREATE PROCEDURE sp_getPolicyConfiguration(
  155. IN queue_IN varchar(256), OUT policyType_OUT varchar(256),
  156. OUT params_OUT varbinary(32768))
  157. BEGIN
  158. SELECT policyType, params INTO policyType_OUT, params_OUT
  159. FROM policies WHERE queue = queue_IN;
  160. END //
  161. CREATE PROCEDURE sp_addReservationHomeSubCluster(
  162. IN reservationId_IN varchar(128), IN homeSubCluster_IN varchar(256),
  163. OUT storedHomeSubCluster_OUT varchar(256), OUT rowCount_OUT int)
  164. BEGIN
  165. INSERT INTO reservationsHomeSubCluster
  166. (reservationId,homeSubCluster)
  167. (SELECT reservationId_IN, homeSubCluster_IN
  168. FROM applicationsHomeSubCluster
  169. WHERE reservationId = reservationId_IN
  170. HAVING COUNT(*) = 0 );
  171. SELECT ROW_COUNT() INTO rowCount_OUT;
  172. SELECT homeSubCluster INTO storedHomeSubCluster_OUT
  173. FROM reservationsHomeSubCluster
  174. WHERE reservationId = reservationId_IN;
  175. END //
  176. CREATE PROCEDURE sp_getReservationHomeSubCluster(
  177. IN reservationId_IN varchar(128),
  178. OUT homeSubCluster_OUT varchar(256))
  179. BEGIN
  180. SELECT homeSubCluster INTO homeSubCluster_OUT
  181. FROM reservationsHomeSubCluster
  182. WHERE reservationId = reservationId_IN;
  183. END //
  184. CREATE PROCEDURE sp_getReservationsHomeSubCluster()
  185. BEGIN
  186. SELECT reservationId, homeSubCluster
  187. FROM reservationsHomeSubCluster;
  188. END //
  189. CREATE PROCEDURE sp_updateReservationHomeSubCluster(
  190. IN reservationId_IN varchar(128),
  191. IN homeSubCluster_IN varchar(256), OUT rowCount_OUT int)
  192. BEGIN
  193. UPDATE reservationsHomeSubCluster
  194. SET homeSubCluster = homeSubCluster_IN
  195. WHERE reservationId = reservationId_IN;
  196. SELECT ROW_COUNT() INTO rowCount_OUT;
  197. END //
  198. CREATE PROCEDURE sp_deleteReservationHomeSubCluster(
  199. IN reservationId_IN varchar(128), OUT rowCount_OUT int)
  200. BEGIN
  201. DELETE FROM reservationsHomeSubCluster
  202. WHERE reservationId = reservationId_IN;
  203. SELECT ROW_COUNT() INTO rowCount_OUT;
  204. END //
  205. CREATE PROCEDURE sp_addMasterKey(
  206. IN keyId_IN bigint, IN masterKey_IN varchar(1024),
  207. OUT rowCount_OUT int)
  208. BEGIN
  209. INSERT INTO masterKeys(keyId, masterKey)
  210. (SELECT keyId_IN, masterKey_IN
  211. FROM masterKeys
  212. WHERE keyId = keyId_IN
  213. HAVING COUNT(*) = 0);
  214. SELECT ROW_COUNT() INTO rowCount_OUT;
  215. END //
  216. CREATE PROCEDURE sp_getMasterKey(
  217. IN keyId_IN bigint,
  218. OUT masterKey_OUT varchar(1024))
  219. BEGIN
  220. SELECT masterKey INTO masterKey_OUT
  221. FROM masterKeys
  222. WHERE keyId = keyId_IN;
  223. END //
  224. CREATE PROCEDURE sp_deleteMasterKey(
  225. IN keyId_IN bigint, OUT rowCount_OUT int)
  226. BEGIN
  227. DELETE FROM masterKeys
  228. WHERE keyId = keyId_IN;
  229. SELECT ROW_COUNT() INTO rowCount_OUT;
  230. END //
  231. CREATE PROCEDURE sp_addDelegationToken(
  232. IN sequenceNum_IN bigint, IN tokenIdent_IN varchar(1024),
  233. IN token_IN varchar(1024), IN renewDate_IN bigint,
  234. OUT rowCount_OUT int)
  235. BEGIN
  236. INSERT INTO delegationTokens(sequenceNum, tokenIdent, token, renewDate)
  237. (SELECT sequenceNum_IN, tokenIdent_IN, token_IN, renewDate_IN
  238. FROM delegationTokens
  239. WHERE sequenceNum = sequenceNum_IN
  240. HAVING COUNT(*) = 0);
  241. SELECT ROW_COUNT() INTO rowCount_OUT;
  242. END //
  243. CREATE PROCEDURE sp_getDelegationToken(
  244. IN sequenceNum_IN bigint, OUT tokenIdent_OUT varchar(1024),
  245. OUT token_OUT varchar(1024), OUT renewDate_OUT bigint)
  246. BEGIN
  247. SELECT tokenIdent, token, renewDate INTO tokenIdent_OUT, token_OUT, renewDate_OUT
  248. FROM delegationTokens
  249. WHERE sequenceNum = sequenceNum_IN;
  250. END //
  251. CREATE PROCEDURE sp_updateDelegationToken(
  252. IN sequenceNum_IN bigint, IN tokenIdent_IN varchar(1024),
  253. IN token_IN varchar(1024), IN renewDate_IN bigint, OUT rowCount_OUT int)
  254. BEGIN
  255. UPDATE delegationTokens
  256. SET tokenIdent = tokenIdent_IN,
  257. token = token_IN,
  258. renewDate = renewDate_IN
  259. WHERE sequenceNum = sequenceNum_IN;
  260. SELECT ROW_COUNT() INTO rowCount_OUT;
  261. END //
  262. CREATE PROCEDURE sp_deleteDelegationToken(
  263. IN sequenceNum_IN bigint, OUT rowCount_OUT int)
  264. BEGIN
  265. DELETE FROM delegationTokens
  266. WHERE sequenceNum = sequenceNum_IN;
  267. SELECT ROW_COUNT() INTO rowCount_OUT;
  268. END //
  269. CREATE PROCEDURE sp_storeVersion(
  270. IN fedVersion_IN varbinary(1024), IN versionComment_IN varchar(255), OUT rowCount_OUT int)
  271. BEGIN
  272. DELETE FROM versions;
  273. INSERT INTO versions (fedVersion, versionComment)
  274. VALUES (fedVersion_IN, versionComment_IN);
  275. SELECT ROW_COUNT() INTO rowCount_OUT;
  276. END //
  277. CREATE PROCEDURE sp_getVersion(
  278. OUT fedVersion_OUT varbinary(1024), OUT versionComment_OUT varchar(255))
  279. BEGIN
  280. SELECT fedVersion, versionComment INTO fedVersion_OUT, versionComment_OUT
  281. FROM versions
  282. LIMIT 1;
  283. END //
  284. DELIMITER ;