2010年5月31日 星期一

OS Clone 目前所定義的流程作法

由於OS的 Clone在Target端雖然可以進行Clone
但是,在一開始的GUI設計規劃之初,並沒有OS時光回溯的這個機制
所以在呈現上,需要不小得修改,才會跟後端機制相符合
在時間考量之下
我們目前先定義一套暫時性的可用方法規則:

1.OS的Clone一律會複製到尚未發佈的前一版,也就是已發佈的最新版
2.因此就是要求OS要經過發佈才能夠Clone

新任務,但是....時間未定.....

GUI在對Target跟Storage的部分為了支援NAS跟SAM
所以會作一些變革
會讓某些SAM只能被某Target看得到
而NAS也需要特別的介面用IP來加入Q系統中


這部分對GUI來說,需要根據細節來思考
可大可小
而目前時間點也不確定是否會在7/1放入此構思
所以只是暫時先跟大家說明有這個事情

2010年5月27日 星期四

Q2.2 GUI 整合8版放上NAS,目前Key在Foxy手上

GUI同仁誰要整合的話
歡迎大家趕緊來認領
^^

Thread 使用方式~~請牢記

case 1: thread 去執行的function 不需要參數情況
使用方法: Thread mythread = new Thread(new ThreadStart(function_A));
mythread.Start();

case 2: thread 去執行的function 需要參數情況
使用方法: Thread mythread = new Thread(delegate() {function_A(a,b);} );
mythread.Start();

case 3: thread 去執行的function 需要回傳值情況
使用方法: int ret = 0;
Thread mythread = new Thread(delegate() {ret = function_A();} );
mythread.Start();

以上,若有錯誤請告知指正,
謝謝!

2010年5月20日 星期四

務必讓Forbid欄位有數值

所有的Insert, Modify的SQL函式,請務必讓Forbid欄位有數值,無論True, false,不要留下NULL,不然會造成ISNS有錯

2010年5月14日 星期五

SQL 語法分享-- sort by IP

分享一個可以依照IP 進行排序的語法

語法如下:

order by cast(parsename(ip,4) as INT),cast(parsename(ip,3) as INT),cast(parsename(ip,2) as INT),cast(parsename(ip,1) as INT)

2010年5月13日 星期四

USER可看到的OS的版本機制更動

從原本的只可以看到他現在正在用的版本跟最新的已經發佈的版本
改為只要他正在用的版本之後出的新的版本他都可以使用
所以他的PSD會有很多份,不會只有兩份
而他的PSD 在換選擇OS了之後也不會刪除,直到....OS被砍掉,或是從GUI來將某位或是某OS相關的PSD刪除(但是後面這個版本不作)

DB連線咬死畫面的問題

目前跟DB的連線若中途斷線的話,
UI會一直和DB重新連線,
但因為沒有另外開一個thread 去偵測,
所以把目前的畫面給咬死

2010年5月12日 星期三

UD跟OS的SIZE不可以變更

在Q2.2,我們將不再提供變更大小的功能
客戶如果原本配置的太小,就只有增加一顆新的UD一途
如果他一開始就配置了滿三顆,那只有刪除重建的方法了。

以上的規範,詢問於Ray與Jashing於2010.05.12^_^

2010年5月10日 星期一

2010/05/10 GUI 會議記錄

1. 在CreatePsd時,並未考慮到該對應之OS是否已發佈: 須考慮,考慮是否已發布

2. 在DataStore.cs裡的DeletePsd 函式裡,在刪除vmdk檔時,沒有判斷成功或失敗 :須檢查

3. 已知問題 # 3 : 見該項之回應

4. 已知問題 # 2 : 見該項之回應

5. 當傳封包給TARGET時,回應等太久: 所有用到DB,網路封包,大量資料匯入之相關程式,皆有可能發生此狀況,需要以開新線程的方法處理,但,如此將需要大量時間,讚不考慮

6. 精靈A在新增或複製OS時,若size超過Storage : OS 及 UD 皆需檢查,以 Function 處理

2010/05/07 GUI 會議記錄

1. name 的合法性檢查:
PG, UG Name: 全允許
PC Name: 不管
User namne: Windows 允許的字元
OS Name: 只允許英文 + ASCII
Storage name: 只允許英文 + ASCII
Target Name: 由 iSNS 直接在加入 DB 時自動命名為 Target + Id
Description: 全允許
有輸入的任何欄位,須訂 Max Legth
int IsTextValid(int CheckType, String CheckStr)
CHK_TYPE_ALL_ACCEPT = 0
CHK_TYPE_ENGLISH_ASCII = 1
CHK_TYPE_WINDOWS = 2
CHK_TYPE_MAIL = 3
CHK_TYPE_IP = 4
{
ConvertToAcceptBySQL()
}


2. 當開啟GUI但沒有可用的 Target 時,至允許進入系統監控頁籤,其餘頁籤皆 Disable

3. 在復製作業系統時,未考慮到其SnapShot的版本 : 複製最新已發佈版本

2010年5月7日 星期五

當開啟GUI但沒有可用的 Target 時的處裡

當開啟GUI但沒有可用的 Target 時,至允許進入系統監控頁籤,其餘頁籤皆 Disable

2010年5月6日 星期四

<GUI>已知問題 # 8

操作畫面:每個畫面

發現情境:GUI Team在討論時,發現此問題

問題描述:允許輸入字元的規則

