You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@guacamole.apache.org by vn...@apache.org on 2017/06/16 01:08:33 UTC

[3/7] incubator-guacamole-client git commit: GUACAMOLE-317: Add "failover_only" column to database schema for Guacamole connections.

GUACAMOLE-317: Add "failover_only" column to database schema for Guacamole connections.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/commit/3c553b96
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/tree/3c553b96
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/diff/3c553b96

Branch: refs/heads/master
Commit: 3c553b965c1d089feb91eb192090418ac6165b24
Parents: eb087ae
Author: Michael Jumper <mj...@apache.org>
Authored: Tue Jun 6 13:29:22 2017 -0700
Committer: Michael Jumper <mj...@apache.org>
Committed: Tue Jun 6 17:32:38 2017 -0700

----------------------------------------------------------------------
 .../auth/jdbc/connection/ConnectionModel.java   | 33 ++++++++++++++++++++
 .../schema/001-create-schema.sql                |  4 +--
 .../schema/upgrade/upgrade-pre-0.9.14.sql       |  7 +++++
 .../auth/jdbc/connection/ConnectionMapper.xml   | 17 +++++++---
 .../schema/001-create-schema.sql                |  1 +
 .../schema/upgrade/upgrade-pre-0.9.14.sql       |  7 +++++
 .../auth/jdbc/connection/ConnectionMapper.xml   | 19 +++++++----
 7 files changed, 75 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/3c553b96/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/connection/ConnectionModel.java
