def _create_secgrp_rules_if_needed(self, context, secgrp_ids):
try:
core_plugin = NeutronManager.get_plugin()
except AttributeError:
core_plugin = directory.get_plugin()
secgrp_rules = []
for secgrp_id in secgrp_ids:
secgrp = core_plugin.get_security_group(context._plugin_context,
secgrp_id)
secgrp_rules.extend(secgrp['security_group_rules'])
if secgrp_rules:
network_name = self._gce_subnet_network_name(context)
compute, project = self.gce_svc, self.gce_project
network = gceutils.get_network(compute, project, network_name)
network_link = network['selfLink']
for secgrp_rule in secgrp_rules:
try:
gce_rule_name = self._gce_secgrp_id(secgrp_rule['id'])
gceutils.get_firewall_rule(compute, project, gce_rule_name)
except gce_errors.HttpError:
self._create_secgrp_rule(context, secgrp_rule,
network_link)
评论列表
文章目录