2010年7月19日 星期一

DQA 所提的 Server Side Booting 的 Fail 事項及相關討論

Cross 在 Qlution2.2驗證結果 的附檔中提到 Server Side Booting 的 Fail
這裡的 Fail 是因為沒有測試,而被要求寫為 Fail,當然有些是因為功能不存在
事項如下

(5)個人時光回朔點 FAIL (功能存在,未測試)
2.使用者於Client上線時是否禁用此功能開機 FAIL ( 功能不存在 )
3.執行開機是否正確(與發佈版本一致) FAIL ( 未測試 )
4.開機後其他Client應無法使用該User開機 FAIL ( 功能不存在 )
5.遠端登入是否可正常連線 FAIL ( 未測試 )

經與 Cross 確認,敘述修正
2.使用者於Client上線時禁用此功能開機
3.執行開機是否正確(與 UI 選擇的版本一致)

Foxy 與 David 已對 2, 4 兩項進行討論,結果如下

UI 在讓管理者按下最後確定開機按鈕時,要檢查所選的 User 是否為 Forbidden,
並檢查該 User 是否已上線,若為 Forbidden 或該 User 已上線,則不可執行。

若所選 User 不是 Forbidden,且沒有上線,則將該 User 設為 Forbidden 後進行開機。
如此,即可達成 2, 4 的功能。但,
UI 無法得知 Server Side Booting 的 OS 何時被關機,所以需要其他元件將已經設為
Forbidden 的 User 改回來。

此功能需要與其他元件配合,故待討論。

2010年6月1日 星期二

關於程式整合與釋出的流程

哈囉~六月份我們應該會解決很多BUG。也會依照進度把任務完成。為了讓我們作業簡單好控制,所以我們把整合程式改成大家輪流拿KEY的方式。




雖然,這個會讓大家需要在改程式的時候註記你修改了哪些部分,才能方便整合,但是,我們本來就盡可能養成改程式要註記的習慣會比較好,所以這部分,在整合控制上,我個人覺得目前做的還不錯。




而我跟水晶也另外討論了一套關於怎麼釋出給DVT的流程
凡是在KM或是每週的check point看到BUG,我們都會解決都會改版這時候就要注意跟大家確認拿鑰匙,而改好了放上去的人,請順便釋出一版給DVT,這樣「DVT」跟「整合」才能版本同步,我們在回KM的時候,可以很方便的填寫我們將BUG解決在哪個版本裡。




PS.關於釋出怎麼作?
1.把Properties裡的AssemblyInfo.cs裡版本更改
2.在Frm_Main的「關於」頁籤內的版本號更新
3.編譯過後,把EXE包到QMI_DVT2010xxxx_nnnn.zip裡頭。



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 傳入

2010年4月28日 星期三

疑問與建議

當傳封包給TARGET時,如果TARGET沒回應,要等10秒(或?秒)才會出現錯誤訊息(-702)
,在等待的這幾秒,畫面是呈現全白,很像軟體當掉的感覺

2010年4月23日 星期五

在AdvPc把ReadPcData()作了修改,之後要在AdvUser跟AdvOs也改進去,才能維持一致

為了簡化程式
之前的寫法Search那邊還要寫一次跟ReadPcData()一樣的Code,所以獨立出把資料填入DataGridView的這一段,讓Search跟Reflash都能夠呼叫使用,不過要傳入DataStore當參數
當然,要傳進DataStore之前,要呼叫GetAllOs()或GetAllUser()或GetAllPc(),先把資料取回

DataStore需要改良的備忘錄

1.ModifyPc()要修改成不要傳入SD Storage ID跟 UD Admount
2.ModifyPc()要加上針對多筆資料,僅修改某幾個欄位的修改功能,把原函式擴增
3.CreatePsd() 要修改成把USER、ADMIN跟PC分開來,因為PC或ADMIN的部分不需要這麼多參數。

2010年4月21日 星期三

進行Modify User或PC 時,UdAmount一律帶3(或UD允許最大個數)

不用再把UdAmount帶入Modify User()函式中
因為迴圈需要判斷到每個UD的數值變化

可以定義一個D允許最大個數的常數在PacketDefine中

2010.04.27之2.2會議要提出換Storage的議題

客戶有可能會有需求更換Storage
並把資料進行移轉
麻煩大家討論看看有可能遇到的問題

2010年4月19日 星期一

GUI 2.2的所有磁碟相關的Size之單位

為了讓使用者觀看方便,所以在GUI內部一律使用GB來存放資料與使用,對外則以MB來傳遞


但是為了封包與資料庫相容以及避免封包傳遞小數點的麻煩,以前所定義的單位都是MB,這會導致GUI在DataStore跟TargetClient這兩個模組都會需要進行單位與數值的轉換,當要傳給外部的時候,也就是呼叫TargetClient或是DataStore的函式的時候,傳入的參數,應該要是float的,單位是GB的Size,經過函式內部轉成MB之後,送給外部模組。而讀取DB的函式也要注意將MB的資料先轉成GB才能放到變數裡。

2010年4月17日 星期六

往後網頁版的GUI之思考...

先前有與FOXY討論過
製作網頁版GUI要使用哪個開發工具( Silver Light、Flex)

為什麼選擇這兩個呢?因為它們有達到「RIA(Rich Internet Application)」的目的及效果,
「RIA」簡單的說就是在Internet上面執行的高親和性操作介面的應用程式

它有豐富的動態視覺效果可以使用

那在決定使用哪個工具之前
(反正現在也還沒有做完,也還沒決定要做網頁版)
是不是可以請大家有空的時候(或無聊的時候..)看看這兩者的資訊
例如:是不是有跨平台的問題?之類的
甚至可以安裝來玩玩看