----------------------------------------------------------------------
diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/connection/ConnectionModel.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/connection/ConnectionModel.java
index 78cc885..788daa1 100644
--- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/connection/ConnectionModel.java
+++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/connection/ConnectionModel.java
@@ -62,6 +62,13 @@ public class ConnectionModel extends ChildObjectModel {
     private Integer connectionWeight;
 
     /**
+     * Whether this connection should be reserved for failover. Failover-only
+     * connections within a balancing group are only used when all non-failover
+     * connections are unavailable.
+     */
+    private boolean failoverOnly;
+
+    /**
      * The identifiers of all readable sharing profiles associated with this
      * connection.
      */
@@ -197,6 +204,32 @@ public class ConnectionModel extends ChildObjectModel {
     }
 
     /**
+     * Returns whether this connection should be reserved for failover.
+     * Failover-only connections within a balancing group are only used when
+     * all non-failover connections are unavailable.
+     *
+     * @return
+     *     true if this connection should be reserved for failover, false
+     *     otherwise.
+     */
+    public boolean isFailoverOnly() {
+        return failoverOnly;
+    }
+
+    /**
+     * Sets whether this connection should be reserved for failover.
+     * Failover-only connections within a balancing group are only used when
+     * all non-failover connections are unavailable.
+     *
+     * @param failoverOnly
+     *     true if this connection should be reserved for failover, false
+     *     otherwise.
+     */
+    public void setFailoverOnly(boolean failoverOnly) {
+        this.failoverOnly = failoverOnly;
+    }
+
+    /**
      * Sets the maximum number of connections that can be established to this
      * connection concurrently by any one user.
      *

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/3c553b96/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/schema/001-create-schema.sql
----------------------------------------------------------------------
diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/schema/001-create-schema.sql b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/schema/001-create-schema.sql
index 2f0aa73..515ea72 100644
--- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/schema/001-create-schema.sql
+++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/schema/001-create-schema.sql
@@ -65,9 +65,9 @@ CREATE TABLE `guacamole_connection` (
   `max_connections`          int(11),
   `max_connections_per_user` int(11),
   
-  -- Connection weight
+  -- Load-balancing behavior
   `connection_weight`        int(11),
-
+  `failover_only`            boolean NOT NULL DEFAULT 0,
 
   PRIMARY KEY (`connection_id`),
   UNIQUE KEY `connection_name_parent` (`connection_name`, `parent_id`),

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/3c553b96/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/schema/upgrade/upgrade-pre-0.9.14.sql
----------------------------------------------------------------------
diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/schema/upgrade/upgrade-pre-0.9.14.sql b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/schema/upgrade/upgrade-pre-0.9.14.sql
index 2b14e27..14a016b 100644
--- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/schema/upgrade/upgrade-pre-0.9.14.sql
+++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/schema/upgrade/upgrade-pre-0.9.14.sql
@@ -23,3 +23,10 @@
 
 ALTER TABLE guacamole_connection
     ADD COLUMN connection_weight int(11);
+
+--
+-- Add failover-only flag
+--
+
+ALTER TABLE guacamole_connection
+    ADD COLUMN failover_only BOOLEAN NOT NULL DEFAULT 0;

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/3c553b96/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionMapper.xml
----------------------------------------------------------------------
diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionMapper.xml
index 2f778fa..03ffa43 100644
--- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionMapper.xml
+++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionMapper.xml
@@ -38,6 +38,7 @@
         <result column="proxy_encryption_method"  property="proxyEncryptionMethod" jdbcType="VARCHAR"
                 javaType="org.apache.guacamole.net.auth.GuacamoleProxyConfiguration$EncryptionMethod"/>
         <result column="connection_weight"        property="connectionWeight"      jdbcType="INTEGER"/>
+        <result column="failover_only"            property="failoverOnly"          jdbcType="BOOLEAN"/>
 
         <!-- Associated sharing profiles -->
         <collection property="sharingProfileIdentifiers" resultSet="sharingProfiles" ofType="java.lang.String"
@@ -97,7 +98,8 @@
             proxy_hostname,
             proxy_port,
             proxy_encryption_method,
-            connection_weight
+            connection_weight,
+            failover_only
         FROM guacamole_connection
         WHERE connection_id IN
             <foreach collection="identifiers" item="identifier"
@@ -129,7 +131,8 @@
             proxy_hostname,
             proxy_port,
             proxy_encryption_method,
-            connection_weight
+            connection_weight,
+            failover_only
         FROM guacamole_connection
         JOIN guacamole_connection_permission ON guacamole_connection_permission.connection_id = guacamole_connection.connection_id
         WHERE guacamole_connection.connection_id IN
@@ -166,7 +169,8 @@
             proxy_hostname,
             proxy_port,
             proxy_encryption_method,
-            connection_weight
+            connection_weight,
+            failover_only
         FROM guacamole_connection
         WHERE 
             <if test="parentIdentifier != null">parent_id = #{parentIdentifier,jdbcType=VARCHAR}</if>
@@ -194,7 +198,8 @@
             proxy_hostname,
             proxy_port,
             proxy_encryption_method,
-            connection_weight
+            connection_weight,
+            failover_only
         )
         VALUES (
             #{object.name,jdbcType=VARCHAR},
@@ -205,7 +210,8 @@
             #{object.proxyHostname,jdbcType=VARCHAR},
             #{object.proxyPort,jdbcType=INTEGER},
             #{object.proxyEncryptionMethod,jdbcType=VARCHAR},
-            #{object.connectionWeight,jdbcType=INTEGER}
+            #{object.connectionWeight,jdbcType=INTEGER},
+            #{object.failoverOnly,jdbcType=BOOLEAN}
         )
 
     </insert>
@@ -222,6 +228,7 @@
             proxy_port               = #{object.proxyPort,jdbcType=INTEGER},
             proxy_encryption_method  = #{object.proxyEncryptionMethod,jdbcType=VARCHAR},
             connection_weight        = #{object.connectionWeight,jdbcType=INTEGER}
+            failover_only            = #{object.failoverOnly,jdbcType=BOOLEAN}
         WHERE connection_id = #{object.objectID,jdbcType=INTEGER}
     </update>
 

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/3c553b96/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/schema/001-create-schema.sql
----------------------------------------------------------------------
diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/schema/001-create-schema.sql b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/schema/001-create-schema.sql
index 7b9081e..d1b5bf5 100644
--- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/schema/001-create-schema.sql
+++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/schema/001-create-schema.sql
@@ -108,6 +108,7 @@ CREATE TABLE guacamole_connection (
 
   -- Connection Weight
   connection_weight        integer,
+  failover_only            boolean NOT NULL DEFAULT FALSE,
 
   -- Guacamole proxy (guacd) overrides
   proxy_port              integer,

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/3c553b96/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/schema/upgrade/upgrade-pre-0.9.14.sql
----------------------------------------------------------------------
diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/schema/upgrade/upgrade-pre-0.9.14.sql b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/schema/upgrade/upgrade-pre-0.9.14.sql
index 6388b44..20882ed 100644
--- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/schema/upgrade/upgrade-pre-0.9.14.sql
+++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/schema/upgrade/upgrade-pre-0.9.14.sql
@@ -23,3 +23,10 @@
 
 ALTER TABLE guacamole_connection
     ADD COLUMN connection_weight int;
+
+--
+-- Add failover-only flag
+--
+
+ALTER TABLE guacamole_connection
+    ADD COLUMN failover_only BOOLEAN NOT NULL DEFAULT FALSE;

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/3c553b96/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionMapper.xml
----------------------------------------------------------------------
diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionMapper.xml
index f53e439..dd9265d 100644
--- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionMapper.xml
+++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionMapper.xml
@@ -38,6 +38,7 @@
         <result column="proxy_encryption_method"  property="proxyEncryptionMethod" jdbcType="VARCHAR"
                 javaType="org.apache.guacamole.net.auth.GuacamoleProxyConfiguration$EncryptionMethod"/>
         <result column="connection_weight"        property="connectionWeight"      jdbcType="INTEGER"/>
+        <result column="failover_only"            property="failoverOnly"          jdbcType="BOOLEAN"/>
 
         <!-- Associated sharing profiles -->
         <collection property="sharingProfileIdentifiers" resultSet="sharingProfiles" ofType="java.lang.String"
@@ -97,7 +98,8 @@
             proxy_hostname,
             proxy_port,
             proxy_encryption_method,
-            connection_weight
+            connection_weight,
+            failover_only
         FROM guacamole_connection
         WHERE connection_id IN
             <foreach collection="identifiers" item="identifier"
@@ -129,7 +131,8 @@
             proxy_hostname,
             proxy_port,
             proxy_encryption_method,
-            connection_weight
+            connection_weight,
+            failover_only
         FROM guacamole_connection
         JOIN guacamole_connection_permission ON guacamole_connection_permission.connection_id = guacamole_connection.connection_id
         WHERE guacamole_connection.connection_id IN
@@ -166,7 +169,8 @@
             proxy_hostname,
             proxy_port,
             proxy_encryption_method,
-            connection_weight
+            connection_weight,
+            failover_only
         FROM guacamole_connection
         WHERE 
             <if test="parentIdentifier != null">parent_id = #{parentIdentifier,jdbcType=INTEGER}::integer</if>
@@ -194,7 +198,8 @@
             proxy_hostname,
             proxy_port,
             proxy_encryption_method,
-            connection_weight
+            connection_weight,
+            failover_only
         )
         VALUES (
             #{object.name,jdbcType=VARCHAR},
@@ -205,7 +210,8 @@
             #{object.proxyHostname,jdbcType=VARCHAR},
             #{object.proxyPort,jdbcType=INTEGER},
             #{object.proxyEncryptionMethod,jdbcType=VARCHAR}::guacamole_proxy_encryption_method,
-            #{object.connectionWeight,jdbcType=INTEGER}
+            #{object.connectionWeight,jdbcType=INTEGER},
+            #{object.failoverOnly,jdbcType=BOOLEAN}
         )
 
     </insert>
@@ -221,7 +227,8 @@
             proxy_hostname           = #{object.proxyHostname,jdbcType=VARCHAR},
             proxy_port               = #{object.proxyPort,jdbcType=INTEGER},
             proxy_encryption_method  = #{object.proxyEncryptionMethod,jdbcType=VARCHAR}::guacamole_proxy_encryption_method,
-            connection_weight        = #{object.connectionWeight,jdbcType=INTEGER}
+            connection_weight        = #{object.connectionWeight,jdbcType=INTEGER},
+            failover_only            = #{object.failoverOnly,jdbcType=BOOLEAN}
         WHERE connection_id = #{object.objectID,jdbcType=INTEGER}::integer
     </update>