Skip to content

Instantly share code, notes, and snippets.

@jbatalle
Last active December 7, 2016 15:33
Show Gist options
  • Select an option

  • Save jbatalle/57c8e859629e6fa807eb4edbe895e35b to your computer and use it in GitHub Desktop.

Select an option

Save jbatalle/57c8e859629e6fa807eb4edbe895e35b to your computer and use it in GitHub Desktop.
require 'csv'
require 'json'
require 'rest-client'
$i = 0
$num = 15
$url = "http://10.10.1.137:4000"
def remove_instance(id)
begin
response = RestClient.delete "#{$url}/ns-instances/#{id}"
rescue => e
end
#get status
count = 0
status = "DELETING"
while(status == "DELETING" || status == "ERROR_CREATING")
sleep(10)
begin
response = RestClient.get "#{$url}/ns-instances/#{id}"
rescue Errno::ECONNREFUSED
error = {"info" => "VIM unrechable."}
return
rescue => e
status = "DELETED"
break
end
instance = JSON.parse(response)
status = instance['status']
puts status
count = count +1
break if count > 40
end
end
#while $i < $num do
for i in 0..$num
sleep(10)
instantiation_info = {
:ns_id => "512ec7c1e4b0094ef1f54edc",
:callbackUrl => "https://httpbin.org/post",
:pop_id => 7,
:flavour => "basic"
}
begin
response = RestClient.post "#{$url}/ns-instances", instantiation_info.to_json, :content_type => :json
rescue => e
end
nsr = JSON.parse response
sleep(30)
begin
response = RestClient.get "#{$url}/ns-instances/#{nsr['id']}"
rescue => e
end
#get status
status = "CREATING"
instance = {}
count = 0
while(status != "INSTANTIATED" && status != "START" && status != "ERROR_CREATING")
sleep(10)
begin
response = RestClient.get "#{$url}/ns-instances/#{nsr['id']}"
rescue Errno::ECONNREFUSED
error = {"info" => "VIM unrechable."}
return
rescue => e
end
instance = JSON.parse(response)
status = instance['status']
puts status
count = count +1
break if count > 40
end
remove_instance(nsr['id']) if status == 'ERROR_CREATING'
next if status == 'ERROR_CREATING'
puts "sleep 150sec"
sleep(10)
begin
response = RestClient.get "#{$url}/ns-instances/#{nsr['id']}"
rescue => e
end
instance = JSON.parse(response)
puts instance['created_at']
puts instance['mapping_time']
puts instance['instantiation_start_time']
puts instance['instantiation_end_time']
puts instance['instantiation_netfloc_start_time']
puts instance['instantiation_netfloc_end_time']
mapping_time = (DateTime.parse(instance['mapping_time']).to_time.to_f*1000 - DateTime.parse(instance['created_at']).to_time.to_f*1000).to_s
instantiation_time = (DateTime.parse(instance['instantiation_end_time']).to_time.to_f*1000 - DateTime.parse(instance['instantiation_start_time']).to_time.to_f*1000).to_s
final_time = (DateTime.parse(instance['instantiation_end_time']).to_time.to_f*1000 - DateTime.parse(instance['created_at']).to_time.to_f*1000).to_s
netfloc_end = (DateTime.parse(instance['instantiation_netfloc_end_time']).to_time.to_f*1000 - DateTime.parse(instance['instantiation_netfloc_start_time']).to_time.to_f*1000).to_s
instantiation_time = instantiation_time - netfloc_end
CSV.open("data01.csv", "a+") do |csv|
csv << [mapping_time.to_i, instantiation_time.to_i, netfloc_end.to_i, final_time.to_i]
end
remove_instance(nsr['id'])
$i +=1
sleep(30)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment