private void buttonAdd_Click(object sender, EventArgs e) { try { Hubble.Core.BigTable.ServerInfo serverInfo = comboBoxBalanceServers.SelectedItem as Hubble.Core.BigTable.ServerInfo; if (serverInfo != null) { Hubble.Core.BigTable.ServerType serverType = radioButtonBalance.Checked ? Hubble.Core.BigTable.ServerType.Balance : Hubble.Core.BigTable.ServerType.Failover; foreach (string tableName in listBoxTable.SelectedItems) { _TempBigTableInfo.Add(tableName, serverType, serverInfo); } } _BigTableInfo.Tablets = _TempBigTableInfo.Tablets; _Result = DialogResult.OK; Close(); } catch (Exception ex) { QAMessageBox.ShowErrorMessage(ex); _TempBigTableInfo = _BigTableInfo.Clone(); } }
public void Run() { Global.UserRightProvider.CanDo("", Right.RightItem.CreateTable); if (Parameters.Count > 3) { throw new ArgumentException("the number of parameters must be 3. Parameter 1 is table name, parameter 2 is xml string of bigtable."); } string bigTableName = Parameters[0]; string tabletName = Parameters[1]; string dbName = null; if (Parameters.Count == 3) { dbName = Parameters[2]; } Data.DBProvider dbProvider = Data.DBProvider.GetDBProvider(bigTableName); if (dbProvider == null) { throw new StoredProcException(string.Format("BigTable name {0} does not exist!", bigTableName)); } Hubble.Core.BigTable.BigTable bigTable = dbProvider.BigTableCfg; Hubble.Core.BigTable.TabletInfo tabletInfo = bigTable.Tablets.SingleOrDefault(s => s.TableName.Equals(tabletName, StringComparison.CurrentCultureIgnoreCase)); if (tabletInfo == null) { throw new StoredProcException( string.Format("Tablet:{0} of bigtable: {1} doesn't exist.", tabletName, bigTableName)); } foreach (Hubble.Core.BigTable.ServerInfo serverInfo in tabletInfo.BalanceServers) { if (dbName == null) { serverInfo.Enabled = true; } else if (serverInfo.ServerName.Equals(dbName, StringComparison.CurrentCultureIgnoreCase)) { serverInfo.Enabled = true; } } foreach (Hubble.Core.BigTable.ServerInfo serverInfo in tabletInfo.FailoverServers) { if (dbName == null) { serverInfo.Enabled = true; } else if (serverInfo.ServerName.Equals(dbName, StringComparison.CurrentCultureIgnoreCase)) { serverInfo.Enabled = true; } } bigTable.TimeStamp = DateTime.Now.ToUniversalTime(); dbProvider.BigTableCfg = bigTable; dbProvider.Table.Save(dbProvider.Directory); OutputMessage(string.Format("Enable tablet:{0} of bigtable: {1} successul.", tabletName, bigTableName)); }