Пример #1
0
        //*********************************************************************
        ///
        /// <summary>
        ///     This method is used to change type from VMInfo to VM Dashboard Info.
        /// </summary>
        /// <param name="vm"></param>
        /// <returns>VmDashboardInfo object</returns>
        ///
        //*********************************************************************

        VmDashboardInfo Translatevm(CmpApiClient.VmInfo vm)
        {
            return(new VmDashboardInfo()
            {
                DataVirtualHardDisks = (vm.DataVirtualHardDisks == null) ? null :
                                       vm.DataVirtualHardDisks.Select(x => new DataVirtualHardDisk
                {
                    DiskLabel = x.DiskLabel,
                    DiskName = x.DiskName,
                    HostCaching = x.HostCaching,
                    LogicalDiskSizeInGB = x.LogicalDiskSizeInGB,
                    Lun = x.Lun,
                    MediaLink = x.MediaLink,
                    SourceMediaLink = x.SourceMediaLink
                }).ToList(),
                OSVirtualHardDisk = new OsVirtualHardDisk
                {
                    DiskLabel = vm.OSVirtualHardDisk.DiskLabel,
                    DiskName = vm.OSVirtualHardDisk.DiskName,
                    HostCaching = vm.OSVirtualHardDisk.HostCaching,
                    MediaLink = vm.OSVirtualHardDisk.MediaLink,
                    OS = vm.OSVirtualHardDisk.OS,
                    RemoteSourceImageLink = vm.OSVirtualHardDisk.RemoteSourceImageLink,
                    SourceImageName = vm.OSVirtualHardDisk.SourceImageName
                },
                RDPCertificateThumbprint = vm.RDPCertificateThumbprint,
                InternalIP = vm.InternalIP,
                DeploymentID = vm.DeploymentID,
                DNSName = vm.DNSName,
                RoleName = vm.RoleName,
                RoleSize = vm.RoleSize,
                Status = vm.Status,
                Subscription = new SubscriptionInfo
                {
                    CurrentCoreCount = vm.Subscription.CurrentCoreCount,
                    MaximumCoreCount = vm.Subscription.MaximumCoreCount,
                    SubscriptionID = vm.Subscription.SubscriptionID,
                    SubscriptionName = vm.Subscription.SubscriptionName
                },
                QueueStatus = vm.QueueStatus, // get queue status of the VM
                MediaLocation = vm.MediaLocation,
                OSVersion = vm.OSVersion
            });
        }
