stuartpreston-azure-sdk-for-ruby 0.7.1 → 0.7.2
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/.gitignore +11 -11
- data/.travis.yml +10 -10
- data/ChangeLog.txt +70 -68
- data/Gemfile +15 -15
- data/README.md +618 -618
- data/Rakefile +133 -133
- data/azure.gemspec +44 -44
- data/lib/azure.rb +52 -52
- data/lib/azure/base_management/affinity_group.rb +32 -32
- data/lib/azure/base_management/base_management_service.rb +304 -304
- data/lib/azure/base_management/location.rb +27 -27
- data/lib/azure/base_management/management_http_request.rb +171 -171
- data/lib/azure/base_management/serialization.rb +129 -129
- data/lib/azure/base_management/sql_management_http_request.rb +45 -45
- data/lib/azure/blob/blob.rb +31 -31
- data/lib/azure/blob/blob_service.rb +1423 -1423
- data/lib/azure/blob/block.rb +30 -30
- data/lib/azure/blob/container.rb +31 -31
- data/lib/azure/blob/serialization.rb +284 -284
- data/lib/azure/cloud_service_management/cloud_service.rb +38 -38
- data/lib/azure/cloud_service_management/cloud_service_management_service.rb +140 -140
- data/lib/azure/cloud_service_management/serialization.rb +117 -117
- data/lib/azure/core.rb +39 -39
- data/lib/azure/core/auth/authorizer.rb +36 -36
- data/lib/azure/core/auth/shared_key.rb +110 -110
- data/lib/azure/core/auth/shared_key_lite.rb +48 -48
- data/lib/azure/core/auth/signer.rb +48 -48
- data/lib/azure/core/configuration.rb +211 -211
- data/lib/azure/core/error.rb +22 -22
- data/lib/azure/core/filtered_service.rb +43 -43
- data/lib/azure/core/http/debug_filter.rb +35 -35
- data/lib/azure/core/http/http_error.rb +88 -88
- data/lib/azure/core/http/http_filter.rb +52 -52
- data/lib/azure/core/http/http_request.rb +157 -157
- data/lib/azure/core/http/http_response.rb +140 -140
- data/lib/azure/core/http/retry_policy.rb +73 -73
- data/lib/azure/core/http/signer_filter.rb +33 -33
- data/lib/azure/core/service.rb +62 -62
- data/lib/azure/core/signed_service.rb +42 -42
- data/lib/azure/core/utility.rb +190 -190
- data/lib/azure/queue/message.rb +29 -29
- data/lib/azure/queue/queue.rb +28 -28
- data/lib/azure/queue/queue_service.rb +567 -567
- data/lib/azure/queue/serialization.rb +106 -106
- data/lib/azure/service/access_policy.rb +25 -25
- data/lib/azure/service/cors.rb +11 -11
- data/lib/azure/service/cors_rule.rb +15 -15
- data/lib/azure/service/enumeration_results.rb +20 -20
- data/lib/azure/service/logging.rb +31 -31
- data/lib/azure/service/metrics.rb +30 -30
- data/lib/azure/service/retention_policy.rb +24 -24
- data/lib/azure/service/serialization.rb +297 -297
- data/lib/azure/service/signed_identifier.rb +29 -29
- data/lib/azure/service/storage_service.rb +82 -82
- data/lib/azure/service/storage_service_properties.rb +37 -37
- data/lib/azure/service_bus/action.rb +21 -21
- data/lib/azure/service_bus/auth/wrap_service.rb +88 -88
- data/lib/azure/service_bus/auth/wrap_signer.rb +68 -68
- data/lib/azure/service_bus/brokered_message.rb +123 -123
- data/lib/azure/service_bus/brokered_message_serializer.rb +159 -159
- data/lib/azure/service_bus/correlation_filter.rb +45 -45
- data/lib/azure/service_bus/empty_rule_action.rb +29 -29
- data/lib/azure/service_bus/false_filter.rb +38 -38
- data/lib/azure/service_bus/filter.rb +21 -21
- data/lib/azure/service_bus/interval.rb +103 -103
- data/lib/azure/service_bus/queue.rb +229 -229
- data/lib/azure/service_bus/relay.rb +87 -87
- data/lib/azure/service_bus/resource.rb +108 -108
- data/lib/azure/service_bus/rule.rb +97 -97
- data/lib/azure/service_bus/rule_aspect.rb +34 -34
- data/lib/azure/service_bus/serialization.rb +161 -161
- data/lib/azure/service_bus/service_bus_service.rb +896 -896
- data/lib/azure/service_bus/sql_filter.rb +50 -50
- data/lib/azure/service_bus/sql_rule_action.rb +50 -50
- data/lib/azure/service_bus/subscription.rb +183 -183
- data/lib/azure/service_bus/topic.rb +186 -186
- data/lib/azure/service_bus/true_filter.rb +38 -38
- data/lib/azure/sql_database_management/serialization.rb +111 -111
- data/lib/azure/sql_database_management/sql_database.rb +31 -31
- data/lib/azure/sql_database_management/sql_database_management_service.rb +200 -200
- data/lib/azure/storage_management/serialization.rb +184 -184
- data/lib/azure/storage_management/storage_account.rb +40 -40
- data/lib/azure/storage_management/storage_management_service.rb +166 -166
- data/lib/azure/table/auth/shared_key.rb +92 -92
- data/lib/azure/table/auth/shared_key_lite.rb +44 -44
- data/lib/azure/table/batch.rb +329 -329
- data/lib/azure/table/batch_response.rb +118 -118
- data/lib/azure/table/edmtype.rb +126 -126
- data/lib/azure/table/entity.rb +30 -30
- data/lib/azure/table/guid.rb +23 -23
- data/lib/azure/table/query.rb +111 -111
- data/lib/azure/table/serialization.rb +107 -107
- data/lib/azure/table/table_service.rb +559 -559
- data/lib/azure/version.rb +31 -31
- data/lib/azure/virtual_machine_image_management/serialization.rb +66 -66
- data/lib/azure/virtual_machine_image_management/virtual_machine_disk.rb +25 -25
- data/lib/azure/virtual_machine_image_management/virtual_machine_image.rb +25 -25
- data/lib/azure/virtual_machine_image_management/virtual_machine_image_management_service.rb +94 -94
- data/lib/azure/virtual_machine_management/serialization.rb +462 -462
- data/lib/azure/virtual_machine_management/virtual_machine.rb +45 -45
- data/lib/azure/virtual_machine_management/virtual_machine_management_service.rb +588 -588
- data/lib/azure/virtual_network_management/serialization.rb +190 -190
- data/lib/azure/virtual_network_management/virtual_network.rb +37 -37
- data/lib/azure/virtual_network_management/virtual_network_management_service.rb +109 -109
- data/test/fixtures/affinity_group.xml +33 -33
- data/test/fixtures/all_containers.xml +20 -20
- data/test/fixtures/all_tables.xml +22 -22
- data/test/fixtures/certificate.pem +21 -21
- data/test/fixtures/container_acl.xml +11 -11
- data/test/fixtures/create_sql_database_server.xml +1 -1
- data/test/fixtures/create_storage_desc_error.xml +5 -5
- data/test/fixtures/create_storage_extendedprop_error.xml +8 -8
- data/test/fixtures/create_storage_extendedpropname_error.xml +6 -6
- data/test/fixtures/create_storage_full_error.xml +6 -6
- data/test/fixtures/create_storage_label_error.xml +5 -5
- data/test/fixtures/create_storage_location_error.xml +5 -5
- data/test/fixtures/create_storage_name_error.xml +6 -6
- data/test/fixtures/create_table_response_entry.xml +15 -15
- data/test/fixtures/delete_storage_container_error.xml +5 -5
- data/test/fixtures/delete_storage_error.xml +5 -5
- data/test/fixtures/deployment_error.xml +5 -5
- data/test/fixtures/get_storage_account_error.xml +5 -5
- data/test/fixtures/get_storage_account_properties.xml +31 -31
- data/test/fixtures/get_storage_account_properties_new.xml +31 -31
- data/test/fixtures/http_error.xml +5 -5
- data/test/fixtures/insert_entity_response_entry.xml +25 -25
- data/test/fixtures/list_affinity_groups.xml +22 -22
- data/test/fixtures/list_blobs.xml +120 -120
- data/test/fixtures/list_block_all_with_none_committed.xml +21 -21
- data/test/fixtures/list_blocks_all.xml +22 -22
- data/test/fixtures/list_blocks_committed.xml +12 -12
- data/test/fixtures/list_cloud_services.xml +38 -38
- data/test/fixtures/list_containers.xml +37 -37
- data/test/fixtures/list_firewall_management_endpoint.xml +27 -27
- data/test/fixtures/list_images.xml +110 -110
- data/test/fixtures/list_locations.xml +62 -62
- data/test/fixtures/list_page_ranges.xml +10 -10
- data/test/fixtures/list_sql_database.xml +36 -36
- data/test/fixtures/list_sql_server_firewall.xml +23 -23
- data/test/fixtures/list_storage_account_single.xml +24 -24
- data/test/fixtures/list_storage_accounts.xml +45 -45
- data/test/fixtures/list_virtual_networks.xml +92 -92
- data/test/fixtures/logging.xml +11 -11
- data/test/fixtures/management_certificate.pem +55 -55
- data/test/fixtures/messages.xml +12 -12
- data/test/fixtures/metrics.xml +10 -10
- data/test/fixtures/privatekey.key +28 -28
- data/test/fixtures/query_entities_empty_response.xml +7 -7
- data/test/fixtures/query_entities_response.xml +45 -45
- data/test/fixtures/queue_service_properties.xml +22 -22
- data/test/fixtures/queue_service_properties_original.xml +19 -19
- data/test/fixtures/queues.xml +16 -16
- data/test/fixtures/retention_policy.xml +5 -5
- data/test/fixtures/sb_default_create_queue_response.xml +23 -23
- data/test/fixtures/sb_default_create_relay_response.xml +15 -15
- data/test/fixtures/sb_default_create_topic_response.xml +18 -18
- data/test/fixtures/sb_get_access_token_response.txt +1 -1
- data/test/fixtures/sb_queues_runtime_peek_message_response_headers.txt +9 -9
- data/test/fixtures/storage_service_properties.xml +54 -54
- data/test/fixtures/update_storage_account.xml +16 -16
- data/test/fixtures/update_storage_error.xml +4 -4
- data/test/fixtures/updated_storage_accounts.xml +52 -52
- data/test/fixtures/virtual_machine.xml +113 -113
- data/test/fixtures/windows_virtual_machine.xml +106 -106
- data/test/integration/affinity_group/Affinity_test.rb +55 -55
- data/test/integration/affinity_group/Create_Affinity_test.rb +63 -63
- data/test/integration/affinity_group/Delete_Affinity_test.rb +56 -56
- data/test/integration/affinity_group/List_Affinity_test.rb +41 -41
- data/test/integration/affinity_group/Update_Affinity_test.rb +82 -82
- data/test/integration/blob/blob_gb18030_test.rb +199 -199
- data/test/integration/blob/blob_metadata_test.rb +75 -75
- data/test/integration/blob/blob_pages_test.rb +119 -119
- data/test/integration/blob/blob_properties_test.rb +77 -77
- data/test/integration/blob/block_blob_test.rb +254 -254
- data/test/integration/blob/container/container_acl_test.rb +69 -69
- data/test/integration/blob/container/container_metadata_test.rb +50 -50
- data/test/integration/blob/container/create_container_test.rb +60 -60
- data/test/integration/blob/container/delete_container_test.rb +39 -39
- data/test/integration/blob/container/get_container_properties_test.rb +48 -48
- data/test/integration/blob/container/list_containers_test.rb +79 -79
- data/test/integration/blob/container/root_container_test.rb +53 -53
- data/test/integration/blob/copy_blob_test.rb +113 -113
- data/test/integration/blob/create_blob_snapshot_test.rb +80 -80
- data/test/integration/blob/create_page_blob_test.rb +83 -83
- data/test/integration/blob/delete_blob_test.rb +159 -159
- data/test/integration/blob/get_blob_test.rb +65 -65
- data/test/integration/blob/informative_errors_test.rb +38 -38
- data/test/integration/blob/lease/acquire_lease_test.rb +36 -36
- data/test/integration/blob/lease/break_lease_test.rb +40 -40
- data/test/integration/blob/lease/release_lease_test.rb +40 -40
- data/test/integration/blob/lease/renew_lease_test.rb +42 -42
- data/test/integration/blob/list_blobs_test.rb +113 -113
- data/test/integration/cloud_service/Cloud_Create_test.rb +44 -44
- data/test/integration/cloud_service/Cloud_Delete_test.rb +44 -44
- data/test/integration/database/create_sql_server_firewall_test.rb +86 -86
- data/test/integration/database/create_sql_server_test.rb +53 -53
- data/test/integration/database/delete_sql_server_firewall_test.rb +70 -70
- data/test/integration/database/delete_sql_server_test.rb +58 -58
- data/test/integration/database/list_sql_server_firewall_test.rb +45 -45
- data/test/integration/database/list_sql_servers_test.rb +44 -44
- data/test/integration/database/reset_password_sql_server_test.rb +55 -55
- data/test/integration/location/Location_List_test.rb +39 -39
- data/test/integration/queue/clear_messages_test.rb +42 -42
- data/test/integration/queue/create_message_test.rb +75 -75
- data/test/integration/queue/create_queue_test.rb +50 -50
- data/test/integration/queue/delete_message_test.rb +67 -67
- data/test/integration/queue/delete_queue_test.rb +45 -45
- data/test/integration/queue/informative_errors_test.rb +41 -41
- data/test/integration/queue/list_messages_encoded_test.rb +79 -79
- data/test/integration/queue/list_messages_test.rb +79 -79
- data/test/integration/queue/list_queues_test.rb +44 -44
- data/test/integration/queue/peek_messages_test.rb +59 -59
- data/test/integration/queue/queue_gb18030_test.rb +131 -131
- data/test/integration/queue/queue_metadata_test.rb +40 -40
- data/test/integration/queue/update_message_test.rb +74 -74
- data/test/integration/service_bus/informative_errors_test.rb +36 -36
- data/test/integration/service_bus/queues_scenario_test.rb +200 -200
- data/test/integration/service_bus/queues_test.rb +265 -265
- data/test/integration/service_bus/relay_test.rb +131 -131
- data/test/integration/service_bus/rules_test.rb +144 -144
- data/test/integration/service_bus/sb_queue_gb18030_test.rb +182 -182
- data/test/integration/service_bus/scenario_test.rb +101 -101
- data/test/integration/service_bus/subscriptions_test.rb +211 -211
- data/test/integration/service_bus/topics_scenario_test.rb +406 -406
- data/test/integration/service_bus/topics_test.rb +129 -129
- data/test/integration/storage_management/storage_management_test.rb +160 -160
- data/test/integration/table/create_table_test.rb +35 -35
- data/test/integration/table/delete_entity_batch_test.rb +106 -106
- data/test/integration/table/delete_entity_test.rb +93 -93
- data/test/integration/table/delete_table_test.rb +39 -39
- data/test/integration/table/get_table_test.rb +36 -36
- data/test/integration/table/informative_errors_test.rb +38 -38
- data/test/integration/table/insert_entity_batch_test.rb +99 -99
- data/test/integration/table/insert_entity_test.rb +87 -87
- data/test/integration/table/insert_or_merge_entity_batch_test.rb +158 -158
- data/test/integration/table/insert_or_merge_entity_test.rb +142 -142
- data/test/integration/table/insert_or_replace_entity_batch_test.rb +151 -151
- data/test/integration/table/insert_or_replace_entity_test.rb +136 -136
- data/test/integration/table/merge_entity_batch_test.rb +127 -127
- data/test/integration/table/merge_entity_test.rb +112 -112
- data/test/integration/table/query_entities_test.rb +194 -194
- data/test/integration/table/query_tables_test.rb +42 -42
- data/test/integration/table/query_test.rb +250 -250
- data/test/integration/table/table_acl_test.rb +51 -51
- data/test/integration/table/table_gb18030_test.rb +355 -355
- data/test/integration/table/update_entity_batch_test.rb +148 -148
- data/test/integration/table/update_entity_test.rb +130 -130
- data/test/integration/test_helper.rb +42 -42
- data/test/integration/vm/VM_Create_test.rb +260 -260
- data/test/integration/vm/VM_Delete_test.rb +55 -55
- data/test/integration/vm/VM_Operations_test.rb +173 -173
- data/test/integration/vm_image/virtual_machine_disk_test.rb +37 -37
- data/test/integration/vm_image/virtual_machine_image_test.rb +36 -36
- data/test/integration/vnet/Virtual_Network_Create_test.rb +122 -122
- data/test/integration/vnet/Virtual_Network_list_test.rb +53 -53
- data/test/support/env.rb +19 -19
- data/test/support/fixtures.rb +36 -36
- data/test/support/name_generator.rb +168 -168
- data/test/support/stubs.rb +42 -42
- data/test/support/virtual_machine_name_generator.rb +102 -102
- data/test/support/virtual_network_helper.rb +73 -73
- data/test/test_helper.rb +53 -53
- data/test/unit/affinity_group/affinity_group_test.rb +192 -192
- data/test/unit/affinity_group/serialization_test.rb +88 -88
- data/test/unit/base_management/location_test.rb +57 -57
- data/test/unit/blob/blob_service_test.rb +1946 -1946
- data/test/unit/cloud_service_management/cloud_service_management_service_test.rb +94 -94
- data/test/unit/cloud_service_management/serialization_test.rb +169 -169
- data/test/unit/core/auth/shared_key_lite_test.rb +51 -51
- data/test/unit/core/auth/shared_key_test.rb +58 -58
- data/test/unit/core/auth/signer_test.rb +30 -30
- data/test/unit/core/http/http_error_test.rb +57 -57
- data/test/unit/core/http/http_request_test.rb +66 -66
- data/test/unit/core/http/http_response_test.rb +45 -45
- data/test/unit/core/http/retry_policy_test.rb +23 -23
- data/test/unit/database/serialization_test.rb +97 -97
- data/test/unit/database/sql_database_server_service_test.rb +288 -288
- data/test/unit/service/serialization_test.rb +532 -532
- data/test/unit/service/storage_service_test.rb +292 -292
- data/test/unit/storage_management/serialization_test.rb +232 -232
- data/test/unit/storage_management/storage_management_service_test.rb +261 -261
- data/test/unit/table/edmtype_test.rb +107 -107
- data/test/unit/virtual_machine_image_management/serialization_test.rb +35 -35
- data/test/unit/virtual_machine_image_management/virtual_machine_image_management_service_test.rb +65 -65
- data/test/unit/virtual_machine_management/serialization_test.rb +258 -258
- data/test/unit/virtual_machine_management/virtual_machine_management_service_test.rb +440 -440
- data/test/unit/vnet/serialization_test.rb +187 -187
- data/test/unit/vnet/virtual_network_management_service_test.rb +131 -131
- metadata +34 -27
@@ -1,75 +1,75 @@
|
|
1
|
-
#-------------------------------------------------------------------------
|
2
|
-
# # Copyright (c) Microsoft and contributors. All rights reserved.
|
3
|
-
#
|
4
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
# you may not use this file except in compliance with the License.
|
6
|
-
# You may obtain a copy of the License at
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
#--------------------------------------------------------------------------
|
15
|
-
require "integration/test_helper"
|
16
|
-
require "azure/blob/blob_service"
|
17
|
-
|
18
|
-
describe Azure::Blob::BlobService do
|
19
|
-
subject { Azure::Blob::BlobService.new }
|
20
|
-
after { TableNameHelper.clean }
|
21
|
-
|
22
|
-
describe '#set/get_blob_metadata' do
|
23
|
-
let(:container_name) { ContainerNameHelper.name }
|
24
|
-
let(:blob_name) { "blobname" }
|
25
|
-
let(:length) { 1024 }
|
26
|
-
let(:metadata){ {"custommetadata" => "CustomMetadataValue"} }
|
27
|
-
before {
|
28
|
-
subject.create_container container_name
|
29
|
-
subject.create_page_blob container_name, blob_name, length
|
30
|
-
}
|
31
|
-
|
32
|
-
it 'sets and gets metadata for a blob' do
|
33
|
-
result = subject.set_blob_metadata container_name, blob_name, metadata
|
34
|
-
result.must_be_nil
|
35
|
-
blob = subject.get_blob_metadata container_name, blob_name
|
36
|
-
|
37
|
-
metadata.each { |k,v|
|
38
|
-
blob.metadata.must_include k
|
39
|
-
blob.metadata[k].must_equal v
|
40
|
-
}
|
41
|
-
end
|
42
|
-
|
43
|
-
describe 'when a blob has a snapshot' do
|
44
|
-
let(:snapshot) { subject.create_blob_snapshot container_name, blob_name, {:metadata => metadata }}
|
45
|
-
before { s = snapshot }
|
46
|
-
|
47
|
-
it 'gets metadata for a blob snapshot (when set during create)' do
|
48
|
-
|
49
|
-
blob = subject.get_blob_metadata container_name, blob_name, { :snapshot => snapshot }
|
50
|
-
|
51
|
-
blob.snapshot.must_equal snapshot
|
52
|
-
metadata.each { |k,v|
|
53
|
-
blob.metadata.must_include k
|
54
|
-
blob.metadata[k].must_equal v
|
55
|
-
}
|
56
|
-
|
57
|
-
end
|
58
|
-
|
59
|
-
it 'errors if the snapshot does not exist' do
|
60
|
-
assert_raises(Azure::Core::Http::HTTPError) do
|
61
|
-
subject.get_blob_metadata container_name, blob_name, { :snapshot => "invalidsnapshot" }
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
it 'errors if the blob name does not exist' do
|
67
|
-
assert_raises(Azure::Core::Http::HTTPError) do
|
68
|
-
subject.get_blob_metadata container_name, "thisblobdoesnotexist"
|
69
|
-
end
|
70
|
-
assert_raises(Azure::Core::Http::HTTPError) do
|
71
|
-
subject.set_blob_metadata container_name, "thisblobdoesnotexist", metadata
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
1
|
+
#-------------------------------------------------------------------------
|
2
|
+
# # Copyright (c) Microsoft and contributors. All rights reserved.
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
#--------------------------------------------------------------------------
|
15
|
+
require "integration/test_helper"
|
16
|
+
require "azure/blob/blob_service"
|
17
|
+
|
18
|
+
describe Azure::Blob::BlobService do
|
19
|
+
subject { Azure::Blob::BlobService.new }
|
20
|
+
after { TableNameHelper.clean }
|
21
|
+
|
22
|
+
describe '#set/get_blob_metadata' do
|
23
|
+
let(:container_name) { ContainerNameHelper.name }
|
24
|
+
let(:blob_name) { "blobname" }
|
25
|
+
let(:length) { 1024 }
|
26
|
+
let(:metadata){ {"custommetadata" => "CustomMetadataValue"} }
|
27
|
+
before {
|
28
|
+
subject.create_container container_name
|
29
|
+
subject.create_page_blob container_name, blob_name, length
|
30
|
+
}
|
31
|
+
|
32
|
+
it 'sets and gets metadata for a blob' do
|
33
|
+
result = subject.set_blob_metadata container_name, blob_name, metadata
|
34
|
+
result.must_be_nil
|
35
|
+
blob = subject.get_blob_metadata container_name, blob_name
|
36
|
+
|
37
|
+
metadata.each { |k,v|
|
38
|
+
blob.metadata.must_include k
|
39
|
+
blob.metadata[k].must_equal v
|
40
|
+
}
|
41
|
+
end
|
42
|
+
|
43
|
+
describe 'when a blob has a snapshot' do
|
44
|
+
let(:snapshot) { subject.create_blob_snapshot container_name, blob_name, {:metadata => metadata }}
|
45
|
+
before { s = snapshot }
|
46
|
+
|
47
|
+
it 'gets metadata for a blob snapshot (when set during create)' do
|
48
|
+
|
49
|
+
blob = subject.get_blob_metadata container_name, blob_name, { :snapshot => snapshot }
|
50
|
+
|
51
|
+
blob.snapshot.must_equal snapshot
|
52
|
+
metadata.each { |k,v|
|
53
|
+
blob.metadata.must_include k
|
54
|
+
blob.metadata[k].must_equal v
|
55
|
+
}
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'errors if the snapshot does not exist' do
|
60
|
+
assert_raises(Azure::Core::Http::HTTPError) do
|
61
|
+
subject.get_blob_metadata container_name, blob_name, { :snapshot => "invalidsnapshot" }
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
it 'errors if the blob name does not exist' do
|
67
|
+
assert_raises(Azure::Core::Http::HTTPError) do
|
68
|
+
subject.get_blob_metadata container_name, "thisblobdoesnotexist"
|
69
|
+
end
|
70
|
+
assert_raises(Azure::Core::Http::HTTPError) do
|
71
|
+
subject.set_blob_metadata container_name, "thisblobdoesnotexist", metadata
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -1,119 +1,119 @@
|
|
1
|
-
#-------------------------------------------------------------------------
|
2
|
-
# # Copyright (c) Microsoft and contributors. All rights reserved.
|
3
|
-
#
|
4
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
# you may not use this file except in compliance with the License.
|
6
|
-
# You may obtain a copy of the License at
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
#--------------------------------------------------------------------------
|
15
|
-
require "integration/test_helper"
|
16
|
-
require "azure/blob/blob_service"
|
17
|
-
|
18
|
-
describe Azure::Blob::BlobService do
|
19
|
-
subject { Azure::Blob::BlobService.new }
|
20
|
-
after { TableNameHelper.clean }
|
21
|
-
|
22
|
-
let(:container_name) { ContainerNameHelper.name }
|
23
|
-
let(:blob_name) { "blobname" }
|
24
|
-
let(:blob_name2) { "blobname2" }
|
25
|
-
let(:length) { 2560 }
|
26
|
-
before {
|
27
|
-
subject.create_container container_name
|
28
|
-
subject.create_page_blob container_name, blob_name, length
|
29
|
-
subject.create_page_blob container_name, blob_name2, length
|
30
|
-
}
|
31
|
-
|
32
|
-
describe '#create_blob_pages' do
|
33
|
-
it 'creates pages in a page blob' do
|
34
|
-
content = ""
|
35
|
-
512.times.each{|i| content << "@" }
|
36
|
-
|
37
|
-
subject.create_blob_pages container_name, blob_name, 0, 511, content
|
38
|
-
subject.create_blob_pages container_name, blob_name, 1024, 1535, content
|
39
|
-
|
40
|
-
ranges = subject.list_page_blob_ranges container_name, blob_name, { :start_range => 0, :end_range => 1536 }
|
41
|
-
ranges[0][0].must_equal 0
|
42
|
-
ranges[0][1].must_equal 511
|
43
|
-
ranges[1][0].must_equal 1024
|
44
|
-
ranges[1][1].must_equal 1535
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
describe 'when the options hash is used' do
|
49
|
-
it 'if none match is specified' do
|
50
|
-
content = ""
|
51
|
-
512.times.each{|i| content << "@" }
|
52
|
-
|
53
|
-
blob = subject.create_blob_pages container_name, blob_name2, 0, 511, content
|
54
|
-
|
55
|
-
assert_raises(Azure::Core::Http::HTTPError) do
|
56
|
-
subject.create_blob_pages container_name, blob_name2, 1024, 1535, content, { :if_none_match => blob.properties[:etag] }
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
it 'if match is specified' do
|
61
|
-
content = ""
|
62
|
-
512.times.each{|i| content << "@" }
|
63
|
-
|
64
|
-
blob = subject.create_blob_pages container_name, blob_name, 0, 511, content
|
65
|
-
subject.create_blob_pages container_name, blob_name, 1024, 1535, content, { :if_match => blob.properties[:etag] }
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
describe "#clear_blob_pages" do
|
70
|
-
before {
|
71
|
-
content = ""
|
72
|
-
512.times.each{|i| content << "@" }
|
73
|
-
|
74
|
-
subject.create_blob_pages container_name, blob_name, 0, 511, content
|
75
|
-
subject.create_blob_pages container_name, blob_name, 1024, 1535, content
|
76
|
-
subject.create_blob_pages container_name, blob_name, 2048, 2559, content
|
77
|
-
|
78
|
-
ranges = subject.list_page_blob_ranges container_name, blob_name, { :start_range => 0, :end_range => 2560 }
|
79
|
-
ranges.length.must_equal 3
|
80
|
-
ranges[0][0].must_equal 0
|
81
|
-
ranges[0][1].must_equal 511
|
82
|
-
ranges[1][0].must_equal 1024
|
83
|
-
ranges[1][1].must_equal 1535
|
84
|
-
ranges[2][0].must_equal 2048
|
85
|
-
ranges[2][1].must_equal 2559
|
86
|
-
}
|
87
|
-
|
88
|
-
describe "when both start_range and end_range are specified" do
|
89
|
-
it 'clears the data in page blobs within the provided range' do
|
90
|
-
subject.clear_blob_pages container_name, blob_name, 512, 1535
|
91
|
-
|
92
|
-
ranges = subject.list_page_blob_ranges container_name, blob_name, { :start_range => 0, :end_range => 2560 }
|
93
|
-
ranges.length.must_equal 2
|
94
|
-
ranges[0][0].must_equal 0
|
95
|
-
ranges[0][1].must_equal 511
|
96
|
-
ranges[1][0].must_equal 2048
|
97
|
-
ranges[1][1].must_equal 2559
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
describe '#list_page_blob_ranges' do
|
103
|
-
before {
|
104
|
-
content = ""
|
105
|
-
512.times.each{|i| content << "@" }
|
106
|
-
|
107
|
-
subject.create_blob_pages container_name, blob_name, 0, 511, content
|
108
|
-
subject.create_blob_pages container_name, blob_name, 1024, 1535, content
|
109
|
-
}
|
110
|
-
|
111
|
-
it 'lists the active blob pages' do
|
112
|
-
ranges = subject.list_page_blob_ranges container_name, blob_name, { :start_range => 0, :end_range => 1536 }
|
113
|
-
ranges[0][0].must_equal 0
|
114
|
-
ranges[0][1].must_equal 511
|
115
|
-
ranges[1][0].must_equal 1024
|
116
|
-
ranges[1][1].must_equal 1535
|
117
|
-
end
|
118
|
-
end
|
119
|
-
end
|
1
|
+
#-------------------------------------------------------------------------
|
2
|
+
# # Copyright (c) Microsoft and contributors. All rights reserved.
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
#--------------------------------------------------------------------------
|
15
|
+
require "integration/test_helper"
|
16
|
+
require "azure/blob/blob_service"
|
17
|
+
|
18
|
+
describe Azure::Blob::BlobService do
|
19
|
+
subject { Azure::Blob::BlobService.new }
|
20
|
+
after { TableNameHelper.clean }
|
21
|
+
|
22
|
+
let(:container_name) { ContainerNameHelper.name }
|
23
|
+
let(:blob_name) { "blobname" }
|
24
|
+
let(:blob_name2) { "blobname2" }
|
25
|
+
let(:length) { 2560 }
|
26
|
+
before {
|
27
|
+
subject.create_container container_name
|
28
|
+
subject.create_page_blob container_name, blob_name, length
|
29
|
+
subject.create_page_blob container_name, blob_name2, length
|
30
|
+
}
|
31
|
+
|
32
|
+
describe '#create_blob_pages' do
|
33
|
+
it 'creates pages in a page blob' do
|
34
|
+
content = ""
|
35
|
+
512.times.each{|i| content << "@" }
|
36
|
+
|
37
|
+
subject.create_blob_pages container_name, blob_name, 0, 511, content
|
38
|
+
subject.create_blob_pages container_name, blob_name, 1024, 1535, content
|
39
|
+
|
40
|
+
ranges = subject.list_page_blob_ranges container_name, blob_name, { :start_range => 0, :end_range => 1536 }
|
41
|
+
ranges[0][0].must_equal 0
|
42
|
+
ranges[0][1].must_equal 511
|
43
|
+
ranges[1][0].must_equal 1024
|
44
|
+
ranges[1][1].must_equal 1535
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe 'when the options hash is used' do
|
49
|
+
it 'if none match is specified' do
|
50
|
+
content = ""
|
51
|
+
512.times.each{|i| content << "@" }
|
52
|
+
|
53
|
+
blob = subject.create_blob_pages container_name, blob_name2, 0, 511, content
|
54
|
+
|
55
|
+
assert_raises(Azure::Core::Http::HTTPError) do
|
56
|
+
subject.create_blob_pages container_name, blob_name2, 1024, 1535, content, { :if_none_match => blob.properties[:etag] }
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'if match is specified' do
|
61
|
+
content = ""
|
62
|
+
512.times.each{|i| content << "@" }
|
63
|
+
|
64
|
+
blob = subject.create_blob_pages container_name, blob_name, 0, 511, content
|
65
|
+
subject.create_blob_pages container_name, blob_name, 1024, 1535, content, { :if_match => blob.properties[:etag] }
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
describe "#clear_blob_pages" do
|
70
|
+
before {
|
71
|
+
content = ""
|
72
|
+
512.times.each{|i| content << "@" }
|
73
|
+
|
74
|
+
subject.create_blob_pages container_name, blob_name, 0, 511, content
|
75
|
+
subject.create_blob_pages container_name, blob_name, 1024, 1535, content
|
76
|
+
subject.create_blob_pages container_name, blob_name, 2048, 2559, content
|
77
|
+
|
78
|
+
ranges = subject.list_page_blob_ranges container_name, blob_name, { :start_range => 0, :end_range => 2560 }
|
79
|
+
ranges.length.must_equal 3
|
80
|
+
ranges[0][0].must_equal 0
|
81
|
+
ranges[0][1].must_equal 511
|
82
|
+
ranges[1][0].must_equal 1024
|
83
|
+
ranges[1][1].must_equal 1535
|
84
|
+
ranges[2][0].must_equal 2048
|
85
|
+
ranges[2][1].must_equal 2559
|
86
|
+
}
|
87
|
+
|
88
|
+
describe "when both start_range and end_range are specified" do
|
89
|
+
it 'clears the data in page blobs within the provided range' do
|
90
|
+
subject.clear_blob_pages container_name, blob_name, 512, 1535
|
91
|
+
|
92
|
+
ranges = subject.list_page_blob_ranges container_name, blob_name, { :start_range => 0, :end_range => 2560 }
|
93
|
+
ranges.length.must_equal 2
|
94
|
+
ranges[0][0].must_equal 0
|
95
|
+
ranges[0][1].must_equal 511
|
96
|
+
ranges[1][0].must_equal 2048
|
97
|
+
ranges[1][1].must_equal 2559
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
describe '#list_page_blob_ranges' do
|
103
|
+
before {
|
104
|
+
content = ""
|
105
|
+
512.times.each{|i| content << "@" }
|
106
|
+
|
107
|
+
subject.create_blob_pages container_name, blob_name, 0, 511, content
|
108
|
+
subject.create_blob_pages container_name, blob_name, 1024, 1535, content
|
109
|
+
}
|
110
|
+
|
111
|
+
it 'lists the active blob pages' do
|
112
|
+
ranges = subject.list_page_blob_ranges container_name, blob_name, { :start_range => 0, :end_range => 1536 }
|
113
|
+
ranges[0][0].must_equal 0
|
114
|
+
ranges[0][1].must_equal 511
|
115
|
+
ranges[1][0].must_equal 1024
|
116
|
+
ranges[1][1].must_equal 1535
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
@@ -1,77 +1,77 @@
|
|
1
|
-
#-------------------------------------------------------------------------
|
2
|
-
# # Copyright (c) Microsoft and contributors. All rights reserved.
|
3
|
-
#
|
4
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
# you may not use this file except in compliance with the License.
|
6
|
-
# You may obtain a copy of the License at
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
#--------------------------------------------------------------------------
|
15
|
-
require "integration/test_helper"
|
16
|
-
require "azure/blob/blob_service"
|
17
|
-
|
18
|
-
describe Azure::Blob::BlobService do
|
19
|
-
subject { Azure::Blob::BlobService.new }
|
20
|
-
after { TableNameHelper.clean }
|
21
|
-
|
22
|
-
describe '#set/get_blob_properties' do
|
23
|
-
let(:container_name) { ContainerNameHelper.name }
|
24
|
-
let(:blob_name) { "blobname" }
|
25
|
-
let(:length) { 1024 }
|
26
|
-
before {
|
27
|
-
subject.create_container container_name
|
28
|
-
subject.create_page_blob container_name, blob_name, length
|
29
|
-
}
|
30
|
-
let(:options){{
|
31
|
-
:blob_content_type=>"application/my-special-format",
|
32
|
-
:blob_content_encoding=>"utf-16",
|
33
|
-
:blob_content_language=>"klingon",
|
34
|
-
:blob_cache_control=>"max-age=1296000",
|
35
|
-
}}
|
36
|
-
|
37
|
-
it 'sets and gets properties for a blob' do
|
38
|
-
result = subject.set_blob_properties container_name, blob_name, options
|
39
|
-
result.must_be_nil
|
40
|
-
blob = subject.get_blob_properties container_name, blob_name
|
41
|
-
blob.properties[:content_type].must_equal options[:blob_content_type]
|
42
|
-
blob.properties[:content_encoding].must_equal options[:blob_content_encoding]
|
43
|
-
blob.properties[:cache_control].must_equal options[:blob_cache_control]
|
44
|
-
end
|
45
|
-
|
46
|
-
describe 'when a blob has a snapshot' do
|
47
|
-
before {
|
48
|
-
subject.set_blob_properties container_name, blob_name, options
|
49
|
-
}
|
50
|
-
|
51
|
-
it 'gets properties for a blob snapshot' do
|
52
|
-
snapshot = subject.create_blob_snapshot container_name, blob_name
|
53
|
-
blob = subject.get_blob_properties container_name, blob_name, { :snapshot => snapshot }
|
54
|
-
|
55
|
-
blob.snapshot.must_equal snapshot
|
56
|
-
blob.properties[:content_type].must_equal options[:blob_content_type]
|
57
|
-
blob.properties[:content_encoding].must_equal options[:blob_content_encoding]
|
58
|
-
blob.properties[:cache_control].must_equal options[:blob_cache_control]
|
59
|
-
end
|
60
|
-
|
61
|
-
it 'errors if the snapshot does not exist' do
|
62
|
-
assert_raises(Azure::Core::Http::HTTPError) do
|
63
|
-
subject.get_blob_properties container_name, blob_name, { :snapshot => "invalidsnapshot" }
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
it 'errors if the blob name does not exist' do
|
69
|
-
assert_raises(Azure::Core::Http::HTTPError) do
|
70
|
-
subject.get_blob_properties container_name, "thisblobdoesnotexist"
|
71
|
-
end
|
72
|
-
assert_raises(Azure::Core::Http::HTTPError) do
|
73
|
-
subject.get_blob_properties container_name, "thisblobdoesnotexist", options
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
1
|
+
#-------------------------------------------------------------------------
|
2
|
+
# # Copyright (c) Microsoft and contributors. All rights reserved.
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
#--------------------------------------------------------------------------
|
15
|
+
require "integration/test_helper"
|
16
|
+
require "azure/blob/blob_service"
|
17
|
+
|
18
|
+
describe Azure::Blob::BlobService do
|
19
|
+
subject { Azure::Blob::BlobService.new }
|
20
|
+
after { TableNameHelper.clean }
|
21
|
+
|
22
|
+
describe '#set/get_blob_properties' do
|
23
|
+
let(:container_name) { ContainerNameHelper.name }
|
24
|
+
let(:blob_name) { "blobname" }
|
25
|
+
let(:length) { 1024 }
|
26
|
+
before {
|
27
|
+
subject.create_container container_name
|
28
|
+
subject.create_page_blob container_name, blob_name, length
|
29
|
+
}
|
30
|
+
let(:options){{
|
31
|
+
:blob_content_type=>"application/my-special-format",
|
32
|
+
:blob_content_encoding=>"utf-16",
|
33
|
+
:blob_content_language=>"klingon",
|
34
|
+
:blob_cache_control=>"max-age=1296000",
|
35
|
+
}}
|
36
|
+
|
37
|
+
it 'sets and gets properties for a blob' do
|
38
|
+
result = subject.set_blob_properties container_name, blob_name, options
|
39
|
+
result.must_be_nil
|
40
|
+
blob = subject.get_blob_properties container_name, blob_name
|
41
|
+
blob.properties[:content_type].must_equal options[:blob_content_type]
|
42
|
+
blob.properties[:content_encoding].must_equal options[:blob_content_encoding]
|
43
|
+
blob.properties[:cache_control].must_equal options[:blob_cache_control]
|
44
|
+
end
|
45
|
+
|
46
|
+
describe 'when a blob has a snapshot' do
|
47
|
+
before {
|
48
|
+
subject.set_blob_properties container_name, blob_name, options
|
49
|
+
}
|
50
|
+
|
51
|
+
it 'gets properties for a blob snapshot' do
|
52
|
+
snapshot = subject.create_blob_snapshot container_name, blob_name
|
53
|
+
blob = subject.get_blob_properties container_name, blob_name, { :snapshot => snapshot }
|
54
|
+
|
55
|
+
blob.snapshot.must_equal snapshot
|
56
|
+
blob.properties[:content_type].must_equal options[:blob_content_type]
|
57
|
+
blob.properties[:content_encoding].must_equal options[:blob_content_encoding]
|
58
|
+
blob.properties[:cache_control].must_equal options[:blob_cache_control]
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'errors if the snapshot does not exist' do
|
62
|
+
assert_raises(Azure::Core::Http::HTTPError) do
|
63
|
+
subject.get_blob_properties container_name, blob_name, { :snapshot => "invalidsnapshot" }
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'errors if the blob name does not exist' do
|
69
|
+
assert_raises(Azure::Core::Http::HTTPError) do
|
70
|
+
subject.get_blob_properties container_name, "thisblobdoesnotexist"
|
71
|
+
end
|
72
|
+
assert_raises(Azure::Core::Http::HTTPError) do
|
73
|
+
subject.get_blob_properties container_name, "thisblobdoesnotexist", options
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|