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,187 +1,187 @@
|
|
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 'azure/service_bus/resource'
|
16
|
-
|
17
|
-
module Azure
|
18
|
-
module ServiceBus
|
19
|
-
class Topic < Resource
|
20
|
-
# Public: Initialize the topic.
|
21
|
-
#
|
22
|
-
# ==== Attributes
|
23
|
-
#
|
24
|
-
# * +name+ - A String with the name of the topic.
|
25
|
-
# * +options+ - The resource options Hash
|
26
|
-
#
|
27
|
-
# ==== Options
|
28
|
-
#
|
29
|
-
# Accepted key/value pairs in options parameter are:
|
30
|
-
# * +:default_message_time_to_tive+ - XML datetime. Determines how long a message lives in the associated subscriptions.
|
31
|
-
# * +:maximum_number_of_subscriptions+ - Number. Specifies the maximum number of subscriptions that can be associated with the topic.
|
32
|
-
# * +:max_size_in_megabytes+ - Number. Specifies the maximum topic size in megabytes
|
33
|
-
# * +:requires_duplicate_detection+ - Boolean. If enabled, the topic will detect duplicate messages within the time span specified by the DuplicateDetectionHistoryTimeWindow property
|
34
|
-
# * +:dead_lettering_on_filter_evaluation_exceptions+ - Boolean. Determines how the Service Bus handles a message that causes an exception during a subscription's filter evaluation.
|
35
|
-
# * +:duplicate_detection_history_time_window+ - XML datetime. Specifies the time span during which the Service Bus will detect message duplication.
|
36
|
-
# * +:enable_batched_operations+ - Boolean. Enables or disables service side batching behavior when performing operations for the specific queue.
|
37
|
-
#
|
38
|
-
def initialize(name, options = {})
|
39
|
-
normalized_options = {}
|
40
|
-
normalized_options["DefaultMessageTimeToLive"] = options[:default_message_time_to_live].to_s if options.has_key?(:default_message_time_to_live)
|
41
|
-
normalized_options["MaximumNumberOfSubscriptions"] = options[:maximum_number_of_subscriptions].to_s if options.has_key?(:maximum_number_of_subscriptions)
|
42
|
-
normalized_options["MaxSizeInMegabytes"] = options[:max_size_in_megabytes].to_s if options.has_key?(:max_size_in_megabytes)
|
43
|
-
normalized_options["RequiresDuplicateDetection"] = options[:requires_duplicate_detection].to_s if options.has_key?(:requires_duplicate_detection)
|
44
|
-
normalized_options["DeadLetteringOnFilterEvaluationExceptions"] = options[:dead_lettering_on_filter_evaluation_exceptions].to_s if options.has_key?(:dead_lettering_on_filter_evaluation_exceptions)
|
45
|
-
normalized_options["DuplicateDetectionHistoryTimeWindow"] = options[:duplicate_detection_history_time_window].to_s if options.has_key?(:duplicate_detection_history_time_window)
|
46
|
-
normalized_options["EnableBatchedOperations"] = options[:enable_batched_operations].to_s if options.has_key?(:enable_batched_operations)
|
47
|
-
|
48
|
-
super(name, normalized_options)
|
49
|
-
end
|
50
|
-
|
51
|
-
# MaxSizeInMegabytes: Number
|
52
|
-
#
|
53
|
-
# Specifies the maximum topic size in megabytes. Any attempt to enqueue a message that will cause the topic to
|
54
|
-
# exceed this value will fail. All messages that are stored in the topic or any of its subscriptions count
|
55
|
-
# towards this value. Multiple copies of a message that reside in one or multiple subscriptions count as a single
|
56
|
-
# messages. For example, if message m exists once in subscription s1 and twice in subscription s2, m is counted
|
57
|
-
# as a single message. You can only set this parameter at topic creation time using the following values:
|
58
|
-
#
|
59
|
-
# Range: 1 - 5*1024 MB
|
60
|
-
# Default: 1*1024
|
61
|
-
def max_size_in_megabytes
|
62
|
-
to_i description['MaxSizeInMegabytes']
|
63
|
-
end
|
64
|
-
|
65
|
-
def max_size_in_megabytes=(val)
|
66
|
-
_set 'MaxSizeInMegabytes', val
|
67
|
-
end
|
68
|
-
|
69
|
-
# SizeInBytes: Number
|
70
|
-
#
|
71
|
-
# Reflects the actual bytes toward the topic quota that messages in the topic currently occupy. (read-only)
|
72
|
-
#
|
73
|
-
# Range: 0 - MaxTopicSizeinMegaBytes
|
74
|
-
def size_in_bytes
|
75
|
-
to_i description['SizeInBytes']
|
76
|
-
end
|
77
|
-
|
78
|
-
def size_in_bytes=(val)
|
79
|
-
_set 'SizeInBytes', val
|
80
|
-
end
|
81
|
-
|
82
|
-
# DefaultMessageTimeToLive: XML datetime
|
83
|
-
#
|
84
|
-
# Determines how long a message lives in the associated subscriptions. Subscriptions inherit the TTL from the
|
85
|
-
# topic unless they are created explicitly with a smaller TTL. Based on whether dead-lettering is enabled, a
|
86
|
-
# message whose TTL has expired will either be moved to the subscription's associated DeadLtterQueue or will
|
87
|
-
# be permanently deleted. The following values are settable at topic creation time:
|
88
|
-
#
|
89
|
-
# Range: 1 second - TimeSpan.MaxValue
|
90
|
-
# Default: TimeSpan.MaxValue
|
91
|
-
def default_message_time_to_live
|
92
|
-
to_interval description['DefaultMessageTimeToLive']
|
93
|
-
end
|
94
|
-
|
95
|
-
def default_message_time_to_live=(val)
|
96
|
-
_set 'DefaultMessageTimeToLive', val
|
97
|
-
end
|
98
|
-
|
99
|
-
# RequiresDuplicateDetection: True, False
|
100
|
-
#
|
101
|
-
# If enabled, the topic will detect duplicate messages within the time span specified by the
|
102
|
-
# DuplicateDetectionHistoryTimeWindow property. Settable only at topic creation time.
|
103
|
-
#
|
104
|
-
# Default: false
|
105
|
-
def requires_duplicate_detection
|
106
|
-
to_bool description['RequiresDuplicateDetection']
|
107
|
-
end
|
108
|
-
|
109
|
-
def requires_duplicate_detection=(val)
|
110
|
-
_set 'RequiresDuplicateDetection', val
|
111
|
-
end
|
112
|
-
|
113
|
-
# DuplicateDetectionHistoryTimeWindow
|
114
|
-
#
|
115
|
-
# Specifies the time span during which the Service Bus will detect message duplication.
|
116
|
-
#
|
117
|
-
# Range: 1 second - 7 days
|
118
|
-
# Default: 10 minutes
|
119
|
-
def duplicate_detection_history_time_window
|
120
|
-
to_interval description['DuplicateDetectionHistoryTimeWindow']
|
121
|
-
end
|
122
|
-
|
123
|
-
def duplicate_detection_history_time_window=(val)
|
124
|
-
_set 'DuplicateDetectionHistoryTimeWindow', val
|
125
|
-
end
|
126
|
-
|
127
|
-
# MaximumNumberOfSubscriptions
|
128
|
-
#
|
129
|
-
# Specifies the maximum number of subscriptions that can be associated with the topic.
|
130
|
-
#
|
131
|
-
# Range: 1 - 2000
|
132
|
-
# Default: 2000 subscriptions
|
133
|
-
def maximum_number_of_subscriptions
|
134
|
-
to_i description['MaximumNumberOfSubscriptions']
|
135
|
-
end
|
136
|
-
|
137
|
-
def maximum_number_of_subscriptions=(val)
|
138
|
-
_set 'MaximumNumberOfSubscriptions', val
|
139
|
-
end
|
140
|
-
|
141
|
-
# EnableBatchedOperations
|
142
|
-
#
|
143
|
-
# Enables or disables service side batching behavior when performing operations for the specific queue. When
|
144
|
-
# enabled, service bus will collect/batch multiple operations to the backend to be more connection efficient.
|
145
|
-
#
|
146
|
-
# If user wants lower operation latency then they can disable this feature.
|
147
|
-
def enable_batched_operations
|
148
|
-
to_bool description['EnableBatchedOperations']
|
149
|
-
end
|
150
|
-
|
151
|
-
def enable_batched_operations=(val)
|
152
|
-
_set 'EnableBatchedOperations', val
|
153
|
-
end
|
154
|
-
|
155
|
-
# DeadLetteringOnFilterEvaluationExceptions: True, False
|
156
|
-
#
|
157
|
-
# Determines how the Service Bus handles a message that causes an exception during a subscription's filter
|
158
|
-
# evaluation. If the value is set to true, the message that caused the exception will be moved to the
|
159
|
-
# subscription's dead-letter queue. Otherwise, it will be discarded. By default this parameter is set to true,
|
160
|
-
# allowing the user a chance to investigate the cause of the exception. It can occur from a malformed message or
|
161
|
-
# some incorrect assumptions being made in the filter about the form of the message. Settable only at topic
|
162
|
-
# creation time.
|
163
|
-
#
|
164
|
-
# Default: true
|
165
|
-
def dead_lettering_on_filter_evaluation_exceptions
|
166
|
-
to_bool description['DeadLetteringOnFilterEvaluationExceptions']
|
167
|
-
end
|
168
|
-
|
169
|
-
def dead_lettering_on_filter_evaluation_exceptions=(val)
|
170
|
-
_set 'DeadLetteringOnFilterEvaluationExceptions', val
|
171
|
-
end
|
172
|
-
|
173
|
-
def ordered_props
|
174
|
-
[
|
175
|
-
'DefaultMessageTimeToLive',
|
176
|
-
'MaximumNumberOfSubscriptions',
|
177
|
-
'MaxSizeInMegabytes',
|
178
|
-
'RequiresDuplicateDetection',
|
179
|
-
'DeadLetteringOnFilterEvaluationExceptions',
|
180
|
-
'DuplicateDetectionHistoryTimeWindow',
|
181
|
-
'EnableBatchedOperations',
|
182
|
-
'SizeInBytes'
|
183
|
-
]
|
184
|
-
end
|
185
|
-
end
|
186
|
-
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 'azure/service_bus/resource'
|
16
|
+
|
17
|
+
module Azure
|
18
|
+
module ServiceBus
|
19
|
+
class Topic < Resource
|
20
|
+
# Public: Initialize the topic.
|
21
|
+
#
|
22
|
+
# ==== Attributes
|
23
|
+
#
|
24
|
+
# * +name+ - A String with the name of the topic.
|
25
|
+
# * +options+ - The resource options Hash
|
26
|
+
#
|
27
|
+
# ==== Options
|
28
|
+
#
|
29
|
+
# Accepted key/value pairs in options parameter are:
|
30
|
+
# * +:default_message_time_to_tive+ - XML datetime. Determines how long a message lives in the associated subscriptions.
|
31
|
+
# * +:maximum_number_of_subscriptions+ - Number. Specifies the maximum number of subscriptions that can be associated with the topic.
|
32
|
+
# * +:max_size_in_megabytes+ - Number. Specifies the maximum topic size in megabytes
|
33
|
+
# * +:requires_duplicate_detection+ - Boolean. If enabled, the topic will detect duplicate messages within the time span specified by the DuplicateDetectionHistoryTimeWindow property
|
34
|
+
# * +:dead_lettering_on_filter_evaluation_exceptions+ - Boolean. Determines how the Service Bus handles a message that causes an exception during a subscription's filter evaluation.
|
35
|
+
# * +:duplicate_detection_history_time_window+ - XML datetime. Specifies the time span during which the Service Bus will detect message duplication.
|
36
|
+
# * +:enable_batched_operations+ - Boolean. Enables or disables service side batching behavior when performing operations for the specific queue.
|
37
|
+
#
|
38
|
+
def initialize(name, options = {})
|
39
|
+
normalized_options = {}
|
40
|
+
normalized_options["DefaultMessageTimeToLive"] = options[:default_message_time_to_live].to_s if options.has_key?(:default_message_time_to_live)
|
41
|
+
normalized_options["MaximumNumberOfSubscriptions"] = options[:maximum_number_of_subscriptions].to_s if options.has_key?(:maximum_number_of_subscriptions)
|
42
|
+
normalized_options["MaxSizeInMegabytes"] = options[:max_size_in_megabytes].to_s if options.has_key?(:max_size_in_megabytes)
|
43
|
+
normalized_options["RequiresDuplicateDetection"] = options[:requires_duplicate_detection].to_s if options.has_key?(:requires_duplicate_detection)
|
44
|
+
normalized_options["DeadLetteringOnFilterEvaluationExceptions"] = options[:dead_lettering_on_filter_evaluation_exceptions].to_s if options.has_key?(:dead_lettering_on_filter_evaluation_exceptions)
|
45
|
+
normalized_options["DuplicateDetectionHistoryTimeWindow"] = options[:duplicate_detection_history_time_window].to_s if options.has_key?(:duplicate_detection_history_time_window)
|
46
|
+
normalized_options["EnableBatchedOperations"] = options[:enable_batched_operations].to_s if options.has_key?(:enable_batched_operations)
|
47
|
+
|
48
|
+
super(name, normalized_options)
|
49
|
+
end
|
50
|
+
|
51
|
+
# MaxSizeInMegabytes: Number
|
52
|
+
#
|
53
|
+
# Specifies the maximum topic size in megabytes. Any attempt to enqueue a message that will cause the topic to
|
54
|
+
# exceed this value will fail. All messages that are stored in the topic or any of its subscriptions count
|
55
|
+
# towards this value. Multiple copies of a message that reside in one or multiple subscriptions count as a single
|
56
|
+
# messages. For example, if message m exists once in subscription s1 and twice in subscription s2, m is counted
|
57
|
+
# as a single message. You can only set this parameter at topic creation time using the following values:
|
58
|
+
#
|
59
|
+
# Range: 1 - 5*1024 MB
|
60
|
+
# Default: 1*1024
|
61
|
+
def max_size_in_megabytes
|
62
|
+
to_i description['MaxSizeInMegabytes']
|
63
|
+
end
|
64
|
+
|
65
|
+
def max_size_in_megabytes=(val)
|
66
|
+
_set 'MaxSizeInMegabytes', val
|
67
|
+
end
|
68
|
+
|
69
|
+
# SizeInBytes: Number
|
70
|
+
#
|
71
|
+
# Reflects the actual bytes toward the topic quota that messages in the topic currently occupy. (read-only)
|
72
|
+
#
|
73
|
+
# Range: 0 - MaxTopicSizeinMegaBytes
|
74
|
+
def size_in_bytes
|
75
|
+
to_i description['SizeInBytes']
|
76
|
+
end
|
77
|
+
|
78
|
+
def size_in_bytes=(val)
|
79
|
+
_set 'SizeInBytes', val
|
80
|
+
end
|
81
|
+
|
82
|
+
# DefaultMessageTimeToLive: XML datetime
|
83
|
+
#
|
84
|
+
# Determines how long a message lives in the associated subscriptions. Subscriptions inherit the TTL from the
|
85
|
+
# topic unless they are created explicitly with a smaller TTL. Based on whether dead-lettering is enabled, a
|
86
|
+
# message whose TTL has expired will either be moved to the subscription's associated DeadLtterQueue or will
|
87
|
+
# be permanently deleted. The following values are settable at topic creation time:
|
88
|
+
#
|
89
|
+
# Range: 1 second - TimeSpan.MaxValue
|
90
|
+
# Default: TimeSpan.MaxValue
|
91
|
+
def default_message_time_to_live
|
92
|
+
to_interval description['DefaultMessageTimeToLive']
|
93
|
+
end
|
94
|
+
|
95
|
+
def default_message_time_to_live=(val)
|
96
|
+
_set 'DefaultMessageTimeToLive', val
|
97
|
+
end
|
98
|
+
|
99
|
+
# RequiresDuplicateDetection: True, False
|
100
|
+
#
|
101
|
+
# If enabled, the topic will detect duplicate messages within the time span specified by the
|
102
|
+
# DuplicateDetectionHistoryTimeWindow property. Settable only at topic creation time.
|
103
|
+
#
|
104
|
+
# Default: false
|
105
|
+
def requires_duplicate_detection
|
106
|
+
to_bool description['RequiresDuplicateDetection']
|
107
|
+
end
|
108
|
+
|
109
|
+
def requires_duplicate_detection=(val)
|
110
|
+
_set 'RequiresDuplicateDetection', val
|
111
|
+
end
|
112
|
+
|
113
|
+
# DuplicateDetectionHistoryTimeWindow
|
114
|
+
#
|
115
|
+
# Specifies the time span during which the Service Bus will detect message duplication.
|
116
|
+
#
|
117
|
+
# Range: 1 second - 7 days
|
118
|
+
# Default: 10 minutes
|
119
|
+
def duplicate_detection_history_time_window
|
120
|
+
to_interval description['DuplicateDetectionHistoryTimeWindow']
|
121
|
+
end
|
122
|
+
|
123
|
+
def duplicate_detection_history_time_window=(val)
|
124
|
+
_set 'DuplicateDetectionHistoryTimeWindow', val
|
125
|
+
end
|
126
|
+
|
127
|
+
# MaximumNumberOfSubscriptions
|
128
|
+
#
|
129
|
+
# Specifies the maximum number of subscriptions that can be associated with the topic.
|
130
|
+
#
|
131
|
+
# Range: 1 - 2000
|
132
|
+
# Default: 2000 subscriptions
|
133
|
+
def maximum_number_of_subscriptions
|
134
|
+
to_i description['MaximumNumberOfSubscriptions']
|
135
|
+
end
|
136
|
+
|
137
|
+
def maximum_number_of_subscriptions=(val)
|
138
|
+
_set 'MaximumNumberOfSubscriptions', val
|
139
|
+
end
|
140
|
+
|
141
|
+
# EnableBatchedOperations
|
142
|
+
#
|
143
|
+
# Enables or disables service side batching behavior when performing operations for the specific queue. When
|
144
|
+
# enabled, service bus will collect/batch multiple operations to the backend to be more connection efficient.
|
145
|
+
#
|
146
|
+
# If user wants lower operation latency then they can disable this feature.
|
147
|
+
def enable_batched_operations
|
148
|
+
to_bool description['EnableBatchedOperations']
|
149
|
+
end
|
150
|
+
|
151
|
+
def enable_batched_operations=(val)
|
152
|
+
_set 'EnableBatchedOperations', val
|
153
|
+
end
|
154
|
+
|
155
|
+
# DeadLetteringOnFilterEvaluationExceptions: True, False
|
156
|
+
#
|
157
|
+
# Determines how the Service Bus handles a message that causes an exception during a subscription's filter
|
158
|
+
# evaluation. If the value is set to true, the message that caused the exception will be moved to the
|
159
|
+
# subscription's dead-letter queue. Otherwise, it will be discarded. By default this parameter is set to true,
|
160
|
+
# allowing the user a chance to investigate the cause of the exception. It can occur from a malformed message or
|
161
|
+
# some incorrect assumptions being made in the filter about the form of the message. Settable only at topic
|
162
|
+
# creation time.
|
163
|
+
#
|
164
|
+
# Default: true
|
165
|
+
def dead_lettering_on_filter_evaluation_exceptions
|
166
|
+
to_bool description['DeadLetteringOnFilterEvaluationExceptions']
|
167
|
+
end
|
168
|
+
|
169
|
+
def dead_lettering_on_filter_evaluation_exceptions=(val)
|
170
|
+
_set 'DeadLetteringOnFilterEvaluationExceptions', val
|
171
|
+
end
|
172
|
+
|
173
|
+
def ordered_props
|
174
|
+
[
|
175
|
+
'DefaultMessageTimeToLive',
|
176
|
+
'MaximumNumberOfSubscriptions',
|
177
|
+
'MaxSizeInMegabytes',
|
178
|
+
'RequiresDuplicateDetection',
|
179
|
+
'DeadLetteringOnFilterEvaluationExceptions',
|
180
|
+
'DuplicateDetectionHistoryTimeWindow',
|
181
|
+
'EnableBatchedOperations',
|
182
|
+
'SizeInBytes'
|
183
|
+
]
|
184
|
+
end
|
185
|
+
end
|
186
|
+
end
|
187
187
|
end
|
@@ -1,38 +1,38 @@
|
|
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 'azure/service_bus/sql_filter'
|
16
|
-
|
17
|
-
module Azure
|
18
|
-
module ServiceBus
|
19
|
-
class TrueFilter < SqlFilter
|
20
|
-
# Public: Initialize the SQL True Filter.
|
21
|
-
#
|
22
|
-
# ==== Attributes
|
23
|
-
#
|
24
|
-
# * +hash+ - The resource options Hash
|
25
|
-
#
|
26
|
-
# ==== Options
|
27
|
-
#
|
28
|
-
# Accepted key/value pairs in options parameter are:
|
29
|
-
# * +:sql_expression+ - The SQL expression.
|
30
|
-
#
|
31
|
-
def initialize(hash=nil)
|
32
|
-
hash = {} unless hash
|
33
|
-
hash[:sql_expression] = "1 = 1" unless hash[:sql_expression]
|
34
|
-
super(hash)
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
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 'azure/service_bus/sql_filter'
|
16
|
+
|
17
|
+
module Azure
|
18
|
+
module ServiceBus
|
19
|
+
class TrueFilter < SqlFilter
|
20
|
+
# Public: Initialize the SQL True Filter.
|
21
|
+
#
|
22
|
+
# ==== Attributes
|
23
|
+
#
|
24
|
+
# * +hash+ - The resource options Hash
|
25
|
+
#
|
26
|
+
# ==== Options
|
27
|
+
#
|
28
|
+
# Accepted key/value pairs in options parameter are:
|
29
|
+
# * +:sql_expression+ - The SQL expression.
|
30
|
+
#
|
31
|
+
def initialize(hash=nil)
|
32
|
+
hash = {} unless hash
|
33
|
+
hash[:sql_expression] = "1 = 1" unless hash[:sql_expression]
|
34
|
+
super(hash)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -1,111 +1,111 @@
|
|
1
|
-
#-------------------------------------------------------------------------
|
2
|
-
# Copyright 2013 Microsoft Open Technologies, Inc.
|
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 'azure/sql_database_management/sql_database'
|
16
|
-
|
17
|
-
module Azure
|
18
|
-
module SqlDatabaseManagement
|
19
|
-
module Serialization
|
20
|
-
|
21
|
-
def self.database_to_xml(login, password, location)
|
22
|
-
builder = Nokogiri::XML::Builder.new do |xml|
|
23
|
-
xml.Server('xmlns'=>'http://schemas.microsoft.com/sqlazure/2010/12/') {
|
24
|
-
xml.AdministratorLogin login
|
25
|
-
xml.AdministratorLoginPassword password
|
26
|
-
xml.Location location
|
27
|
-
}
|
28
|
-
end
|
29
|
-
builder.doc.to_xml
|
30
|
-
end
|
31
|
-
|
32
|
-
def self.databases_from_xml(databasesXML)
|
33
|
-
databases = []
|
34
|
-
databases_servicesXML = databasesXML.css('Servers Server')
|
35
|
-
databases_servicesXML.each do |database_xml|
|
36
|
-
database = SqlDatabase.new
|
37
|
-
database.name = xml_content(database_xml, 'Name')
|
38
|
-
database.administrator_login = xml_content(database_xml, 'AdministratorLogin')
|
39
|
-
database.location = xml_content(database_xml, 'Location')
|
40
|
-
database.feature_name = xml_content(database_xml, 'Features Feature Name')
|
41
|
-
database.feature_value = xml_content(database_xml, 'Features Feature Value')
|
42
|
-
databases << database
|
43
|
-
end
|
44
|
-
databases.compact
|
45
|
-
end
|
46
|
-
|
47
|
-
def self.server_name_from_xml(response_xml, login, location)
|
48
|
-
server_name = xml_content(response_xml, 'ServerName')
|
49
|
-
SqlDatabase.new do |db|
|
50
|
-
db.name = server_name
|
51
|
-
db.location = location
|
52
|
-
db.administrator_login = login
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
def self.reset_password_to_xml(password)
|
57
|
-
builder = Nokogiri::XML::Builder.new do |xml|
|
58
|
-
xml.AdministratorLoginPassword(password, {'xmlns'=>'http://schemas.microsoft.com/sqlazure/2010/12/'})
|
59
|
-
end
|
60
|
-
builder.doc.to_xml
|
61
|
-
end
|
62
|
-
|
63
|
-
def self.firewall_rule_to_xml(options)
|
64
|
-
# Need to revisit and implement RDFE request XML.
|
65
|
-
# Currently Azure is throwing Internal Server Error when executing the
|
66
|
-
# API
|
67
|
-
builder = Nokogiri::XML::Builder.new do |xml|
|
68
|
-
xml.FirewallRule('xmlns'=>'http://schemas.microsoft.com/sqlazure/2010/12/',
|
69
|
-
'xmlns:xsi'=>'http://www.w3.org/2001/XMLSchema-instance',
|
70
|
-
'xsi:schemaLocation'=>'http://schemas.microsoft.com/sqlazure/2010/12/ FirewallRule.xsd') {
|
71
|
-
xml.StartIpAddress options[:start_ip_address]
|
72
|
-
xml.EndIpAddress options[:end_ip_address]
|
73
|
-
}
|
74
|
-
end
|
75
|
-
builder.doc.to_xml
|
76
|
-
end
|
77
|
-
|
78
|
-
def self.database_firewall_from_xml(response_xml)
|
79
|
-
firewalls = []
|
80
|
-
if Azure.config.sql_database_authentication_mode == :sql_server
|
81
|
-
database_firewallXML = response_xml.css('FirewallRules FirewallRule')
|
82
|
-
database_firewallXML.each do |firewall_xml|
|
83
|
-
firewall = {
|
84
|
-
:rule => xml_content(firewall_xml, 'Name'),
|
85
|
-
:start_ip_address => xml_content(firewall_xml, 'StartIpAddress'),
|
86
|
-
:end_ip_address => xml_content(firewall_xml, 'EndIpAddress')
|
87
|
-
}
|
88
|
-
firewalls << firewall
|
89
|
-
end
|
90
|
-
else
|
91
|
-
service_resources = response_xml.css(
|
92
|
-
'ServiceResources ServiceResource'
|
93
|
-
)
|
94
|
-
service_resources.each do |resource|
|
95
|
-
type = xml_content(resource, 'Type')
|
96
|
-
if type == 'Microsoft.SqlAzure.FirewallRule'
|
97
|
-
firewall = {
|
98
|
-
rule: xml_content(resource, 'Name'),
|
99
|
-
start_ip_address: xml_content(resource, 'StartIPAddress'),
|
100
|
-
end_ip_address: xml_content(resource, 'EndIPAddress')
|
101
|
-
}
|
102
|
-
firewalls << firewall
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
106
|
-
firewalls.compact
|
107
|
-
end
|
108
|
-
|
109
|
-
end
|
110
|
-
end
|
111
|
-
end
|
1
|
+
#-------------------------------------------------------------------------
|
2
|
+
# Copyright 2013 Microsoft Open Technologies, Inc.
|
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 'azure/sql_database_management/sql_database'
|
16
|
+
|
17
|
+
module Azure
|
18
|
+
module SqlDatabaseManagement
|
19
|
+
module Serialization
|
20
|
+
|
21
|
+
def self.database_to_xml(login, password, location)
|
22
|
+
builder = Nokogiri::XML::Builder.new do |xml|
|
23
|
+
xml.Server('xmlns'=>'http://schemas.microsoft.com/sqlazure/2010/12/') {
|
24
|
+
xml.AdministratorLogin login
|
25
|
+
xml.AdministratorLoginPassword password
|
26
|
+
xml.Location location
|
27
|
+
}
|
28
|
+
end
|
29
|
+
builder.doc.to_xml
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.databases_from_xml(databasesXML)
|
33
|
+
databases = []
|
34
|
+
databases_servicesXML = databasesXML.css('Servers Server')
|
35
|
+
databases_servicesXML.each do |database_xml|
|
36
|
+
database = SqlDatabase.new
|
37
|
+
database.name = xml_content(database_xml, 'Name')
|
38
|
+
database.administrator_login = xml_content(database_xml, 'AdministratorLogin')
|
39
|
+
database.location = xml_content(database_xml, 'Location')
|
40
|
+
database.feature_name = xml_content(database_xml, 'Features Feature Name')
|
41
|
+
database.feature_value = xml_content(database_xml, 'Features Feature Value')
|
42
|
+
databases << database
|
43
|
+
end
|
44
|
+
databases.compact
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.server_name_from_xml(response_xml, login, location)
|
48
|
+
server_name = xml_content(response_xml, 'ServerName')
|
49
|
+
SqlDatabase.new do |db|
|
50
|
+
db.name = server_name
|
51
|
+
db.location = location
|
52
|
+
db.administrator_login = login
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def self.reset_password_to_xml(password)
|
57
|
+
builder = Nokogiri::XML::Builder.new do |xml|
|
58
|
+
xml.AdministratorLoginPassword(password, {'xmlns'=>'http://schemas.microsoft.com/sqlazure/2010/12/'})
|
59
|
+
end
|
60
|
+
builder.doc.to_xml
|
61
|
+
end
|
62
|
+
|
63
|
+
def self.firewall_rule_to_xml(options)
|
64
|
+
# Need to revisit and implement RDFE request XML.
|
65
|
+
# Currently Azure is throwing Internal Server Error when executing the
|
66
|
+
# API
|
67
|
+
builder = Nokogiri::XML::Builder.new do |xml|
|
68
|
+
xml.FirewallRule('xmlns'=>'http://schemas.microsoft.com/sqlazure/2010/12/',
|
69
|
+
'xmlns:xsi'=>'http://www.w3.org/2001/XMLSchema-instance',
|
70
|
+
'xsi:schemaLocation'=>'http://schemas.microsoft.com/sqlazure/2010/12/ FirewallRule.xsd') {
|
71
|
+
xml.StartIpAddress options[:start_ip_address]
|
72
|
+
xml.EndIpAddress options[:end_ip_address]
|
73
|
+
}
|
74
|
+
end
|
75
|
+
builder.doc.to_xml
|
76
|
+
end
|
77
|
+
|
78
|
+
def self.database_firewall_from_xml(response_xml)
|
79
|
+
firewalls = []
|
80
|
+
if Azure.config.sql_database_authentication_mode == :sql_server
|
81
|
+
database_firewallXML = response_xml.css('FirewallRules FirewallRule')
|
82
|
+
database_firewallXML.each do |firewall_xml|
|
83
|
+
firewall = {
|
84
|
+
:rule => xml_content(firewall_xml, 'Name'),
|
85
|
+
:start_ip_address => xml_content(firewall_xml, 'StartIpAddress'),
|
86
|
+
:end_ip_address => xml_content(firewall_xml, 'EndIpAddress')
|
87
|
+
}
|
88
|
+
firewalls << firewall
|
89
|
+
end
|
90
|
+
else
|
91
|
+
service_resources = response_xml.css(
|
92
|
+
'ServiceResources ServiceResource'
|
93
|
+
)
|
94
|
+
service_resources.each do |resource|
|
95
|
+
type = xml_content(resource, 'Type')
|
96
|
+
if type == 'Microsoft.SqlAzure.FirewallRule'
|
97
|
+
firewall = {
|
98
|
+
rule: xml_content(resource, 'Name'),
|
99
|
+
start_ip_address: xml_content(resource, 'StartIPAddress'),
|
100
|
+
end_ip_address: xml_content(resource, 'EndIPAddress')
|
101
|
+
}
|
102
|
+
firewalls << firewall
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
firewalls.compact
|
107
|
+
end
|
108
|
+
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|