316 lines
11 KiB
SQL
316 lines
11 KiB
SQL
/**
|
|
* Licensed to the Apache Software Foundation (ASF) under one
|
|
* or more contributor license agreements. See the NOTICE file
|
|
* distributed with this work for additional information
|
|
* regarding copyright ownership. The ASF licenses this file
|
|
* to you under the Apache License, Version 2.0 (the
|
|
* "License"); you may not use this file except in compliance
|
|
* with the License. You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
-- Script to generate all the stored procedures for the Federation StateStore in MySQL
|
|
|
|
USE FederationStateStore;
|
|
|
|
DELIMITER //
|
|
|
|
CREATE PROCEDURE sp_registerSubCluster(
|
|
IN subClusterId_IN varchar(256),
|
|
IN amRMServiceAddress_IN varchar(256),
|
|
IN clientRMServiceAddress_IN varchar(256),
|
|
IN rmAdminServiceAddress_IN varchar(256),
|
|
IN rmWebServiceAddress_IN varchar(256),
|
|
IN state_IN varchar(256),
|
|
IN lastStartTime_IN bigint, IN capability_IN varchar(6000),
|
|
OUT rowCount_OUT int)
|
|
BEGIN
|
|
DELETE FROM membership WHERE (subClusterId = subClusterId_IN);
|
|
INSERT INTO membership (subClusterId, amRMServiceAddress, clientRMServiceAddress,
|
|
rmAdminServiceAddress, rmWebServiceAddress, lastHeartBeat, state, lastStartTime, capability)
|
|
VALUES (subClusterId_IN, amRMServiceAddress_IN, clientRMServiceAddress_IN,
|
|
rmAdminServiceAddress_IN, rmWebServiceAddress_IN, NOW(), state_IN, lastStartTime_IN, capability_IN);
|
|
SELECT ROW_COUNT() INTO rowCount_OUT;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_deregisterSubCluster(
|
|
IN subClusterId_IN varchar(256),
|
|
IN state_IN varchar(64),
|
|
OUT rowCount_OUT int)
|
|
BEGIN
|
|
UPDATE membership SET state = state_IN
|
|
WHERE (subClusterId = subClusterId_IN AND state != state_IN);
|
|
SELECT ROW_COUNT() INTO rowCount_OUT;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_subClusterHeartbeat(
|
|
IN subClusterId_IN varchar(256), IN state_IN varchar(64),
|
|
IN capability_IN varchar(6000), OUT rowCount_OUT int)
|
|
BEGIN
|
|
UPDATE membership
|
|
SET capability = capability_IN,
|
|
state = state_IN,
|
|
lastHeartBeat = NOW()
|
|
WHERE subClusterId = subClusterId_IN;
|
|
SELECT ROW_COUNT() INTO rowCount_OUT;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_getSubCluster(
|
|
IN subClusterId_IN varchar(256),
|
|
OUT amRMServiceAddress_OUT varchar(256),
|
|
OUT clientRMServiceAddress_OUT varchar(256),
|
|
OUT rmAdminServiceAddress_OUT varchar(256),
|
|
OUT rmWebServiceAddress_OUT varchar(256),
|
|
OUT lastHeartBeat_OUT datetime, OUT state_OUT varchar(64),
|
|
OUT lastStartTime_OUT bigint,
|
|
OUT capability_OUT varchar(6000))
|
|
BEGIN
|
|
SELECT amRMServiceAddress, clientRMServiceAddress, rmAdminServiceAddress, rmWebServiceAddress,
|
|
lastHeartBeat, state, lastStartTime, capability
|
|
INTO amRMServiceAddress_OUT, clientRMServiceAddress_OUT, rmAdminServiceAddress_OUT,
|
|
rmWebServiceAddress_OUT, lastHeartBeat_OUT, state_OUT, lastStartTime_OUT, capability_OUT
|
|
FROM membership WHERE subClusterId = subClusterId_IN;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_getSubClusters()
|
|
BEGIN
|
|
SELECT subClusterId, amRMServiceAddress, clientRMServiceAddress,
|
|
rmAdminServiceAddress, rmWebServiceAddress, lastHeartBeat,
|
|
state, lastStartTime, capability
|
|
FROM membership;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_addApplicationHomeSubCluster(
|
|
IN applicationId_IN varchar(64), IN homeSubCluster_IN varchar(256),
|
|
IN applicationContext_IN BLOB,
|
|
OUT storedHomeSubCluster_OUT varchar(256), OUT rowCount_OUT int)
|
|
BEGIN
|
|
INSERT INTO applicationsHomeSubCluster
|
|
(applicationId, homeSubCluster, createTime, applicationContext)
|
|
(SELECT applicationId_IN, homeSubCluster_IN, NOW(), applicationContext_IN
|
|
FROM applicationsHomeSubCluster
|
|
WHERE applicationId = applicationId_IN
|
|
HAVING COUNT(*) = 0 );
|
|
SELECT ROW_COUNT() INTO rowCount_OUT;
|
|
SELECT homeSubCluster INTO storedHomeSubCluster_OUT
|
|
FROM applicationsHomeSubCluster
|
|
WHERE applicationId = applicationID_IN;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_updateApplicationHomeSubCluster(
|
|
IN applicationId_IN varchar(64),
|
|
IN homeSubCluster_IN varchar(256), IN applicationContext_IN BLOB, OUT rowCount_OUT int)
|
|
BEGIN
|
|
UPDATE applicationsHomeSubCluster
|
|
SET homeSubCluster = homeSubCluster_IN,
|
|
applicationContext = applicationContext_IN
|
|
WHERE applicationId = applicationId_IN;
|
|
SELECT ROW_COUNT() INTO rowCount_OUT;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_getApplicationHomeSubCluster(
|
|
IN applicationId_IN varchar(64),
|
|
OUT homeSubCluster_OUT varchar(256),
|
|
OUT createTime_OUT datetime,
|
|
OUT applicationContext_OUT BLOB)
|
|
BEGIN
|
|
SELECT homeSubCluster, applicationContext, createTime
|
|
INTO homeSubCluster_OUT, applicationContext_OUT, createTime_OUT
|
|
FROM applicationsHomeSubCluster
|
|
WHERE applicationId = applicationID_IN;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_getApplicationsHomeSubCluster(IN limit_IN int, IN homeSubCluster_IN varchar(256))
|
|
BEGIN
|
|
SELECT
|
|
applicationId,
|
|
homeSubCluster,
|
|
createTime
|
|
FROM (SELECT
|
|
applicationId,
|
|
homeSubCluster,
|
|
createTime,
|
|
@rownum := 0
|
|
FROM applicationshomesubcluster
|
|
ORDER BY createTime DESC) AS applicationshomesubcluster
|
|
WHERE (homeSubCluster_IN = '' OR homeSubCluster = homeSubCluster_IN)
|
|
AND (@rownum := @rownum + 1) <= limit_IN;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_deleteApplicationHomeSubCluster(
|
|
IN applicationId_IN varchar(64), OUT rowCount_OUT int)
|
|
BEGIN
|
|
DELETE FROM applicationsHomeSubCluster
|
|
WHERE applicationId = applicationId_IN;
|
|
SELECT ROW_COUNT() INTO rowCount_OUT;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_setPolicyConfiguration(
|
|
IN queue_IN varchar(256), IN policyType_IN varchar(256),
|
|
IN params_IN varbinary(32768), OUT rowCount_OUT int)
|
|
BEGIN
|
|
DELETE FROM policies WHERE queue = queue_IN;
|
|
INSERT INTO policies (queue, policyType, params)
|
|
VALUES (queue_IN, policyType_IN, params_IN);
|
|
SELECT ROW_COUNT() INTO rowCount_OUT;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_getPoliciesConfigurations()
|
|
BEGIN
|
|
SELECT queue, policyType, params FROM policies;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_getPolicyConfiguration(
|
|
IN queue_IN varchar(256), OUT policyType_OUT varchar(256),
|
|
OUT params_OUT varbinary(32768))
|
|
BEGIN
|
|
SELECT policyType, params INTO policyType_OUT, params_OUT
|
|
FROM policies WHERE queue = queue_IN;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_addReservationHomeSubCluster(
|
|
IN reservationId_IN varchar(128), IN homeSubCluster_IN varchar(256),
|
|
OUT storedHomeSubCluster_OUT varchar(256), OUT rowCount_OUT int)
|
|
BEGIN
|
|
INSERT INTO reservationsHomeSubCluster
|
|
(reservationId,homeSubCluster)
|
|
(SELECT reservationId_IN, homeSubCluster_IN
|
|
FROM applicationsHomeSubCluster
|
|
WHERE reservationId = reservationId_IN
|
|
HAVING COUNT(*) = 0 );
|
|
SELECT ROW_COUNT() INTO rowCount_OUT;
|
|
SELECT homeSubCluster INTO storedHomeSubCluster_OUT
|
|
FROM reservationsHomeSubCluster
|
|
WHERE reservationId = reservationId_IN;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_getReservationHomeSubCluster(
|
|
IN reservationId_IN varchar(128),
|
|
OUT homeSubCluster_OUT varchar(256))
|
|
BEGIN
|
|
SELECT homeSubCluster INTO homeSubCluster_OUT
|
|
FROM reservationsHomeSubCluster
|
|
WHERE reservationId = reservationId_IN;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_getReservationsHomeSubCluster()
|
|
BEGIN
|
|
SELECT reservationId, homeSubCluster
|
|
FROM reservationsHomeSubCluster;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_updateReservationHomeSubCluster(
|
|
IN reservationId_IN varchar(128),
|
|
IN homeSubCluster_IN varchar(256), OUT rowCount_OUT int)
|
|
BEGIN
|
|
UPDATE reservationsHomeSubCluster
|
|
SET homeSubCluster = homeSubCluster_IN
|
|
WHERE reservationId = reservationId_IN;
|
|
SELECT ROW_COUNT() INTO rowCount_OUT;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_deleteReservationHomeSubCluster(
|
|
IN reservationId_IN varchar(128), OUT rowCount_OUT int)
|
|
BEGIN
|
|
DELETE FROM reservationsHomeSubCluster
|
|
WHERE reservationId = reservationId_IN;
|
|
SELECT ROW_COUNT() INTO rowCount_OUT;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_addMasterKey(
|
|
IN keyId_IN bigint, IN masterKey_IN varchar(1024),
|
|
OUT rowCount_OUT int)
|
|
BEGIN
|
|
INSERT INTO masterKeys(keyId, masterKey)
|
|
(SELECT keyId_IN, masterKey_IN
|
|
FROM masterKeys
|
|
WHERE keyId = keyId_IN
|
|
HAVING COUNT(*) = 0);
|
|
SELECT ROW_COUNT() INTO rowCount_OUT;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_getMasterKey(
|
|
IN keyId_IN bigint,
|
|
OUT masterKey_OUT varchar(1024))
|
|
BEGIN
|
|
SELECT masterKey INTO masterKey_OUT
|
|
FROM masterKeys
|
|
WHERE keyId = keyId_IN;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_deleteMasterKey(
|
|
IN keyId_IN bigint, OUT rowCount_OUT int)
|
|
BEGIN
|
|
DELETE FROM masterKeys
|
|
WHERE keyId = keyId_IN;
|
|
SELECT ROW_COUNT() INTO rowCount_OUT;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_addDelegationToken(
|
|
IN sequenceNum_IN bigint, IN tokenIdent_IN varchar(1024),
|
|
IN token_IN varchar(1024), IN renewDate_IN bigint,
|
|
OUT rowCount_OUT int)
|
|
BEGIN
|
|
INSERT INTO delegationTokens(sequenceNum, tokenIdent, token, renewDate)
|
|
(SELECT sequenceNum_IN, tokenIdent_IN, token_IN, renewDate_IN
|
|
FROM delegationTokens
|
|
WHERE sequenceNum = sequenceNum_IN
|
|
HAVING COUNT(*) = 0);
|
|
SELECT ROW_COUNT() INTO rowCount_OUT;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_getDelegationToken(
|
|
IN sequenceNum_IN bigint, OUT tokenIdent_OUT varchar(1024),
|
|
OUT token_OUT varchar(1024), OUT renewDate_OUT bigint)
|
|
BEGIN
|
|
SELECT tokenIdent, token, renewDate INTO tokenIdent_OUT, token_OUT, renewDate_OUT
|
|
FROM delegationTokens
|
|
WHERE sequenceNum = sequenceNum_IN;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_updateDelegationToken(
|
|
IN sequenceNum_IN bigint, IN tokenIdent_IN varchar(1024),
|
|
IN token_IN varchar(1024), IN renewDate_IN bigint, OUT rowCount_OUT int)
|
|
BEGIN
|
|
UPDATE delegationTokens
|
|
SET tokenIdent = tokenIdent_IN,
|
|
token = token_IN,
|
|
renewDate = renewDate_IN
|
|
WHERE sequenceNum = sequenceNum_IN;
|
|
SELECT ROW_COUNT() INTO rowCount_OUT;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_deleteDelegationToken(
|
|
IN sequenceNum_IN bigint, OUT rowCount_OUT int)
|
|
BEGIN
|
|
DELETE FROM delegationTokens
|
|
WHERE sequenceNum = sequenceNum_IN;
|
|
SELECT ROW_COUNT() INTO rowCount_OUT;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_storeVersion(
|
|
IN fedVersion_IN varbinary(1024), IN versionComment_IN varchar(255), OUT rowCount_OUT int)
|
|
BEGIN
|
|
DELETE FROM versions;
|
|
INSERT INTO versions (fedVersion, versionComment)
|
|
VALUES (fedVersion_IN, versionComment_IN);
|
|
SELECT ROW_COUNT() INTO rowCount_OUT;
|
|
END //
|
|
|
|
CREATE PROCEDURE sp_getVersion(
|
|
OUT fedVersion_OUT varbinary(1024), OUT versionComment_OUT varchar(255))
|
|
BEGIN
|
|
SELECT fedVersion, versionComment INTO fedVersion_OUT, versionComment_OUT
|
|
FROM versions
|
|
LIMIT 1;
|
|
END //
|
|
|
|
DELIMITER ;
|