From 4aff2c1bb871545f5853f58760058e0d5b787d3f Mon Sep 17 00:00:00 2001 From: Nick Couchman Date: Sun, 19 Mar 2017 16:24:56 -0400 Subject: [PATCH] GUACAMOLE-102: Finish adding connection weight attribute. --- .../guacamole/auth/jdbc/JDBCEnvironment.java | 2 +- .../jdbc/connection/ModeledConnection.java | 5 ++-- .../src/main/resources/translations/en.json | 1 + .../auth/mysql/MySQLEnvironment.java | 1 + .../auth/mysql/MySQLGuacamoleProperties.java | 2 +- .../schema/001-create-schema.sql | 3 +++ .../schema/upgrade/upgrade-pre-0.9.12.sql | 25 +++++++++++++++++++ .../postgresql/PostgreSQLEnvironment.java | 1 + 8 files changed, 36 insertions(+), 4 deletions(-) create mode 100644 extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/schema/upgrade/upgrade-pre-0.9.12.sql diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/JDBCEnvironment.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/JDBCEnvironment.java index 64f2449fe..a856d2ae0 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/JDBCEnvironment.java +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/JDBCEnvironment.java @@ -91,7 +91,7 @@ public abstract class JDBCEnvironment extends LocalEnvironment { * @throws GuacamoleException * If an error occurs while retrieving the property. */ - public abstract int getConnectionWeight() throws GuacamoleException; + public abstract int getDefaultConnectionWeight() throws GuacamoleException; /** * Returns the default maximum number of concurrent connections to allow to diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/connection/ModeledConnection.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/connection/ModeledConnection.java index 93a7329ca..aa79ba435 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/connection/ModeledConnection.java +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/connection/ModeledConnection.java @@ -119,7 +119,7 @@ public class ModeledConnection extends ModeledChildDirectoryObjectasList( new NumericField(MAX_CONNECTIONS_NAME), - new NumericField(MAX_CONNECTIONS_PER_USER_NAME) + new NumericField(MAX_CONNECTIONS_PER_USER_NAME), + new NumericField(CONNECTION_WEIGHT) )); /** diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/resources/translations/en.json b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/resources/translations/en.json index bf73c35d8..c154d8b8b 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/resources/translations/en.json +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/resources/translations/en.json @@ -19,6 +19,7 @@ "FIELD_HEADER_MAX_CONNECTIONS" : "Maximum number of connections:", "FIELD_HEADER_MAX_CONNECTIONS_PER_USER" : "Maximum number of connections per user:", + "FIELD_HEADER_WEIGHT" : "Connection Weight for Load Balancing:", "FIELD_HEADER_GUACD_HOSTNAME" : "Hostname:", "FIELD_HEADER_GUACD_ENCRYPTION" : "Encryption:", diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/java/org/apache/guacamole/auth/mysql/MySQLEnvironment.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/java/org/apache/guacamole/auth/mysql/MySQLEnvironment.java index 63d4ae316..6495fcc6f 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/java/org/apache/guacamole/auth/mysql/MySQLEnvironment.java +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/java/org/apache/guacamole/auth/mysql/MySQLEnvironment.java @@ -90,6 +90,7 @@ public class MySQLEnvironment extends JDBCEnvironment { /** * The default value for the connection weight for a connection in * a balancing group. + */ private int DEFAULT_CONNECTION_WEIGHT = 0; /** diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/java/org/apache/guacamole/auth/mysql/MySQLGuacamoleProperties.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/java/org/apache/guacamole/auth/mysql/MySQLGuacamoleProperties.java index 79f3e7fd5..3c88a59fb 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/java/org/apache/guacamole/auth/mysql/MySQLGuacamoleProperties.java +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/java/org/apache/guacamole/auth/mysql/MySQLGuacamoleProperties.java @@ -181,7 +181,7 @@ public class MySQLGuacamoleProperties { MYSQL_DEFAULT_CONNECTION_WEIGHT = new IntegerGuacamoleProperty() { - @Overide + @Override public String getName() { return "mysql-default-connection-weight"; } }; 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 e018617ba..7b9081ee6 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 @@ -106,6 +106,9 @@ CREATE TABLE guacamole_connection ( max_connections integer, max_connections_per_user integer, + -- Connection Weight + connection_weight integer, + -- Guacamole proxy (guacd) overrides proxy_port integer, proxy_hostname varchar(512), diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/schema/upgrade/upgrade-pre-0.9.12.sql b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/schema/upgrade/upgrade-pre-0.9.12.sql new file mode 100644 index 000000000..1f085a49d --- /dev/null +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/schema/upgrade/upgrade-pre-0.9.12.sql @@ -0,0 +1,25 @@ +-- +-- 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. +-- + +-- +-- Add per-user password set date +-- + +ALTER TABLE guacamole_connection + ADD COLUMN connection_weight int; diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/java/org/apache/guacamole/auth/postgresql/PostgreSQLEnvironment.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/java/org/apache/guacamole/auth/postgresql/PostgreSQLEnvironment.java index 539941773..e0ad4ec30 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/java/org/apache/guacamole/auth/postgresql/PostgreSQLEnvironment.java +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/java/org/apache/guacamole/auth/postgresql/PostgreSQLEnvironment.java @@ -90,6 +90,7 @@ public class PostgreSQLEnvironment extends JDBCEnvironment { /** * The default value for the connection weight for a connection in * a balancing group. + */ private int DEFAULT_CONNECTION_WEIGHT = 0; /**