far-gem 0.5.2 → 0.5.3
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/.travis.yml +2 -2
- data/CHANGELOG.md +12 -0
- data/README.md +1 -2
- data/lib/fog/azurerm/models/network/network_interface.rb +8 -3
- data/lib/fog/azurerm/models/network/network_interfaces.rb +6 -0
- data/lib/fog/azurerm/requests/network/create_or_update_network_interface.rb +8 -4
- data/lib/fog/azurerm/requests/network/list_network_security_groups.rb +1 -1
- data/lib/fog/azurerm/version.rb +1 -1
- data/test/integration/network_interface.rb +44 -0
- data/test/requests/network/test_create_network_interface.rb +24 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dcecddee6c2360a57c402ccf6a5c5fbe9c3c7abe4eb5bb3163ebe3f5dff5fbd5
|
4
|
+
data.tar.gz: d66b438123d797a6110a6a8d1d054c566b55f1c7b3ea7f49a5ff49a74890ce2d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 58f2a4d87c61db6eda608184932db4d4e71f2d027e710c2b24dc738ec700fde1c585f41ee322446622ab03ffadf4de234345085d8ae54c5eff34b62fcf83882b
|
7
|
+
data.tar.gz: 43632992ea303726e1b6c2b9482f6a9b2b8150390db9f8b1dc4d7d31c796277cd5e3485f53fc98c77a682c206233212aa25b340674cf2639c7ba3e0f4a74f380
|
data/.travis.yml
CHANGED
@@ -2,8 +2,8 @@ language: ruby
|
|
2
2
|
sudo: false
|
3
3
|
|
4
4
|
before_install:
|
5
|
-
- gem
|
6
|
-
- gem
|
5
|
+
- gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler || true
|
6
|
+
- gem install bundler -v '< 2'
|
7
7
|
- gem uninstall -aIx nokogiri -i /home/travis/.rvm/gems/ruby-2.4.1@global nokogiri
|
8
8
|
|
9
9
|
script: bash ./rake-script.sh
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
## 0.4.9
|
2
|
+
|
3
|
+
**Added**
|
4
|
+
- Current Ruby versions added in .travis.yml for testing
|
5
|
+
- Asynchronous deletion of Managed Disk added
|
6
|
+
|
7
|
+
**Changed**
|
8
|
+
|
9
|
+
- List method which handles pagination by default has been updated for Network Security Group.
|
10
|
+
- .travis.yml updated to handle bundler gem dependency on Ruby 2.3+
|
11
|
+
- Mocks for Azure::Blobs updated
|
12
|
+
|
1
13
|
## 0.4.8
|
2
14
|
|
3
15
|
**Added:**
|
data/README.md
CHANGED
@@ -1,9 +1,8 @@
|
|
1
1
|
[](https://badge.fury.io/rb/fog-azure-rm)
|
2
2
|
[](https://travis-ci.org/fog/fog-azure-rm)
|
3
|
-
[](https://hakiri.io/github/fog/fog-azure-rm/master)
|
4
4
|
[](https://codeclimate.com/github/fog/fog-azure-rm/coverage)
|
5
5
|
[](https://codeclimate.com/github/fog/fog-azure-rm)
|
6
|
-
[](http://waffle.io/fog/fog-azure-rm)
|
7
6
|
|
8
7
|
# Fog Azure Resource Manager
|
9
8
|
|
@@ -59,15 +59,20 @@ module Fog
|
|
59
59
|
hash
|
60
60
|
end
|
61
61
|
|
62
|
-
def save
|
62
|
+
def save(async = false)
|
63
63
|
requires :name
|
64
64
|
requires :location
|
65
65
|
requires :resource_group
|
66
66
|
requires :subnet_id
|
67
67
|
requires :ip_configuration_name
|
68
68
|
requires :private_ip_allocation_method
|
69
|
-
|
70
|
-
|
69
|
+
|
70
|
+
if async
|
71
|
+
service.create_or_update_network_interface(resource_group, name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_configuration_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags, enable_accelerated_networking, true)
|
72
|
+
else
|
73
|
+
nic = service.create_or_update_network_interface(resource_group, name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_configuration_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags, enable_accelerated_networking, false)
|
74
|
+
merge_attributes(Fog::Network::AzureRM::NetworkInterface.parse(nic))
|
75
|
+
end
|
71
76
|
end
|
72
77
|
|
73
78
|
def update(updated_attributes = {})
|
@@ -15,6 +15,12 @@ module Fog
|
|
15
15
|
load(network_interfaces)
|
16
16
|
end
|
17
17
|
|
18
|
+
def create_async(attributes = {})
|
19
|
+
network_interface = new(attributes)
|
20
|
+
promise = network_interface.save(true)
|
21
|
+
Fog::AzureRM::AsyncResponse.new(network_interface, promise)
|
22
|
+
end
|
23
|
+
|
18
24
|
def get(resource_group_name, name)
|
19
25
|
network_interface_card = service.get_network_interface(resource_group_name, name)
|
20
26
|
network_interface_card_fog = Fog::Network::AzureRM::NetworkInterface.new(service: service)
|
@@ -4,17 +4,21 @@ module Fog
|
|
4
4
|
class AzureRM
|
5
5
|
# Real class for Network Request
|
6
6
|
class Real
|
7
|
-
def create_or_update_network_interface(resource_group_name, name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags, enable_accelerated_networking = false)
|
7
|
+
def create_or_update_network_interface(resource_group_name, name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags, enable_accelerated_networking = false, async = false)
|
8
8
|
msg = "Creating/Updating Network Interface Card: #{name}"
|
9
9
|
Fog::Logger.debug msg
|
10
10
|
network_interface = get_network_interface_object(name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags, enable_accelerated_networking)
|
11
11
|
begin
|
12
|
-
|
12
|
+
nic_response = if async
|
13
|
+
@network_client.network_interfaces.create_or_update_async(resource_group_name, name, network_interface)
|
14
|
+
else
|
15
|
+
@network_client.network_interfaces.create_or_update(resource_group_name, name, network_interface)
|
16
|
+
end
|
13
17
|
rescue MsRestAzure::AzureOperationError => e
|
14
18
|
raise_azure_exception(e, msg)
|
15
19
|
end
|
16
|
-
Fog::Logger.debug "Network Interface #{name} created/updated successfully."
|
17
|
-
|
20
|
+
Fog::Logger.debug "Network Interface #{name} created/updated successfully." unless async
|
21
|
+
nic_response
|
18
22
|
end
|
19
23
|
|
20
24
|
private
|
@@ -21,7 +21,7 @@ module Fog
|
|
21
21
|
# Mock class for Network Request
|
22
22
|
class Mock
|
23
23
|
def list_network_security_groups(resource_group)
|
24
|
-
|
24
|
+
[
|
25
25
|
{
|
26
26
|
'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup",
|
27
27
|
'name' => 'testGroup',
|
data/lib/fog/azurerm/version.rb
CHANGED
@@ -67,6 +67,13 @@ begin
|
|
67
67
|
public_ip_allocation_method: 'Dynamic'
|
68
68
|
)
|
69
69
|
|
70
|
+
network.public_ips.create(
|
71
|
+
name: 'mypubip2',
|
72
|
+
resource_group: 'TestRG-NI',
|
73
|
+
location: LOCATION,
|
74
|
+
public_ip_allocation_method: 'Dynamic'
|
75
|
+
)
|
76
|
+
|
70
77
|
nsg = network.network_security_groups.create(
|
71
78
|
name: 'test_nsg',
|
72
79
|
resource_group: 'TestRG-NI',
|
@@ -112,6 +119,40 @@ begin
|
|
112
119
|
)
|
113
120
|
puts "Created network interface: #{network_interface.name}"
|
114
121
|
|
122
|
+
########################################################################################################################
|
123
|
+
###################### Create Network Interface Async ######################
|
124
|
+
########################################################################################################################
|
125
|
+
|
126
|
+
async_response = network.network_interfaces.create_async(
|
127
|
+
name: 'NetInt_Async',
|
128
|
+
resource_group: 'TestRG-NI',
|
129
|
+
location: LOCATION,
|
130
|
+
network_security_group_id: nsg.id,
|
131
|
+
subnet_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/TestRG-NI/providers/Microsoft.Network/virtualNetworks/testVnet/subnets/mysubnet",
|
132
|
+
public_ip_address_id: "/subscriptions/#{azure_credentials['subscription_id']}/resourceGroups/TestRG-NI/providers/Microsoft.Network/publicIPAddresses/mypubip2",
|
133
|
+
ip_configuration_name: 'testIpConfiguration',
|
134
|
+
private_ip_allocation_method: 'Dynamic',
|
135
|
+
tags: { key: 'value' },
|
136
|
+
enable_accelerated_networking: true
|
137
|
+
)
|
138
|
+
|
139
|
+
loop do
|
140
|
+
if async_response.pending?
|
141
|
+
sleep(2)
|
142
|
+
print '.'
|
143
|
+
end
|
144
|
+
|
145
|
+
if async_response.fulfilled?
|
146
|
+
puts "\nCreated/Updated NIC asynchronously! [#{async_response.value.name}]"
|
147
|
+
break
|
148
|
+
end
|
149
|
+
|
150
|
+
if async_response.rejected?
|
151
|
+
puts "\nERROR: Async NIC creation failed!\n#{async_response.reason.inspect}"
|
152
|
+
break
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
115
156
|
########################################################################################################################
|
116
157
|
###################### Get Network Interface and Update Resources ######################
|
117
158
|
########################################################################################################################
|
@@ -143,6 +184,9 @@ begin
|
|
143
184
|
|
144
185
|
puts "Deleted network interface: #{nic.destroy}"
|
145
186
|
|
187
|
+
nic_async = network.network_interfaces.get('TestRG-NI', 'NetInt_Async')
|
188
|
+
puts "Deleted network interface: #{nic_async.destroy}"
|
189
|
+
|
146
190
|
pubip = network.public_ips.get('TestRG-NI', 'mypubip')
|
147
191
|
pubip.destroy
|
148
192
|
|
@@ -14,6 +14,11 @@ class TestCreateNetworkInterface < Minitest::Test
|
|
14
14
|
@network_interfaces.stub :create_or_update, mocked_response do
|
15
15
|
assert_equal @service.create_or_update_network_interface('fog-test-rg', 'fog-test-network-interface', 'West US', 'fog-test-subnet-id', 'fog-test-ip-address-id', 'fog-test-nsg-id', 'fog-test-ip-configuration', 'Dynamic', '10.0.0.8', ['id-1', 'id-2'], ['id-1', 'id-2'], @tags), mocked_response
|
16
16
|
end
|
17
|
+
|
18
|
+
# Async
|
19
|
+
@network_interfaces.stub :create_or_update_async, mocked_response do
|
20
|
+
assert_equal @service.create_or_update_network_interface('fog-test-rg', 'fog-test-network-interface', 'West US', 'fog-test-subnet-id', 'fog-test-ip-address-id', 'fog-test-nsg-id', 'fog-test-ip-configuration', 'Dynamic', '10.0.0.8', ['id-1', 'id-2'], ['id-1', 'id-2'], @tags, false, true), mocked_response
|
21
|
+
end
|
17
22
|
end
|
18
23
|
|
19
24
|
def test_create_network_interface_without_public_ip_success
|
@@ -21,6 +26,11 @@ class TestCreateNetworkInterface < Minitest::Test
|
|
21
26
|
@network_interfaces.stub :create_or_update, mocked_response do
|
22
27
|
assert_equal @service.create_or_update_network_interface('fog-test-rg', 'fog-test-network-interface', 'West US', 'fog-test-subnet-id', nil, 'fog-test-nsg-id', 'fog-test-ip-configuration', 'Dynamic', '10.0.0.8', ['id-1', 'id-2'], ['id-1', 'id-2'], @tags), mocked_response
|
23
28
|
end
|
29
|
+
|
30
|
+
# Async
|
31
|
+
@network_interfaces.stub :create_or_update_async, mocked_response do
|
32
|
+
assert_equal @service.create_or_update_network_interface('fog-test-rg', 'fog-test-network-interface', 'West US', 'fog-test-subnet-id', nil, 'fog-test-nsg-id', 'fog-test-ip-configuration', 'Dynamic', '10.0.0.8', ['id-1', 'id-2'], ['id-1', 'id-2'], @tags, false, true), mocked_response
|
33
|
+
end
|
24
34
|
end
|
25
35
|
|
26
36
|
def test_create_network_interface_argument_error_failure
|
@@ -30,6 +40,13 @@ class TestCreateNetworkInterface < Minitest::Test
|
|
30
40
|
@service.create_or_update_network_interface('fog-test-rg', 'fog-test-network-interface', 'West US', 'fog-test-subnet-id', 'fog-test-ip-address-id', 'fog-test-nsg-id', 'fog-test-ip-configuration', ['id-1', 'id-2'], ['id-1', 'id-2'])
|
31
41
|
end
|
32
42
|
end
|
43
|
+
|
44
|
+
# Async
|
45
|
+
@network_interfaces.stub :create_or_update_async, response do
|
46
|
+
assert_raises ArgumentError do
|
47
|
+
@service.create_or_update_network_interface('fog-test-rg', 'fog-test-network-interface', 'West US', 'fog-test-subnet-id', 'fog-test-ip-address-id', 'fog-test-nsg-id', 'fog-test-ip-configuration', ['id-1', 'id-2'], ['id-1', 'id-2'], false, true)
|
48
|
+
end
|
49
|
+
end
|
33
50
|
end
|
34
51
|
|
35
52
|
def test_create_network_interface_exception_failure
|
@@ -39,5 +56,12 @@ class TestCreateNetworkInterface < Minitest::Test
|
|
39
56
|
@service.create_or_update_network_interface('fog-test-rg', 'fog-test-network-interface', 'West US', 'fog-test-subnet-id', 'fog-test-ip-address-id', 'fog-test-nsg-id', 'fog-test-ip-configuration', 'Dynamic', '10.0.0.8', ['id-1', 'id-2'], ['id-1', 'id-2'], @tags)
|
40
57
|
end
|
41
58
|
end
|
59
|
+
|
60
|
+
# Async
|
61
|
+
@network_interfaces.stub :create_or_update_async, response do
|
62
|
+
assert_raises MsRestAzure::AzureOperationError do
|
63
|
+
@service.create_or_update_network_interface('fog-test-rg', 'fog-test-network-interface', 'West US', 'fog-test-subnet-id', 'fog-test-ip-address-id', 'fog-test-nsg-id', 'fog-test-ip-configuration', 'Dynamic', '10.0.0.8', ['id-1', 'id-2'], ['id-1', 'id-2'], @tags, false, true)
|
64
|
+
end
|
65
|
+
end
|
42
66
|
end
|
43
67
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: far-gem
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shaffan Chaudhry
|
@@ -18,7 +18,7 @@ authors:
|
|
18
18
|
autorequire:
|
19
19
|
bindir: bin
|
20
20
|
cert_chain: []
|
21
|
-
date: 2019-
|
21
|
+
date: 2019-02-25 00:00:00.000000000 Z
|
22
22
|
dependencies:
|
23
23
|
- !ruby/object:Gem::Dependency
|
24
24
|
name: rake
|