fog-azure-rm 0.4.8 → 0.4.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +6 -4
- data/CHANGELOG.md +12 -0
- data/README.md +2 -0
- data/lib/fog/azurerm/docs/compute.md +2 -0
- data/lib/fog/azurerm/models/compute/managed_disk.rb +9 -2
- data/lib/fog/azurerm/requests/compute/delete_managed_disk.rb +12 -4
- data/lib/fog/azurerm/requests/network/list_network_security_groups.rb +139 -143
- data/lib/fog/azurerm/requests/storage/get_blob_properties.rb +26 -26
- data/lib/fog/azurerm/storage.rb +1 -0
- data/lib/fog/azurerm/version.rb +1 -1
- data/test/api_stub/requests/network/network_security_group.rb +2 -2
- data/test/api_stub/requests/storage/file.rb +9 -0
- data/test/models/compute/test_managed_disk.rb +9 -2
- data/test/requests/compute/test_delete_managed_disk.rb +2 -2
- data/test/requests/network/test_list_network_security_groups.rb +3 -3
- data/test/requests/storage/test_get_blob.rb +1 -1
- data/test/requests/storage/test_get_blob_properties.rb +3 -1
- metadata +3 -4
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: b6eace092703425619fcb56d16c63043e2f92be194dbe41d800702afb6f03238
         | 
| 4 | 
            +
              data.tar.gz: dbeacbf137a189c567e97e2c6b459b6d6e4fc5edde87a7d1a674c48059e7d975
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: e18b3f6b29b0e8ebe819650977bd7bc06a37efab2191ef1bbc07761e22dad7ebe651b4b6eb282ef5146d4e388cb8183511e8e0ae0a87bcfde8f232b16d485d70
         | 
| 7 | 
            +
              data.tar.gz: b746e050e5e78944ed72644b23c506bbd0e5d7f71830d6207bcf54d9f59c5d48e45fd8334bdf40ce3514894cde942fd2b2625db4ae280fd31a7a7e47e7ccd04f
         | 
    
        data/.travis.yml
    CHANGED
    
    | @@ -2,8 +2,8 @@ language: ruby | |
| 2 2 | 
             
            sudo: false
         | 
| 3 3 |  | 
| 4 4 | 
             
            before_install:
         | 
| 5 | 
            -
              - gem  | 
| 6 | 
            -
              - gem  | 
| 5 | 
            +
              - gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler || true
         | 
| 6 | 
            +
              - gem install bundler -v '< 2'
         | 
| 7 7 | 
             
              - gem uninstall -aIx nokogiri -i /home/travis/.rvm/gems/ruby-2.4.1@global nokogiri
         | 
| 8 8 |  | 
| 9 9 | 
             
            script: bash ./rake-script.sh
         | 
| @@ -13,8 +13,10 @@ rvm: | |
| 13 13 | 
             
              - 2.1.0
         | 
| 14 14 | 
             
              - 2.1.1
         | 
| 15 15 | 
             
              - 2.1.5
         | 
| 16 | 
            -
              - 2.2. | 
| 17 | 
            -
              - 2.3. | 
| 16 | 
            +
              - 2.2.10
         | 
| 17 | 
            +
              - 2.3.7
         | 
| 18 | 
            +
              - 2.4.4
         | 
| 19 | 
            +
              - 2.5.1
         | 
| 18 20 | 
             
              - jruby-head
         | 
| 19 21 |  | 
| 20 22 | 
             
            matrix:
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,3 +1,15 @@ | |
| 1 | 
            +
            ## 0.4.9
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            **Added**
         | 
| 4 | 
            +
            - Current Ruby versions added in .travis.yml for testing
         | 
| 5 | 
            +
            - Asynchronous deletion of Managed Disk added
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            **Changed**
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            - List method which handles pagination by default has been updated for Network Security Group.
         | 
| 10 | 
            +
            - .travis.yml updated to handle bundler gem dependency on Ruby 2.3+
         | 
| 11 | 
            +
            - Mocks for Azure::Blobs updated
         | 
| 12 | 
            +
             | 
| 1 13 | 
             
            ## 0.4.8
         | 
| 2 14 |  | 
| 3 15 | 
             
            **Added:**
         | 
    
        data/README.md
    CHANGED
    
    
| @@ -388,6 +388,8 @@ Get an managed disk object from the get method and then destroy that managed dis | |
| 388 388 |  | 
| 389 389 | 
             
            ```ruby
         | 
| 390 390 | 
             
            managed_disk.destroy
         | 
| 391 | 
            +
            # Can be made asynchronously (is synchronous by default)
         | 
| 392 | 
            +
            managed_disk.destroy(true)
         | 
| 391 393 | 
             
            ```
         | 
