Skip to content

Instantly share code, notes, and snippets.

@yasuhito
Created February 29, 2016 05:09
Show Gist options
  • Save yasuhito/d7c081a01612cf85a57d to your computer and use it in GitHub Desktop.
Save yasuhito/d7c081a01612cf85a57d to your computer and use it in GitHub Desktop.
/home/yasuhito/.rvm/rubies/ruby-2.1.8/bin/ruby -I/home/yasuhito/.rvm/gems/ruby-2.1.8/gems/rspec-core-3.2.3/lib:/home/yasuhito/.rvm/gems/ruby-2.1.8/gems/rspec-support-3.2.2/lib /home/yasuhito/.rvm/gems/ruby-2.1.8/gems/rspec-core-3.2.3/exe/rspec --pattern spec/\*\*\{,/\*/\*\*\}/\*_spec.rb
You are using HTTP Gem 0.5.1. WebMock supports version >= 0.6.0.
[Coveralls] Set up the SimpleCov formatter.
[Coveralls] Using SimpleCov's default settings.
/home/yasuhito/.rvm/gems/ruby-2.1.8/gems/sinatra-contrib-1.4.4/lib/sinatra/respond_with.rb:4: warning: variable $KCODE is no longer effective; ignored
Run options: include {:focus=>true}
All examples were filtered out; ignoring {:focus=>true}
VNetAPIClient
has implemented and tested all routes in the OpenVNet WebAPI
Datapath
exists
#create
makes a POST request to '/datapaths'
#index
makes a GET request to '/datapaths'
#show
makes a GET request to '/datapaths/:uuid'
#delete
makes a DELETE request to '/datapaths/:uuid'
#update
makes a PUT request to '/datapaths/:uuid'
#add_network
makes a POST request to '/datapaths/:uuid/networks/:network_uuid'
#show_networks
makes a GET request to '/datapaths/:uuid/networks'
#remove_network
makes a DELETE request to '/datapaths/:uuid/networks/:network_uuid'
#add_route_link
makes a POST request to '/datapaths/:uuid/route_links/:route_link_uuid'
#show_route_links
makes a GET request to '/datapaths/:uuid/route_links'
#remove_route_link
makes a DELETE request to '/datapaths/:uuid/route_links/:route_link_uuid'
DnsService
exists
#create
makes a POST request to '/dns_services'
#index
makes a GET request to '/dns_services'
#show
makes a GET request to '/dns_services/:uuid'
#delete
makes a DELETE request to '/dns_services/:uuid'
#update
makes a PUT request to '/dns_services/:uuid'
#show_dns_records
makes a GET request to '/dns_services/:uuid/dns_records'
#remove_dns_record
makes a DELETE request to '/dns_services/:uuid/dns_records/:dns_record_uuid'
Filter
exists
#create
makes a POST request to '/filters'
#index
makes a GET request to '/filters'
#show
makes a GET request to '/filters/:uuid'
#delete
makes a DELETE request to '/filters/:uuid'
#update
makes a PUT request to '/filters/:uuid'
Interface
exists
#create
makes a POST request to '/interfaces'
#index
makes a GET request to '/interfaces'
#show
makes a GET request to '/interfaces/:uuid'
#delete
makes a DELETE request to '/interfaces/:uuid'
#update
makes a PUT request to '/interfaces/:uuid'
#show_ports
makes a GET request to '/interfaces/:uuid/ports'
#add_security_group
makes a POST request to '/interfaces/:uuid/security_groups/:security_group_uuid'
#show_security_groups
makes a GET request to '/interfaces/:uuid/security_groups'
#remove_security_group
makes a DELETE request to '/interfaces/:uuid/security_groups/:security_group_uuid'
IpLease
exists
#create
makes a POST request to '/ip_leases'
#index
makes a GET request to '/ip_leases'
#show
makes a GET request to '/ip_leases/:uuid'
#delete
makes a DELETE request to '/ip_leases/:uuid'
#update
makes a PUT request to '/ip_leases/:uuid'
IpRangeGroup
exists
#create
makes a POST request to '/ip_range_groups'
#index
makes a GET request to '/ip_range_groups'
#show
makes a GET request to '/ip_range_groups/:uuid'
#delete
makes a DELETE request to '/ip_range_groups/:uuid'
#update
makes a PUT request to '/ip_range_groups/:uuid'
#show_ip_ranges
makes a GET request to '/ip_range_groups/:uuid/ip_ranges'
#remove_ip_range
makes a DELETE request to '/ip_range_groups/:uuid/ip_ranges/:ip_range_uuid'
IpLeaseContainer
exists
#create
makes a POST request to '/ip_lease_containers'
#index
makes a GET request to '/ip_lease_containers'
#show
makes a GET request to '/ip_lease_containers/:uuid'
#delete
makes a DELETE request to '/ip_lease_containers/:uuid'
#update
makes a PUT request to '/ip_lease_containers/:uuid'
#show_ip_leases
makes a GET request to '/ip_lease_containers/:uuid/ip_leases'
IpRetentionContainer
exists
#create
makes a POST request to '/ip_retention_containers'
#index
makes a GET request to '/ip_retention_containers'
#show
makes a GET request to '/ip_retention_containers/:uuid'
#delete
makes a DELETE request to '/ip_retention_containers/:uuid'
#update
makes a PUT request to '/ip_retention_containers/:uuid'
#show_ip_retentions
makes a GET request to '/ip_retention_containers/:uuid/ip_retentions'
LeasePolicy
exists
#create
makes a POST request to '/lease_policies'
#index
makes a GET request to '/lease_policies'
#show
makes a GET request to '/lease_policies/:uuid'
#delete
makes a DELETE request to '/lease_policies/:uuid'
#update
makes a PUT request to '/lease_policies/:uuid'
#add_network
makes a POST request to '/lease_policies/:uuid/networks/:network_uuid'
#show_networks
makes a GET request to '/lease_policies/:uuid/networks'
#remove_network
makes a DELETE request to '/lease_policies/:uuid/networks/:network_uuid'
#add_interface
makes a POST request to '/lease_policies/:uuid/interfaces/:interface_uuid'
#show_interfaces
makes a GET request to '/lease_policies/:uuid/interfaces'
#remove_interface
makes a DELETE request to '/lease_policies/:uuid/interfaces/:interface_uuid'
#add_ip_lease_container
makes a POST request to '/lease_policies/:uuid/ip_lease_containers/:ip_lease_container_uuid'
#show_ip_lease_containers
makes a GET request to '/lease_policies/:uuid/ip_lease_containers'
#remove_ip_lease_container
makes a DELETE request to '/lease_policies/:uuid/ip_lease_containers/:ip_lease_container_uuid'
#add_ip_retention_container
makes a POST request to '/lease_policies/:uuid/ip_retention_containers/:ip_retention_container_uuid'
#show_ip_retention_containers
makes a GET request to '/lease_policies/:uuid/ip_retention_containers'
#remove_ip_retention_container
makes a DELETE request to '/lease_policies/:uuid/ip_retention_containers/:ip_retention_container_uuid'
MacLease
exists
#create
makes a POST request to '/mac_leases'
#index
makes a GET request to '/mac_leases'
#show
makes a GET request to '/mac_leases/:uuid'
#delete
makes a DELETE request to '/mac_leases/:uuid'
#update
makes a PUT request to '/mac_leases/:uuid'
MacRangeGroup
exists
#create
makes a POST request to '/mac_range_groups'
#index
makes a GET request to '/mac_range_groups'
#show
makes a GET request to '/mac_range_groups/:uuid'
#delete
makes a DELETE request to '/mac_range_groups/:uuid'
#update
makes a PUT request to '/mac_range_groups/:uuid'
#show_mac_ranges
makes a GET request to '/mac_range_groups/:uuid/mac_ranges'
#remove_mac_range
makes a DELETE request to '/mac_range_groups/:uuid/mac_ranges/:mac_range_uuid'
Network
exists
#create
makes a POST request to '/networks'
#index
makes a GET request to '/networks'
#show
makes a GET request to '/networks/:uuid'
#delete
makes a DELETE request to '/networks/:uuid'
#update
makes a PUT request to '/networks/:uuid'
NetworkService
exists
#create
makes a POST request to '/network_services'
#index
makes a GET request to '/network_services'
#show
makes a GET request to '/network_services/:uuid'
#delete
makes a DELETE request to '/network_services/:uuid'
#update
makes a PUT request to '/network_services/:uuid'
Route
exists
#create
makes a POST request to '/routes'
#index
makes a GET request to '/routes'
#show
makes a GET request to '/routes/:uuid'
#delete
makes a DELETE request to '/routes/:uuid'
#update
makes a PUT request to '/routes/:uuid'
RouteLink
exists
#create
makes a POST request to '/route_links'
#index
makes a GET request to '/route_links'
#show
makes a GET request to '/route_links/:uuid'
#delete
makes a DELETE request to '/route_links/:uuid'
#update
makes a PUT request to '/route_links/:uuid'
SecurityGroup
exists
#create
makes a POST request to '/security_groups'
#index
makes a GET request to '/security_groups'
#show
makes a GET request to '/security_groups/:uuid'
#delete
makes a DELETE request to '/security_groups/:uuid'
#update
makes a PUT request to '/security_groups/:uuid'
#add_interface
makes a POST request to '/security_groups/:uuid/interfaces/:interface_uuid'
#show_interfaces
makes a GET request to '/security_groups/:uuid/interfaces'
#remove_interface
makes a DELETE request to '/security_groups/:uuid/interfaces/:interface_uuid'
Translation
exists
#create
makes a POST request to '/translations'
#index
makes a GET request to '/translations'
#show
makes a GET request to '/translations/:uuid'
#delete
makes a DELETE request to '/translations/:uuid'
#update
makes a PUT request to '/translations/:uuid'
VlanTranslation
exists
#create
makes a POST request to '/vlan_translations'
#index
makes a GET request to '/vlan_translations'
#show
makes a GET request to '/vlan_translations/:uuid'
#delete
makes a DELETE request to '/vlan_translations/:uuid'
#update
makes a PUT request to '/vlan_translations/:uuid'
VNetAPIClient::DnsService
#add_dns_record
makes a POST request to '/dns_services/:dns_service_uuid/dns_records'
VNetAPIClient::Interface
#rename
makes a PUT request to '/interfaces/:uuid/rename'
#add_port
makes a POST request to '/interfaces/:uuid/ports'
#remove_port
makes a DELETE request to '/interfaces/:uuid/ports'
VNetAPIClient::IpRangeGroup
#add_range
makes a POST request to '/ip_range_groups/:ip_range_group_uuid/ip_ranges'
VNetAPIClient::LeasePolicy
#add_lease
makes a POST request to '/lease_policies/:uuid/ip_leases'
VNetAPIClient::MacRangeGroup
#add_range
makes a POST request to '/mac_range_groups/:mac_range_group_uuid/mac_ranges'
VNetAPIClient::Translation
#add_static_address
makes a POST request to '/translations/:uuid/static_address'
#remove_static_address
makes a DELETE request to '/translations/:uuid/static_address'
VNetAPIClient::Filter
#add_filter_static
makes a POST request to '/filters/:uuid/static'
#remove_filter_static
makes a DELETE request to '/filters/:uuid/static'
#show_filter_static
makes a GET request to '/filters/static/'
#show_filter_static_by_uuid
makes a GET request to '/filters/static/:uuid'
Sequel::Plugins::IpAddress
create
ip_address invalid
should equal false
should equal true
ip_address association
should be exists
should not be nil
ipv4_address
should eq 3232235778
should eq 3232235778
should eq 3232235778
should eq 3232235778
network
should eq 1
should eq 1
should eq 1
should eq 1
mac_lease
should eq 1
should eq 1
should eq 1
should eq 1
interface
should eq 1
should eq 1
should eq 1
update
ip_address association
should be exists
should not be nil
ipv4_address
should eq 3232235779
should eq 3232235779
should eq 3232235779
network
should eq 2
should eq 2
should eq 2
should eq 2
mac_lease
should eq 2
should eq 3
should eq 2
should eq 2
interface
should eq 3
should eq 3
should eq 3
destroy
also destroy associated ip_address model
Sequel::Plugins::MacAddress
with attr_name
create
should eq #<MacAddr:0x000000021334e8 @addr_s="00:00:00:00:00:01", @addr_i=1>
should eq #<MacAddr:0x000000031d1a98 @addr_s="00:00:00:00:00:01", @addr_i=1>
should be exists
should eq 1
should eq #<MacAddr:0x00000003f73de0 @addr_s="00:00:00:00:00:01", @addr_i=1>
update
should eq #<MacAddr:0x000000040fed68 @addr_s="00:00:00:00:00:02", @addr_i=2>
should eq #<MacAddr:0x0000000254d970 @addr_s="00:00:00:00:00:02", @addr_i=2>
should be exists
should eq 2
destroy
also destroy associated mac_address object
without attr_name
create
should eq #<MacAddr:0x000000040ff4e8 @addr_s="00:00:00:00:00:01", @addr_i=1>
should eq #<MacAddr:0x0000000441f3a8 @addr_s="00:00:00:00:00:01", @addr_i=1>
should be exists
should not be nil
should eq 1
should eq #<MacAddr:0x00000003e7d4b8 @addr_s="00:00:00:00:00:01", @addr_i=1>
update
should eq #<MacAddr:0x00000004026e90 @addr_s="00:00:00:00:00:02", @addr_i=2>
should eq #<MacAddr:0x0000000425c228 @addr_s="00:00:00:00:00:02", @addr_i=2>
should be exists
should not be nil
should eq 2
destroy
also destroy associated mac_address model
Vnet::Configurations::Common
file_names
return a file name
return two file names
load
load without filename
load with filename
config file not found
conf
should be a kind of Vnet::Configurations::Common
should eq "mysql2"
param
should eq "redis"
should eq "127.0.0.1"
should eq 6379
should eq "mysql2"
should eq "vnet_test"
should eq "localhost"
should eq 3306
should eq "root"
should eq ""
should eq "mysql2://localhost:3306/vnet_test?user=root&password="
Vnet::Configurations::Vna
param
should eq "vna"
should eq "tcp"
should eq "127.0.0.1"
should eq 19103
should eq "tcp://127.0.0.1:19103"
should eq :rpc
should eq "/home/yasuhito/.rvm/gems/ruby-2.1.8/bundler/gems/trema-4f82057b5988"
should eq "/var/run/openvnet"
Vnet::Configurations::Vnmgr
param
should eq "vnmgr"
should eq "tcp"
should eq "127.0.0.1"
should eq 19102
should eq "tcp://127.0.0.1:19102"
Vnet::Configurations::Webapi
param
should eq "webapi"
should eq "tcp"
should eq "127.0.0.1"
should eq 19101
should eq "tcp://127.0.0.1:19101"
should eq :direct
Vnet::Core::Filter2Manager
#created_item
with with passthrough set to false
creates the filter item
with with passthrough set to true
creates the filter item
#updated_item
with with ingress passthrough set false, egress_passthrough set true
updates the filter item
with with ingress passthrough set true, egress_passthrough set false
updates the filter item
#added_static
when protocol is tcp and passthrough is enabled
adds the static
when protocol is tcp and passthrough is disabled
adds the static
when protocol is udp and passthrough is enabled
adds the static
when protocol is udp and passthrough is disabled
adds the static
when protocol is icmp and passthrough is enabled
adds the static
when protocol is icmp and passthrough is disabled
adds the static
when protocol is arp and passthrough is enabled
adds the static
when protocol is arp and passthrough is disabled
adds the static
#remove static
when a static rule has been added
removes a static rule
Vnet::Core::FilterManager
#initialize
applies a flow that accepts all arp traffic
#apply_filters
with an interface that's in a single security group
applies the flows for that group
when a rule does not include ipv4 prefix
applies the flows for that group
with a group that separates rules by commas
applies the flows for that group
with a group that has rules with faulty syntax
skips the faulty syntax rules and still applies the correct ones
with an interface that's in two security groups
applies flows for all groups
with a security group that has two interfaces in it
applies the group's rule flows for both interfaces
with a security group referencing another security group
applies the rule for each interface in the referenced group
#remove_filters
Removes filter related flows for a single interface
with a security group referencing another security group
removes the rule for each interface in the referenced group
#updated_sg_rules
with new rules in the parameters
Removes the old rules for a security group
installs the new rules for a security group
with reference rules
removes all old reference rules
adds the new reference rules
#updated_sg_ip_addresses
with a local security group
updates isolation rules for all local interfaces in the group
when the updated group is a referencee
refreshes all reference rules
#added_interface_to_sg
with a local interface with filtering enabled
applies the rule flows for the new interface
applies the isolation flows for the new interface
with a local interface with filtering disabled
doesn't apply any flows for the new interface
with a remote interface
doesn't apply the rule flows for the new interface
doesn't apply the isolation flows for the new interface
#removed_interface_from_sg
with a local interface in two security groups
removes the security group's rule flows for the removed interface
removes the security group's isolation rules for the removed interface
leaves other security groups' rule flows in place
#removed_security_group
when the group is applied locally
removes the flows for all interfaces in the security group
when the group is referenced
removes all reference flows for the deleted group
Vnet::Core::Interfaces::Base
cookie
should eq "c00000000000001"
should eq "c00001100000001"
should eq "c00003200000001"
should raise Exception with message matching /0x10$/
should raise Exception with message matching /0x100000000$/
should raise Exception with message matching /0x\.\.f$/
Vnet::Core::Networks::Virtual
install vnet_1 without mac_address
has flows for destination filtering
Vnet::Core::Ports::Tunnel
install
creates tunnel specific flows
Vnet::Core::ServiceManager
dns
when ADDED_SERVICE is published
should create a network service with a dns service
when REMOVED_SERVICE is published
should remove a network service
Vnet::Core::TranslationManager
update
creates strip vlan id flow
Vnet::Core::TunnelManager
update_virtual_network
"#<Vnet::Openflow::Flow:0x000000052aa170 @params={:table_id=>53, :priority=>1, :match=>{:metadata=>216172782113783809, :metadata_mask=>18374686481819107327}, :actions=>[{:eth_dst=>#<Pio::Mac:39892720 \"00:00:00:00:00:03\">, :output=>1}], :options=>{:cookie=>288230376151711745}}>"
should add flood flow network 1
should add flood flow for network 2
remove_network_id_for_dpid
should delete tunnel when the network is deleted on the local datapath
"#<Vnet::Openflow::Flow:0x00000004aab3c0 @params={:table_id=>53, :priority=>1, :match=>{:metadata=>216172782113783809, :metadata_mask=>18374686481819107327}, :actions=>[{:eth_dst=>#<Pio::Mac:38617640 \"00:00:00:00:00:02\">, :output=>1}], :options=>{:cookie=>288230376151711745}}>"
"{:table_id=>52, :cookie=>288230376151711745, :cookie_mask=>18446744073709551615}"
should delete tunnel when the network is deleted on the remote datapath
/datapaths
GET /
with no entries in the database
should return json with empty items
with 3 entries in the database
should return 3 entries
GET /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should return one entry
DELETE /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should delete one database entry
POST /
with only the required parameters
should create a database entry the required parameters set
with all accepted parameters
should create a database entry with all parameters set
with a 'uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
without the 'display_name' parameter
should return a 400 error (MissingArgument)
without the 'dpid' parameter
should return a 400 error (MissingArgument)
without the 'node_id' parameter
should return a 400 error (MissingArgument)
PUT /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
with only the 'display_name' parameter
only that parameter should be updated
with only the 'dpid' parameter
only that parameter should be updated
with only the 'node_id' parameter
only that parameter should be updated
with all correct parameters
should update all parameters
Many to many relation calls for networks
POST /:uuid/networks/:network_uuid
with a nonexistant uuid for the base object
should return a 404 error (UnknownUUIDResource)
with a nonexistant uuid for the relation
should return a 404 error (UnknownUUIDResource)
with faulty uuid syntax for the base object
should return a 400 error (InvalidUUID)
with faulty uuid syntax for the related object
should return a 400 error (InvalidUUID)
with a related object that isn't added to the base object yet
should create a new entry in the join table
GET /:uuid/networks
With no relations in the database
should return a json with empty relations
With 3 relations in the database
should return a json with 3 relations in it
DELETE /:uuid/networks/:network_uuid
with a nonexistant uuid for the base object
should return a 404 error (UnknownUUIDResource)
with a nonexistant uuid for the relation
should return a 404 error (UnknownUUIDResource)
with faulty uuid syntax for the base object
should return a 400 error (InvalidUUID)
with faulty uuid syntax for the related object
should return a 400 error (InvalidUUID)
with a related object that has already been added to the base object
should destroy the entry in the join table
Many to many relation calls for route links
POST /:uuid/route_links/:route_link_uuid
with a nonexistant uuid for the base object
should return a 404 error (UnknownUUIDResource)
with a nonexistant uuid for the relation
should return a 404 error (UnknownUUIDResource)
with faulty uuid syntax for the base object
should return a 400 error (InvalidUUID)
with faulty uuid syntax for the related object
should return a 400 error (InvalidUUID)
with a related object that isn't added to the base object yet
should create a new entry in the join table
GET /:uuid/route_links
With no relations in the database
should return a json with empty relations
With 3 relations in the database
should return a json with 3 relations in it
DELETE /:uuid/route_links/:route_link_uuid
with a nonexistant uuid for the base object
should return a 404 error (UnknownUUIDResource)
with a nonexistant uuid for the relation
should return a 404 error (UnknownUUIDResource)
with faulty uuid syntax for the base object
should return a 400 error (InvalidUUID)
with faulty uuid syntax for the related object
should return a 400 error (InvalidUUID)
with a related object that has already been added to the base object
should destroy the entry in the join table
/dns_services
GET /
with no entries in the database
should return json with empty items
with 3 entries in the database
should return 3 entries
GET /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should return one entry
DELETE /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should delete one database entry
POST /
with only the required parameters
should create a database entry the required parameters set
with all accepted parameters
should create a database entry with all parameters set
with a 'uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
with a 'network_service_uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
without the 'network_service_uuid' parameter
should return a 400 error (MissingArgument)
PUT /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
with only the 'public_dns' parameter
only that parameter should be updated
with all correct parameters
should update all parameters
One to many relation calls for dns_records
POST /:uuid/dns_records
with a nonexistant uuid for the base object
should return a 404 error (UnknownUUIDResource)
with faulty uuid syntax for the base object
should return a 400 error (InvalidUUID)
with faulty uuid syntax for the related object
should return a 400 error (InvalidUUID)
with a related object that isn't added to the base object yet
should create a new entry in the join table
GET /:uuid/dns_records
With no relations in the database
should return a json with empty relations
With 3 relations in the database
should return a json with 3 relations in it
DELETE /:uuid/dns_records/:dns_record_uuid
with a nonexistant uuid for the base object
should return a 404 error (UnknownUUIDResource)
with faulty uuid syntax for the base object
should return a 400 error (InvalidUUID)
with a nonexistant uuid for the relation
should return a 404 error (UnknownUUIDResource)
with faulty uuid syntax for the related object
should return a 400 error (InvalidUUID)
with a related object that has already been added to the base object
should destroy the entry in the join table
/interfaces
GET /
with no entries in the database
should return json with empty items
with 3 entries in the database
should return 3 entries
GET /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should return one entry
DELETE /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should delete one database entry
POST /
with only the required parameters
should create a database entry the required parameters set
with all accepted parameters
should create a database entry with all parameters set
with a 'network_uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
with a 'owner_datapath_uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
With a faulty mac address
should return a 400 error (ArgumentError)
With a faulty ipv4 address
should return a 400 error (ArgumentError)
event handler
handles a single event
PUT /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
with only the 'display_name' parameter
only that parameter should be updated
with only the 'ingress_filtering_enabled' parameter
only that parameter should be updated
with all correct parameters
should update all parameters
event handler
handles a single event
/interfaces/:uuid/ports
GET /:uuid/postfix
with no entries in the database
should return json with empty items
with 1 entries in the database
should return 1 entries
DELETE /:uuid/postfix
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should delete one database entry
POST /:uuid/ports
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
with only the required parameters
should create a database entry the required parameters set
with all accepted parameters
should create a database entry with all parameters set
Many to many relation calls for security groups
POST /:uuid/security_groups/:security_group_uuid
with a nonexistant uuid for the base object
should return a 404 error (UnknownUUIDResource)
with a nonexistant uuid for the relation
should return a 404 error (UnknownUUIDResource)
with faulty uuid syntax for the base object
should return a 400 error (InvalidUUID)
with faulty uuid syntax for the related object
should return a 400 error (InvalidUUID)
with a related object that isn't added to the base object yet
should create a new entry in the join table
GET /:uuid/security_groups
With no relations in the database
should return a json with empty relations
With 3 relations in the database
should return a json with 3 relations in it
DELETE /:uuid/security_groups/:security_group_uuid
with a nonexistant uuid for the base object
should return a 404 error (UnknownUUIDResource)
with a nonexistant uuid for the relation
should return a 404 error (UnknownUUIDResource)
with faulty uuid syntax for the base object
should return a 400 error (InvalidUUID)
with faulty uuid syntax for the related object
should return a 400 error (InvalidUUID)
with a related object that has already been added to the base object
should destroy the entry in the join table
/ip_lease_containers
GET /
with no entries in the database
should return json with empty items
with 3 entries in the database
should return 3 entries
GET /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should return one entry
DELETE /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should delete one database entry
POST /
with only the required parameters
should create a database entry the required parameters set
with all accepted parameters
should create a database entry with all parameters set
with a 'uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
PUT /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
with all correct parameters
should update all parameters
/ip_leases
GET /
with no entries in the database
should return json with empty items
with 3 entries in the database
should return 3 entries
GET /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should return one entry
DELETE /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should delete one database entry
DELETE /uuid
event handler
handles a single event
PUT /
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
with a 'mac_lease_uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
with a 'network_uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
with only the 'network_uuid' parameter
only that parameter should be updated
with only the 'mac_lease_uuid' parameter
only that parameter should be updated
with only the 'ipv4_address' parameter
only that parameter should be updated
with only the 'enable_routing' parameter
only that parameter should be updated
with all correct parameters
should update all parameters
POST /
with only the required parameters
should create a database entry the required parameters set
with all accepted parameters
should create a database entry with all parameters set
with a 'uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
with a 'mac_lease_uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
with a 'network_uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
without the 'mac_lease_uuid' parameter
should return a 400 error (MissingArgument)
without the 'network_uuid' parameter
should return a 400 error (MissingArgument)
without the 'ipv4_address' parameter
should return a 400 error (MissingArgument)
event handler
handles a single event
/ip_range_groups
GET /
with no entries in the database
should return json with empty items
with 3 entries in the database
should return 3 entries
GET /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should return one entry
DELETE /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should delete one database entry
POST /
with only the required parameters
should create a database entry the required parameters set
with all accepted parameters
should create a database entry with all parameters set
with a 'uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
PUT /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
with only the 'allocation_type' parameter
only that parameter should be updated
with all correct parameters
should update all parameters
One to many relation calls for ip_ranges
POST /:uuid/ip_ranges
with a nonexistant uuid for the base object
should return a 404 error (UnknownUUIDResource)
with faulty uuid syntax for the base object
should return a 400 error (InvalidUUID)
with faulty uuid syntax for the related object
should return a 400 error (InvalidUUID)
with a related object that isn't added to the base object yet
should create a new entry in the join table
GET /:uuid/ip_ranges
With no relations in the database
should return a json with empty relations
With 3 relations in the database
should return a json with 3 relations in it
DELETE /:uuid/ip_ranges/:ip_range_uuid
with a nonexistant uuid for the base object
should return a 404 error (UnknownUUIDResource)
with faulty uuid syntax for the base object
should return a 400 error (InvalidUUID)
with a nonexistant uuid for the relation
should return a 404 error (UnknownUUIDResource)
with faulty uuid syntax for the related object
should return a 400 error (InvalidUUID)
with a related object that has already been added to the base object
should destroy the entry in the join table
/ip_retention_containers
GET /
with no entries in the database
should return json with empty items
with 3 entries in the database
should return 3 entries
GET /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should return one entry
DELETE /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should delete one database entry
POST /
with only the required parameters
should create a database entry the required parameters set
with all accepted parameters
should create a database entry with all parameters set
with a 'uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
PUT /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
with all correct parameters
should update all parameters
GET /:uuid/ip_retentions
returns 3 ip_retentions
/lease_policies
GET /
with no entries in the database
should return json with empty items
with 3 entries in the database
should return 3 entries
GET /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should return one entry
DELETE /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should delete one database entry
POST /
with only the required parameters
should create a database entry the required parameters set
with all accepted parameters
should create a database entry with all parameters set
with a 'uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
PUT /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
with only the 'mode' parameter
only that parameter should be updated
with only the 'timing' parameter
only that parameter should be updated
with all correct parameters
should update all parameters
Many to many relation calls for networks
POST /:uuid/networks/:network_uuid
with a nonexistant uuid for the base object
should return a 404 error (UnknownUUIDResource)
with a nonexistant uuid for the relation
should return a 404 error (UnknownUUIDResource)
with faulty uuid syntax for the base object
should return a 400 error (InvalidUUID)
with faulty uuid syntax for the related object
should return a 400 error (InvalidUUID)
with a related object that isn't added to the base object yet
should create a new entry in the join table
GET /:uuid/networks
With no relations in the database
should return a json with empty relations
With 3 relations in the database
should return a json with 3 relations in it
DELETE /:uuid/networks/:network_uuid
with a nonexistant uuid for the base object
should return a 404 error (UnknownUUIDResource)
with a nonexistant uuid for the relation
should return a 404 error (UnknownUUIDResource)
with faulty uuid syntax for the base object
should return a 400 error (InvalidUUID)
with faulty uuid syntax for the related object
should return a 400 error (InvalidUUID)
with a related object that has already been added to the base object
should destroy the entry in the join table
Many to many relation calls for interfaces
POST /:uuid/interfaces/:interface_uuid
with a nonexistant uuid for the base object
should return a 404 error (UnknownUUIDResource)
with a nonexistant uuid for the relation
should return a 404 error (UnknownUUIDResource)
with faulty uuid syntax for the base object
should return a 400 error (InvalidUUID)
with faulty uuid syntax for the related object
should return a 400 error (InvalidUUID)
with a related object that isn't added to the base object yet
should create a new entry in the join table
GET /:uuid/interfaces
With no relations in the database
should return a json with empty relations
With 3 relations in the database
should return a json with 3 relations in it
DELETE /:uuid/interfaces/:interface_uuid
with a nonexistant uuid for the base object
should return a 404 error (UnknownUUIDResource)
with a nonexistant uuid for the relation
should return a 404 error (UnknownUUIDResource)
with faulty uuid syntax for the base object
should return a 400 error (InvalidUUID)
with faulty uuid syntax for the related object
should return a 400 error (InvalidUUID)
with a related object that has already been added to the base object
should destroy the entry in the join table
Many to many relation calls for ip_lease_containers
POST /:uuid/ip_lease_containers/:ip_lease_container_uuid
with a nonexistant uuid for the base object
should return a 404 error (UnknownUUIDResource)
with a nonexistant uuid for the relation
should return a 404 error (UnknownUUIDResource)
with faulty uuid syntax for the base object
should return a 400 error (InvalidUUID)
with faulty uuid syntax for the related object
should return a 400 error (InvalidUUID)
with a related object that isn't added to the base object yet
should create a new entry in the join table
GET /:uuid/ip_lease_containers
With no relations in the database
should return a json with empty relations
With 3 relations in the database
should return a json with 3 relations in it
DELETE /:uuid/ip_lease_containers/:ip_lease_container_uuid
with a nonexistant uuid for the base object
should return a 404 error (UnknownUUIDResource)
with a nonexistant uuid for the relation
should return a 404 error (UnknownUUIDResource)
with faulty uuid syntax for the base object
should return a 400 error (InvalidUUID)
with faulty uuid syntax for the related object
should return a 400 error (InvalidUUID)
with a related object that has already been added to the base object
should destroy the entry in the join table
Many to many relation calls for ip_retention_containers
POST /:uuid/ip_retention_containers/:ip_retention_container_uuid
with a nonexistant uuid for the base object
should return a 404 error (UnknownUUIDResource)
with a nonexistant uuid for the relation
should return a 404 error (UnknownUUIDResource)
with faulty uuid syntax for the base object
should return a 400 error (InvalidUUID)
with faulty uuid syntax for the related object
should return a 400 error (InvalidUUID)
with a related object that isn't added to the base object yet
should create a new entry in the join table
GET /:uuid/ip_retention_containers
With no relations in the database
should return a json with empty relations
With 3 relations in the database
should return a json with 3 relations in it
DELETE /:uuid/ip_retention_containers/:ip_retention_container_uuid
with a nonexistant uuid for the base object
should return a 404 error (UnknownUUIDResource)
with a nonexistant uuid for the relation
should return a 404 error (UnknownUUIDResource)
with faulty uuid syntax for the base object
should return a 400 error (InvalidUUID)
with faulty uuid syntax for the related object
should return a 400 error (InvalidUUID)
with a related object that has already been added to the base object
should destroy the entry in the join table
POST /:uuid/ip_leases
create an ip_lease
/mac_leases
GET /
with no entries in the database
should return json with empty items
with 3 entries in the database
should return 3 entries
GET /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should return one entry
DELETE /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should delete one database entry
POST /
with only the required parameters
should create a database entry the required parameters set
with all accepted parameters
should create a database entry with all parameters set
with a 'uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
with a 'interface_uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
without the 'interface_uuid' parameter
should return a 400 error (MissingArgument)
without the 'mac_address' parameter
should return a 400 error (MissingArgument)
PUT /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
with only the 'interface_uuid' parameter
only that parameter should be updated
with only the 'mac_address' parameter
only that parameter should be updated
with all correct parameters
should update all parameters
/mac_range_groups
GET /
with no entries in the database
should return json with empty items
with 3 entries in the database
should return 3 entries
GET /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should return one entry
DELETE /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should delete one database entry
POST /
with only the required parameters
should create a database entry the required parameters set
with all accepted parameters
should create a database entry with all parameters set
with a 'uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
PUT /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
with only the 'allocation_type' parameter
only that parameter should be updated
with all correct parameters
should update all parameters
One to many relation calls for mac_ranges
POST /:uuid/mac_ranges
with a nonexistant uuid for the base object
should return a 404 error (UnknownUUIDResource)
with faulty uuid syntax for the base object
should return a 400 error (InvalidUUID)
with faulty uuid syntax for the related object
should return a 400 error (InvalidUUID)
with a related object that isn't added to the base object yet
should create a new entry in the join table
GET /:uuid/mac_ranges
With no relations in the database
should return a json with empty relations
With 3 relations in the database
should return a json with 3 relations in it
DELETE /:uuid/mac_ranges/:mac_range_uuid
with a nonexistant uuid for the base object
should return a 404 error (UnknownUUIDResource)
with faulty uuid syntax for the base object
should return a 400 error (InvalidUUID)
with a nonexistant uuid for the relation
should return a 404 error (UnknownUUIDResource)
with faulty uuid syntax for the related object
should return a 400 error (InvalidUUID)
with a related object that has already been added to the base object
should destroy the entry in the join table
/network_services
GET /
with no entries in the database
should return json with empty items
with 3 entries in the database
should return 3 entries
GET /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should return one entry
DELETE /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should delete one database entry
POST /
with only the required parameters
should create a database entry the required parameters set
with all accepted parameters
should create a database entry with all parameters set
with a 'uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
with a 'interface_uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
PUT /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
with a 'interface_uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
with only the 'interface_uuid' parameter
only that parameter should be updated
with only the 'incoming_port' parameter
only that parameter should be updated
with only the 'outgoing_port' parameter
only that parameter should be updated
with all correct parameters
should update all parameters
/networks
GET /
with no entries in the database
should return json with empty items
with 3 entries in the database
should return 3 entries
GET /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should return one entry
DELETE /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should delete one database entry
POST /
with only the required parameters
should create a database entry the required parameters set
with all accepted parameters
should create a database entry with all parameters set
with a 'uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
without the 'display_name' parameter
should return a 400 error (MissingArgument)
without the 'ipv4_network' parameter
should return a 400 error (MissingArgument)
PUT /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
with only the 'display_name' parameter
only that parameter should be updated
with only the 'ipv4_network' parameter
only that parameter should be updated
with only the 'ipv4_prefix' parameter
only that parameter should be updated
with only the 'domain_name' parameter
only that parameter should be updated
with only the 'network_mode' parameter
only that parameter should be updated
with all correct parameters
should update all parameters
/route_links
GET /
with no entries in the database
should return json with empty items
with 3 entries in the database
should return 3 entries
GET /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should return one entry
DELETE /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should delete one database entry
POST /
with only the required parameters
should create a database entry the required parameters set
with all accepted parameters
should create a database entry with all parameters set
with a 'uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
without the 'mac_address' parameter
should return a 400 error (MissingArgument)
PUT /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
with only the 'mac_address' parameter
only that parameter should be updated
with all correct parameters
should update all parameters
/routes
GET /
with no entries in the database
should return json with empty items
with 3 entries in the database
should return 3 entries
GET /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should return one entry
DELETE /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should delete one database entry
POST /
with only the required parameters
should create a database entry the required parameters set
with all accepted parameters
should create a database entry with all parameters set
with a 'interface_uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
with a 'interface_uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
with a 'network_uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
with a 'route_link_uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
without the 'ipv4_network' parameter
should return a 400 error (MissingArgument)
without the 'interface_uuid' parameter
should return a 400 error (MissingArgument)
without the 'network_uuid' parameter
should return a 400 error (MissingArgument)
without the 'route_link_uuid' parameter
should return a 400 error (MissingArgument)
PUT /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
with a 'interface_uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
with a 'network_uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
with a 'route_link_uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
with only the 'interface_uuid' parameter
only that parameter should be updated
with only the 'network_uuid' parameter
only that parameter should be updated
with only the 'route_link_uuid' parameter
only that parameter should be updated
with only the 'ipv4_network' parameter
only that parameter should be updated
with only the 'ipv4_prefix' parameter
only that parameter should be updated
with all correct parameters
should update all parameters
/security_groups
GET /
with no entries in the database
should return json with empty items
with 3 entries in the database
should return 3 entries
GET /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should return one entry
DELETE /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should delete one database entry
PUT /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
with only the 'display_name' parameter
only that parameter should be updated
with only the 'description' parameter
only that parameter should be updated
with only the 'rules' parameter
only that parameter should be updated
with all correct parameters
should update all parameters
POST /
with only the required parameters
should create a database entry the required parameters set
with all accepted parameters
should create a database entry with all parameters set
with a 'uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
without the 'display_name' parameter
should return a 400 error (MissingArgument)
with an existing security group uuid in the rules
should successfully create a security group referencing it
with a faulty protocol in the rules
should return a 500 error (Sequel::ValidationFailed)
with a faulty port in the rules
should return a 500 error (Sequel::ValidationFailed)
with a faulty ip in the rules
should return a 500 error (Sequel::ValidationFailed)
with a faulty security group uuid in the rules
should return a 500 error (Sequel::ValidationFailed)
with a correct but non existant security group uuid in the rules
should return a 500 error (Sequel::ValidationFailed)
/translations
GET /
with no entries in the database
should return json with empty items
with 3 entries in the database
should return 3 entries
GET /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should return one entry
DELETE /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should delete one database entry
POST /
with only the required parameters
should create a database entry the required parameters set
with all accepted parameters
should create a database entry with all parameters set
with a 'uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
with a 'interface_uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
without the 'mode' parameter
should return a 400 error (MissingArgument)
without the 'interface_uuid' parameter
should return a 400 error (MissingArgument)
PUT /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
with only the 'interface_uuid' parameter
only that parameter should be updated
with all correct parameters
should update all parameters
/:uuid/static_address
POST
with only the required parameters
should create a database entry the required parameters set
with all accepted parameters
should create a database entry with all parameters set
with a 'route_link_uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
without the 'ingress_ipv4_address' parameter
should return a 400 error (MissingArgument)
without the 'egress_ipv4_address' parameter
should return a 400 error (MissingArgument)
with a translation that isn't in static_address mode
should return a 400 error (ArgumentError)
DELETE
without the 'ingress_ipv4_address' parameter
should return a 400 error (MissingArgument)
without the 'egress_ipv4_address' parameter
should return a 400 error (MissingArgument)
with parameters describing a non existing static address translation
should return a 404 error (UnknownResource)
with parameters describing an existing static address translation
should delete one database entry
/vlan_translations
GET /
with no entries in the database
should return json with empty items
with 3 entries in the database
should return 3 entries
GET /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should return one entry
DELETE /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
should delete one database entry
POST /
with only the required parameters
should create a database entry the required parameters set
with all accepted parameters
should create a database entry with all parameters set
with a 'uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
with a 'translation_uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
with a 'network_uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
without the 'translation_uuid' parameter
should return a 400 error (MissingArgument)
without the 'network_uuid' parameter
should return a 400 error (MissingArgument)
PUT /:uuid
with a nonexistant uuid
should return a 404 error (UnknownUUIDResource)
with a uuid parameter with a faulty syntax
should return a 400 error (InvalidUUID)
with an existing uuid
with a 'translation_uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
with a 'network_uuid' with a faulty syntax
should return a 400 error (InvalidUUID)
with only the 'translation_uuid' parameter
only that parameter should be updated
with only the 'mac_address' parameter
only that parameter should be updated
with only the 'vlan_id' parameter
only that parameter should be updated
with only the 'network_uuid' parameter
only that parameter should be updated
with all correct parameters
should update all parameters
Vnet::Event::Dispatchable
dispatch_event
should eq 1
should eq "interface/created"
should eq 3
Vnet::Event::Notifications
handle_event
create an item
execute create_item only once
updated an item
create an item with updated value
delete an item
create an item and delete it
does not create any item
handle events correctly
enqueue event to a list identified by params[:id]
Vnet::Helpers::SecurityGroup
#split_multiline_rules_string
with a comment after a valid rule on the same line and another valid rule on the next line
returns the rule before the comment and the one on the next line
with a comment after a valid rule on the same line
returns the rule before the comment
with a comment line first and then two lines with valid comments
returns the two valid rules
Vnet::ModelWrappers::Base
class method
single execution
should be a kind of Array
should eq 1
example at ./spec/vnet/model_wrappers/base_spec.rb:43 (Got an error when generating description from matcher: RSpec::Mocks::MockExpectationError: Double :model received :execute with unexpected arguments
expected: (:all)
got: (:to_ary)
Diff:
@@ -1,2 +1,2 @@
-[:all]
+[:to_ary]
Please stub a default value first if message might be received with other args as well.
-- /home/yasuhito/.rvm/gems/ruby-2.1.8/gems/rspec-mocks-3.2.1/lib/rspec/mocks/error_generator.rb:272:in `__raise')
should eq "p-xxx"
batch
should be a kind of Vnet::ModelWrappers::Child
should eq "c-xxx"
commit
should be a kind of Vnet::ModelWrappers::Child
should be a kind of Array
should eq 1
should be a kind of Vnet::ModelWrappers::ChildFriend
should eq "cf-xxx"
should be a kind of Array
should eq 1
should be a kind of Vnet::ModelWrappers::GrandChild
should eq "gc-xxx"
should be a kind of Array
should eq 1
should be a kind of Vnet::ModelWrappers::GrandChildFriend
should eq "gcf-xxx"
instance method
batch
execute batch
Vnet::ModelWrappers::Network
with real proxy
should be a kind of #<Vnet::ModelWrappers::IpAddress id=1, network_id=2, ipv4_address=3232235777, created_at=2016-02-29 05:08:48 UTC, updated_at=2016-02-29 05:08:48 UTC, deleted_at=nil, is_deleted=0>
should eq 1
Vnet::ModelWrappers::VlanTranslation
should be a kind of #<Vnet::ModelWrappers::VlanTranslation id=1, uuid="vt-5sb28re8", translation_id=nil, mac_address=0, vlan_id=1, network_id=1>
should eq 0
should eq 1
should eq 1
Vnet::Models::DatapathNetwork
datapath_networks_in_the_same_network
should eq 2
should eq [1]
should eq [2, 3]
Vnet::Models::Datapath
datapath_networks
non-deleted datapath
returns non-deleted datapaths
deleted datapath
returns non-deleted datapaths
datapath_route_links
non-deleted datapath
returns non-deleted datapaths
deleted datapath
returns non-deleted datapaths
Vnet::Models::Interface
delete with paranoia
Vnet::Models::IpLease
cookie_id
should eq 1
should eq 2
should eq 1
Vnet::Models::Network
routes
should eq ["r-1", "r-2", "r-3"]
find_by_mac_address
should eq #<Vnet::Models::Network @values={:id=>1, :uuid=>"1", :display_name=>"network", :ipv4_network=>174391552, :ipv4_prefix=>24, :network_mode=>nil, :domain_name=>"example.com", :created_at=>2016-02-29 05:08:52 UTC, :updated_at=>2016-02-29 05:08:52 UTC, :deleted_at=>nil, :is_deleted=>0}>
should eq #<Vnet::Models::Network @values={:id=>1, :uuid=>"1", :display_name=>"network", :ipv4_network=>174391552, :ipv4_prefix=>24, :network_mode=>nil, :domain_name=>"example.com", :created_at=>2016-02-29 05:08:52 UTC, :updated_at=>2016-02-29 05:08:52 UTC, :deleted_at=>nil, :is_deleted=>0}>
should eq #<Vnet::Models::Network @values={:id=>1, :uuid=>"1", :display_name=>"network", :ipv4_network=>174391552, :ipv4_prefix=>24, :network_mode=>nil, :domain_name=>"example.com", :created_at=>2016-02-29 05:08:52 UTC, :updated_at=>2016-02-29 05:08:52 UTC, :deleted_at=>nil, :is_deleted=>0}>
should eq #<Vnet::Models::Network @values={:id=>2, :uuid=>"2", :display_name=>"network", :ipv4_network=>174457088, :ipv4_prefix=>24, :network_mode=>nil, :domain_name=>"example.com", :created_at=>2016-02-29 05:08:53 UTC, :updated_at=>2016-02-29 05:08:53 UTC, :deleted_at=>nil, :is_deleted=>0}>
destroy
deleting a network deletes associated items
Vnet::Models::Route
on_other_networks
should eq [#<Vnet::Models::Route @values={:id=>2, :uuid=>"7cqgrfdr", :mode=>"gateway", :interface_id=>3, :route_link_id=>2, :network_id=>0, :ipv4_network=>3232236032, :ipv4_prefix=>24, :ingress=>true, :egress=>true, :created_at=>2016-02-29 05:08:54 UTC, :updated_at=>2016-02-29 05:08:54 UTC, :deleted_at=>nil, :is_deleted=>0}>, #<Vnet::Models::Route @values={:id=>3, :uuid=>"38gjq4bw", :mode=>"gateway", :interface_id=>5, :route_link_id=>3, :network_id=>0, :ipv4_network=>3232236032, :ipv4_prefix=>24, :ingress=>true, :egress=>true, :created_at=>2016-02-29 05:08:54 UTC, :updated_at=>2016-02-29 05:08:54 UTC, :deleted_at=>nil, :is_deleted=>0}>]
Vnet::Models::VlanTranslation
creates an entry
Vnet::NodeApi::Base
single method
model method not found
should be a kind of Hash
should eq :aaa
method chain
without options
should be a kind of Array
should eq 1
should be a kind of Hash
should eq "TestModel"
should eq :aaa
should be nil
fill
should be a kind of Array
should eq 1
should eq :aaa
should eq :bbb
should eq :ccc
should eq :ddd
should eq :eee
Vnet::NodeApi::Interface
create
with associations
update
success
delete
with associations
Vnet::NodeApi::IpLease
create
success
destroy
success
release
success
Vnet::NodeApi::IpRetentionContainer
.add_ip_retention
adds an ip_retention to the ip_retention_container
.remove_ip_retention
removes an ip_retention from the ip_retention_container
Vnet::NodeApi::LeasePolicy
.schedule
when running out of ip addresses
raise 'Run out of dynamic IP addresses' error
when allocation_type is :incremental
returns an ipv4 address by incremental order
when allocation_type is :decremental
returns an ipv4 address by decremental order
when allocation_type is :random
raise NotImplementedError
when ip_range's range includes network's range
returns the ip addresses within the network's subnet
when ip_range's range doesn't match ip_range's range
raise Run out of dynamic IP addresses
.allocate_ip
creates an ip_lease with an ip_retention
with interface_uuid
without label
creates an ip_lease for an interface
with label
creates an ip_lease for an interface
when lease_policy has ip_lease_containers
without label
creates an ip_lease and add it to ip_lease_containers
with label
creates an ip_lease and add it to an ip_lease_container
Vnet::NodeApi::MacLease
create
success
destroy
success
Vnet::NodeApi::Network
all
return empty array
return networks
[]
not found
successfully
update
raise execption
successfully
destroy
successfully
Vnet::NodeApi
Vnet::NodeApi::RpcProxy
should be a kind of Array
should eq 1
should be a kind of Hash
should eq "test-uuid"
Vnet::NodeApi::DirectProxy
without options
should be a kind of Array
should eq 1
should be a kind of Hash
should eq "test-uuid"
raise_on_error
raises an execption
D, [2016-02-29T14:09:02.717075 #16132] DEBUG -- : NoMethodError: undefined method `foo' for Vnet::NodeApi::Network:Class
does not raise any exception
Vnet::NodeApi
set_proxy
raise unknown proxy error
return rpc proxy
return direct proxy
Vnet::NodeModules::EventHandler
handle_event
handle correctly
Vnet::NodeModules::Rpc
should be a kind of Array
should eq 1
should be a kind of Hash
should eq "test-uuid"
Vnet::Openflow::Switch
switch_ready
sends messages
handle_port_desc
tunnel
should create a port object whose datapath_id is 1
Vnet::Plugins::VdcVnetPlugin
when an entry of Network is created on vdc
create_entry
creates a record of Network on vnet
destroy_entry
deletes a record of Network on vnet
when network_vif is created
create_entry
creates an entry of Interface
destroy_entry
deletes an entry of Interface
when network_route is created
create_entry
creates translation entry
Vnet::Services::IpRetentionContainerManager
load_all_items
load all database records into items
Vnet::Services::IpRetentionContainers::Base
.add_ip_retention
without released_at
should eq 1
should eq 0
with released_at
should eq 0
should eq 1
.remove_ip_retention
when leased_ip_retentions is present
should eq 0
when released_ip_retentions is present
should eq 0
.lease_time_expired
removes an ip_retention from @leased_ip_retentions
.grace_time_expired
removes an ip_retention from @released_ip_retentions
.check_lease_time_expiration
publishes IP_RETENTION_CONTAINER_LEASE_TIME_EXPIRED
.check_grace_time_expiration
publishes IP_RETENTION_CONTAINER_GRACE_TIME_EXPIRED
Finished in 2 minutes 46.2 seconds (files took 7.89 seconds to load)
909 examples, 0 failures
[Coveralls] Outside the CI environment, not sending data.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment