From 40a797f48311283743c8cc33a47afb5dabd2dc05 Mon Sep 17 00:00:00 2001 From: donghee yang Date: Fri, 23 Nov 2012 20:13:51 +0900 Subject: [PATCH] [Title] Change DB schema for "distributions" table --- src/build_server/BuildServer.rb | 3 ++- src/build_server/DistributionManager.rb | 23 +++++++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/build_server/BuildServer.rb b/src/build_server/BuildServer.rb index 8502470..1f7e8b8 100644 --- a/src/build_server/BuildServer.rb +++ b/src/build_server/BuildServer.rb @@ -547,7 +547,8 @@ class BuildServer db.do "INSERT INTO os_category (name) VALUES ( 'windows' )" db.do "INSERT INTO os_category (name) VALUES ( 'macos' )" - db.do "CREATE TABLE distributions(name VARCHAR(32) PRIMARY KEY, pkgsvr_url VARCHAR(256), pkgsvr_addr VARCHAR(64), status VARCHAR(32) DEFAULT 'OPEN')" + PackageDistribution.create_table(db, inc, post_fix) + db.do "CREATE TABLE remote_build_servers ( id INTEGER PRIMARY KEY #{inc}, svr_addr VARCHAR(64) NOT NULL UNIQUE, description VARCHAR(256) )#{post_fix}" db.do "CREATE TABLE sync_pkg_servers(id INTEGER PRIMARY KEY #{inc}, pkgsvr_url VARCHAR(256), period INTEGER, dist_name VARCHAR(32))" db.do "CREATE TABLE supported_os ( id INTEGER PRIMARY KEY #{inc}, os_category_id INTEGER NOT NULL, name VARCHAR(32) NOT NULL UNIQUE, diff --git a/src/build_server/DistributionManager.rb b/src/build_server/DistributionManager.rb index 8801f4f..d6374d3 100644 --- a/src/build_server/DistributionManager.rb +++ b/src/build_server/DistributionManager.rb @@ -36,7 +36,7 @@ require "RegisterPackageJob.rb" require "packageServer.rb" class PackageDistribution - attr_accessor :name, :pkgsvr_url, :pkgsvr_ip, :pkgsvr_port, :status + attr_accessor :name, :pkgsvr_url, :pkgsvr_ip, :pkgsvr_port, :status, :description def initialize( name, pkgsvr_url, pkgsvr_ip, pkgsvr_port, status ) @name = name @@ -44,6 +44,18 @@ class PackageDistribution @pkgsvr_ip = pkgsvr_ip @pkgsvr_port = pkgsvr_port @status = status + @description = "" + end + + + def self.create_table(db, inc, post_fix) + db.do "CREATE TABLE distributions ( + id INTEGER PRIMARY KEY #{inc}, + name VARCHAR(32) NOT NULL UNIQUE, + pkgsvr_url VARCHAR(256), + pkgsvr_addr VARCHAR(64), + status VARCHAR(32) NOT NULL DEFAULT 'OPEN', + description VARCHAR(256) ) #{post_fix}" end @@ -87,7 +99,10 @@ class PackageDistribution pkgsvr_ip = row['pkgsvr_addr'].split(":")[0] pkgsvr_port = row['pkgsvr_addr'].split(":")[1].to_i - return new(row['name'], row['pkgsvr_url'], pkgsvr_ip, pkgsvr_port, row['status']) + new_obj = new(row['name'], row['pkgsvr_url'], pkgsvr_ip, pkgsvr_port, row['status']) + new_obj.description = row['description'] + + return new_obj end @@ -95,9 +110,9 @@ class PackageDistribution dist_addr = @pkgsvr_ip + ":" + @pkgsvr_port.to_s row = db.select_one("SELECT * FROM distributions WHERE name='#{@name}'") if row.nil? then - db.do "INSERT INTO distributions VALUES ('#{@name}','#{@pkgsvr_url}','#{dist_addr}','#{@status}')" + db.do "INSERT INTO distributions(name, pkgsvr_url, pkgsvr_addr, status, description) VALUES ('#{@name}','#{@pkgsvr_url}','#{dist_addr}','#{@status}', '#{@description}')" else - db.do "UPDATE distributions SET pkgsvr_url='#{@pkgsvr_url}', pkgsvr_addr='#{dist_addr}', status='#{@status}' WHERE name='#{@name}'" + db.do "UPDATE distributions SET pkgsvr_url='#{@pkgsvr_url}', pkgsvr_addr='#{dist_addr}', status='#{@status}', description='#{@description}' WHERE name='#{@name}'" end end end -- 2.34.1