顯示具有 Q2.2 GUI 標籤的文章。 顯示所有文章
顯示具有 Q2.2 GUI 標籤的文章。 顯示所有文章

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

2010年5月27日 星期四

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

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

2010年5月12日 星期三

UD跟OS的SIZE不可以變更

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

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

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年4月19日 星期一

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

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


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

2010年4月3日 星期六

來自PALLY的建議

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


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

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月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月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的使用者,有則不允許刪除



2010年2月24日 星期三

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

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

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

所以用MaskPanel的方式來做。

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月10日 星期三

精靈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月7日 星期日

二月份任務規劃

封包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月4日 星期四

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

比方在精靈A當中

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


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

2010年1月24日 星期日

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

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

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