我本身是有買Flex的書、Foxy有買Silver Light的書
但是希望不要有先入為主的觀念,就認為哪個比較好用
(依我在網路上查到的資訊瞭解:QBI介面的功能,也就是Silver Light的功能,Flex也是可以完全達到的)

希望是就這兩個開發工具的實用性、跨平台支援、等等方面來做考量
(當然也可以依就業所需技能來考量啦 XD)

畢竟大家都是一起從頭學起的

這樣的建議
不知道大家覺得如何呢?

2010年4月12日 星期一

一些最近新增函式說明

函式名稱:ComboBoxAutoSize( ComboBox TranCombx )
函式說明:可以讓 ComboBox 所展開的選單寬度隨著字串而增減
回傳值:沒有




函式名稱:ProcessSd_PcOsChangeInGroup
            (
            int OldOsAmount,
            OsData[] OldOsList,
            int NewOsAmount,
            OsData[] NewOsList,
            int OldPcAmount,
            PcData[] OldPcList,
            int NewPcAmount,
            PcData[] NewPcList
            )
函式說明:如果 PC 或 OS 有異動,會牽涉到 PSD 的建立或刪除,可呼叫這個函式來作。但是 PC 的部分很簡單,由於不論幾個 OS,每個 PC 只有一個 PSD 對應到所有 OS,所以僅需要判斷之前之後有無 OS,來決定 PSD 的去留。呼叫之後還可以讀取 NeedAdd xxxx_IndexList 與 NeedDel xxxx_IndexList 來查詢比對結果

回傳值:成功或失敗






        public bool ProcessSd_UserOsChangeInGroup
            (
            int OldOsAmount,
            OsData[] OldOsList,
            int NewOsAmount,
            OsData[] NewOsList,
            int OldUserAmount,
            UserData[] OldUserList,
            int NewUserAmount,
            UserData[] NewUserList
            )



函式說明:如果 User 或 OS 有異動,會牽涉到 PSD 的建立或刪除,這裡面的邏輯可以全面的顧慮到該刪除該建立不會漏掉。呼叫之後還可以讀取 NeedAdd xxxx_IndexList 與 NeedDel xxxx_IndexList 來查詢比對結果

回傳值:成功或失敗

2010年4月8日 星期四

新增 User 時的 DgView 的問題

在新增時使用者時,若在 Name 欄位不輸入,直接 MaintainOs 的 Combobox 欄位選取一個選項,然後直接按排序,則在 Name 欄位不會有錯誤檢察。

另外,若刻意將 Name 欄位清空,按下一筆,會有錯誤標示出現,但,若此時再按排序,則原來的錯誤標示會不見

暫時不做細膩的修正,在按下一步時掃過一遍檢查之。

2010年4月3日 星期六

來自PALLY的建議

希望一個畫面可以看到多一點的資料筆數
GUI2.1的實在太少了


另外,如果GUI可以的話,整合ROBIN、LEPUS、排程...LOG檢視、TFTP、資產管理

2010年3月16日 星期二

"使用者自選長形列表顯示欄位"功能之影響

目前的右側長形列表中的欄位是固定的(約2~3個欄位)
將資料拖拉過去時,會截取部份欄位的資訊放在目的地的DataGridView
在挑欄位的部份是寫死的
若之後要作成讓右側長形列表可以由使用者自行選取欲顯示的欄位時
勢必要將挑選欄位顯示的部份全部改掉

為搭配往後提供的功能 (即"使用者自選長形列表顯示欄位")
初步想到的做法為 :
將全部欄位填入長形列表的DataGridView
僅將使用者選擇的欄位之Visible設為true
在拖曳時,亦會將所有資料拖拉過去
再從中挑選要顯示的欄位

以上做法應可滿足需求
但在現階段為因應時程要求
暫不提供"使用者自選長形列表顯示欄位"之功能
故亦不先做此修改

特此提醒

2010年3月15日 星期一

精靈A在新增或複製OS時,若size超過Storage

在新增或複製OS的頁面,使用者按下一步時檢查Stoarge的大小 *註
若超出範圍,則不給過(有錯誤標示)

註:在DB的Storage table有一個 Current_Usage欄位,可得知Storage現在使用的大小,經與Willy確認這用的是Storage的實際使用值

2010年3月8日 星期一

精靈A Step 3的Pnl3_DgViewOs,新增OS後,會有無法拉右側的 Bar 到最下面

如題
在新增數個OS後偶會發生,未解決

此問題乃是因為防呆工作沒有做好,填入了名字重複的資料,導致 DgView的動作失常

持續觀察中。

上述也是原因之一,但有時也會在不知何原因下產生如此狀況

2010年3月4日 星期四

User, PC(HBA), OS 所需要顯示的詳盡資料,應該包含哪些?

User資訊


是否停用
是否Online
User Name
User Group
Privilege身份權限是否可安裝OS
PC Name用哪一台電腦登入
Login Time登入時間
Logoug Time登出時間
Email
UD Size
UD 存於哪個Storage
PSD存於哪個Storage
專屬OS個數


PC(HBA)


是否停用
是否Online
是否加入Domain
PC Name
屬於PC Group
Image Version
BIOS Version
IP
MAC
UD Size
UD 存於哪個Storage
PSD存於哪個Storage
誰在用這台電腦 User Name

Remember Account 記住前次使用帳號



OS

是否停用


OS Name
容量
分享模式
快取大小
描述
OS存於哪個Storage
回溯數(時光還原點、發佈)
專屬使用者
配給群組數
線上使用者數

2010年3月2日 星期二

Default Pc(User) Groupt For DB

在DB中

HBA_GRP裡會有一筆HG_NAME為"Default Pc Group"的資料
未配置的HBA,皆屬於此群組

