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,48 +1,48 @@
|
|
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 "openssl"
|
16
|
-
require "base64"
|
17
|
-
require "azure/core/configuration"
|
18
|
-
|
19
|
-
module Azure
|
20
|
-
module Core
|
21
|
-
module Auth
|
22
|
-
# Public: Utility class to sign strings with HMAC-256 and then encode the
|
23
|
-
# signed string using Base64.
|
24
|
-
class Signer
|
25
|
-
# The access key for the account
|
26
|
-
attr :access_key
|
27
|
-
|
28
|
-
# Public: Initialize the Signer.
|
29
|
-
#
|
30
|
-
# access_key - The access_key encoded in Base64. Defaults to the one
|
31
|
-
# in the global configuration.
|
32
|
-
def initialize(access_key=Azure.config.storage_access_key)
|
33
|
-
@access_key = Base64.strict_decode64(access_key)
|
34
|
-
end
|
35
|
-
|
36
|
-
# Public: Generate an HMAC signature.
|
37
|
-
#
|
38
|
-
# body - The string to sign.
|
39
|
-
#
|
40
|
-
# Returns a Base64 String signed with HMAC.
|
41
|
-
def sign(body)
|
42
|
-
signed = OpenSSL::HMAC.digest("sha256", access_key, body)
|
43
|
-
Base64.strict_encode64(signed)
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
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 "openssl"
|
16
|
+
require "base64"
|
17
|
+
require "azure/core/configuration"
|
18
|
+
|
19
|
+
module Azure
|
20
|
+
module Core
|
21
|
+
module Auth
|
22
|
+
# Public: Utility class to sign strings with HMAC-256 and then encode the
|
23
|
+
# signed string using Base64.
|
24
|
+
class Signer
|
25
|
+
# The access key for the account
|
26
|
+
attr :access_key
|
27
|
+
|
28
|
+
# Public: Initialize the Signer.
|
29
|
+
#
|
30
|
+
# access_key - The access_key encoded in Base64. Defaults to the one
|
31
|
+
# in the global configuration.
|
32
|
+
def initialize(access_key=Azure.config.storage_access_key)
|
33
|
+
@access_key = Base64.strict_decode64(access_key)
|
34
|
+
end
|
35
|
+
|
36
|
+
# Public: Generate an HMAC signature.
|
37
|
+
#
|
38
|
+
# body - The string to sign.
|
39
|
+
#
|
40
|
+
# Returns a Base64 String signed with HMAC.
|
41
|
+
def sign(body)
|
42
|
+
signed = OpenSSL::HMAC.digest("sha256", access_key, body)
|
43
|
+
Base64.strict_encode64(signed)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -1,211 +1,211 @@
|
|
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 "singleton"
|
16
|
-
|
17
|
-
module Azure
|
18
|
-
|
19
|
-
# Proxy config method.
|
20
|
-
def self.config
|
21
|
-
Core.config
|
22
|
-
end
|
23
|
-
|
24
|
-
# Proxy configure method.
|
25
|
-
def self.configure
|
26
|
-
yield Core.config
|
27
|
-
end
|
28
|
-
|
29
|
-
module Core
|
30
|
-
|
31
|
-
# Public: Sugar to configure the services in a neatly wrapped DSL.
|
32
|
-
#
|
33
|
-
# Yields the Azure::Configuration instance.
|
34
|
-
#
|
35
|
-
# Example:
|
36
|
-
#
|
37
|
-
# Azure.configure do |config|
|
38
|
-
# config.storage_account_name = ENV["AZURE_STORAGE_ACCOUNT"]
|
39
|
-
# end
|
40
|
-
#
|
41
|
-
# Returns nothing.
|
42
|
-
def self.configure
|
43
|
-
yield config
|
44
|
-
end
|
45
|
-
|
46
|
-
# Public: Access the service configuration.
|
47
|
-
#
|
48
|
-
# Returns the Azure::Configuration instance.
|
49
|
-
def self.config
|
50
|
-
Configuration.instance
|
51
|
-
end
|
52
|
-
|
53
|
-
# Singleton that keeps the configuration of the system.
|
54
|
-
class Configuration
|
55
|
-
include Singleton
|
56
|
-
|
57
|
-
# Public: Get/Set the Access Key for this service.
|
58
|
-
attr_accessor :storage_access_key
|
59
|
-
|
60
|
-
# Public: Get/Set the Account Name for this service.
|
61
|
-
attr_accessor :storage_account_name
|
62
|
-
|
63
|
-
# Public: Get/Set the Service Bus Access Key (Issuer Secret) for this service.
|
64
|
-
attr_accessor :sb_access_key
|
65
|
-
|
66
|
-
# Public: Set the Service Bus Issuer for this service.
|
67
|
-
attr_writer :sb_issuer
|
68
|
-
|
69
|
-
# Public: Get the issuer for the service bus. If you set something using #sb_issuer=,
|
70
|
-
# then we use that. Otherwise, we default to the default issuer: "owner"
|
71
|
-
def sb_issuer
|
72
|
-
@sb_issuer || "owner"
|
73
|
-
end
|
74
|
-
|
75
|
-
# Public: Get/Set the Service Bus Namespace for this service.
|
76
|
-
attr_accessor :sb_namespace
|
77
|
-
|
78
|
-
# Public: Set the host for the Table service. Only set this if you want
|
79
|
-
# something custom (like, for example, to point this to a LocalStorage
|
80
|
-
# emulator). This should be the complete host, including http:// at the
|
81
|
-
# start. When using the emulator, make sure to include your account name at
|
82
|
-
# the end.
|
83
|
-
#
|
84
|
-
# Example:
|
85
|
-
#
|
86
|
-
# config.storage_table_host = "http://127.0.0.1:10002/devstoreaccount1"
|
87
|
-
attr_writer :storage_table_host
|
88
|
-
|
89
|
-
# Public: Get the host for this service. If you set something using #storage_table_host=,
|
90
|
-
# then we use that. Else we default to Azure's default hosts, based
|
91
|
-
# on your account name.
|
92
|
-
def storage_table_host
|
93
|
-
@storage_table_host || default_host(:table)
|
94
|
-
end
|
95
|
-
|
96
|
-
# Public: Set the host for the Blob service. Only set this if you want
|
97
|
-
# something custom (like, for example, to point this to a LocalStorage
|
98
|
-
# emulator). This should be the complete host, including http:// at the
|
99
|
-
# start. When using the emulator, make sure to include your account name at
|
100
|
-
# the end.
|
101
|
-
#
|
102
|
-
# Example:
|
103
|
-
#
|
104
|
-
# config.storage_blob_host = "http://127.0.0.1:10000/devstoreaccount1"
|
105
|
-
attr_writer :storage_blob_host
|
106
|
-
|
107
|
-
# Public: Get the host for this service. If you set something using #storage_blob_host=,
|
108
|
-
# then we use that. Else we default to Azure's default hosts, based
|
109
|
-
# on your account name.
|
110
|
-
def storage_blob_host
|
111
|
-
@storage_blob_host || default_host(:blob)
|
112
|
-
end
|
113
|
-
|
114
|
-
# Public: Set the host for the Queue service. Only set this if you want
|
115
|
-
# something custom (like, for example, to point this to a LocalStorage
|
116
|
-
# emulator). This should be the complete host, including http:// at the
|
117
|
-
# start. When using the emulator, make sure to include your account name at
|
118
|
-
# the end.
|
119
|
-
#
|
120
|
-
# Example:
|
121
|
-
#
|
122
|
-
# config.storage_queue_host = "http://127.0.0.1:10001/devstoreaccount1"
|
123
|
-
attr_writer :storage_queue_host
|
124
|
-
|
125
|
-
# Public: Get the host for this service. If you set something using #storage_queue_host=,
|
126
|
-
# then we use that. Else we default to Azure's default hosts, based
|
127
|
-
# on your account name.
|
128
|
-
def storage_queue_host
|
129
|
-
@storage_queue_host || default_host(:queue)
|
130
|
-
end
|
131
|
-
|
132
|
-
# Public: Get the host for the ACS service.
|
133
|
-
def acs_host
|
134
|
-
"https://#{sb_namespace}-sb.accesscontrol.windows.net"
|
135
|
-
end
|
136
|
-
|
137
|
-
# Public: Get the host for the Service Bus service.
|
138
|
-
def service_bus_host
|
139
|
-
"https://#{sb_namespace}.servicebus.windows.net"
|
140
|
-
end
|
141
|
-
|
142
|
-
# Calculate the default host for a given service in the cloud.
|
143
|
-
#
|
144
|
-
# service - One of :table, :blob, :queue, etc.
|
145
|
-
#
|
146
|
-
# Returns a String with the hostname, including your account name.
|
147
|
-
def default_host(service)
|
148
|
-
"http://#{storage_account_name}.#{service}.core.windows.net"
|
149
|
-
end
|
150
|
-
|
151
|
-
#===================================================================
|
152
|
-
#*******************Management API configuration********************
|
153
|
-
#===================================================================
|
154
|
-
|
155
|
-
# Public: Get the Subscription Id and certificate key for the management API.
|
156
|
-
attr_accessor :management_certificate
|
157
|
-
|
158
|
-
# Public: Get/Set the Subscription Id for the management API.
|
159
|
-
attr_accessor :subscription_id
|
160
|
-
|
161
|
-
# Public: Set the host for the management API.
|
162
|
-
attr_writer :management_endpoint
|
163
|
-
|
164
|
-
#Public: Set the private key for SSL/HTTPS request with PEM certificate
|
165
|
-
attr_accessor :http_private_key
|
166
|
-
|
167
|
-
#Public: Set the certificate key for SSL/HTTPS request with PEM certificate
|
168
|
-
attr_accessor :http_certificate_key
|
169
|
-
|
170
|
-
# Public: Set the host for SQL Management API (SQL Server authentication Endpoint)
|
171
|
-
attr_accessor :sql_database_management_endpoint
|
172
|
-
|
173
|
-
def management_endpoint
|
174
|
-
if @management_endpoint.nil? or @management_endpoint.empty?
|
175
|
-
"https://management.core.windows.net/"
|
176
|
-
elsif !@management_endpoint.end_with?('/')
|
177
|
-
@management_endpoint += '/'
|
178
|
-
elsif URI(@management_endpoint).scheme.nil?
|
179
|
-
"https://#{@management_endpoint}"
|
180
|
-
else
|
181
|
-
@management_endpoint
|
182
|
-
end
|
183
|
-
end
|
184
|
-
|
185
|
-
def sql_database_management_endpoint
|
186
|
-
if @sql_database_management_endpoint.nil? or @sql_database_management_endpoint.empty?
|
187
|
-
"https://management.database.windows.net:8443/"
|
188
|
-
elsif !@sql_database_management_endpoint.end_with?('/')
|
189
|
-
@sql_database_management_endpoint += '/'
|
190
|
-
elsif URI(@sql_database_management_endpoint).scheme.nil?
|
191
|
-
"https://#{@sql_database_management_endpoint}"
|
192
|
-
else
|
193
|
-
@management_endpoint
|
194
|
-
end
|
195
|
-
end
|
196
|
-
|
197
|
-
# Public: Set this to enable Management certificate authentication or SQL Server authentication
|
198
|
-
attr_accessor :sql_database_authentication_mode
|
199
|
-
|
200
|
-
def sql_database_authentication_mode
|
201
|
-
sdam = @sql_database_authentication_mode || :sql_server
|
202
|
-
if [:sql_server, :management_certificate].include? sdam.to_sym
|
203
|
-
sdam.to_sym
|
204
|
-
else
|
205
|
-
:sql_server
|
206
|
-
end
|
207
|
-
end
|
208
|
-
|
209
|
-
end
|
210
|
-
end
|
211
|
-
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 "singleton"
|
16
|
+
|
17
|
+
module Azure
|
18
|
+
|
19
|
+
# Proxy config method.
|
20
|
+
def self.config
|
21
|
+
Core.config
|
22
|
+
end
|
23
|
+
|
24
|
+
# Proxy configure method.
|
25
|
+
def self.configure
|
26
|
+
yield Core.config
|
27
|
+
end
|
28
|
+
|
29
|
+
module Core
|
30
|
+
|
31
|
+
# Public: Sugar to configure the services in a neatly wrapped DSL.
|
32
|
+
#
|
33
|
+
# Yields the Azure::Configuration instance.
|
34
|
+
#
|
35
|
+
# Example:
|
36
|
+
#
|
37
|
+
# Azure.configure do |config|
|
38
|
+
# config.storage_account_name = ENV["AZURE_STORAGE_ACCOUNT"]
|
39
|
+
# end
|
40
|
+
#
|
41
|
+
# Returns nothing.
|
42
|
+
def self.configure
|
43
|
+
yield config
|
44
|
+
end
|
45
|
+
|
46
|
+
# Public: Access the service configuration.
|
47
|
+
#
|
48
|
+
# Returns the Azure::Configuration instance.
|
49
|
+
def self.config
|
50
|
+
Configuration.instance
|
51
|
+
end
|
52
|
+
|
53
|
+
# Singleton that keeps the configuration of the system.
|
54
|
+
class Configuration
|
55
|
+
include Singleton
|
56
|
+
|
57
|
+
# Public: Get/Set the Access Key for this service.
|
58
|
+
attr_accessor :storage_access_key
|
59
|
+
|
60
|
+
# Public: Get/Set the Account Name for this service.
|
61
|
+
attr_accessor :storage_account_name
|
62
|
+
|
63
|
+
# Public: Get/Set the Service Bus Access Key (Issuer Secret) for this service.
|
64
|
+
attr_accessor :sb_access_key
|
65
|
+
|
66
|
+
# Public: Set the Service Bus Issuer for this service.
|
67
|
+
attr_writer :sb_issuer
|
68
|
+
|
69
|
+
# Public: Get the issuer for the service bus. If you set something using #sb_issuer=,
|
70
|
+
# then we use that. Otherwise, we default to the default issuer: "owner"
|
71
|
+
def sb_issuer
|
72
|
+
@sb_issuer || "owner"
|
73
|
+
end
|
74
|
+
|
75
|
+
# Public: Get/Set the Service Bus Namespace for this service.
|
76
|
+
attr_accessor :sb_namespace
|
77
|
+
|
78
|
+
# Public: Set the host for the Table service. Only set this if you want
|
79
|
+
# something custom (like, for example, to point this to a LocalStorage
|
80
|
+
# emulator). This should be the complete host, including http:// at the
|
81
|
+
# start. When using the emulator, make sure to include your account name at
|
82
|
+
# the end.
|
83
|
+
#
|
84
|
+
# Example:
|
85
|
+
#
|
86
|
+
# config.storage_table_host = "http://127.0.0.1:10002/devstoreaccount1"
|
87
|
+
attr_writer :storage_table_host
|
88
|
+
|
89
|
+
# Public: Get the host for this service. If you set something using #storage_table_host=,
|
90
|
+
# then we use that. Else we default to Azure's default hosts, based
|
91
|
+
# on your account name.
|
92
|
+
def storage_table_host
|
93
|
+
@storage_table_host || default_host(:table)
|
94
|
+
end
|
95
|
+
|
96
|
+
# Public: Set the host for the Blob service. Only set this if you want
|
97
|
+
# something custom (like, for example, to point this to a LocalStorage
|
98
|
+
# emulator). This should be the complete host, including http:// at the
|
99
|
+
# start. When using the emulator, make sure to include your account name at
|
100
|
+
# the end.
|
101
|
+
#
|
102
|
+
# Example:
|
103
|
+
#
|
104
|
+
# config.storage_blob_host = "http://127.0.0.1:10000/devstoreaccount1"
|
105
|
+
attr_writer :storage_blob_host
|
106
|
+
|
107
|
+
# Public: Get the host for this service. If you set something using #storage_blob_host=,
|
108
|
+
# then we use that. Else we default to Azure's default hosts, based
|
109
|
+
# on your account name.
|
110
|
+
def storage_blob_host
|
111
|
+
@storage_blob_host || default_host(:blob)
|
112
|
+
end
|
113
|
+
|
114
|
+
# Public: Set the host for the Queue service. Only set this if you want
|
115
|
+
# something custom (like, for example, to point this to a LocalStorage
|
116
|
+
# emulator). This should be the complete host, including http:// at the
|
117
|
+
# start. When using the emulator, make sure to include your account name at
|
118
|
+
# the end.
|
119
|
+
#
|
120
|
+
# Example:
|
121
|
+
#
|
122
|
+
# config.storage_queue_host = "http://127.0.0.1:10001/devstoreaccount1"
|
123
|
+
attr_writer :storage_queue_host
|
124
|
+
|
125
|
+
# Public: Get the host for this service. If you set something using #storage_queue_host=,
|
126
|
+
# then we use that. Else we default to Azure's default hosts, based
|
127
|
+
# on your account name.
|
128
|
+
def storage_queue_host
|
129
|
+
@storage_queue_host || default_host(:queue)
|
130
|
+
end
|
131
|
+
|
132
|
+
# Public: Get the host for the ACS service.
|
133
|
+
def acs_host
|
134
|
+
"https://#{sb_namespace}-sb.accesscontrol.windows.net"
|
135
|
+
end
|
136
|
+
|
137
|
+
# Public: Get the host for the Service Bus service.
|
138
|
+
def service_bus_host
|
139
|
+
"https://#{sb_namespace}.servicebus.windows.net"
|
140
|
+
end
|
141
|
+
|
142
|
+
# Calculate the default host for a given service in the cloud.
|
143
|
+
#
|
144
|
+
# service - One of :table, :blob, :queue, etc.
|
145
|
+
#
|
146
|
+
# Returns a String with the hostname, including your account name.
|
147
|
+
def default_host(service)
|
148
|
+
"http://#{storage_account_name}.#{service}.core.windows.net"
|
149
|
+
end
|
150
|
+
|
151
|
+
#===================================================================
|
152
|
+
#*******************Management API configuration********************
|
153
|
+
#===================================================================
|
154
|
+
|
155
|
+
# Public: Get the Subscription Id and certificate key for the management API.
|
156
|
+
attr_accessor :management_certificate
|
157
|
+
|
158
|
+
# Public: Get/Set the Subscription Id for the management API.
|
159
|
+
attr_accessor :subscription_id
|
160
|
+
|
161
|
+
# Public: Set the host for the management API.
|
162
|
+
attr_writer :management_endpoint
|
163
|
+
|
164
|
+
#Public: Set the private key for SSL/HTTPS request with PEM certificate
|
165
|
+
attr_accessor :http_private_key
|
166
|
+
|
167
|
+
#Public: Set the certificate key for SSL/HTTPS request with PEM certificate
|
168
|
+
attr_accessor :http_certificate_key
|
169
|
+
|
170
|
+
# Public: Set the host for SQL Management API (SQL Server authentication Endpoint)
|
171
|
+
attr_accessor :sql_database_management_endpoint
|
172
|
+
|
173
|
+
def management_endpoint
|
174
|
+
if @management_endpoint.nil? or @management_endpoint.empty?
|
175
|
+
"https://management.core.windows.net/"
|
176
|
+
elsif !@management_endpoint.end_with?('/')
|
177
|
+
@management_endpoint += '/'
|
178
|
+
elsif URI(@management_endpoint).scheme.nil?
|
179
|
+
"https://#{@management_endpoint}"
|
180
|
+
else
|
181
|
+
@management_endpoint
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
def sql_database_management_endpoint
|
186
|
+
if @sql_database_management_endpoint.nil? or @sql_database_management_endpoint.empty?
|
187
|
+
"https://management.database.windows.net:8443/"
|
188
|
+
elsif !@sql_database_management_endpoint.end_with?('/')
|
189
|
+
@sql_database_management_endpoint += '/'
|
190
|
+
elsif URI(@sql_database_management_endpoint).scheme.nil?
|
191
|
+
"https://#{@sql_database_management_endpoint}"
|
192
|
+
else
|
193
|
+
@management_endpoint
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
197
|
+
# Public: Set this to enable Management certificate authentication or SQL Server authentication
|
198
|
+
attr_accessor :sql_database_authentication_mode
|
199
|
+
|
200
|
+
def sql_database_authentication_mode
|
201
|
+
sdam = @sql_database_authentication_mode || :sql_server
|
202
|
+
if [:sql_server, :management_certificate].include? sdam.to_sym
|
203
|
+
sdam.to_sym
|
204
|
+
else
|
205
|
+
:sql_server
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
end
|
210
|
+
end
|
211
|
+
end
|