Пример #2
0
        public void Setup()
        {
            _cmpApiServiceMock = new Mock <ICmpApiClient>();
            _cmpWapDbMock      = new Mock <ICmpWapDb>();

            var vmDepRequest = new List <VmDeploymentRequest>()
            {
                new VmDeploymentRequest()
                {
                    ID                        = 345,
                    RequestName               = "CMPWAP: MockVM1",
                    RequestDescription        = "Mocking VM for test",
                    ParentAppName             = "A&O Stuff",
                    RequestType               = "NewVM",
                    Active                    = true,
                    AftsID                    = 123,
                    ParentAppID               = "ICTO-1234",
                    TargetServiceProviderType = "Azure",
                    TargetLocation            = "CentralUS",
                    TargetLocationType        = "Region",
                    TargetAccount             = "ecd32150-1e35-4a03-af0f-163da2eff99a",
                    TargetAccountType         = "AzureSubscription",
                    TargetAccountCreds        = null,
                    VmSize                    = null,
                    TagData                   = "XML Mock",
                    Config                    = "Xml Mock",
                    TargetVmName              = "MockVM1",
                    WhoRequested              = "redmond\abcd",
                    WhenRequested             = DateTime.Now,
                    ExceptionMessage          = "exception xyz",
                    LastStatusUpdate          = DateTime.Today,
                    StatusMessage             = "Exception in xyz"
                },
                new VmDeploymentRequest()
                {
                    ID                        = 346,
                    RequestName               = "CMPWAP: MockVM2",
                    RequestDescription        = "Mocking VM for test",
                    ParentAppName             = "A&O Stuff",
                    RequestType               = "NewVM",
                    Active                    = true,
                    AftsID                    = 123,
                    ParentAppID               = "ICTO-1234",
                    TargetServiceProviderType = "Azure",
                    TargetLocation            = "CentralUS",
                    TargetLocationType        = "Region",
                    TargetAccount             = "ecd32150-1e35-4a03-af0f-163da2eff99a",
                    TargetAccountType         = "AzureSubscription",
                    TargetAccountCreds        = null,
                    VmSize                    = null,
                    TagData                   = "XML Mock",
                    Config                    = "Xml Mock",
                    TargetVmName              = "MockVM2",
                    WhoRequested              = "redmond\abcd",
                    WhenRequested             = DateTime.Now,
                    ExceptionMessage          = null,
                    LastStatusUpdate          = DateTime.Today,
                    StatusMessage             = "null"
                }
            };

            var vmInfo = new CmpApiClient.VmInfo()
            {
                DeploymentID             = "123",
                DNSName                  = "mockvmdns",
                InternalIP               = "1.2.3.4",
                RDPCertificateThumbprint = "adwsaeqe45354etfg5645etfdg",
                RoleName                 = "mockvm",
                RoleSize                 = "A7",
                Status      = "ReadyRole",
                QueueStatus = "Complete"
            };

            var svcProviderAcc = new List <ServiceProviderAccount>()
            {
                new ServiceProviderAccount()
                {
                    ID            = 123,
                    Name          = "Serv Prov 1",
                    Description   = "Description for Serv Prov Account",
                    OwnerNamesCSV = "Owner Names",
                    Config        = "<Config></Config>",
                    TagData       = "Tag Data",
                    TagID         = 1,
                    ResourceGroup = "RGroup1"
                },
                new ServiceProviderAccount()
                {
                    ID            = 456,
                    Name          = "Serv Prov 1",
                    Description   = "Description for Serv Prov Account",
                    OwnerNamesCSV = "Owner Names",
                    Config        = "<Config></Config>",
                    TagData       = "Tag Data",
                    TagID         = 2,
                    ResourceGroup = "RGroup2"
                }
            };

            var detachedDisks = new List <VhdInfo>()
            {
                new VhdInfo()
                {
                    DiskName = "VM1_C",
                },
                new VhdInfo()
                {
                    DiskName = "VM1_D"
                },
                new VhdInfo()
                {
                    DiskName = "VM1_E"
                }
            };

            var apps = new List <Models.Application>
            {
                new Models.Application
                {
                    ApplicationId  = 1,
                    IsActive       = true,
                    HasService     = true,
                    CIOwner        = "*****@*****.**",
                    Code           = "App1",
                    CreatedBy      = "*****@*****.**",
                    LastUpdatedBy  = "*****@*****.**",
                    CreatedOn      = DateTime.UtcNow,
                    LastUpdatedOn  = DateTime.UtcNow,
                    Name           = "App1",
                    SubscriptionId = "abcd-1234",
                    Region         = "USWest"
                },
                new Models.Application
                {
                    ApplicationId  = 2,
                    IsActive       = true,
                    HasService     = true,
                    CIOwner        = "*****@*****.**",
                    Code           = "Ap2",
                    CreatedBy      = "*****@*****.**",
                    LastUpdatedBy  = "*****@*****.**",
                    CreatedOn      = DateTime.UtcNow,
                    LastUpdatedOn  = DateTime.UtcNow,
                    Name           = "App2",
                    SubscriptionId = "abcd-1234",
                    Region         = "USWest"
                }
            };

            var vmSizeInfoListToFetch = new List <Models.VmSize>
            {
                new Models.VmSize {
                    VmSizeId         = 123,
                    Name             = "MockVmSize 1",
                    Description      = "Mock VM Size for testing purposes",
                    Cores            = 1,
                    Memory           = 2048,
                    MaxDataDiskCount = 2,
                    IsActive         = true,
                    CreatedOn        = DateTime.UtcNow,
                    CreatedBy        = "*****@*****.**",
                    LastUpdatedOn    = DateTime.UtcNow,
                    LastUpdatedBy    = "*****@*****.**"
                },
                new Models.VmSize {
                    VmSizeId         = 456,
                    Name             = "MockVmSize 2",
                    Description      = "Mock VM Size for testing purposes",
                    Cores            = 1,
                    Memory           = 2048,
                    MaxDataDiskCount = 2,
                    IsActive         = true,
                    CreatedOn        = DateTime.UtcNow,
                    CreatedBy        = "*****@*****.**",
                    LastUpdatedOn    = DateTime.UtcNow,
                    LastUpdatedBy    = "*****@*****.**"
                },
            };

            var azureRegionListToFetch = new List <Models.AzureRegion>
            {
                new Models.AzureRegion
                {
                    AzureRegionId    = 123,
                    Name             = "Central US",
                    Description      = "Central US",
                    OsImageContainer = "https://contoso.com",
                    IsActive         = true,
                    CreatedOn        = DateTime.UtcNow,
                    CreatedBy        = "*****@*****.**",
                    LastUpdatedOn    = DateTime.UtcNow,
                    LastUpdatedBy    = "*****@*****.**"
                },
                new Models.AzureRegion
                {
                    AzureRegionId    = 456,
                    Name             = "West US",
                    Description      = "West US",
                    OsImageContainer = "https://contosoAlternative.com",
                    IsActive         = true,
                    CreatedOn        = DateTime.UtcNow,
                    CreatedBy        = "*****@*****.**",
                    LastUpdatedOn    = DateTime.UtcNow,
                    LastUpdatedBy    = "*****@*****.**"
                }
            };

            var vmOsInfoListToFetch = new List <Models.VmOs>
            {
                new Models.VmOs
                {
                    VmOsId                = 1234,
                    Name                  = "Windows Server 2008 R2 (SP1)",
                    Description           = "Windows Server 2008 R2 (SP1)",
                    AzureImageName        = "SDO_2014_09_2008R2SP1_FS.vhd",
                    IsActive              = true,
                    CreatedOn             = DateTime.UtcNow,
                    CreatedBy             = "REDMOND\ramankum",
                    LastUpdatedOn         = DateTime.UtcNow,
                    LastUpdatedBy         = "REDMOND\ramankum",
                    AzureImageOffer       = "WindowsServer",
                    AzureImagePublisher   = "MicrosoftWindowsServe",
                    AzureWindowsOSVersion = "2012-R2-Datacenter"
                },
                new Models.VmOs
                {
                    VmOsId                = 5678,
                    Name                  = "Windows Server 2012 (SP0)",
                    Description           = "Windows Server 2012 (SP0)",
                    AzureImageName        = "SDO_2014_09_2012SP0_FS.vhd",
                    IsActive              = true,
                    CreatedOn             = DateTime.UtcNow,
                    CreatedBy             = "REDMOND\ramankum",
                    LastUpdatedOn         = DateTime.UtcNow,
                    LastUpdatedBy         = "REDMOND\ramankum",
                    AzureImageOffer       = "WindowsServer",
                    AzureImagePublisher   = "MicrosoftWindowsServe",
                    AzureWindowsOSVersion = "2012-R2-Datacenter"
                }
            };


            //Mocks for CmpApiClient
            _cmpApiServiceMock.Setup(r => r.FetchCmpRequests())
            .Returns(vmDepRequest);

            _cmpApiServiceMock.Setup(r => r.FetchCmpRequest(It.IsAny <int>()))
            .Returns((int n) => vmDepRequest.FirstOrDefault(req => req.ID == n));

            _cmpApiServiceMock.Setup(r => r.FetchServProvAcctList(It.IsAny <string>()))
            .Returns((string n) => Translate(svcProviderAcc.Where(svc => svc.ResourceGroup == n)));

            _cmpApiServiceMock.Setup(r => r.GetDetachedDisks(It.IsAny <int>()))
            .Returns((int n) => n == 123 ? detachedDisks : null);

            _cmpApiServiceMock.Setup(r => r.GetVm(It.IsAny <int>(), CmpInterfaceModel.Constants.FetchType.AzureFull))
            .Returns((int n) => n == 123 ? vmInfo : null);

            // Mocks for WAP DB
            _cmpWapDbMock.Setup(r => r.CheckAppDataRecord(It.IsAny <CreateVm>()))
            .Returns((CreateVm vm) => apps.Any(a => a.Name == vm.VmAppName || a.Code == vm.VmAppId));

            _cmpWapDbMock.Setup(r => r.InsertAppDataRecord(It.IsAny <CreateVm>()));

            _cmpWapDbMock.Setup(r => r.FetchVmSizeInfoList(true))
            .Returns(vmSizeInfoListToFetch);

            _cmpWapDbMock.Setup(r => r.DeleteVmSize(It.IsAny <int>()));

            //_cmpWapDbMock.Setup(r => r.FetchAzureRegionList())
            //    .Returns(azureRegionListToFetch);

            _cmpWapDbMock.Setup(r => r.FetchOsInfoList(true))
            .Returns(vmOsInfoListToFetch);
        }