USR_GRP裡會有一筆UG_NAME為"Default User Group"的資料
未配置的USR,皆屬於此群組

對GUI在對PG變動PC及OS時處理相關PSD的演算法

針對GUI在對PG變動PCOS時處理相關PSD的演算法,感謝各位的撥空參與討論並提供寶貴意見。最後將原有的兩個function合併成為一個不會有重覆步驟的Function

ProcessPSD_OsPcChangeGroup( 原有OsList[ ], 現有OsList[ ], 原有PcList[ ], 現有PcList[])

{

先利用傳進來的參數得出

要刪除的 Os

新增的 Os

要刪除的 Pc

新增的 Pc

新舊 List 的交集 Os

運算法如下

要刪除的Os x原有PcList Psd

新增的Os xPcList Psd

交集的Os x新增的Pc Psd

交集的Os x要刪除的Pc Psd

}

2010年3月1日 星期一

如何判斷輸入的是否是中文或全型字-由Steve研發出來的

        private bool checkPwdInfo(string pwd)
        {
            //System.Console.WriteLine(pwd);
            if (pwd.Length > 0)
            {
                char[] str = pwd.ToCharArray();
                for (int i = 0; i < str.Length; i++)
                {
                    int asciiNum = Convert.ToInt32(str[i]);
                    System.Console.WriteLine((asciiNum.ToString()));
                    if (asciiNum == 32) return false; //空白
                    if (asciiNum > 128) return false;
                }
            }
            return true;
        }


在GUI上關於PSD的建立邏輯討論


1. DBSanpshot table中,將LIDVerID兩者合設為一個Key,成為一個防護措施。
2. 精靈中,若再新增PG時加入的PC已經擁有HD,則在畫面出現提示Lable告知使用者若繼續,則該PCHD將被刪除並套用現在新的設定。
3. 定義:刪、建PSD: Group底下所有的Pc(User),為他們建立(刪除)與此OS相關的PSD
4. 精靈中,OS的變化
A. 新建OS則會
建立新的 LUNSSVMDK
Call ProcessPsd_OsChangeGroup()
B. 選現有OS
Call ProcessPsd_OsChangeGroup()
C. 勾掉OS
Call ProcessPsd_OsChangeGroup()
5. 精靈中,PC的變化
A. 新建PG
HBA_GRP (new)
不加PC à不做事
PC
HBA(update)
檢查有無指派UD(HD)
有則
LUN(new)
SS(new)
VMDK(new)
à不做事
Call ProcessPsd_PcChangeGroup()
原有PC勾掉
HBA(update)
Call ProcessPsd_PcChangeGroup()
B. 現有PG
不加PC à不做事
PC
HBA(update)
Call ProcessPsd_PcChangeGroup()
原有PC勾掉
HBA(update)
Call ProcessPsd_PcChangeGroup()
6. 建立兩個Function

A. ProcessPsd_PcChangeGroup(原有PC List [ ], PC List [ ], 原有OS List[ ])
{
PC List中,原有的PC在新的List中沒有,
若原OS已發布則Call水晶的functionPSD
若無則不做事
PC List中,原沒有的PC在新的List中有,
若原OS已發布則Call水晶的functionPSD
若無則不做事
}
B. ProcessPsd_OsChangeGroup(原有OS List [ ], OS List [ ], PC List[ ])
{
OS List中,原有OS在新的List中沒有,則:
GRP_LUN
檢查是否已發布
已發布,則砍PSDPC Admin PSD
未發布,則不做事
OS List中,原沒有OS,在新的List中有,則:
GRP_LUN
檢查是否已發布
已發布,則建PSDPC Admin PSD
未發布,則做事
Call水晶的function來建()PSD
}

7. Pure by mac情況下(如精靈A),新建的PG必須與PBMGRP (User group)有關連,在Grp_relation tablePCSIDEOS要設為 true( 1 )

2010年2月26日 星期五

發佈的可能BUG

如果已經有VER0與1
在發佈的時候,會發佈VER2
但是在DVT那邊發現有時候會有重複的VER0或VER1存在
但是不太確定,因為並非每次都發生
之後再回來確認這問題

2010年2月25日 星期四

進階畫面-Adv- OS-等待補上的防呆與錯誤判斷-

Adv-OS之 OS新增
◆ 如果沒有輸入NAME、選Storage、設定Size...的防呆
◆ TabIndex的設定確認
◆ Storage沒有預設選擇把OS放在怎樣的(Raid ? )硬碟裡
◆ 關閉按鈕之實作


Adv-OS之 OS修改
◆TabIndex的設定確認
◆修改資料之後,DataGrid會跳回第一筆,試著停留在原本那一筆
◆ 關閉按鈕之實作


Adv-OS之 OS搜尋
◆TabIndex的設定確認
◆如果沒打勾,OK按鈕不能按,如果沒打勾,後面的選擇輸入要Disable
◆ 關閉按鈕之實作


Adv-OS之 OS刪除
◆要連同SnapShot都刪除,所以要以迴圈丟封包請Target做,目前只有刪除Base
◆需要先進行條件判斷:
1.OS在DB是否存在
2.OS所使用的Storage是否存在,也是否狀態為下線
3.OS有無Online的使用者,有則不允許刪除
4.OS是否有屬於某個群組,有則提示


Adv-OS之共通需求
◆顯示的資訊當中,也要包含這個OS的快照的詳細資訊,快照的版本,以及快照的使用者清單






Adv-PC之 PC刪除
◆需要先進行條件判斷:
1.PC在DB是否存在
2.PC所使用的Storage是否存在,也是否狀態為下線
3.PC本身是否Online中或有無Online的使用者,有則不允許刪除



Qlution2.1升級2.2時會碰到的問題

