由於OS的 Clone在Target端雖然可以進行Clone
但是,在一開始的GUI設計規劃之初,並沒有OS時光回溯的這個機制
所以在呈現上,需要不小得修改,才會跟後端機制相符合
在時間考量之下
我們目前先定義一套暫時性的可用方法規則:
1.OS的Clone一律會複製到尚未發佈的前一版,也就是已發佈的最新版
2.因此就是要求OS要經過發佈才能夠Clone
2010年5月31日 星期一
新任務,但是....時間未定.....
GUI在對Target跟Storage的部分為了支援NAS跟SAM
所以會作一些變革
會讓某些SAM只能被某Target看得到
而NAS也需要特別的介面用IP來加入Q系統中
這部分對GUI來說,需要根據細節來思考
可大可小
而目前時間點也不確定是否會在7/1放入此構思
所以只是暫時先跟大家說明有這個事情
所以會作一些變革
會讓某些SAM只能被某Target看得到
而NAS也需要特別的介面用IP來加入Q系統中
這部分對GUI來說,需要根據細節來思考
可大可小
而目前時間點也不確定是否會在7/1放入此構思
所以只是暫時先跟大家說明有這個事情
2010年5月27日 星期四
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();
以上,若有錯誤請告知指正,
謝謝!
使用方法: 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日 星期四
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)
語法如下:
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 在換選擇OS了之後也不會刪除,直到....OS被砍掉,或是從GUI來將某位或是某OS相關的PSD刪除(但是後面這個版本不作)
改為只要他正在用的版本之後出的新的版本他都可以使用
所以他的PSD會有很多份,不會只有兩份而他的PSD 在換選擇OS了之後也不會刪除,直到....OS被砍掉,或是從GUI來將某位或是某OS相關的PSD刪除(但是後面這個版本不作)
2010年5月12日 星期三
UD跟OS的SIZE不可以變更
在Q2.2,我們將不再提供變更大小的功能
客戶如果原本配置的太小,就只有增加一顆新的UD一途
如果他一開始就配置了滿三顆,那只有刪除重建的方法了。
以上的規範,詢問於Ray與Jashing於2010.05.12^_^
客戶如果原本配置的太小,就只有增加一顆新的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 處理
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的版本 : 複製最新已發佈版本
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日 星期五
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);
}
當選取的物件在下方時(例如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在操作進階時,發現此問題
問題描述:在進階設定畫面中操作時,記憶體會隨著操作次數增加,且無上限增加,使電腦越來越慢,最後可能會導致記憶體被吃光
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>已知問題 # 3
操作畫面:進階設定
發現情境:在偵查其他問題時發現的
問題描述:在DataStore.cs裡,GetPsdLunId_ByOnePc(int PcId)函式裡的SQL中,僅判斷HID及LTYPE,並沒判斷SD_OS_LID,此情況會導致找出來的資料是該PC所有的PSD LUN,並不是針對某一個OS的PSD LUN,造成取得的資料錯誤
2010年5月2日 星期日
DataStore裏的OsData Class Structure 中沒有 Version_Id
在 DataStore.cs 中的 OsData Class Structure 中,沒有 SnapShotVersionId 這個屬性
在程式中,要處理 PSD 時會需要用到 SnapShotVersionId 這個屬性
目前暫時以 OsData 的 SnapsAmount 屬性來處理,
在呼叫 CreatePsd() 時 需要的參數 OsSsVerid 請以 SnapsAmount -1 傳入
訂閱:
文章 (Atom)