Skip to content
This repository was archived by the owner on Jan 11, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
112 changes: 109 additions & 3 deletions management/azure_mgmt_cdn/lib/generated/azure_mgmt_cdn/edge_nodes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@ def initialize(client)
# @param custom_headers [Hash{String => String}] A hash of custom headers that
# will be added to the HTTP request.
#
# @return [EdgenodeResult] operation results.
# @return [Array<EdgeNode>] operation results.
#
def list(custom_headers = nil)
response = list_async(custom_headers).value!
response.body unless response.nil?
first_page = list_as_lazy(custom_headers)
first_page.get_all_items
end

#
Expand Down Expand Up @@ -105,5 +105,111 @@ def list_async(custom_headers = nil)
promise.execute
end

#
# Lists all the edge nodes of a CDN service.
#
# @param next_page_link [String] The NextLink from the previous successful call
# to List operation.
# @param custom_headers [Hash{String => String}] A hash of custom headers that
# will be added to the HTTP request.
#
# @return [EdgenodeResult] operation results.
#
def list_next(next_page_link, custom_headers = nil)
response = list_next_async(next_page_link, custom_headers).value!
response.body unless response.nil?
end

#
# Lists all the edge nodes of a CDN service.
#
# @param next_page_link [String] The NextLink from the previous successful call
# to List operation.
# @param custom_headers [Hash{String => String}] A hash of custom headers that
# will be added to the HTTP request.
#
# @return [MsRestAzure::AzureOperationResponse] HTTP response information.
#
def list_next_with_http_info(next_page_link, custom_headers = nil)
list_next_async(next_page_link, custom_headers).value!
end

#
# Lists all the edge nodes of a CDN service.
#
# @param next_page_link [String] The NextLink from the previous successful call
# to List operation.
# @param [Hash{String => String}] A hash of custom headers that will be added
# to the HTTP request.
#
# @return [Concurrent::Promise] Promise object which holds the HTTP response.
#
def list_next_async(next_page_link, custom_headers = nil)
fail ArgumentError, 'next_page_link is nil' if next_page_link.nil?


request_headers = {}

# Set Headers
request_headers['x-ms-client-request-id'] = SecureRandom.uuid
request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
path_template = '{nextLink}'

request_url = @base_url || @client.base_url

options = {
middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
skip_encoding_path_params: {'nextLink' => next_page_link},
headers: request_headers.merge(custom_headers || {}),
base_url: request_url
}
promise = @client.make_request_async(:get, path_template, options)

promise = promise.then do |result|
http_response = result.response
status_code = http_response.status
response_content = http_response.body
unless status_code == 200
error_model = JSON.load(response_content)
fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
end

result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
# Deserialize Response
if status_code == 200
begin
parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
result_mapper = EdgenodeResult.mapper()
result.body = @client.deserialize(result_mapper, parsed_response, 'result.body')
rescue Exception => e
fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
end
end

result
end

promise.execute
end

#
# Lists all the edge nodes of a CDN service.
#
# @param custom_headers [Hash{String => String}] A hash of custom headers that
# will be added to the HTTP request.
#
# @return [EdgenodeResult] which provide lazy access to pages of the response.
#
def list_as_lazy(custom_headers = nil)
response = list_async(custom_headers).value!
unless response.nil?
page = response.body
page.next_method = Proc.new do |next_page_link|
list_next_async(next_page_link, custom_headers)
end
page
end
end

end
end
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,41 @@ class EdgenodeResult
# @return [Array<EdgeNode>] Edge node of CDN service.
attr_accessor :value

# @return [String] URL to get the next set of edgenode list results if
# there are any.
attr_accessor :next_link

# return [Proc] with next page method call.
attr_accessor :next_method

#
# Gets the rest of the items for the request, enabling auto-pagination.
#
# @return [Array<EdgeNode>] operation results.
#
def get_all_items
items = @value
page = self
while page.next_link != nil do
page = page.get_next_page
items.concat(page.value)
end
items
end

#
# Gets the next page of results.
#
# @return [EdgenodeResult] with next page content.
#
def get_next_page
response = @next_method.call(@next_link).value! unless @next_method.nil?
unless response.nil?
@next_link = response.body.next_link
@value = response.body.value
self
end
end

#
# Mapper for EdgenodeResult class as Ruby Hash.
Expand Down Expand Up @@ -43,6 +78,13 @@ def self.mapper()
}
}
}
},
next_link: {
required: false,
serialized_name: 'nextLink',
type: {
name: 'String'
}
}
}
}
Expand Down