在 2.1 時就存在的 OS,因為機制不同,並不會有相對應的 VMDK,在升級2.2後,會因此造成錯誤。此問題需要大家討論來訂定處理方法。

2010年2月24日 星期三

如何處理提示訊息的視窗?

如果訊息視窗以ShowDialog的強制回應方式,程式會停在這行,想要進行的程序只能在對話框被關掉之後才會作,這樣不行

如果訊息不以強制回應呈現,視窗可能被使用者其他視窗遮到,或是忽略不去按,會有一堆視窗殘存在畫面上

所以用MaskPanel的方式來做。

2010年2月22日 星期一

訪客模式精靈待解決問題

1. 若使用現有群組,且將群組名稱更改,則會另外新增一個新名稱的群組,應該將 DB 中原來的群組名稱改過來

2010年2月21日 星期日

關於Storage的移除、替換以及關於User與HBA會把UD跟PSD建立在哪個Storage上

User與HBA會把UD跟PSD建立在哪個Storage上這個屬性不可拿掉,因為ISNS會根據這個欄位來選取Target

而GUI在顯示畫面上,也會讓管理者設定與看到User或HBA的US跟PSD建立在哪個Storage上,之前已經設定過,則不可變更,之前沒設定過,則可以變更。

當管理者要移除Storage的話,會先檢查有無OS或UD或HD在其上,如果有,則提示有資料在,不給砍,但是也允許他強力砍,就是要求他輸入確認密碼,然後將其上所有的OS跟UD跟USER跟HD跟HBA都刪除,然後Storage清除掉。

而替換的話,則是
1.不用動到GUI,直接放上一顆新的Storage,建立一個新的.sys檔案,裡面填妥想替換的Storage的ID跟Name就可以把舊的拔除,上新的。

2.把上述的動作透過程式自動作掉,讓管理者從UI選擇要替換的Storage以及新的Storage,然後將.sys替換掉。這個替換或建立.sys檔案的動作,應該是由IO完成,試看看能否透過[ Add Storage ]指令來達成。

2010年2月11日 星期四

選擇現有電腦群組 UD 不可變動

在精靈中,若使用者選擇使用"現有電腦群組"則,在指派 UD 的步驟有以下規則

1. 若此電腦群組中的所有電腦皆沒有 UD,則,是否讓群組內的電腦擁有可存放資料的 Radio Button 預設為"否"。反之若群組中有一部以上的電腦有 UD,則預設為"是"。

2. 在是否讓群組內的電腦擁有可存放資料的 Radio Button 下方顯示紅字"因使用現有電腦群組, 故,此功能不開放。"等字樣

3. 該頁面其它文字及選項皆不顯示

進階GUI 切出群組內容編輯模組

感謝史帝夫大力相助...

群組內容的編輯大小為:

Size = ( 528, 622 )

2010年2月10日 星期三

Q2.2 「 PSD LUN的LTYPE值 」與「 PSD 的 VMDK 檔案個數 」與「PSD命名規則簡述」

PSD改名為 SD


PC的SD LUN:
(1) ADMIN權限的PC:不需要建立PSD,他會用Normal PC的SD
(2) Normal PC:LTYPE=24


USER的SD LUN:
(1) ADMIN權限的USER:LTYPE=14
(2) Normal USER:LTYPE=100






---------------------------------------------------------------------------------------------
每個PC都會僅有一個SD,對應幾個OS都是用這個SD進去,用過就忘,而PC以Admin來進入的話,也會用這個SD。


每個User則都會對應到每個OS有一個SD,比方某個User屬於某個User Group,然而這個User Group有分配了5個OS,則要建立五個SD的資料在DB裡。(因為只需要最新發佈的OS才需要建立SD,不用每個發佈都建立SD)


如果User的身份是Administrator則,他也是僅有一個SD,是用來讓他進入「已發佈」的OS用的暫存SD,一樣是用過就忘。


PS.在GUI或MGC這邊,僅需要在DB建立資料就好了,不需要建立實際的SD的VMDK檔案




---------------------------------------------------------------------------------------------
SD的命名分成兩個部分:


1.SD LUN LNAME 的命名:
由於UD的LNAME命名採用:UID(10碼)_ UD0
所以SD的命名方式為:


User : 
UID(10碼) _ USD _ OSID(10碼) _ OS版本號(4碼)


User Admin: 
UID(10碼) _ USD


PC : 
HID(10碼) _ HSD 




2.SD的VMDK檔案命名:


User : 
目錄:\User\UID\OS_USD\
UID(10碼) _ USD _ OSID(10碼) _ OS版本號(4碼)  _ 個人時光回溯版本號(4碼).vmdk


User Admin: 




目錄:\User\UID\OS_USD\
UID(10碼) _ USD.vmdk


PC : 
目錄:\Computer\HID\OS_HSD\
HID(10碼) _ HSD .vmdk





---------------------------------------------------------------------------------------------
備註:
UD的LNAME與VMDK檔案路徑:





User : 
LNAME:UID(10碼) _ UD0 ( 0 ~ 3 )
目錄:\User\UID\UD\
UID(10碼) _ UD0 .vmdk ( 0 ~ 3 )





PC : 

LNAME:HID(10碼) _ HD0 ( 0 ~ 3 )
目錄:\Computer\HID\HD\
HID(10碼) _ HD0 .vmdk( 0 ~ 3 )

第一次審核會議的意見

To Honda:

Clement建議Snapshot是否可以有Description,方便使用者註記這個版本有安裝了什麼軟體

DB之LUN TABLE新增欄位:SD_OS_VERID

DB之LUN TABLE新增欄位:SD_OS_VERID

精靈A訪客模式之建立資料流程補充PSD部分

