""" Logical model
"""
+from __future__ import absolute_import
+from six.moves import range
class Object(object):
'''Base class for classes in the logical model
Contains common attributes and methods
'''
+
def __init__(self, name, context):
# model identities and reference
self.name = name
class Router(Object):
'''Class that represents a router in the logical model'''
+
def __init__(self, name, network_name, context, external_gateway_info):
super(self.__class__, self).__init__(name, context)
self.stack_name = self.name + "." + context.name
self.keypair_name = context.keypair_name
self.secgroup_name = context.secgroup_name
+ self.user = context.user
self.context = context
self.public_ip = None
self.private_ip = None
self.ports = {}
self.floating_ip = None
+ self.floating_ip_assoc = None
if "floating_ip" in attrs:
self.floating_ip = {}
+ self.floating_ip_assoc = {}
if self.floating_ip is not None:
ext_net = Network.find_external_network()
port_name,
network.router.stack_if_name,
self.secgroup_name)
+ self.floating_ip_assoc["stack_name"] = \
+ server_name + "-fip-assoc"
+ template.add_floating_ip_association(
+ self.floating_ip_assoc["stack_name"],
+ self.floating_ip["stack_name"],
+ port_name)
template.add_server(server_name, self.image, self.flavor,
ports=port_name_list,
+ user=self.user,
key_name=self.keypair_name,
scheduler_hints=scheduler_hints)