| 392 394 |  | 
| 393 395 | 
             
            ## Check Availability Set Existence
         | 
| @@ -46,8 +46,10 @@ module Fog | |
| 46 46 | 
             
                      merge_attributes(Fog::Compute::AzureRM::ManagedDisk.parse(disk))
         | 
| 47 47 | 
             
                    end
         | 
| 48 48 |  | 
| 49 | 
            -
                    def destroy
         | 
| 50 | 
            -
                      service.delete_managed_disk(resource_group_name, name | 
| 49 | 
            +
                    def destroy(async = false)
         | 
| 50 | 
            +
                      response = service.delete_managed_disk(resource_group_name, name,
         | 
| 51 | 
            +
                                                             async)
         | 
| 52 | 
            +
                      async ? create_fog_async_response(response) : response
         | 
| 51 53 | 
             
                    end
         | 
| 52 54 |  | 
| 53 55 | 
             
                    private
         | 
| @@ -71,6 +73,11 @@ module Fog | |
| 71 73 | 
             
                        encryption_settings: encryption_settings
         | 
| 72 74 | 
             
                      }
         | 
| 73 75 | 
             
                    end
         | 
| 76 | 
            +
             | 
| 77 | 
            +
                    def create_fog_async_response(response, delete_extra_resource = false)
         | 
| 78 | 
            +
                      disk = Fog::Compute::AzureRM::ManagedDisk.new(service: service)
         | 
| 79 | 
            +
                      Fog::AzureRM::AsyncResponse.new(disk, response, delete_extra_resource)
         | 
| 80 | 
            +
                    end
         | 
| 74 81 | 
             
                  end
         | 
| 75 82 | 
             
                end
         | 
| 76 83 | 
             
              end
         | 
| @@ -4,16 +4,24 @@ module Fog | |
| 4 4 | 
             
                class AzureRM
         | 
| 5 5 | 
             
                  # Real class for Compute Request
         | 
| 6 6 | 
             
                  class Real
         | 
| 7 | 
            -
                    def delete_managed_disk(resource_group_name, disk_name)
         | 
| 7 | 
            +
                    def delete_managed_disk(resource_group_name, disk_name, async)
         | 
| 8 8 | 
             
                      msg = "Deleting Managed Disk: #{disk_name}"
         | 
| 9 9 | 
             
                      Fog::Logger.debug msg
         | 
| 10 10 | 
             
                      begin
         | 
| 11 | 
            -
                         | 
| 11 | 
            +
                        if async
         | 
| 12 | 
            +
                          response = @compute_mgmt_client.disks.delete_async(resource_group_name, disk_name)
         | 
| 13 | 
            +
                        else
         | 
| 14 | 
            +
                          @compute_mgmt_client.disks.delete(resource_group_name, disk_name)
         | 
| 15 | 
            +
                        end
         | 
| 12 16 | 
             
                      rescue MsRestAzure::AzureOperationError => e
         | 
| 13 17 | 
             
                        raise_azure_exception(e, msg)
         | 
| 14 18 | 
             
                      end
         | 
| 15 | 
            -
                       | 
| 16 | 
            -
             | 
| 19 | 
            +
                      if async
         | 
| 20 | 
            +
                        response
         | 
| 21 | 
            +
                      else
         | 
| 22 | 
            +
                        Fog::Logger.debug "Managed Disk #{disk_name} deleted successfully."
         | 
| 23 | 
            +
                        true
         | 
| 24 | 
            +
                      end
         | 
| 17 25 | 
             
                    end
         | 
| 18 26 | 
             
                  end
         | 
| 19 27 |  | 
| @@ -8,160 +8,156 @@ module Fog | |
| 8 8 | 
             
                      Fog::Logger.debug msg
         | 
| 9 9 |  | 
| 10 10 | 
             
                      begin
         | 
| 11 | 
            -
                        nsg_list_result = @network_client.network_security_groups. | 
| 11 | 
            +
                        nsg_list_result = @network_client.network_security_groups.list(resource_group)
         | 
| 12 12 | 
             
                      rescue MsRestAzure::AzureOperationError => e
         | 
| 13 13 | 
             
                        raise_azure_exception(e, msg)
         | 
| 14 14 | 
             
                      end
         | 
| 15 15 |  | 
| 16 16 | 
             
                      Fog::Logger.debug "Network Security Groups list retrieved successfully from Resource Group #{resource_group}."
         | 
| 17 | 
            -
                      nsg_list_result | 
| 17 | 
            +
                      nsg_list_result
         | 