當使用者或電腦換群組
需要考慮必須查他們的新群組的OS,以及舊的群組的OS
將他們舊的PSD(對照到舊的群組的OS)給砍掉,然後建立新的PSDD(對照到舊的群組的OS)
而上述所指的都是DB的LUN,而非vmdk檔案,而其中要思考如果舊的群組的OS跟新的群組的OS有重疊,則不要刪除那些PSD

所以在DataStore也要寫好對應的Function,讓外部呼叫



而如果OS從群組異動,比方從A群組移到B群組,則,A群組所有的USER或PC的「對應到此OS之PSD」要被清除,然後建立B群組所有USER或PC的「對應到此OS之PSD」

所以在DataStore也要寫好對應的Function,讓外部呼叫

2010年2月9日 星期二

進階GUI 切出元件編輯模組

根據討論結果 (討論參與人有Crystal,Foxy,David)
將GUI進階設定的元件(OS,PC,USER)放大編輯的部份
採用以UserControl的方式編輯:

Size = ( 904, 553 )

因背景可能會採陰影方式 (使整個編輯框有突顯的效果 )
故編輯時,可以預留一點邊,不要太貼就可以了

OS未發佈、PSD不需建實體vmdk(GUI部份)

(1) OS未發佈,亦可配置給PcGroup及UserGroup
(2) PSD建置的部份,在GUI僅需建立出對應之DB資料
  實際建立出vmdk檔案的部份,Target會自動偵測,如果沒有PSD,會自行建立

將UI精靈設定時若發生問題,RollBack 的原則(草稿)

此文件中有一假定,失敗後所有的動作一定會成功。且尚未考慮Insert成功但因其他因素回報失敗,(如斷線)而造成DB內有資料但GUI/MGC確認為失敗。
將UI的設定,轉成封包,要丟給MGC
DataFormItmToSocket()
{
m_DbConnectoer.ConnectToDB();
若失敗,跳訊息視窗,停住動作。

CheckeSet_Ud()
建立 UD LUN (若有需要)
Insert Into Lun….
若失敗,跳訊息視窗,停住動作。
取回UD LUN ID
Select LID From Lun
若失敗,跳訊息,Delete 剛剛建立的 LUN (以 LUN Name 來刪)
停住動作。
或,以迴圈連續取三次,若都無法取得,再做上述動作
建立 SS
Insert Into Snapshot…
若失敗,則Delete 剛剛建立的 LUN (以 LID 來刪)
跳訊息視窗,停住動作。

建立VMDK
丟封包給Target
若失敗,則跳訊息視窗,
Delete 剛剛建立的Snapshot(以 Path來刪)
Delete 剛剛建立的 LUN (以 LID 來刪)
Delete 剛剛建立的 LUN (以 LUN Name 來刪)
跳訊息視窗,停住動作。

}

// 判斷 Group, Pc 頁面的設定
CheckSet_GroupAnd Pc()
{
判斷是為新增或是更新
建立PC Group (新增)
Insert Into HBA_GRP (…. )
若失敗 先判斷剛才有無建立 UD LUN
若有 Delete 剛剛建立的Snapshot(以 Path來刪)
Delete 剛剛建立的 LUN (以 LID 來刪)
Delete 剛剛建立的 LUN (以 LUN Name 來刪)
若無 跳訊息視窗,停住動作。

取回 HG ID
若失敗,先判斷剛才有無建立 UD LUN
若有 Delete 剛剛建立的Snapshot(以 Path來刪)
Delete 剛剛建立的 LUN (以 LID 來刪)
Delete 剛剛建立的 LUN (以 LUN Name 來刪)
Delete 剛剛建立的 HG(以HG_NSME來刪)
若無 跳訊息視窗,停住動作。

將此PC異動,變成加入此 PC Group (若有需要)
Update HBA Set HG_ID= ……
若失敗,先判斷剛才有無建立 UD LUN
若有 Delete 剛剛建立的Snapshot(以 Path來刪)
Delete 剛剛建立的 LUN (以 LID 來刪)
Delete 剛剛建立的 LUN (以 LUN Name 來刪)
Delete 剛剛建立的 HG(以HG_NSME來刪)
若無 跳訊息視窗,停住動作。

更新
Update HBA_GRP Set ……
若失敗,先判斷剛才有無建立 UD LUN
若有 Delete 剛剛建立的Snapshot(以 Path來刪)
Delete 剛剛建立的 LUN (以 LID 來刪)
Delete 剛剛建立的 LUN (以 LUN Name 來刪)
若無 跳訊息視窗,停住動作。
}

判斷OS頁面的設定
CheckSet_Os()
(若有需要)
建立OS Lun
Insert Into Lun……
若失敗,先判斷剛才有無建立 UD LUN
若有
Delete 剛剛建立的Snapshot(以 Path來刪)
Delete 剛剛建立的 LUN (以 LID 來刪)
Delete 剛剛建立的 LUN (以 LUN Name 來刪)
再判斷 HG為新增或更新
若新增
Delete 剛剛建立的 HG(以HG_NSME來刪)
另判斷有無PC異動,加入 PC Group
若有
反Update HBA Set HG_ID= ……
若為更新
反Update HBA_GRP Set ……
跳訊息視窗,停住動作。

取回 OS LUN ID
Select LID From Lun……
若失敗,先判斷剛才有無建立 UD LUN
若有
Delete 剛剛建立的Snapshot(以 Path來刪)
Delete 剛剛建立的 LUN (以 LID 來刪)
Delete 剛剛建立的 LUN (以 LUN Name 來刪)
再判斷 HG為新增或更新
若新增
Delete 剛剛建立的 HG(以HG_NSME來刪)
另判斷有無PC異動,加入 PC Group
若有
反Update HBA Set HG_ID= ……
若為更新
反Update HBA_GRP Set ……
Delete 剛剛建立的OS Lun(以LName來刪)

