private void TriggerInquiry(string vaultName, string vaultResourceGroupName,
                                    string storageContainerName)
        {
            ODataQuery <BMSContainersInquiryQueryObject> queryParams = new ODataQuery <BMSContainersInquiryQueryObject>(
                q => q.WorkloadType
                == ServiceClientModel.WorkloadType.AzureFileShare);
            string errorMessage    = string.Empty;
            var    inquiryResponse = ServiceClientAdapter.InquireContainer(
                storageContainerName,
                queryParams,
                vaultName,
                vaultResourceGroupName);

            var operationStatus = TrackingHelpers.GetOperationResult(
                inquiryResponse,
                operationId =>
                ServiceClientAdapter.GetContainerRefreshOrInquiryOperationResult(
                    operationId,
                    vaultName: vaultName,
                    resourceGroupName: vaultResourceGroupName));

            //Now wait for the operation to Complete
            if (inquiryResponse.Response.StatusCode
                != SystemNet.HttpStatusCode.NoContent)
            {
                errorMessage = string.Format(Resources.TriggerEnquiryFailureErrorCode,
                                             inquiryResponse.Response.StatusCode);
                Logger.Instance.WriteDebug(errorMessage);
            }
        }
Exemplo n.º 2
0
        public override void ExecuteCmdlet()
        {
            ExecutionBlock(() =>
            {
                base.ExecuteCmdlet();

                ResourceIdentifier resourceIdentifier = new ResourceIdentifier(VaultId);
                string vaultName = resourceIdentifier.ResourceName;
                string vaultResourceGroupName = resourceIdentifier.ResourceGroupName;
                string workloadType           = ConversionUtils.GetServiceClientWorkloadType(WorkloadType.ToString());
                string backupManagementType   = Container.BackupManagementType.ToString();
                ODataQuery <BMSContainersInquiryQueryObject> queryParams = new ODataQuery <BMSContainersInquiryQueryObject>(
                    q => q.WorkloadType == workloadType && q.BackupManagementType == backupManagementType);
                string errorMessage = string.Empty;
                var inquiryResponse = ServiceClientAdapter.InquireContainer(
                    Container.Name,
                    queryParams,
                    vaultName,
                    vaultResourceGroupName);

                var operationStatus = TrackingHelpers.GetOperationResult(
                    inquiryResponse,
                    operationId =>
                    ServiceClientAdapter.GetContainerRefreshOrInquiryOperationResult(
                        operationId,
                        vaultName: vaultName,
                        resourceGroupName: vaultResourceGroupName));

                if (inquiryResponse.Response.StatusCode
                    == SystemNet.HttpStatusCode.OK)
                {
                    Logger.Instance.WriteDebug(errorMessage);
                }

                //Now wait for the operation to Complete
                if (inquiryResponse.Response.StatusCode
                    != SystemNet.HttpStatusCode.NoContent)
                {
                    errorMessage = string.Format(Resources.TriggerEnquiryFailureErrorCode,
                                                 inquiryResponse.Response.StatusCode);
                    Logger.Instance.WriteDebug(errorMessage);
                }
                if (PassThru.IsPresent)
                {
                    WriteObject(Container);
                }
            }, ShouldProcess(Container.Name, VerbsLifecycle.Invoke));
        }
Exemplo n.º 3
0
        public override void ExecuteCmdlet()
        {
            ExecutionBlock(() =>
            {
                base.ExecuteCmdlet();

                ResourceIdentifier resourceIdentifier = new ResourceIdentifier(VaultId);
                string vaultName         = resourceIdentifier.ResourceName;
                string resourceGroupName = resourceIdentifier.ResourceGroupName;

                if (!((Container.ContainerType == ContainerType.Windows &&
                       Container.BackupManagementType == BackupManagementType.MAB) ||
                      (Container.ContainerType == ContainerType.AzureSQL &&
                       Container.BackupManagementType == BackupManagementType.AzureSQL) ||
                      (Container.ContainerType == ContainerType.AzureStorage &&
                       Container.BackupManagementType == BackupManagementType.AzureStorage) ||
                      (Container.ContainerType == ContainerType.AzureVMAppContainer &&
                       Container.BackupManagementType == BackupManagementType.AzureWorkload)))
                {
                    throw new ArgumentException(string.Format(Resources.UnsupportedContainerException,
                                                              Container.ContainerType, Container.BackupManagementType));
                }

                bool yesToAll = Force.IsPresent;
                bool noToAll  = false;
                if (ShouldContinue(Resources.DeleteContainerRegistration, Resources.UnregisterContainer, ref yesToAll, ref noToAll))
                {
                    string containerName = Container.Name;

                    if (Container.ContainerType == ContainerType.AzureSQL)
                    {
                        containerName = ContainerConstansts.SqlContainerNamePrefix + containerName;
                    }

                    if (Container.ContainerType == ContainerType.AzureVMAppContainer ||
                        Container.ContainerType == ContainerType.AzureStorage)
                    {
                        if (Container.ContainerType == ContainerType.AzureStorage)
                        {
                            containerName = "StorageContainer;" + containerName;
                        }
                        var unRegisterResponse = ServiceClientAdapter.UnregisterWorkloadContainers(
                            containerName,
                            vaultName: vaultName,
                            resourceGroupName: resourceGroupName);

                        var operationStatus = TrackingHelpers.GetOperationResult(
                            unRegisterResponse,
                            operationId =>
                            ServiceClientAdapter.GetContainerRefreshOrInquiryOperationResult(
                                operationId,
                                vaultName: vaultName,
                                resourceGroupName: resourceGroupName));

                        //Now wait for the operation to Complete
                        if (unRegisterResponse.Response.StatusCode
                            != SystemNet.HttpStatusCode.NoContent)
                        {
                            string errorMessage = string.Format(Resources.UnRegisterFailureErrorCode,
                                                                unRegisterResponse.Response.StatusCode);
                            Logger.Instance.WriteDebug(errorMessage);
                        }
                    }
                    else
                    {
                        ServiceClientAdapter.UnregisterContainers(
                            containerName,
                            vaultName: vaultName,
                            resourceGroupName: resourceGroupName);
                    }

                    if (PassThru.IsPresent)
                    {
                        WriteObject(Container);
                    }
                }
            }, ShouldProcess(Container.Name, VerbsLifecycle.Unregister));
        }