mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-22 18:50:08 +03:00
Development: delete ARs before deleting the VNET, so the IPAM will be called (#3073)
This commit is contained in:
parent
1c1eed0383
commit
c2ff7f89d8
@ -124,6 +124,11 @@ module OneProvision
|
||||
msg = "#{section.chomp('s')} #{obj['ID']}"
|
||||
|
||||
Driver.retry_loop "Failed to delete #{msg}" do
|
||||
if section == 'vnets'
|
||||
vnet = Vnet.new(obj.id)
|
||||
vnet.delete_ars
|
||||
end
|
||||
|
||||
OneProvisionLogger.debug("Deleting OpenNebula #{msg}")
|
||||
|
||||
Utils.exception(obj.delete)
|
||||
|
@ -61,9 +61,15 @@ module OneProvision
|
||||
|
||||
@pool = OpenNebula::HostPool.new(client)
|
||||
when 'Vnet'
|
||||
xml = OpenNebula::VirtualNetwork.build_xml
|
||||
if !id
|
||||
xml = OpenNebula::VirtualNetwork.build_xml
|
||||
|
||||
@one = OpenNebula::VirtualNetwork.new(xml, client)
|
||||
else
|
||||
@one = OpenNebula::VirtualNetwork.new_with_id(id, client)
|
||||
@one.info
|
||||
end
|
||||
|
||||
@one = OpenNebula::VirtualNetwork.new(xml, client)
|
||||
@pool = OpenNebula::VirtualNetworkPool.new(client)
|
||||
end
|
||||
end
|
||||
|
@ -22,8 +22,8 @@ module OneProvision
|
||||
class Vnet < Resource
|
||||
|
||||
# Class constructor
|
||||
def initialize
|
||||
super 'Vnet'
|
||||
def initialize(id = nil)
|
||||
super('Vnet', id)
|
||||
end
|
||||
|
||||
# Creates a new VNET in OpenNebula
|
||||
@ -43,6 +43,28 @@ module OneProvision
|
||||
super(cluster_id, template)
|
||||
end
|
||||
|
||||
# Deletes the address ranges from the vnet
|
||||
def delete_ars
|
||||
ars = @one.to_hash['VNET']['AR_POOL']['AR']
|
||||
id = @one.id
|
||||
|
||||
[ars].flatten.each do |ar|
|
||||
delete_ar(id, ar['AR_ID'])
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
# Delete an specific address range
|
||||
#
|
||||
# @param id [Integer] The id of the vnet
|
||||
# @param ar_id [Integer] The id of the ar
|
||||
def delete_ar(id, ar_id)
|
||||
OneProvisionLogger.debug("Deleting AR #{ar_id} from VNET #{id}")
|
||||
|
||||
@one.rm_ar(ar_id)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user