azurex 0.6.5 → 0.6.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +17 -0
- data/lib/azure/version.rb +2 -2
- data/lib/azure/virtual_machine_management/serialization.rb +12 -0
- data/lib/azure/virtual_machine_management/virtual_machine_management_service.rb +1 -0
- data/test/fixtures/virtual_machine.xml +5 -0
- data/test/unit/virtual_machine_management/serialization_test.rb +12 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c96ccd80aafb20085d1e9b30e35c0546542f1ef1
|
4
|
+
data.tar.gz: c383e6867d9e57d804bdb2d2134fad00a56b4250
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6c8d74bd5d0fa9754e3b30071a5c4e984235418cbd365d99537670b75c2ed091b62e9bd29112b92fc8abb9e076f1f6973657adddb56efa16d38b034775a07c44
|
7
|
+
data.tar.gz: 48b7d6a731e96eacf0eb477e9b7d334a157e17176da345450de705d2e4425e2d4c57381c7265499b9023171bcff579f0cc3d60f052414553c40f327d9230c7df
|
data/README.md
CHANGED
@@ -446,6 +446,23 @@ options = {
|
|
446
446
|
}
|
447
447
|
virtual_machine_service.create_virtual_machine(params,options)
|
448
448
|
|
449
|
+
#API usage to add new roles under cloud service creating VM. Example is an Ubuntu 14.04 VM with CustomData
|
450
|
+
params = {
|
451
|
+
:vm_name => 'vm_name',
|
452
|
+
:cloud_service_name => 'cloud_service_name',
|
453
|
+
:vm_user => 'azureuser',
|
454
|
+
:image => 'b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-14_04-LTS-amd64-server-20140724-en-us-30GB',
|
455
|
+
:password => 'ComplexPassword',
|
456
|
+
}
|
457
|
+
options = {
|
458
|
+
:storage_account_name => 'storage',
|
459
|
+
:private_key_file => '/home/data/private_key.key', #required for ssh
|
460
|
+
:certificate_file => '/home/data/pub_key.pem', #required for ssh
|
461
|
+
:vm_size => 'Small', #valid choices are (ExtraSmall Small Medium Large ExtraLarge A5 A6 A7 Basic_A0 Basic_A1 Basic_A2 Basic_A3 Basic_A4)
|
462
|
+
:custom_data => "#!/bin/sh\n\necho \"this is a shell script\" > /tmp/output\n",
|
463
|
+
}
|
464
|
+
virtual_machine_service.add_role(params, options)
|
465
|
+
|
449
466
|
#API usage to add new roles under cloud service creating VM
|
450
467
|
#API add_role create multiple roles under the same cloud service. Atleast a single deployment should be created under a hosted service.
|
451
468
|
params = {
|
data/lib/azure/version.rb
CHANGED
@@ -17,7 +17,7 @@ module Azure
|
|
17
17
|
class Version
|
18
18
|
MAJOR = 0 unless defined? MAJOR
|
19
19
|
MINOR = 6 unless defined? MINOR
|
20
|
-
UPDATE =
|
20
|
+
UPDATE = 6 unless defined? UPDATE
|
21
21
|
PRE = nil unless defined? PRE
|
22
22
|
|
23
23
|
class << self
|
@@ -28,4 +28,4 @@ module Azure
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
end
|
31
|
-
end
|
31
|
+
end
|
@@ -148,6 +148,7 @@ module Azure
|
|
148
148
|
end
|
149
149
|
end
|
150
150
|
end
|
151
|
+
add_custom_data(xml, options)
|
151
152
|
end
|
152
153
|
elsif options[:os_type] == 'Windows'
|
153
154
|
xml.ConfigurationSet('i:type' => 'WindowsProvisioningConfigurationSet') do
|
@@ -174,10 +175,21 @@ module Azure
|
|
174
175
|
end
|
175
176
|
end
|
176
177
|
xml.AdminUsername params[:vm_user]
|
178
|
+
add_custom_data(xml, options)
|
177
179
|
end
|
178
180
|
end
|
179
181
|
end
|
180
182
|
|
183
|
+
def self.add_custom_data(xml, options)
|
184
|
+
if options[:custom_data]
|
185
|
+
custom_data = options[:custom_data]
|
186
|
+
unless custom_data.chomp[/==$/]
|
187
|
+
custom_data = Base64.encode64(custom_data)
|
188
|
+
end
|
189
|
+
xml.CustomData custom_data
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
181
193
|
def self.default_endpoints_to_xml(xml, options)
|
182
194
|
os_type = options[:os_type]
|
183
195
|
used_ports = options[:existing_ports]
|
@@ -79,6 +79,7 @@ module Azure
|
|
79
79
|
# * +:storage_account_name+ - String. Name of storage account.
|
80
80
|
# * +:cloud_service_name+ - String. Name of cloud service.
|
81
81
|
# * +:deployment_name+ - String. A name for the deployment.
|
82
|
+
# * +:custom_data+ - String. Your custom data for the virtual machine. It will be base64 encoded as required. Cannot be longer than 64kb or Azure will reject it
|
82
83
|
# * +:tcp_endpoints+ - String. Specifies the internal port and external/public port separated by a colon.
|
83
84
|
# You can map multiple internal and external ports by separating them with a comma.
|
84
85
|
# * +:ssh_private_key_file+ - String. Path of private key file.
|
@@ -53,6 +53,11 @@ kZS1mYWNlNSI+DQogICAgPEluc3RhbmNlcyBjb3VudD0iMSIgLz4NCiAgPC9Sb2xlPg0KPC9TZXJ2aWN
|
|
53
53
|
<OsVersion/>
|
54
54
|
<RoleType>PersistentVMRole</RoleType>
|
55
55
|
<ConfigurationSets>
|
56
|
+
<ConfigurationSet i:type="LinuxProvisioningConfigurationSet">
|
57
|
+
<ConfigurationSetType>LinuxProvisioningConfiguration</ConfigurationSetType>
|
58
|
+
<!-- Shell script: "#!/bin/sh\n\necho \"this is a shell script\" > /tmp/output\n" -->
|
59
|
+
<CustomData>IyEvYmluL3NoCgplY2hvICJ0aGlzIGlzIGEgc2hlbGwgc2NyaXB0IiA+IC90\nbXAvb3V0cHV0Cg==</CustomData>
|
60
|
+
</ConfigurationSet>
|
56
61
|
<ConfigurationSet i:type="NetworkConfigurationSet">
|
57
62
|
<ConfigurationSetType>NetworkConfiguration</ConfigurationSetType>
|
58
63
|
<InputEndpoints>
|
@@ -12,6 +12,7 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
#--------------------------------------------------------------------------
|
15
|
+
require 'base64'
|
15
16
|
require 'test_helper'
|
16
17
|
|
17
18
|
describe Azure::VirtualMachineManagement::Serialization do
|
@@ -19,6 +20,7 @@ describe Azure::VirtualMachineManagement::Serialization do
|
|
19
20
|
|
20
21
|
let(:vm_xml) { Nokogiri::XML(Fixtures['virtual_machine']) }
|
21
22
|
let(:csn) { 'cloud-service-1' }
|
23
|
+
CUSTOM_DATA = "#!/bin/sh\n\necho \"this is a shell script\" > /tmp/output\n"
|
22
24
|
|
23
25
|
describe '#virtual_machines_from_xml' do
|
24
26
|
|
@@ -123,6 +125,7 @@ describe Azure::VirtualMachineManagement::Serialization do
|
|
123
125
|
cloud_service_name: 'cloud-service-name',
|
124
126
|
tcp_endpoints: '80,3389:3390,85:85',
|
125
127
|
availability_set_name: 'aval-set',
|
128
|
+
custom_data: CUSTOM_DATA,
|
126
129
|
winrm_https_port: '5988',
|
127
130
|
winrm_transport: ['http','https']
|
128
131
|
}
|
@@ -173,6 +176,15 @@ describe Azure::VirtualMachineManagement::Serialization do
|
|
173
176
|
local_port: '5986'
|
174
177
|
)
|
175
178
|
end
|
179
|
+
|
180
|
+
it "returns an XML file with the CustomData encoded" do
|
181
|
+
params[:certificate] = {fingerprint: 'CFB8C256D2986559C630547F2D0'}
|
182
|
+
options[:os_type] = 'Linux'
|
183
|
+
result = subject.deployment_to_xml params, image, options
|
184
|
+
doc = Nokogiri::XML(result)
|
185
|
+
encoded_script = Base64.encode64(CUSTOM_DATA)
|
186
|
+
doc.css('Deployment RoleList Role ConfigurationSets ConfigurationSet CustomData').text.must_equal encoded_script
|
187
|
+
end
|
176
188
|
end
|
177
189
|
|
178
190
|
describe '#add_data_disk_to_xml' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: azurex
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Microsoft Corporation
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-08-
|
12
|
+
date: 2014-08-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|