建立SS
Insert Into Snapshot ……
若失敗,先判斷剛才有無建立 UD LUN
若有
Delete 剛剛建立的Snapshot(以 Path來刪)
Delete 剛剛建立的 LUN (以 LID 來刪)
Delete 剛剛建立的 LUN (以 LUN Name 來刪)
再判斷 HG為新增或更新
若新增
Delete 剛剛建立的 HG(以HG_NSME來刪)
另判斷有無PC異動,加入 PC Group
若有
反Update HBA Set HG_ID= ……
若為更新
反Update HBA_GRP Set ……
Delete 剛剛建立的OS Lun(以LName來刪)

將 OS 與 Group 建立關連 (此處有無需要要Roll back??)
Insert Into GRP_LUN…..
若失敗,先判斷剛才有無建立 UD LUN
若有
Delete 剛剛建立的Snapshot(以 Path來刪)
Delete 剛剛建立的 LUN (以 LID 來刪)
Delete 剛剛建立的 LUN (以 LUN Name 來刪)
再判斷 HG為新增或更新
若新增
Delete 剛剛建立的 HG(以HG_NSME來刪)
另判斷有無PC異動,加入 PC Group
若有
反Update HBA Set HG_ID= ……
若為更新
反Update HBA_GRP Set ……
Delete 剛剛建立的OS Lun(以LName來刪)
Delete 剛剛建立的SnapShot (以Path來刪)
現有OS
將OS與Group建立關連
Insert Into BRP_LUN……
若失敗,先判斷剛才有無建立 UD LUN
若有
Delete 剛剛建立的Snapshot(以 Path來刪)
Delete 剛剛建立的 LUN (以 LID 來刪)
Delete 剛剛建立的 LUN (以 LUN Name 來刪)
再判斷 HG為新增或更新
若新增
Delete 剛剛建立的 HG(以HG_NSME來刪)
另判斷有無PC異動,加入 PC Group
若有
反Update HBA Set HG_ID= ……
若為更新
反Update HBA_GRP Set ……
跳訊息視窗,停住動作。

送封包給 Target,建立VMDK
若失敗,先判斷剛才有無建立 UD LUN
若有
Delete 剛剛建立的Snapshot(以 Path來刪)
Delete 剛剛建立的 LUN (以 LID 來刪)
Delete 剛剛建立的 LUN (以 LUN Name 來刪)
再判斷 HG為新增或更新
若新增
Delete 剛剛建立的 HG(以HG_NSME來刪)
另判斷有無PC異動,加入 PC Group
若有
反Update HBA Set HG_ID= ……
若為更新
反Update HBA_GRP Set ……
再判斷OS為新增或現有
若新增
Delete 剛剛建立的
Delete 剛剛建立的OS Lun(以LName來刪)
Delete 剛剛建立的SnapShot (以Path來刪)
Delete 剛剛建立的關連(以HG_ID + LID來刪 ??)
若原有
Delete 剛剛建立的關連(以HG_ID + LID來刪 ??)
跳訊息視窗,停住動作。
}

2010年2月8日 星期一

關於PSD,需要討論的議題

(1) PSD的建立點
-(a) OS發佈時:將關連至該OS的各個Group下的每個成員,建立對應該OS之PSD
-(b) Group新增成員時:針對該成員,建立與Group關連之各個OS之PSD
-(c) ...

(2) PSD的刪除點
-(a) OS被移除關連時:將移除關連之Group,其中的每個成員對應至該OS的PSD刪除
 *延伸問題:OS被移除關連後,若還有被其他Group關連,那該OS的SnapShot不更動是應該的,但如果該OS已經沒有被任何Group關連,已發佈過的SnapShot版本亦不可能再發佈,此時是否自動回溯或合併?
-(b) PSD控制項:將該USER(or PC)的PSD設為必忘
-(c) ...

2010年2月7日 星期日

"發佈"成功 XD

已可使用”發佈”功能成功建立出下一個SnapShot版本的vmdk檔!
在測試過程中發現一個問題:
 若前一個SnapShot版本的vmdk檔不存在
 (即SourcePath的檔案並不存在)
 則發佈無法建立成功,但Target仍回傳 0 (成功)
 (已告知Joya)

排除掉這個問題,已可成功發佈,並產生下一個版本的OS SnapShot!
真是...值得慶祝!^0^
( 剛好今天RD尾牙 )

