Esempio n. 1
0
        //*********************************************************************
        ///
        /// <summary>
        ///     This method is used to check whether a disk can be added to a VM
        /// </summary>
        /// <param name="cmpRequestId"></param>
        /// <param name="addDiskCount"></param>
        /// <returns>boolean</returns>
        ///
        //*********************************************************************

        private bool CanAddDisks(int cmpRequestId, int addDiskCount)
        {
            try
            {
                string roleSizeName;

                //*** Fetch disk count from Azure ***

                var cmpi  = new VMServiceRepository(_eventLog);
                var count = cmpi.FetchDiskCount(cmpRequestId, out roleSizeName);

                //*** fetch role size disc capacity info ***

                var cwdb         = new CmpWapDb();
                var roleSizeInfo = cwdb.FetchVmSizeInfo(roleSizeName);

                if (null == roleSizeInfo)
                {
                    throw new Exception(string.Format(
                                            "Could not locate given VM role size: '{0}' in server Role Size table", roleSizeName));
                }

                //*** Check capacity ***

                return(count + addDiskCount <= roleSizeInfo.MaxDataDiskCount);
            }
            catch (Exception ex)
            {
                LogThis(ex, EventLogEntryType.Error, "CmpWapExtension.VmsController.CanAddDisks()", 100, 1);
                throw;
            }
        }