Fix tracking of SG's provisioned by Heat
Reasons: - Trove doesn't track security group that was created as a part of stack. - Trove should create two records for security group tracking: - security group; - security group association with an actual instance; Changes: - Adding security groups registration right after stack creation. Change-Id: I1f55c27ecbd5ad76c869eae7197b8c24720fc1e6 Closes-Bug: #1276228
This commit is contained in:
parent
f2967bd915
commit
98f0fb6f78
|
@ -41,6 +41,8 @@ from trove.extensions.mysql import models as mysql_models
|
|||
from trove.configuration.models import Configuration
|
||||
from trove.extensions.security_group.models import SecurityGroup
|
||||
from trove.extensions.security_group.models import SecurityGroupRule
|
||||
from trove.extensions.security_group.models import (
|
||||
SecurityGroupInstanceAssociation)
|
||||
from swiftclient.client import ClientException
|
||||
from trove.instance import models as inst_models
|
||||
from trove.instance.models import BuiltInstance
|
||||
|
@ -445,6 +447,20 @@ class FreshInstanceTasks(FreshInstance, NotifyMixin, ConfigurationMixin):
|
|||
else:
|
||||
self.update_db(compute_instance_id=instance_id)
|
||||
|
||||
if CONF.trove_security_groups_support:
|
||||
resource = client.resources.get(stack.id, 'DatastoreSG')
|
||||
name = "%s_%s" % (
|
||||
CONF.trove_security_group_name_prefix, self.id)
|
||||
description = _("Security Group for %s") % self.id
|
||||
SecurityGroup.create(
|
||||
id=resource.physical_resource_id,
|
||||
name=name, description=description,
|
||||
user=self.context.user,
|
||||
tenant_id=self.context.tenant)
|
||||
SecurityGroupInstanceAssociation.create(
|
||||
security_group_id=resource.physical_resource_id,
|
||||
instance_id=self.id)
|
||||
|
||||
except (TroveError, heat_exceptions.HTTPNotFound,
|
||||
heat_exceptions.HTTPException) as e:
|
||||
msg = "Error during creating stack for instance %s" % self.id
|
||||
|
|
Loading…
Reference in New Issue