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,38 +1,38 @@
|
|
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
|
-
|
16
|
-
module Azure
|
17
|
-
module CloudServiceManagement
|
18
|
-
class CloudService
|
19
|
-
def initialize
|
20
|
-
yield self if block_given?
|
21
|
-
end
|
22
|
-
|
23
|
-
attr_accessor :url
|
24
|
-
attr_accessor :name
|
25
|
-
attr_accessor :label
|
26
|
-
attr_accessor :description
|
27
|
-
attr_accessor :location
|
28
|
-
attr_accessor :affinity_group
|
29
|
-
attr_accessor :status
|
30
|
-
attr_accessor :date_created
|
31
|
-
attr_accessor :date_modified
|
32
|
-
attr_accessor :extended_properties
|
33
|
-
attr_accessor :default_winrm_certificate_thumbprint
|
34
|
-
attr_accessor :virtual_machines
|
35
|
-
attr_accessor :deployment_name
|
36
|
-
end
|
37
|
-
end
|
38
|
-
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
|
+
|
16
|
+
module Azure
|
17
|
+
module CloudServiceManagement
|
18
|
+
class CloudService
|
19
|
+
def initialize
|
20
|
+
yield self if block_given?
|
21
|
+
end
|
22
|
+
|
23
|
+
attr_accessor :url
|
24
|
+
attr_accessor :name
|
25
|
+
attr_accessor :label
|
26
|
+
attr_accessor :description
|
27
|
+
attr_accessor :location
|
28
|
+
attr_accessor :affinity_group
|
29
|
+
attr_accessor :status
|
30
|
+
attr_accessor :date_created
|
31
|
+
attr_accessor :date_modified
|
32
|
+
attr_accessor :extended_properties
|
33
|
+
attr_accessor :default_winrm_certificate_thumbprint
|
34
|
+
attr_accessor :virtual_machines
|
35
|
+
attr_accessor :deployment_name
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -1,140 +1,140 @@
|
|
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/cloud_service_management/serialization'
|
16
|
-
|
17
|
-
module Azure
|
18
|
-
module CloudServiceManagement
|
19
|
-
class CloudServiceManagementService < BaseManagementService
|
20
|
-
def initialize
|
21
|
-
super()
|
22
|
-
end
|
23
|
-
|
24
|
-
# Public: Creates a new cloud service in Windows Azure.
|
25
|
-
#
|
26
|
-
# ==== Attributes
|
27
|
-
#
|
28
|
-
# * +name+ - String. The name of the cloud service.
|
29
|
-
# * +options+ - Hash. Optional parameters.
|
30
|
-
#
|
31
|
-
# ==== Options
|
32
|
-
#
|
33
|
-
# Accepted key/value pairs in options parameter are:
|
34
|
-
# * +:label+ -String. The label for this cloud service.
|
35
|
-
# * +:description+ - String. A description for the hosted service. (optional)
|
36
|
-
# * +:location+ - String. The regional data center location where the
|
37
|
-
# cloud service will be created. Required if affinity group not
|
38
|
-
# specified (optional)
|
39
|
-
# * +:affinity_group_name - String. Name of the affinity group with
|
40
|
-
# which to assocate the cloud service. Required if location not
|
41
|
-
# specified (optional)
|
42
|
-
# * +:extended_properties+ - Hash. Key/Value pairs of extended
|
43
|
-
# properties to add to the cloud service. The key is used as the
|
44
|
-
# property name and the value as its value. (optional)
|
45
|
-
#
|
46
|
-
# See http://msdn.microsoft.com/en-us/library/windowsazure/gg441304.aspx
|
47
|
-
#
|
48
|
-
# Returns None
|
49
|
-
def create_cloud_service(name, options = {})
|
50
|
-
Loggerx.error_with_exit 'Cloud service name is not valid ' unless name
|
51
|
-
if get_cloud_service(name)
|
52
|
-
Loggerx.warn "Cloud service #{name} already exists. Skipped..."
|
53
|
-
else
|
54
|
-
Loggerx.info "Creating cloud service #{name}."
|
55
|
-
request_path = '/services/hostedservices'
|
56
|
-
body = Serialization.cloud_services_to_xml(name, options)
|
57
|
-
request = ManagementHttpRequest.new(:post, request_path, body)
|
58
|
-
request.call
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
# Public: Gets a list of hosted services available under the current subscription.
|
63
|
-
#
|
64
|
-
# Returns an array of Azure::CloudServiceManagement::CloudService objects
|
65
|
-
def list_cloud_services
|
66
|
-
request_path = '/services/hostedservices'
|
67
|
-
request = ManagementHttpRequest.new(:get, request_path, nil)
|
68
|
-
response = request.call
|
69
|
-
Serialization.cloud_services_from_xml(response)
|
70
|
-
end
|
71
|
-
|
72
|
-
# Public: Checks to see if the specified hosted service is available
|
73
|
-
#
|
74
|
-
# ==== Attributes
|
75
|
-
#
|
76
|
-
# * +name+ - String. Cloud service name.
|
77
|
-
#
|
78
|
-
# Returns: A boolean value indicating whether the cloud service exists.
|
79
|
-
# If true, the cloud service is available. If false, the cloud service
|
80
|
-
# does not exist.
|
81
|
-
def get_cloud_service(name)
|
82
|
-
return false if name.nil?
|
83
|
-
flag = false
|
84
|
-
list_cloud_services.each do |cloud_service|
|
85
|
-
if cloud_service.name == name
|
86
|
-
flag = true
|
87
|
-
break
|
88
|
-
end
|
89
|
-
end
|
90
|
-
flag
|
91
|
-
end
|
92
|
-
|
93
|
-
def get_cloud_service_properties(name)
|
94
|
-
request_path = "/services/hostedservices/#{name}?embed-detail=true"
|
95
|
-
request = ManagementHttpRequest.new(:get, request_path)
|
96
|
-
response = request.call
|
97
|
-
Serialization.cloud_services_from_xml(response).first
|
98
|
-
end
|
99
|
-
|
100
|
-
# Public: Deletes the specified cloud service of given subscription id from Windows Azure.
|
101
|
-
#
|
102
|
-
# ==== Attributes
|
103
|
-
#
|
104
|
-
# * +name+ - String. Cloud service name.
|
105
|
-
#
|
106
|
-
# Returns: None
|
107
|
-
def delete_cloud_service(cloud_service_name)
|
108
|
-
request_path = "/services/hostedservices/#{cloud_service_name}"
|
109
|
-
request = ManagementHttpRequest.new(:delete, request_path)
|
110
|
-
Loggerx.info "Deleting cloud service #{cloud_service_name}. \n"
|
111
|
-
request.call
|
112
|
-
end
|
113
|
-
|
114
|
-
# Public: Deletes the specified deployment.
|
115
|
-
#
|
116
|
-
# ==== Attributes
|
117
|
-
#
|
118
|
-
# * +cloud_service_name+ - String. Cloud service name.
|
119
|
-
#
|
120
|
-
# See http://msdn.microsoft.com/en-us/library/windowsazure/ee460815.aspx
|
121
|
-
#
|
122
|
-
# Returns NONE
|
123
|
-
def delete_cloud_service_deployment(cloud_service_name)
|
124
|
-
request_path = "/services/hostedservices/#{cloud_service_name}/deploymentslots/production"
|
125
|
-
request = ManagementHttpRequest.new(:delete, request_path)
|
126
|
-
Loggerx.info "Deleting deployment of cloud service \"#{cloud_service_name}\" ..."
|
127
|
-
request.call
|
128
|
-
end
|
129
|
-
|
130
|
-
def upload_certificate(cloud_service_name, ssh)
|
131
|
-
data = export_der(ssh[:cert], ssh[:key])
|
132
|
-
request_path = "/services/hostedservices/#{cloud_service_name}/certificates"
|
133
|
-
body = Serialization.add_certificate_to_xml(data)
|
134
|
-
Loggerx.info "Uploading certificate to cloud service #{cloud_service_name}..."
|
135
|
-
request = ManagementHttpRequest.new(:post, request_path, body)
|
136
|
-
request.call
|
137
|
-
end
|
138
|
-
end
|
139
|
-
end
|
140
|
-
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/cloud_service_management/serialization'
|
16
|
+
|
17
|
+
module Azure
|
18
|
+
module CloudServiceManagement
|
19
|
+
class CloudServiceManagementService < BaseManagementService
|
20
|
+
def initialize
|
21
|
+
super()
|
22
|
+
end
|
23
|
+
|
24
|
+
# Public: Creates a new cloud service in Windows Azure.
|
25
|
+
#
|
26
|
+
# ==== Attributes
|
27
|
+
#
|
28
|
+
# * +name+ - String. The name of the cloud service.
|
29
|
+
# * +options+ - Hash. Optional parameters.
|
30
|
+
#
|
31
|
+
# ==== Options
|
32
|
+
#
|
33
|
+
# Accepted key/value pairs in options parameter are:
|
34
|
+
# * +:label+ -String. The label for this cloud service.
|
35
|
+
# * +:description+ - String. A description for the hosted service. (optional)
|
36
|
+
# * +:location+ - String. The regional data center location where the
|
37
|
+
# cloud service will be created. Required if affinity group not
|
38
|
+
# specified (optional)
|
39
|
+
# * +:affinity_group_name - String. Name of the affinity group with
|
40
|
+
# which to assocate the cloud service. Required if location not
|
41
|
+
# specified (optional)
|
42
|
+
# * +:extended_properties+ - Hash. Key/Value pairs of extended
|
43
|
+
# properties to add to the cloud service. The key is used as the
|
44
|
+
# property name and the value as its value. (optional)
|
45
|
+
#
|
46
|
+
# See http://msdn.microsoft.com/en-us/library/windowsazure/gg441304.aspx
|
47
|
+
#
|
48
|
+
# Returns None
|
49
|
+
def create_cloud_service(name, options = {})
|
50
|
+
Loggerx.error_with_exit 'Cloud service name is not valid ' unless name
|
51
|
+
if get_cloud_service(name)
|
52
|
+
Loggerx.warn "Cloud service #{name} already exists. Skipped..."
|
53
|
+
else
|
54
|
+
Loggerx.info "Creating cloud service #{name}."
|
55
|
+
request_path = '/services/hostedservices'
|
56
|
+
body = Serialization.cloud_services_to_xml(name, options)
|
57
|
+
request = ManagementHttpRequest.new(:post, request_path, body)
|
58
|
+
request.call
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
# Public: Gets a list of hosted services available under the current subscription.
|
63
|
+
#
|
64
|
+
# Returns an array of Azure::CloudServiceManagement::CloudService objects
|
65
|
+
def list_cloud_services
|
66
|
+
request_path = '/services/hostedservices'
|
67
|
+
request = ManagementHttpRequest.new(:get, request_path, nil)
|
68
|
+
response = request.call
|
69
|
+
Serialization.cloud_services_from_xml(response)
|
70
|
+
end
|
71
|
+
|
72
|
+
# Public: Checks to see if the specified hosted service is available
|
73
|
+
#
|
74
|
+
# ==== Attributes
|
75
|
+
#
|
76
|
+
# * +name+ - String. Cloud service name.
|
77
|
+
#
|
78
|
+
# Returns: A boolean value indicating whether the cloud service exists.
|
79
|
+
# If true, the cloud service is available. If false, the cloud service
|
80
|
+
# does not exist.
|
81
|
+
def get_cloud_service(name)
|
82
|
+
return false if name.nil?
|
83
|
+
flag = false
|
84
|
+
list_cloud_services.each do |cloud_service|
|
85
|
+
if cloud_service.name == name
|
86
|
+
flag = true
|
87
|
+
break
|
88
|
+
end
|
89
|
+
end
|
90
|
+
flag
|
91
|
+
end
|
92
|
+
|
93
|
+
def get_cloud_service_properties(name)
|
94
|
+
request_path = "/services/hostedservices/#{name}?embed-detail=true"
|
95
|
+
request = ManagementHttpRequest.new(:get, request_path)
|
96
|
+
response = request.call
|
97
|
+
Serialization.cloud_services_from_xml(response).first
|
98
|
+
end
|
99
|
+
|
100
|
+
# Public: Deletes the specified cloud service of given subscription id from Windows Azure.
|
101
|
+
#
|
102
|
+
# ==== Attributes
|
103
|
+
#
|
104
|
+
# * +name+ - String. Cloud service name.
|
105
|
+
#
|
106
|
+
# Returns: None
|
107
|
+
def delete_cloud_service(cloud_service_name)
|
108
|
+
request_path = "/services/hostedservices/#{cloud_service_name}"
|
109
|
+
request = ManagementHttpRequest.new(:delete, request_path)
|
110
|
+
Loggerx.info "Deleting cloud service #{cloud_service_name}. \n"
|
111
|
+
request.call
|
112
|
+
end
|
113
|
+
|
114
|
+
# Public: Deletes the specified deployment.
|
115
|
+
#
|
116
|
+
# ==== Attributes
|
117
|
+
#
|
118
|
+
# * +cloud_service_name+ - String. Cloud service name.
|
119
|
+
#
|
120
|
+
# See http://msdn.microsoft.com/en-us/library/windowsazure/ee460815.aspx
|
121
|
+
#
|
122
|
+
# Returns NONE
|
123
|
+
def delete_cloud_service_deployment(cloud_service_name)
|
124
|
+
request_path = "/services/hostedservices/#{cloud_service_name}/deploymentslots/production"
|
125
|
+
request = ManagementHttpRequest.new(:delete, request_path)
|
126
|
+
Loggerx.info "Deleting deployment of cloud service \"#{cloud_service_name}\" ..."
|
127
|
+
request.call
|
128
|
+
end
|
129
|
+
|
130
|
+
def upload_certificate(cloud_service_name, ssh)
|
131
|
+
data = export_der(ssh[:cert], ssh[:key])
|
132
|
+
request_path = "/services/hostedservices/#{cloud_service_name}/certificates"
|
133
|
+
body = Serialization.add_certificate_to_xml(data)
|
134
|
+
Loggerx.info "Uploading certificate to cloud service #{cloud_service_name}..."
|
135
|
+
request = ManagementHttpRequest.new(:post, request_path, body)
|
136
|
+
request.call
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
@@ -1,117 +1,117 @@
|
|
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 'base64'
|
16
|
-
require 'azure/cloud_service_management/cloud_service'
|
17
|
-
require 'azure/virtual_machine_management/serialization'
|
18
|
-
|
19
|
-
module Azure
|
20
|
-
module CloudServiceManagement
|
21
|
-
module Serialization
|
22
|
-
def self.cloud_services_to_xml(name, options = {})
|
23
|
-
options[:label] = options[:label] || name
|
24
|
-
|
25
|
-
builder = Nokogiri::XML::Builder.new do |xml|
|
26
|
-
xml.CreateHostedService(
|
27
|
-
'xmlns' => 'http://schemas.microsoft.com/windowsazure'
|
28
|
-
) do
|
29
|
-
xml.ServiceName(name)
|
30
|
-
xml.Label(Base64.encode64(options[:label]))
|
31
|
-
xml.Description(options[:description]) unless\
|
32
|
-
options[:description].nil? || options[:description].empty?
|
33
|
-
|
34
|
-
unless options[:affinity_group_name].nil?
|
35
|
-
xml.AffinityGroup(options[:affinity_group_name])
|
36
|
-
else
|
37
|
-
xml.Location(options[:location])
|
38
|
-
end
|
39
|
-
|
40
|
-
xml.ExtendedProperties do
|
41
|
-
options[:extended_properties].each do |prop_name, prop_value|
|
42
|
-
xml.ExtendedProperty do
|
43
|
-
xml.Name(prop_name)
|
44
|
-
xml.Value(prop_value)
|
45
|
-
end unless (prop_name.nil? || prop_name.empty?)\
|
46
|
-
|| (prop_value.nil? || prop_value.empty?)
|
47
|
-
end
|
48
|
-
end unless options[:extended_properties].nil?\
|
49
|
-
|| options[:extended_properties].empty?
|
50
|
-
end
|
51
|
-
end
|
52
|
-
builder.doc.to_xml
|
53
|
-
end
|
54
|
-
|
55
|
-
def self.cloud_services_from_xml(cloud_xml)
|
56
|
-
clouds = []
|
57
|
-
cloud_services_xml = cloud_xml.css('HostedServices HostedService')
|
58
|
-
cloud_services_xml = cloud_xml.css('HostedService') if \
|
59
|
-
cloud_services_xml.length == 0
|
60
|
-
cloud_services_xml.each do |cloud_service_xml|
|
61
|
-
cloud = CloudService.new
|
62
|
-
cloud.url = xml_content(cloud_service_xml, 'Url')
|
63
|
-
cloud.name = xml_content(cloud_service_xml, 'ServiceName')
|
64
|
-
|
65
|
-
props_xml = cloud_service_xml.css('HostedServiceProperties')
|
66
|
-
|
67
|
-
cloud.label = Base64.decode64(xml_content(props_xml, 'Label'))
|
68
|
-
cloud.description = xml_content(props_xml, 'Description')
|
69
|
-
location = xml_content(props_xml, 'Location')
|
70
|
-
cloud.location = location unless location.empty?
|
71
|
-
affinity_group = xml_content(props_xml, 'AffinityGroup')
|
72
|
-
cloud.affinity_group = affinity_group unless affinity_group
|
73
|
-
cloud.status = xml_content(props_xml, 'Status')
|
74
|
-
cloud.date_created = xml_content(props_xml, 'DateCreated')
|
75
|
-
cloud.date_modified = xml_content(props_xml, 'DateLastModified')
|
76
|
-
|
77
|
-
cloud.extended_properties = {}
|
78
|
-
props_xml.css('ExtendedProperties ExtendedProperty').map do |prop|
|
79
|
-
p_name = xml_content(prop, 'Name')
|
80
|
-
p_value = xml_content(prop, 'Value')
|
81
|
-
cloud.extended_properties[p_name] = p_value
|
82
|
-
end
|
83
|
-
|
84
|
-
cloud.default_winrm_certificate_thumbprint = xml_content(
|
85
|
-
cloud_service_xml, 'DefaultWinRMCertificateThumbprint'
|
86
|
-
)
|
87
|
-
deployment_xml = cloud_services_xml.css('Deployments Deployment')
|
88
|
-
cloud.deployment_name = xml_content(deployment_xml, 'Name')
|
89
|
-
vms_in_deployment = {}
|
90
|
-
|
91
|
-
cloud_service_xml.css('Deployments').each do |deployxml|
|
92
|
-
deployment_name = xml_content(deployxml, 'Deployment Name')
|
93
|
-
vms = Azure::VirtualMachineManagement::Serialization.virtual_machines_from_xml(
|
94
|
-
deployxml, cloud.name
|
95
|
-
)
|
96
|
-
vms_in_deployment[deployment_name.to_sym] = vms if vms
|
97
|
-
end
|
98
|
-
|
99
|
-
cloud.virtual_machines = vms_in_deployment
|
100
|
-
clouds << cloud
|
101
|
-
end
|
102
|
-
clouds.compact
|
103
|
-
end
|
104
|
-
|
105
|
-
def self.add_certificate_to_xml(data)
|
106
|
-
builder = Nokogiri::XML::Builder.new do |xml|
|
107
|
-
xml.CertificateFile('xmlns' => 'http://schemas.microsoft.com/windowsazure') do
|
108
|
-
xml.Data data
|
109
|
-
xml.CertificateFormat 'pfx'
|
110
|
-
xml.Password nil
|
111
|
-
end
|
112
|
-
end
|
113
|
-
builder.doc.to_xml
|
114
|
-
end
|
115
|
-
end
|
116
|
-
end
|
117
|
-
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 'base64'
|
16
|
+
require 'azure/cloud_service_management/cloud_service'
|
17
|
+
require 'azure/virtual_machine_management/serialization'
|
18
|
+
|
19
|
+
module Azure
|
20
|
+
module CloudServiceManagement
|
21
|
+
module Serialization
|
22
|
+
def self.cloud_services_to_xml(name, options = {})
|
23
|
+
options[:label] = options[:label] || name
|
24
|
+
|
25
|
+
builder = Nokogiri::XML::Builder.new do |xml|
|
26
|
+
xml.CreateHostedService(
|
27
|
+
'xmlns' => 'http://schemas.microsoft.com/windowsazure'
|
28
|
+
) do
|
29
|
+
xml.ServiceName(name)
|
30
|
+
xml.Label(Base64.encode64(options[:label]))
|
31
|
+
xml.Description(options[:description]) unless\
|
32
|
+
options[:description].nil? || options[:description].empty?
|
33
|
+
|
34
|
+
unless options[:affinity_group_name].nil?
|
35
|
+
xml.AffinityGroup(options[:affinity_group_name])
|
36
|
+
else
|
37
|
+
xml.Location(options[:location])
|
38
|
+
end
|
39
|
+
|
40
|
+
xml.ExtendedProperties do
|
41
|
+
options[:extended_properties].each do |prop_name, prop_value|
|
42
|
+
xml.ExtendedProperty do
|
43
|
+
xml.Name(prop_name)
|
44
|
+
xml.Value(prop_value)
|
45
|
+
end unless (prop_name.nil? || prop_name.empty?)\
|
46
|
+
|| (prop_value.nil? || prop_value.empty?)
|
47
|
+
end
|
48
|
+
end unless options[:extended_properties].nil?\
|
49
|
+
|| options[:extended_properties].empty?
|
50
|
+
end
|
51
|
+
end
|
52
|
+
builder.doc.to_xml
|
53
|
+
end
|
54
|
+
|
55
|
+
def self.cloud_services_from_xml(cloud_xml)
|
56
|
+
clouds = []
|
57
|
+
cloud_services_xml = cloud_xml.css('HostedServices HostedService')
|
58
|
+
cloud_services_xml = cloud_xml.css('HostedService') if \
|
59
|
+
cloud_services_xml.length == 0
|
60
|
+
cloud_services_xml.each do |cloud_service_xml|
|
61
|
+
cloud = CloudService.new
|
62
|
+
cloud.url = xml_content(cloud_service_xml, 'Url')
|
63
|
+
cloud.name = xml_content(cloud_service_xml, 'ServiceName')
|
64
|
+
|
65
|
+
props_xml = cloud_service_xml.css('HostedServiceProperties')
|
66
|
+
|
67
|
+
cloud.label = Base64.decode64(xml_content(props_xml, 'Label'))
|
68
|
+
cloud.description = xml_content(props_xml, 'Description')
|
69
|
+
location = xml_content(props_xml, 'Location')
|
70
|
+
cloud.location = location unless location.empty?
|
71
|
+
affinity_group = xml_content(props_xml, 'AffinityGroup')
|
72
|
+
cloud.affinity_group = affinity_group unless affinity_group
|
73
|
+
cloud.status = xml_content(props_xml, 'Status')
|
74
|
+
cloud.date_created = xml_content(props_xml, 'DateCreated')
|
75
|
+
cloud.date_modified = xml_content(props_xml, 'DateLastModified')
|
76
|
+
|
77
|
+
cloud.extended_properties = {}
|
78
|
+
props_xml.css('ExtendedProperties ExtendedProperty').map do |prop|
|
79
|
+
p_name = xml_content(prop, 'Name')
|
80
|
+
p_value = xml_content(prop, 'Value')
|
81
|
+
cloud.extended_properties[p_name] = p_value
|
82
|
+
end
|
83
|
+
|
84
|
+
cloud.default_winrm_certificate_thumbprint = xml_content(
|
85
|
+
cloud_service_xml, 'DefaultWinRMCertificateThumbprint'
|
86
|
+
)
|
87
|
+
deployment_xml = cloud_services_xml.css('Deployments Deployment')
|
88
|
+
cloud.deployment_name = xml_content(deployment_xml, 'Name')
|
89
|
+
vms_in_deployment = {}
|
90
|
+
|
91
|
+
cloud_service_xml.css('Deployments').each do |deployxml|
|
92
|
+
deployment_name = xml_content(deployxml, 'Deployment Name')
|
93
|
+
vms = Azure::VirtualMachineManagement::Serialization.virtual_machines_from_xml(
|
94
|
+
deployxml, cloud.name
|
95
|
+
)
|
96
|
+
vms_in_deployment[deployment_name.to_sym] = vms if vms
|
97
|
+
end
|
98
|
+
|
99
|
+
cloud.virtual_machines = vms_in_deployment
|
100
|
+
clouds << cloud
|
101
|
+
end
|
102
|
+
clouds.compact
|
103
|
+
end
|
104
|
+
|
105
|
+
def self.add_certificate_to_xml(data)
|
106
|
+
builder = Nokogiri::XML::Builder.new do |xml|
|
107
|
+
xml.CertificateFile('xmlns' => 'http://schemas.microsoft.com/windowsazure') do
|
108
|
+
xml.Data data
|
109
|
+
xml.CertificateFormat 'pfx'
|
110
|
+
xml.Password nil
|
111
|
+
end
|
112
|
+
end
|
113
|
+
builder.doc.to_xml
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|