add proxy_db.py

Change-Id: I5dfb6eaa5e59166d8bf5163b1b21e235a4d98cb6
This commit is contained in:
Isaku Yamahata 2015-04-06 17:53:09 -07:00
parent 59122b433c
commit d5d412d968
1 changed files with 101 additions and 0 deletions

101
tacker/db/vm/proxy_db.py Normal file
View File

@ -0,0 +1,101 @@
# Copyright 2014 Intel Corporation.
# Copyright 2014 Isaku Yamahata <isaku.yamahata at intel com>
# <isaku.yamahata at gmail com>
# All Rights Reserved.
#
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# @author: Isaku Yamahata, Intel Corporation.
import sqlalchemy as sa
from tacker.db import db_base
from tacker.db import model_base
class ProxyMgmtPort(model_base.BASE):
device_id = sa.Column(sa.String(255), primary_key=True)
port_id = sa.Column(sa.String(36), nullable=False)
dst_transport_url = sa.Column(sa.String(255))
svr_proxy_id = sa.Column(sa.String(36))
svr_ns_proxy_id = sa.Column(sa.String(36))
clt_proxy_id = sa.Column(sa.String(36))
clt_ns_proxy_id = sa.Column(sa.String(36))
class ProxyServicePort(model_base.BASE):
service_instance_id = sa.Column(sa.String(255), primary_key=True)
svr_proxy_id = sa.Column(sa.String(36))
svr_ns_proxy_id = sa.Column(sa.String(36))
clt_proxy_id = sa.Column(sa.String(36))
clt_ns_proxy_id = sa.Column(sa.String(36))
class RpcProxyDb(db_base.CommonDbMixin):
def _make_proxy_mgmt_port(self, proxy_mgmt_port):
key_list = ('device_id', 'port_id', 'dst_transport_url',
'svr_proxy_id', 'svr_ns_proxy_id',
'clt_proxy_id', 'clt_ns_proxy_id')
return dict((key, getattr(proxy_mgmt_port, key)) for key in key_list)
def _make_proxy_service_port(self, proxy_service_port):
key_list = ('service_instance_id', 'svr_proxy_id', 'svr_ns_proxy_id',
'clt_proxy_id', 'clt_ns_proxy_id')
return dict((key, getattr(proxy_service_port, key))
for key in key_list)
def create_proxy_mgmt_port(self, context, device_id, port_id,
dst_transport_url,
svr_proxy_id, svr_ns_proxy_id,
clt_proxy_id, clt_ns_proxy_id):
with context.session.begin(subtransactions=True):
proxy_mgmt_port = ProxyMgmtPort(
device_id=device_id, port_id=port_id,
dst_transport_url=dst_transport_url,
svr_proxy_id=svr_proxy_id, svr_ns_proxy_id=svr_ns_proxy_id,
clt_proxy_id=clt_proxy_id, clt_ns_proxy_id=clt_ns_proxy_id)
context.session.add(proxy_mgmt_port)
def delete_proxy_mgmt_port(self, context, port_id):
with context.session.begin(subtransactions=True):
context.session.query(ProxyMgmtPort).filter_by(
port_id=port_id).delete()
def get_proxy_mgmt_port(self, context, device_id):
with context.session.begin(subtransactions=True):
proxy_mgmt_port = context.session.query(ProxyMgmtPort).filter_by(
device_id=device_id).one()
return self._make_proxy_mgmt_port(proxy_mgmt_port)
def create_proxy_service_port(self, context, service_instance_id,
svr_proxy_id, svr_ns_proxy_id,
clt_proxy_id, clt_ns_proxy_id):
with context.session.begin(subtransactions=True):
proxy_service_port = ProxyServicePort(
service_instance_id=service_instance_id,
svr_proxy_id=svr_proxy_id, svr_ns_proxy_id=svr_ns_proxy_id,
clt_proxy_id=clt_proxy_id, clt_ns_proxy_id=clt_ns_proxy_id)
context.session.add(proxy_service_port)
def delete_proxy_service_port(self, context, service_instance_id):
with context.session.begin(subtransactions=True):
context.session.query(ProxyServicePort).filter_by(
service_instance_id=service_instance_id).delete()
def get_proxy_service_port(self, context, service_instance_id):
with context.session.begin(subtransactions=True):
proxy_service_port = context.session.query(
ProxyServicePort).filter_by(
service_instance_id=service_instance_id).one()
return self._make_proxy_service_port(proxy_service_port)