----------------------------------
補充一件值得慶祝的事!
那就是PSD的建置也沒問題了!>"<..真是感動到要流眼淚...
最復雜的PSD LNAME及檔案目錄結構
規劃了將近兩天( + 程式架構規劃 )
終於...沒有白規劃
一試就給它成功
(當然我是很小心的試啦 ..而且有小修小改~環節太多了 ` )

總之 一整個HAPPY
這時候就算叫我導QLUTION我也願意 XD

Q2.1 的 MGC之LUN沒有BLOCK,會導致SQL Syntax Error

在Q2.0或2.1的MGC當中
如果LUN沒有BLOCK,會導致SQL Syntax Error
為了避免一直出現這個錯誤,要把這段邏輯改成「忽略此Syntax Error,讓程式繼續執行下去不中斷」

當然,之後仍需要解決這種不完全動作留下的垃圾資料

Block Mode的Storage 與 File Mode的Storage

若使用Qlution 2.2的精靈A
在操作過程中選擇了Q2.1或之前的Storage
  (即 Block Mode的Storage)
   * 因為Storage選單是從DB的Storage Table取出
   Block Mode的Storage也在DB中
則無法建立出對應之VMDK檔案
但也沒回傳任何錯誤

這個錯誤是否需被定義清楚?

相容或不容
不容的話,在Storage選單就擋掉?
相容的話,又該怎麼處理或顯示?

二月份任務規劃

封包GUI與MGC定義(FOXY、DAVID)
GUI送指令給MGC,給TARGET之底層實作。(FOXY、DAVID)

UI精靈之底層運作。(DAVID)
進階畫面設定(Crystal)

MGC撰寫(FOXY)


大家在思考一下,需要多少時間比較恰當吧


附註:封包定義MGC與Target之Target回傳碼請JOYA幫忙補充。

一月份 For 測試之工作安排回顧


一月份 For 測試之工作安排回顧:

GU美工整合與精靈D調整。(Crystal)--------------------Crystal完成GUI美工整合,與部分精靈D之調整,David完成後續精靈D之調整。
封包MGC與TARGET與UI之定義(DAVID)----------------DAVID已完成定。
GUI撈資料庫、精靈操作過程記錄於DB(FOXY)----------------FOXY已完成精靈A

再者1/30之前
發佈SS的UI設計(Crystal)----------------Crystal即將完成
MGC的建立流程指令撰寫,包含發佈SS(FOXY)----------------FOXY寫在GUI端,發佈SS也請Crystal先寫在GU端
GUI送封包指令給MGC(DAVID)----------------FOXY寫在GUI端

2010年2月6日 星期六

DataStore要補的資料

OsData, PgData, UserData ....這些Class當中,有些需要加上 Action Code ,為了讓MGC與GUI封包溝通時所指定的Action Code有地方儲存的關係。



UserData的Private OS個數,在封包擴充保留到3個OS,目的只是為了跟UD個數一樣,比較好記

Profile Index 的欄位,在2.2當中不需要了

MGC與GUI的溝通封包當中,有個Profile Index 的欄位,在GUI當中也會有這個設定,在2.2當中,是不是就不需要了?就放在PSD的VMDK就好了呢?目前應該是「是」,之後在會議上提出來請大家確認一下

”發佈”要製作的功能

按下"發佈"會執行的動作:

(1) create new os snapshot
(2) tell target to create vmdk of new os verion
(3.1) if target create success , update db data accord to (1)
(3.2) if target creat failed, delete (1) create record
(3.1.1) follow (3.1) success :
create psd lun and snapshot with every pc and user that relate with be published os
(3.1.2) tell target to create PSD vmdk
(3.1.3.1) if target create success, do nothing
(3.1.3.2) if target create failed, delete (3.1.1) create record

2010年2月5日 星期五

MGC2.2在撈資料的部分,還需要支援哪些封包呢?

Alien:

Login
HeartBeat
ListHBA
ListHG



AD同步
GetItemUser
Cmd_UgNa
Cmd_UserNa

2010年2月4日 星期四

Q2.2 DB之LUN.LNAME命名規則

LNAME的命名規則

分為三種類型:

<OS>(原命名方式)
  LNAME可由使用者自行命名
<UD>
  UserDisk : UID_UDx
       (UID為10碼;x指序號,由0開始編,目前最多三個UD,序號即0、1、2)
       ex--> 0000000001_UD0
  PcDisk(HbaDisk) : HID_HDx
       (HID為10碼;x為序號,由0開始編,目前最多三個HD,序號即0、1、2)
       ex--> 0000000002_HD1
<PSD>
  UserPsd : OsLid_OsSsVerid_UID_USD
       ( UID為10碼;OsLid為對應OS的LID,亦為10碼 ;OsSsVerid為4碼)
       ex--> 0000000012_0000_0000224503_USD
  PcPsd: OsLid_OsSsVerid_HID_HSD
      ( HID為10碼;OsLid為對應OS的LID,亦為10碼;OsSsVerid為4碼 )
      ex--> 0000000005_0000_0000036985_HSD
  PcAdminPsd : OsLid_OsSsVerid_UID_HSD_ADMIN
         (OsLid為對應OS的LID,為10碼;OsSsVerid為4碼;PcGroup之管理帳號為User帳號,故有UID,亦填入10碼)
         ex-->0000000025_0002_0000000001_HSD_ADMIN

作業系統發佈UI出現偶發問題(偶發機率偏高)

當前的作業系統發佈UI出現了一個問題 :

在選擇OS目前狀態時,若在"未配置"及"專屬作業系統"此兩個選項之間切換
會有一定機率出現錯誤
且C#會出現ERROR : NullReferenceException
程式停在Program.cs裡的 Main()裡的 "Application.Run( new Frm_Intro() );" 此行

此問題為偶發性
機率約為75% 算高

須找時間盡快解決

麻煩DAVID幫忙進行思考,指令失敗要怎麼處理?

比方在精靈A當中

會Create Group,會把PC加到這個Group
也會建立UD
最後建立OS


過程當中,也會跟Target進行封包的溝通
那如果中間有封包失敗了,或是某SQL失敗了
我們要怎麼作?後續要不要進行,前面建立的資料要不要刪掉

2010年1月25日 星期一

GUI - MGC 封包訂定時發現的.

1. GUI需要有程序去新增HG的 Administrator Password,及 Normal User Password並決定是否有Need Account Password
2. 一個UG有128個HG

2010年1月24日 星期日

在精靈A,增加兩個用來確認是否要更改密碼的CheckBox

Step -4 當中,密碼的那個頁面
在精靈A,增加兩個用來確認是否要更改密碼的CheckBox
Pnl4_ChkBxMaintainPwd
Pnl4_ChkBxNormalPwd
只會在STEP-1選擇了「使用現有電腦群組」這邊才會出現這兩個CheckBox
並且預設不勾選,而所有密碼的TextBox也預設為Disable
如果勾選了,才變成Enable

所以語言包裡面也要包含這兩個新的元件

2010年1月23日 星期六

跟HONDA報告進階的設定方式

進階的部分,設定方式,算是整個系統建構的靈魂所在
HONDA需要知道GUI在這邊的規劃方式
進而來跟系統核心的流程作一個整合
所以禮拜一FOXY要將這部分作個整理文件,給HONDA

2010年1月22日 星期五

精靈A-預設的密碼是什麼好呢?

新增一個電腦群組的話

一般使用者登入的確認密碼:
00000000八個零好嗎?

維護作業系統權限的密碼,該是什麼好呢?
jadecom嗎?
還是iwantmantain嗎?
還是有什麼想法呢?

我請Mando幫我們定義吧,這是PM可以幫我們定義的



一個 Qserver 能有幾個 Storage

如題..請確認

2010年1月21日 星期四

選的Radio button會不見

在DgView裡的Radio button在離滑鼠點離開DgView後,選取的Radio Button會不見

猜想,可能是判斷哪一個Radio Button被選到的邏輯在滑鼠離開DgView時多被觸發了一次。
需要測試。

選的Radio button

2010年1月20日 星期三

1月底前任務微調.唉。調整了之後,還是很不可能完成啊

首先,1/23之前:

GU美工整合與精靈D調整。(水晶)
封包MGC與TARGET與UI之定義(DAVID)
GUI撈資料庫、精靈操作過程記錄於DB(FOXY)



再者1/30之前
發佈SS的UI設計(水晶)
MGC的建立流程指令撰寫,包含發佈SS(FOXY)
GUI送封包指令給MGC(DAVID)






唉,寫的完,才有鬼.........................(飆淚中)

Button在enabled=false時,字體的顏色會因form的backcolor而有不同

哇 標題已經寫完了

2010年1月19日 星期二

GU放圖之後,會出現一直Repain畫圖到視窗的問題

該怎麼作才能避免一直看到這種更新,導致畫面反應也變很慢


想法1
即時的在切換頁面的時候才將BackgroundImage變成圖片,否則切換成Null



想法2
即時的在切換頁面的時候才將Size放大,否則平常縮到最小


想法3
不要讓多個Panel同時放在視窗,而是即時的去Add跟Remove

2010年1月17日 星期日

Q2.2多模式相關於DB的應用


2.在Q2.2的四種混用模式,該怎麼在DB實現:
(1)先決定電腦群組是否需要「帳號管理」(Pure by MAC)來決定出是否IBIOS會有「輸入帳號密碼的畫面」,再來才,如果選擇了要有「帳號管理」之後,才讓管理則選用電腦群組的OS或是使用者群組的OS

(2)為了設計上可以更改少一點,所以,在DB如何實現無帳號管理呢?我們必須在系統當中設定一個宋七力群組,這個群組名稱,是保留字,使用者不能用也不能刪除更看不到,裡面也會有一個宋七力帳號,所有無帳號的登入,都會讓iSNS帶這個帳號來跟Client跟Target作三方帳號認證(不然無帳號得避開這段認證,要改動較大),所有的Client登入,都用這個宋七力帳號,同時上線,也不會被iSNS檔下來。

(3)不論是帳號的UD或是電腦的UD,都是用舊的規則,也就是如果是by MAC,則帳號的UD跟電腦的UD都掛起來,如果是By User,則只掛帳號的UD,而如果是Pure By MAC則只掛電腦的UD,而,以上這些都不用在GUI上面跟使用者說,也不用讓使用者選擇,我們保留這個彈性,不讓使用者太麻煩太困惑!

STEVE給予我們很好的建議事項,

大家參考一下唷

1.在OS指定給不同的User Group或PC Group時,可能因為硬體差異而無法開機,此需要提示給管理者在操作GUI的時候知道,也就是要給提示告知。


2010年1月6日 星期三

關於Q2.2電腦版的測試使用心得,麻煩寫意見給我們

這些精靈,讓您覺得他簡單好用嗎?引導的恰當嗎?您覺得


1.很棒
2.棒
3.普通
4.不怎麼好用
5.很難用




您只要回答數字就行了,您姓名是否留下,都可以的,如果有其他意見可提供給我們建議,也歡迎留下給我們)
-------------------------------------------------------------------------------
(範例:
Foxy : (2)
訪客精靈的第四個步驟,希望可以提供....XXXXOOOO的設定
-------------------------------------------------------------------------------



然後身份選擇匿名,然而部落格系統不是很穩定,有時候會一直告訴你失敗,要嘗試很多次才會成功。麻煩各位,也謝謝各位

關於Panel的設定

Panel1 ~  Panel 6 的 Panel 設定,請修改為


            Pnl1.Size = new Size( 560, 510 );
            Pnl1.Location = new Point( 10, 10 );
            而Panel的 Border設定為FixedSingle


Panel1 ~  Panel 6 需要區隔的線,一律用下述的Line-Label
什麼是Line Label ? 就是把Lable拉成一個很長很窄的尺寸,(寬度為1)然後Border設定成 Fix3D,就會看起來像是一條分隔線了。

2010年1月5日 星期二

GUI之精靈右方共用邊旗位置設定

第一個Step之高度為25 , 70
第二個Step之高度為25 , 150
.....
.....



第一個Step Description之高度為25 , 90
第二個Step Description之高度為25 , 170

.....
.....

也就是間距高度都80

2009年12月30日 星期三

關於GUI內所用的名稱長度

關於GUI內所用的名稱長度


PC Name,  16
PC Group Name , 512
PC Group Description , 128
User Group Name , 512
User Group Description , 128
User Name , 20
OS Name , 64
OS Description , 128
Storage Name , 64 --> 32 ( Win XP 最多只能接受32字元)
Taregt Name , 224
QServer Name , 16