| 18 18 | 
             
                    end
         | 
| 19 19 | 
             
                  end
         | 
| 20 20 |  | 
| 21 21 | 
             
                  # Mock class for Network Request
         | 
| 22 22 | 
             
                  class Mock
         | 
| 23 23 | 
             
                    def list_network_security_groups(resource_group)
         | 
| 24 | 
            -
                       | 
| 25 | 
            -
                         | 
| 26 | 
            -
                          {
         | 
| 27 | 
            -
             | 
| 28 | 
            -
             | 
| 29 | 
            -
             | 
| 30 | 
            -
             | 
| 31 | 
            -
                             | 
| 32 | 
            -
                               | 
| 33 | 
            -
                                 | 
| 34 | 
            -
                                   | 
| 35 | 
            -
                                    {
         | 
| 36 | 
            -
             | 
| 37 | 
            -
                                       | 
| 38 | 
            -
                                         | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 49 | 
            -
             | 
| 50 | 
            -
             | 
| 51 | 
            -
             | 
| 52 | 
            -
                                 | 
| 53 | 
            -
                                   | 
| 54 | 
            -
                                    {
         | 
| 55 | 
            -
             | 
| 56 | 
            -
                                       | 
| 57 | 
            -
                                         | 
| 58 | 
            -
             | 
| 59 | 
            -
             | 
| 60 | 
            -
             | 
| 61 | 
            -
             | 
| 62 | 
            -
             | 
| 63 | 
            -
             | 
| 64 | 
            -
             | 
| 65 | 
            -
             | 
| 66 | 
            -
             | 
| 67 | 
            -
             | 
| 68 | 
            -
             | 
| 69 | 
            -
             | 
| 70 | 
            -
             | 
| 71 | 
            -
                                    {
         | 
| 72 | 
            -
             | 
| 73 | 
            -
                                       | 
| 74 | 
            -
                                         | 
| 75 | 
            -
             | 
| 76 | 
            -
             | 
| 77 | 
            -
             | 
| 78 | 
            -
             | 
| 79 | 
            -
             | 
| 80 | 
            -
             | 
| 81 | 
            -
             | 
| 82 | 
            -
             | 
| 83 | 
            -
             | 
| 84 | 
            -
             | 
| 85 | 
            -
             | 
| 86 | 
            -
             | 
| 87 | 
            -
             | 
| 88 | 
            -
                                    {
         | 
| 89 | 
            -
             | 
| 90 | 
            -
                                       | 
| 91 | 
            -
                                         | 
| 92 | 
            -
             | 
| 93 | 
            -
             | 
| 94 | 
            -
             | 
| 95 | 
            -
             | 
| 96 | 
            -
             | 
| 97 | 
            -
             | 
| 98 | 
            -
             | 
| 99 | 
            -
             | 
| 100 | 
            -
             | 
| 101 | 
            -
             | 
| 102 | 
            -
             | 
| 103 | 
            -
             | 
| 104 | 
            -
             | 
| 105 | 
            -
                                    {
         | 
| 106 | 
            -
             | 
| 107 | 
            -
                                       | 
| 108 | 
            -
                                         | 
| 109 | 
            -
             | 
| 110 | 
            -
             | 
| 111 | 
            -
             | 
| 112 | 
            -
             | 
| 113 | 
            -
             | 
| 114 | 
            -
             | 
| 115 | 
            -
             | 
| 116 | 
            -
             | 
| 117 | 
            -
             | 
| 118 | 
            -
             | 
| 119 | 
            -
             | 
| 120 | 
            -
             | 
| 121 | 
            -
             | 
| 122 | 
            -
                                    {
         | 
| 123 | 
            -
             | 
| 124 | 
            -
                                       | 
| 125 | 
            -
                                         | 
| 126 | 
            -
             | 
| 127 | 
            -
             | 
| 128 | 
            -
             | 
| 129 | 
            -
             | 
| 130 | 
            -
             | 
| 131 | 
            -
             | 
| 132 | 
            -
             | 
| 133 | 
            -
             | 
| 134 | 
            -
             | 
| 135 | 
            -
             | 
| 136 | 
            -
             | 
| 137 | 
            -
             | 
| 138 | 
            -
             | 
| 139 | 
            -
                                    {
         | 
| 140 | 
            -
             | 
| 141 | 
            -
                                       | 
| 142 | 
            -
                                         | 
| 143 | 
            -
             | 
| 144 | 
            -
             | 
| 145 | 
            -
             | 
| 146 | 
            -
             | 
| 147 | 
            -
             | 
| 148 | 
            -
             | 
| 149 | 
            -
             | 
| 150 | 
            -
             | 
| 151 | 
            -
             | 
| 152 | 
            -
             | 
| 153 | 
            -
             | 
| 154 | 
            -
             | 
| 155 | 
            -
             | 
| 156 | 
            -
             | 
| 157 | 
            -
             | 
| 158 | 
            -
             | 
| 159 | 
            -
             | 
| 160 | 
            -
             | 
| 161 | 
            -
                        ]
         | 
| 162 | 
            -
                      }
         | 
| 163 | 
            -
                      nsg_mapper = Azure::ARM::Network::Models::NetworkInterfaceListResult.mapper
         | 
| 164 | 
            -
                      @network_client.deserialize(nsg_mapper, nsg_list_result, 'result.body').value
         | 
| 24 | 
            +
                      [
         | 
| 25 | 
            +
                        {
         | 
| 26 | 
            +
                          'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup",
         | 
| 27 | 
            +
                          'name' => 'testGroup',
         | 
| 28 | 
            +
                          'type' => 'Microsoft.Network/networkSecurityGroups',
         | 
| 29 | 
            +
                          'location' => 'westus',
         | 
| 30 | 
            +
                          'properties' =>
         | 
| 31 | 
            +
                            {
         | 
| 32 | 
            +
                              'securityRules' =>
         | 
| 33 | 
            +
                                [
         | 
| 34 | 
            +
                                  {
         | 
| 35 | 
            +
                                    'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/securityRules/testRule",
         | 
| 36 | 
            +
                                    'properties' =>
         | 
| 37 | 
            +
                                      {
         | 
| 38 | 
            +
                                        'protocol' => 'tcp',
         | 
| 39 | 
            +
                                        'sourceAddressPrefix' => '0.0.0.0/0',
         | 
| 40 | 
            +
                                        'destinationAddressPrefix' => '0.0.0.0/0',
         | 
| 41 | 
            +
                                        'access' => 'Allow',
         | 
| 42 | 
            +
                                        'direction' => 'Inbound',
         | 
| 43 | 
            +
                                        'sourcePortRange' => '22',
         | 
| 44 | 
            +
                                        'destinationPortRange' => '22',
         | 
| 45 | 
            +
                                        'priority' => 100,
         | 
| 46 | 
            +
                                        'provisioningState' => 'Succeeded'
         | 
| 47 | 
            +
                                      },
         | 
| 48 | 
            +
                                    'name' => 'testRule'
         | 
| 49 | 
            +
                                  }
         | 
| 50 | 
            +
                                ],
         | 
| 51 | 
            +
                              'defaultSecurityRules' =>
         | 
| 52 | 
            +
                                [
         | 
| 53 | 
            +
                                  {
         | 
| 54 | 
            +
                                    'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/defaultSecurityRules/AllowVnetInBound",
         | 
| 55 | 
            +
                                    'properties' =>
         | 
| 56 | 
            +
                                      {
         | 
| 57 | 
            +
                                        'protocol' => '*',
         | 
| 58 | 
            +
                                        'sourceAddressPrefix' => 'VirtualNetwork',
         | 
| 59 | 
            +
                                        'destinationAddressPrefix' => 'VirtualNetwork',
         | 
| 60 | 
            +
                                        'access' => 'Allow',
         | 
| 61 | 
            +
                                        'direction' => 'Inbound',
         | 
| 62 | 
            +
                                        'description' => 'Allow inbound traffic from all VMs in VNET',
         | 
| 63 | 
            +
                                        'sourcePortRange' => '*',
         | 
| 64 | 
            +
                                        'destinationPortRange' => '*',
         | 
| 65 | 
            +
                                        'priority' => 65_000,
         | 
| 66 | 
            +
                                        'provisioningState' => 'Succeeded'
         | 
| 67 | 
            +
                                      },
         | 
| 68 | 
            +
                                    'name' => 'AllowVnetInBound'
         | 
| 69 | 
            +
                                  },
         | 
| 70 | 
            +
                                  {
         | 
| 71 | 
            +
                                    'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/defaultSecurityRules/AllowAzureLoadBalancerInBound",
         | 
| 72 | 
            +
                                    'properties' =>
         | 
| 73 | 
            +
                                      {
         | 
| 74 | 
            +
                                        'protocol' => '*',
         | 
| 75 | 
            +
                                        'sourceAddressPrefix' => 'AzureLoadBalancer',
         | 
| 76 | 
            +
                                        'destinationAddressPrefix' => '*',
         | 
| 77 | 
            +
                                        'access' => 'Allow',
         | 
| 78 | 
            +
                                        'direction' => 'Inbound',
         | 
| 79 | 
            +
                                        'description' => 'Allow inbound traffic from azure load balancer',
         | 
| 80 | 
            +
                                        'sourcePortRange' => '*',
         | 
| 81 | 
            +
                                        'destinationPortRange' => '*',
         | 
| 82 | 
            +
                                        'priority' => 65_001,
         | 
| 83 | 
            +
                                        'provisioningState' => 'Succeeded'
         | 
| 84 | 
            +
                                      },
         | 
| 85 | 
            +
                                    'name' => 'AllowAzureLoadBalancerInBound'
         | 
| 86 | 
            +
                                  },
         | 
| 87 | 
            +
                                  {
         | 
| 88 | 
            +
                                    'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/defaultSecurityRules/DenyAllInBound",
         | 
| 89 | 
            +
                                    'properties' =>
         | 
| 90 | 
            +
                                      {
         | 
| 91 | 
            +
                                        'protocol' => '*',
         | 
| 92 | 
            +
                                        'sourceAddressPrefix' => '*',
         | 
| 93 | 
            +
                                        'destinationAddressPrefix' => '*',
         | 
| 94 | 
            +
                                        'access' => 'Deny',
         | 
| 95 | 
            +
                                        'direction' => 'Inbound',
         | 
| 96 | 
            +
                                        'description' => 'Deny all inbound traffic',
         | 
| 97 | 
            +
                                        'sourcePortRange' => '*',
         | 
| 98 | 
            +
                                        'destinationPortRange' => '*',
         | 
| 99 | 
            +
                                        'priority' => 65_500,
         | 
| 100 | 
            +
                                        'provisioningState' => 'Succeeded'
         | 
| 101 | 
            +
                                      },
         | 
| 102 | 
            +
                                    'name' => 'DenyAllInBound'
         | 
| 103 | 
            +
                                  },
         | 
| 104 | 
            +
                                  {
         | 
| 105 | 
            +
                                    'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/defaultSecurityRules/AllowVnetOutBound",
         | 
| 106 | 
            +
                                    'properties' =>
         | 
| 107 | 
            +
                                      {
         | 
| 108 | 
            +
                                        'protocol' => '*',
         | 
| 109 | 
            +
                                        'sourceAddressPrefix' => 'VirtualNetwork',
         | 
| 110 | 
            +
                                        'destinationAddressPrefix' => 'VirtualNetwork',
         | 
| 111 | 
            +
                                        'access' => 'Allow',
         | 
| 112 | 
            +
                                        'direction' => 'Outbound',
         | 
| 113 | 
            +
                                        'description' => 'Allow outbound traffic from all VMs to all VMs in VNET',
         | 
| 114 | 
            +
                                        'sourcePortRange' => '*',
         | 
| 115 | 
            +
                                        'destinationPortRange' => '*',
         | 
| 116 | 
            +
                                        'priority' => 65_000,
         | 
| 117 | 
            +
                                        'provisioningState' => 'Succeeded'
         | 
| 118 | 
            +
                                      },
         | 
| 119 | 
            +
                                    'name' => 'AllowVnetOutBound'
         | 
| 120 | 
            +
                                  },
         | 
| 121 | 
            +
                                  {
         | 
| 122 | 
            +
                                    'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/defaultSecurityRules/AllowInternetOutBound",
         | 
| 123 | 
            +
                                    'properties' =>
         | 
| 124 | 
            +
                                      {
         | 
| 125 | 
            +
                                        'protocol' => '*',
         | 
| 126 | 
            +
                                        'sourceAddressPrefix' => '*',
         | 
| 127 | 
            +
                                        'destinationAddressPrefix' => 'Internet',
         | 
| 128 | 
            +
                                        'access' => 'Allow',
         | 
| 129 | 
            +
                                        'direction' => 'Outbound',
         | 
| 130 | 
            +
                                        'description' => 'Allow outbound traffic from all VMs to Internet',
         | 
| 131 | 
            +
                                        'sourcePortRange' => '*',
         | 
| 132 | 
            +
                                        'destinationPortRange' => '*',
         | 
| 133 | 
            +
                                        'priority' => 65_001,
         | 
| 134 | 
            +
                                        'provisioningState' => 'Succeeded'
         | 
| 135 | 
            +
                                      },
         | 
| 136 | 
            +
                                    'name' => 'AllowInternetOutBound'
         | 
| 137 | 
            +
                                  },
         | 
| 138 | 
            +
                                  {
         | 
| 139 | 
            +
                                    'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/defaultSecurityRules/DenyAllOutBound",
         | 
| 140 | 
            +
                                    'properties' =>
         | 
| 141 | 
            +
                                      {
         | 
| 142 | 
            +
                                        'protocol' => '*',
         | 
| 143 | 
            +
                                        'sourceAddressPrefix' => '*',
         | 
| 144 | 
            +
                                        'destinationAddressPrefix' => '*',
         | 
| 145 | 
            +
                                        'access' => 'Deny',
         | 
| 146 | 
            +
                                        'direction' => 'Outbound',
         | 
| 147 | 
            +
                                        'description' => 'Deny all outbound traffic',
         | 
| 148 | 
            +
                                        'sourcePortRange' => '*',
         | 
| 149 | 
            +
                                        'destinationPortRange' => '*',
         | 
| 150 | 
            +
                                        'priority' => 65_500,
         | 
| 151 | 
            +
                                        'provisioningState' => 'Succeeded'
         | 
| 152 | 
            +
                                      },
         | 
| 153 | 
            +
                                    'name' => 'DenyAllOutBound'
         | 
| 154 | 
            +
                                  }
         | 
| 155 | 
            +
                                ],
         | 
| 156 | 
            +
                              'resourceGuid' => '9dca97e6-4789-4ebd-86e3-52b8b0da6cd4',
         | 
| 157 | 
            +
                              'provisioningState' => 'Succeeded'
         | 
| 158 | 
            +
                            }
         | 
| 159 | 
            +
                        }
         | 
| 160 | 
            +
                      ]
         | 
| 165 161 | 
             
                    end
         | 
| 166 162 | 
             
                  end
         | 
| 167 163 | 
             
                end
         | 
| @@ -21,33 +21,33 @@ module Fog | |
| 21 21 | 
             
                  # This class provides the mock implementation for unit tests.
         | 
| 22 22 | 
             
                  class Mock
         | 
| 23 23 | 
             
                    def get_blob_properties(*)
         | 
| 24 | 
            -
                       | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 27 | 
            -
             | 
| 28 | 
            -
             | 
| 29 | 
            -
             | 
| 30 | 
            -
             | 
| 31 | 
            -
             | 
| 32 | 
            -
             | 
| 33 | 
            -
             | 
| 34 | 
            -
             | 
| 35 | 
            -
             | 
| 36 | 
            -
             | 
| 37 | 
            -
             | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 49 | 
            -
                        }
         | 
| 24 | 
            +
                      blob = Azure::Storage::Blob::Blob.new
         | 
| 25 | 
            +
                      blob.name = 'test_blob'
         | 
| 26 | 
            +
                      blob.metadata = {}
         | 
| 27 | 
            +
                      blob.properties = {
         | 
| 28 | 
            +
                        last_modified: 'Mon, 04 Jul 2016 09:30:31 GMT',
         | 
| 29 | 
            +
                        etag: '0x8D3A3EDD7C2B777',
         | 
| 30 | 
            +
                        lease_status: 'unlocked',
         | 
| 31 | 
            +
                        lease_state: 'available',
         | 
| 32 | 
            +
                        lease_duration: nil,
         | 
| 33 | 
            +
                        content_length: 4_194_304,
         | 
| 34 | 
            +
                        content_type: 'application/octet-stream',
         | 
| 35 | 
            +
                        content_encoding: nil,
         | 
| 36 | 
            +
                        content_language: nil,
         | 
| 37 | 
            +
                        content_disposition: nil,
         | 
| 38 | 
            +
                        content_md5: 'tXAohIyxuu/t94Lp/ujeRw==',
         | 
| 39 | 
            +
                        cache_control: nil,
         | 
| 40 | 
            +
                        sequence_number: 0,
         | 
| 41 | 
            +
                        blob_type: 'PageBlob',
         | 
| 42 | 
            +
                        copy_id: '095adc3b-e277-4c3d-97e0-0abca881f60c',
         | 
| 43 | 
            +
                        copy_status: 'success',
         | 
| 44 | 
            +
                        copy_source: 'https://testaccount.blob.core.windows.net/testblob/4m?snapshot=2016-02-04T08%3A35%3A50.3157696Z',
         | 
| 45 | 
            +
                        copy_progress: '4194304/4194304',
         | 
| 46 | 
            +
                        copy_completion_time: 'Thu, 04 Feb 2016 08:35:52 GMT',
         | 
| 47 | 
            +
                        copy_status_description: nil,
         | 
| 48 | 
            +
                        accept_ranges: 0
         | 
| 50 49 | 
             
                      }
         | 
| 50 | 
            +
                      blob
         | 
| 51 51 | 
             
                    end
         | 
| 52 52 | 
             
                  end
         | 
| 53 53 | 
             
                end
         | 
    
        data/lib/fog/azurerm/storage.rb
    CHANGED
    
    
    
        data/lib/fog/azurerm/version.rb
    CHANGED
    
    
| @@ -216,8 +216,8 @@ module ApiStub | |
| 216 216 | 
             
                         }
         | 
| 217 217 | 
             
                        ]
         | 
| 218 218 | 
             
                      }'
         | 
| 219 | 
            -
                      result_mapper = Azure::ARM::Network::Models:: | 
| 220 | 
            -
                      network_client.deserialize(result_mapper, Fog::JSON.decode(nsg_list), 'result.body')
         | 
| 219 | 
            +
                      result_mapper = Azure::ARM::Network::Models::NetworkSecurityGroupListResult.mapper
         | 
| 220 | 
            +
                      network_client.deserialize(result_mapper, Fog::JSON.decode(nsg_list), 'result.body').value
         | 
| 221 221 | 
             
                    end
         | 
| 222 222 | 
             
                  end
         | 
| 223 223 | 
             
                end
         | 
| @@ -5,6 +5,15 @@ module ApiStub | |
| 5 5 | 
             
                  # Below data should be as same as those in Mock classes in lib/fog/azurerm/requests/storage/*.rb
         | 
| 6 6 | 
             
                  class File
         | 
| 7 7 | 
             
                    def self.blob
         | 
| 8 | 
            +
                      blob_data = blob_as_hash
         | 
| 9 | 
            +
                      blob = Azure::Storage::Blob::Blob.new
         | 
| 10 | 
            +
                      blob.name = blob_data['name']
         | 
| 11 | 
            +
                      blob.metadata = blob_data['metadata']
         | 
| 12 | 
            +
                      blob.properties = blob_data['properties'].map { |k, v| { k.to_sym => v } }.reduce({}, &:merge!)
         | 
| 13 | 
            +
                      blob
         | 
| 14 | 
            +
                    end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                    def self.blob_as_hash
         | 
| 8 17 | 
             
                      {
         | 
| 9 18 | 
             
                        'name' => 'test_blob',
         | 
| 10 19 | 
             
                        'metadata' => {},
         | 
| @@ -50,13 +50,20 @@ class TestManagedDisk < Minitest::Test | |
| 50 50 |  | 
| 51 51 | 
             
              def test_destroy_method_true_response
         | 
| 52 52 | 
             
                @service.stub :delete_managed_disk, true do
         | 
| 53 | 
            -
                  assert @managed_disk.destroy
         | 
| 53 | 
            +
                  assert @managed_disk.destroy(false)
         | 
| 54 54 | 
             
                end
         | 
| 55 55 | 
             
              end
         | 
| 56 56 |  | 
| 57 57 | 
             
              def test_destroy_method_false_response
         | 
| 58 58 | 
             
                @service.stub :delete_managed_disk, false do
         | 
| 59 | 
            -
                  assert !@managed_disk.destroy
         | 
| 59 | 
            +
                  assert !@managed_disk.destroy(false)
         | 
| 60 | 
            +
                end
         | 
| 61 | 
            +
              end
         | 
| 62 | 
            +
             | 
| 63 | 
            +
              def test_destroy_method_can_take_params_async
         | 
| 64 | 
            +
                async_response = Concurrent::Promise.execute { 10 }
         | 
| 65 | 
            +
                @service.stub :delete_managed_disk, async_response do
         | 
| 66 | 
            +
                  assert_instance_of Fog::AzureRM::AsyncResponse, @managed_disk.destroy(true)
         | 
| 60 67 | 
             
                end
         | 
| 61 68 | 
             
              end
         | 
| 62 69 | 
             
            end
         | 
| @@ -10,14 +10,14 @@ class TestDeleteManagedDisk < Minitest::Test | |
| 10 10 |  | 
| 11 11 | 
             
              def test_delete_managed_disk_success
         | 
| 12 12 | 
             
                @managed_disks.stub :delete, true do
         | 
| 13 | 
            -
                  assert @service.delete_managed_disk('fog-test-rg', 'test-disk')
         | 
| 13 | 
            +
                  assert @service.delete_managed_disk('fog-test-rg', 'test-disk', false)
         | 
| 14 14 | 
             
                end
         | 
| 15 15 | 
             
              end
         | 
| 16 16 |  | 
| 17 17 | 
             
              def test_delete_managed_disk_failure
         | 
| 18 18 | 
             
                response = proc { raise MsRestAzure::AzureOperationError.new(nil, nil, 'error' => { 'message' => 'mocked exception' }) }
         | 
| 19 19 | 
             
                @managed_disks.stub :delete, response do
         | 
| 20 | 
            -
                  assert_raises(MsRestAzure::AzureOperationError) { @service.delete_managed_disk('fog-test-rg', 'test-disk') }
         | 
| 20 | 
            +
                  assert_raises(MsRestAzure::AzureOperationError) { @service.delete_managed_disk('fog-test-rg', 'test-disk', false) }
         | 
| 21 21 | 
             
                end
         | 
| 22 22 | 
             
              end
         | 
| 23 23 | 
             
            end
         | 
| @@ -10,14 +10,14 @@ class TestListNetworkSecurityGroup < Minitest::Test | |
| 10 10 |  | 
| 11 11 | 
             
              def test_list_network_security_group_success
         | 
| 12 12 | 
             
                mocked_response = ApiStub::Requests::Network::NetworkSecurityGroup.list_network_security_group_response(@client)
         | 
| 13 | 
            -
                @network_security_groups.stub : | 
| 14 | 
            -
                  assert_equal @service.list_network_security_groups('fog-test-rg'), mocked_response | 
| 13 | 
            +
                @network_security_groups.stub :list, mocked_response do
         | 
| 14 | 
            +
                  assert_equal @service.list_network_security_groups('fog-test-rg'), mocked_response
         | 
| 15 15 | 
             
                end
         | 
| 16 16 | 
             
              end
         | 
| 17 17 |  | 
| 18 18 | 
             
              def test_list_network_security_group_failure
         | 
| 19 19 | 
             
                response = proc { raise MsRestAzure::AzureOperationError.new(nil, nil, 'error' => { 'message' => 'mocked exception' }) }
         | 
| 20 | 
            -
                @network_security_groups.stub : | 
| 20 | 
            +
                @network_security_groups.stub :list, response do
         | 
| 21 21 | 
             
                  assert_raises MsRestAzure::AzureOperationError do
         | 
| 22 22 | 
             
                    @service.list_network_security_groups('fog-test-rg')
         | 
| 23 23 | 
             
                  end
         | 
| @@ -13,7 +13,7 @@ class TestGetBlob < Minitest::Test | |
| 13 13 | 
             
                @blob_client = @service.instance_variable_get(:@blob_client)
         | 
| 14 14 |  | 
| 15 15 | 
             
                @raw_cloud_blob = storage_blob
         | 
| 16 | 
            -
                @blob = ApiStub::Requests::Storage::File. | 
| 16 | 
            +
                @blob = ApiStub::Requests::Storage::File.blob_as_hash
         | 
| 17 17 | 
             
                @blob_with_content = [
         | 
| 18 18 | 
             
                  @blob,
         | 
| 19 19 | 
             
                  'content'
         | 
| @@ -40,6 +40,8 @@ class TestGetBlobProperties < Minitest::Test | |
| 40 40 | 
             
              end
         | 
| 41 41 |  | 
| 42 42 | 
             
              def test_get_blob_properties_mock
         | 
| 43 | 
            -
                 | 
| 43 | 
            +
                mock_blob_properties = @mock_service.get_blob_properties('test_container', 'test_blob')
         | 
| 44 | 
            +
                assert_equal @blob.name, mock_blob_properties.name
         | 
| 45 | 
            +
                assert_equal @blob.properties, mock_blob_properties.properties
         | 
| 44 46 | 
             
              end
         | 
| 45 47 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: fog-azure-rm
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.4. | 
| 4 | 
            +
              version: 0.4.9
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Shaffan Chaudhry
         | 
| @@ -18,7 +18,7 @@ authors: | |
| 18 18 | 
             
            autorequire: 
         | 
| 19 19 | 
             
            bindir: bin
         | 
| 20 20 | 
             
            cert_chain: []
         | 
| 21 | 
            -
            date:  | 
| 21 | 
            +
            date: 2019-01-18 00:00:00.000000000 Z
         | 
| 22 22 | 
             
            dependencies:
         | 
| 23 23 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 24 24 | 
             
              name: rake
         | 
| @@ -1059,8 +1059,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 1059 1059 | 
             
                - !ruby/object:Gem::Version
         | 
| 1060 1060 | 
             
                  version: '0'
         | 
| 1061 1061 | 
             
            requirements: []
         | 
| 1062 | 
            -
             | 
| 1063 | 
            -
            rubygems_version: 2.7.7
         | 
| 1062 | 
            +
            rubygems_version: 3.0.2
         | 
| 1064 1063 | 
             
            signing_key: 
         | 
| 1065 1064 | 
             
            specification_version: 4
         | 
| 1066 1065 | 
             
            summary: Module for the 'fog' gem to support Azure Resource Manager cloud services.
         |