lib/azure/armrest/network/network_interface_service.rb in azure-armrest-0.0.3 vs lib/azure/armrest/network/network_interface_service.rb in azure-armrest-0.0.4

- old
+ new

@@ -1,123 +1,16 @@ module Azure module Armrest module Network # Class for managing network interfaces. - class NetworkInterfaceService < ArmrestService + class NetworkInterfaceService < ResourceGroupBasedService # Creates and returns a new NetworkInterfaceService instance. # def initialize(_armrest_configuration, options = {}) super @provider = options[:provider] || 'Microsoft.Network' - set_service_api_version(options, 'networkInterfaces') - end - - # Return information for the given network interface card for the - # provided +resource_group+. If no group is specified, it will use the - # resource group set in the constructor. - # - # Example: - # - # nsg.get('your_interface', 'your_resource_group') - # - def get(interface, resource_group = armrest_configuration.resource_group) - raise ArgumentError, "must specify resource group" unless resource_group - url = build_url(resource_group, interface) - JSON.parse(rest_get(url)) - end - - # Returns a list of available network interfaces in the current subscription - # for the provided +resource_group+. - # - def list(resource_group = armrest_configuration.resource_group) - raise ArgumentError, "no resource group provided" unless resource_group - url = build_url(resource_group) - JSON.parse(rest_get(url))['value'] - end - - # List all network interfaces for the current subscription. - # - def list_all_for_subscription - sub_id = armrest_configuration.subscription_id - url = File.join(Azure::Armrest::COMMON_URI, sub_id, 'providers', @provider, 'networkInterfaces') - url << "?api-version=#{@api_version}" - JSON.parse(rest_get(url))['value'] - end - - alias list_all list_all_for_subscription - - # Delete the given network interface in +resource_group+. - # - def delete(interface, resource_group = armrest_configuration.resource_group) - raise ArgumentError, "must specify resource group" unless resource_group - - url = build_url(resource_group, interface) - response = rest_delete(url) - response.return! - end - - # Create a new network interface, or update an existing network interface if it - # already exists. The first argument is a hash of options. - # - # - :name # Mandatory - # - :location # Mandatory - # - :tags - # - :properties - # - :networkSecurityGroup - # - :id - # - :ipConfigurations - # [ - # - :name # Mandatory - # - :properties - # - :subnet - # - :id # Mandatory - # - :privateIPAddress - # - :privateIPAllocationMethod # Mandatory - # - :publicIPAddress - # - :id - # - :loadBalancerBackendAddressPools - # - :id - # - :loadBalancerInboundNatRules - # - :id - # ] - # - # - :dnsSettings - # - :dnsServers[ <ip1>, <ip2>, ... ] - # - # For convenience, you may also pass the :resource_group as a hash option. - # - def create(name, options, resource_group = armrest_configuration.resource_group) - resource_group = options.delete(:resource_group) || resource_group - - raise ArgumentError, "no resource group specified" unless resource_group - - body = options.to_json - - url = build_url(resource_group, name) - - response = rest_put(url, body) - response.return! - end - - alias update create - - private - - # Builds a URL based on subscription_id an resource_group and any other - # arguments provided, and appends it with the api-version. - def build_url(resource_group, *args) - url = File.join( - Azure::Armrest::COMMON_URI, - armrest_configuration.subscription_id, - 'resourceGroups', - resource_group, - 'providers', - @provider, - 'networkInterfaces', - ) - - url = File.join(url, *args) unless args.empty? - url << "?api-version=#{@api_version}" + @service_name = 'networkInterfaces' + set_service_api_version(options, @service_name) end end end # Network end # Armrest end # Azure