Merge "V2T migration: create SG rules after all groups" into stable/train
This commit is contained in:
commit
72534fc7be
|
@ -376,6 +376,7 @@ class ApiReplayClient(utils.PrepareObjectForMigration):
|
||||||
|
|
||||||
total_num = len(source_sec_groups)
|
total_num = len(source_sec_groups)
|
||||||
LOG.info("Migrating %s security groups", total_num)
|
LOG.info("Migrating %s security groups", total_num)
|
||||||
|
rules_dict = {}
|
||||||
for count, sg in enumerate(source_sec_groups, 1):
|
for count, sg in enumerate(source_sec_groups, 1):
|
||||||
dest_sec_group = self.have_id(sg['id'], dest_sec_groups)
|
dest_sec_group = self.have_id(sg['id'], dest_sec_groups)
|
||||||
# If the security group already exists on the dest_neutron
|
# If the security group already exists on the dest_neutron
|
||||||
|
@ -434,16 +435,21 @@ class ApiReplayClient(utils.PrepareObjectForMigration):
|
||||||
body = self.prepare_security_group_rule(sg_rule)
|
body = self.prepare_security_group_rule(sg_rule)
|
||||||
rules.append({'security_group_rule': body})
|
rules.append({'security_group_rule': body})
|
||||||
|
|
||||||
if not rules:
|
# save rules to create once all the sgs are created
|
||||||
continue
|
if rules:
|
||||||
try:
|
rules_dict[sg['id']] = rules
|
||||||
rules = self.dest_neutron.create_security_group_rule(
|
|
||||||
{'security_group_rules': rules})
|
# Create the rules after all security groups are created to allow
|
||||||
LOG.debug("created %s security group rules for SG %s",
|
# dependencies in remote_group_id
|
||||||
len(rules), sg['id'])
|
for sg_id in rules_dict:
|
||||||
except Exception as e:
|
try:
|
||||||
self.add_error("Failed to create security group %s "
|
rules = self.dest_neutron.create_security_group_rule(
|
||||||
"rules: %s" % (sg['id'], e))
|
{'security_group_rules': rules_dict[sg_id]})
|
||||||
|
LOG.debug("created %s security group rules for SG %s",
|
||||||
|
len(rules), sg_id)
|
||||||
|
except Exception as e:
|
||||||
|
self.add_error("Failed to create security group %s "
|
||||||
|
"rules: %s" % (sg_id, e))
|
||||||
|
|
||||||
def get_dest_availablity_zones(self, resource):
|
def get_dest_availablity_zones(self, resource):
|
||||||
azs = self.dest_neutron.list_availability_zones()['availability_zones']
|
azs = self.dest_neutron.list_availability_zones()['availability_zones']
|
||||||
|
|
Loading…
Reference in New Issue