lib/fog/azurerm/models/network/subnet.rb in fog-azure-rm-0.0.3 vs lib/fog/azurerm/models/network/subnet.rb in fog-azure-rm-0.0.4
- old
+ new
@@ -14,23 +14,43 @@
def self.parse(subnet)
hash = {}
hash['id'] = subnet['id']
hash['name'] = subnet['name']
- hash['resource_group'] = subnet['id'].split('/')[4]
- hash['virtual_network_name'] = subnet['id'].split('/')[8]
+ hash['resource_group'] = get_resource_group_from_id(subnet['id'])
+ hash['virtual_network_name'] = get_virtual_network_from_id(subnet['id'])
hash['address_prefix'] = subnet['properties']['addressPrefix']
+ hash['network_security_group_id'] = nil
hash['network_security_group_id'] = subnet['properties']['networkSecurityGroup']['id'] unless subnet['properties']['networkSecurityGroup'].nil?
+ hash['route_table_id'] = nil
hash['route_table_id'] = subnet['properties']['routeTable']['id'] unless subnet['properties']['routeTable'].nil?
hash['ip_configurations_ids'] = subnet['properties']['ipConfigurations'].map { |item| item['id'] } unless subnet['properties']['ipConfigurations'].nil?
hash
end
def save
- requires :name
- requires :resource_group
- requires :virtual_network_name
- subnet = service.create_subnet(resource_group, name, virtual_network_name, address_prefix)
+ requires :name, :resource_group, :virtual_network_name, :address_prefix
+ subnet = service.create_subnet(resource_group, name, virtual_network_name, address_prefix, network_security_group_id, route_table_id)
+ merge_attributes(Fog::Network::AzureRM::Subnet.parse(subnet))
+ end
+
+ def attach_network_security_group(network_security_group_id)
+ subnet = service.attach_network_security_group_to_subnet(resource_group, name, virtual_network_name, address_prefix, route_table_id, network_security_group_id)
+ merge_attributes(Fog::Network::AzureRM::Subnet.parse(subnet))
+ end
+
+ def detach_network_security_group
+ subnet = service.detach_network_security_group_from_subnet(resource_group, name, virtual_network_name, address_prefix, route_table_id)
+ merge_attributes(Fog::Network::AzureRM::Subnet.parse(subnet))
+ end
+
+ def attach_route_table(route_table_id)
+ subnet = service.attach_route_table_to_subnet(resource_group, name, virtual_network_name, address_prefix, network_security_group_id, route_table_id)
+ merge_attributes(Fog::Network::AzureRM::Subnet.parse(subnet))
+ end
+
+ def detach_route_table
+ subnet = service.detach_route_table_from_subnet(resource_group, name, virtual_network_name, address_prefix, network_security_group_id)
merge_attributes(Fog::Network::AzureRM::Subnet.parse(subnet))
end
def destroy
service.delete_subnet(resource_group, name, virtual_network_name)