<名稱> 規則如下:
電腦群組及使用者群組的名稱=>排除掉會導致SQL錯亂的特殊符號,其他皆可(包含中文字)
電腦名稱=>由Client端命名
使用者帳號名稱=>只允許輸入Windows帳號允許的字元
作業系統名稱=>排除掉會導致SQL錯亂的特殊符號,其他皆可(需先確認命名為中文字後,可正常操作及使用)
Storage名稱=>排除掉會導致SQL錯亂的特殊符號,其他皆可(需先確認命名為中文字後,可正常操作及使用)

2010年5月5日 星期三

關於scrollbar 位置移動的問題

如果有用scrollbar的人應該會發現,
當選取的物件在下方時(例如panel 內有10個item),
scrollbar並不會移動到你想要得位置,
造成你選取的物件沒辦法在視界上看得到,
必須拉動scrollbar位置才能看到,
以下範例可以解決此問題,


此範例為vertical scrollbar為例子:

private void ScrollTo(int top)
{
if (top >= ((Panel)this.Parent).VerticalScroll.Minimum && top <= ((Panel)this.Parent).VerticalScroll.Maximum)
{
((Panel)this.Parent).AutoScrollPosition = new Point(((Panel)this.Parent).HorizontalScroll.Value, top);
}
}

private void Item_OnClick()
{
((Panel)this.Parent).AutoScroll = false;
.....
.....
.....
((Panel)this.Parent).AutoScroll = true;
ScrollTo(this.Location.Y);
}

2010年5月4日 星期二

<GUI>已知問題 # 7

操作畫面:進階設定 (其他畫面也有可能發生)

發現情境:Denil在操作進階時,發現此問題

問題描述:在進階設定畫面中操作時,記憶體會隨著操作次數增加,且無上限增加,使電腦越來越慢,最後可能會導致記憶體被吃光

<GUI>已知問題 # 6

操作畫面:設定精靈、進階設定

發現情境:Crystal發現此問題

問題描述:在復製作業系統時,未考慮到其SnapShot的版本

2010年5月3日 星期一

對精靈 C、D 中處理 PC PSD 的想法

新增 PG
在這兩個精靈中,因為皆是以 User 為主軸,在新增 PG 時所加入的 PC 因為不會與 OS 建立關聯,故不需建立 PC 的 PSD,
但若加入的 PC 在 Default PC Group 中已經擁有 PSD,則需要將之移除。

現有 PG ( 分兩種情況:加入 PC 移出 PC )
加入 PC:處理法同新增 PG
移出 PC:則需考慮該 PC 是否已有 PSD
無 PSD:則不需處理
有 PSD:則做 PSD 移除動作 (留待處理 Default PC Group 時再處理)

以上對現有 PG 為一般 PG 的處理,而非 Default Pc Group

Default PC Group 須要另外處理
移出的 PC:則需考慮該 PC 是否已有 PSD
無 PSD:則不需處理
有 PSD:則做 PSD 移除動作 (這個動作若在上方加入 PC 時已做過,則這裡不用再做一次)

移入的 PC :則需考慮 Default PC Group 是否擁有已發布的 OS,並考慮移入的 PC 是否已擁有 PSD
有已發布的 OS:
PC 有 PSD:則不需處理 PSD
PC 無 PSD:則加 PSD
無已發布的 OS:
PC 有 PSD:則刪除 PSD
PC 無 PSD:則不處理


以上是我的想法,請各位看看有沒有問題

<GUI>已知問題 # 5

操作畫面:設定精靈、進階設定

發現情境:David & Foxy在討論時發現此問題

問題描述:在CreatePsd時,並未考慮到該對應之OS是否已發佈;且已發佈之OS是否針對其各個版本建立PSD? (PC不用對每個版本建立PSD,USER則需要)

<GUI>已知問題 # 4

操作畫面:進階設定

發現情境:在偵查其他問題時發現的

問題描述:在DataStore.cs裡的DeletePsd 函式裡,在刪除vmdk檔時,沒有判斷成功或失敗

<GUI>已知問題 # 3

操作畫面:進階設定

發現情境:在偵查其他問題時發現的

問題描述:在DataStore.cs裡,GetPsdLunId_ByOnePc(int PcId)函式裡的SQL中,僅判斷HID及LTYPE,並沒判斷SD_OS_LID,此情況會導致找出來的資料是該PC所有的PSD LUN,並不是針對某一個OS的PSD LUN,造成取得的資料錯誤

<GUI>已知問題 # 2

操作畫面:進階設定

發現情境:在Foxy電腦上整合後,無意中的操作發現

問題描述:刪除Group後,沒有刪除配置的PSD LUN(及相關資訊皆未刪除)

<GUI>已知問題 # 1

操作畫面:進階設定
發現情境:在Foxy電腦上整合後,無意中的操作發現

問題描述:新增Group後,沒有Refresh群組的樹狀目錄


2010年5月2日 星期日

DataStore裏的OsData Class Structure 中沒有 Version_Id

在 DataStore.cs 中的 OsData Class Structure 中,沒有 SnapShotVersionId 這個屬性
在程式中,要處理 PSD 時會需要用到 SnapShotVersionId 這個屬性
目前暫時以 OsData 的 SnapsAmount 屬性來處理,
在呼叫 CreatePsd() 時 需要的參數 OsSsVerid 請以 SnapsAmount -1 傳入