Merge " Server Pool Storage Clean Up"
This commit is contained in:
commit
2df77dccea
@ -88,58 +88,6 @@ class Storage(DriverPlugin):
|
|||||||
:param quota_id: Delete a Quota via ID
|
:param quota_id: Delete a Quota via ID
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@abc.abstractmethod
|
|
||||||
def create_server(self, context, server):
|
|
||||||
"""
|
|
||||||
Create a Server.
|
|
||||||
|
|
||||||
:param context: RPC Context.
|
|
||||||
:param server: Server object with the values to be created.
|
|
||||||
"""
|
|
||||||
|
|
||||||
@abc.abstractmethod
|
|
||||||
def find_servers(self, context, criterion=None, marker=None,
|
|
||||||
limit=None, sort_key=None, sort_dir=None):
|
|
||||||
"""
|
|
||||||
Find Servers.
|
|
||||||
|
|
||||||
:param context: RPC Context.
|
|
||||||
:param criterion: Criteria to filter by.
|
|
||||||
:param marker: Resource ID from which after the requested page will
|
|
||||||
start after
|
|
||||||
:param limit: Integer limit of objects of the page size after the
|
|
||||||
marker
|
|
||||||
:param sort_key: Key from which to sort after.
|
|
||||||
:param sort_dir: Direction to sort after using sort_key.
|
|
||||||
"""
|
|
||||||
|
|
||||||
@abc.abstractmethod
|
|
||||||
def get_server(self, context, server_id):
|
|
||||||
"""
|
|
||||||
Get a Server via ID.
|
|
||||||
|
|
||||||
:param context: RPC Context.
|
|
||||||
:param server_id: Server ID to get.
|
|
||||||
"""
|
|
||||||
|
|
||||||
@abc.abstractmethod
|
|
||||||
def update_server(self, context, server):
|
|
||||||
"""
|
|
||||||
Update a Server
|
|
||||||
|
|
||||||
:param context: RPC Context.
|
|
||||||
:param server: Server object
|
|
||||||
"""
|
|
||||||
|
|
||||||
@abc.abstractmethod
|
|
||||||
def delete_server(self, context, server_id):
|
|
||||||
"""
|
|
||||||
Delete a Server via ID.
|
|
||||||
|
|
||||||
:param context: RPC Context.
|
|
||||||
:param server_id: Delete a Server via ID
|
|
||||||
"""
|
|
||||||
|
|
||||||
@abc.abstractmethod
|
@abc.abstractmethod
|
||||||
def create_tld(self, context, tld):
|
def create_tld(self, context, tld):
|
||||||
"""
|
"""
|
||||||
|
@ -97,41 +97,6 @@ class SQLAlchemyStorage(sqlalchemy_base.SQLAlchemy, storage_base.Storage):
|
|||||||
return self._delete(context, tables.quotas, quota,
|
return self._delete(context, tables.quotas, quota,
|
||||||
exceptions.QuotaNotFound)
|
exceptions.QuotaNotFound)
|
||||||
|
|
||||||
# Server Methods
|
|
||||||
def _find_servers(self, context, criterion, one=False, marker=None,
|
|
||||||
limit=None, sort_key=None, sort_dir=None):
|
|
||||||
return self._find(
|
|
||||||
context, tables.servers, objects.Server, objects.ServerList,
|
|
||||||
exceptions.ServerNotFound, criterion, one, marker, limit,
|
|
||||||
sort_key, sort_dir)
|
|
||||||
|
|
||||||
def create_server(self, context, server):
|
|
||||||
return self._create(
|
|
||||||
tables.servers, server, exceptions.DuplicateServer)
|
|
||||||
|
|
||||||
def get_server(self, context, server_id):
|
|
||||||
return self._find_servers(context, {'id': server_id}, one=True)
|
|
||||||
|
|
||||||
def find_servers(self, context, criterion=None, marker=None, limit=None,
|
|
||||||
sort_key=None, sort_dir=None):
|
|
||||||
return self._find_servers(context, criterion, marker=marker,
|
|
||||||
limit=limit, sort_key=sort_key,
|
|
||||||
sort_dir=sort_dir)
|
|
||||||
|
|
||||||
def find_server(self, context, criterion):
|
|
||||||
return self._find_servers(context, criterion, one=True)
|
|
||||||
|
|
||||||
def update_server(self, context, server):
|
|
||||||
return self._update(
|
|
||||||
context, tables.servers, server, exceptions.DuplicateServer,
|
|
||||||
exceptions.ServerNotFound)
|
|
||||||
|
|
||||||
def delete_server(self, context, server_id):
|
|
||||||
# Fetch the existing server, we'll need to return it.
|
|
||||||
server = self._find_servers(context, {'id': server_id}, one=True)
|
|
||||||
return self._delete(context, tables.servers, server,
|
|
||||||
exceptions.ServerNotFound)
|
|
||||||
|
|
||||||
# TLD Methods
|
# TLD Methods
|
||||||
def _find_tlds(self, context, criterion, one=False, marker=None,
|
def _find_tlds(self, context, criterion, one=False, marker=None,
|
||||||
limit=None, sort_key=None, sort_dir=None):
|
limit=None, sort_key=None, sort_dir=None):
|
||||||
|
@ -0,0 +1,37 @@
|
|||||||
|
# Copyright (c) 2015 Rackspace Hosting
|
||||||
|
#
|
||||||
|
# Author: Betsy Luzader <betsy.luzader@rackspace.com>
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
|
||||||
|
from sqlalchemy.schema import Table, MetaData
|
||||||
|
|
||||||
|
meta = MetaData()
|
||||||
|
|
||||||
|
# No downgrade is possible because once the table is dropped, because there is
|
||||||
|
# no way to recreate the table with the original data. All data was migrated
|
||||||
|
# to the PoolAttributes table in the previous migration, however a database
|
||||||
|
# backup should still be done before the migration
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade(migrate_engine):
|
||||||
|
meta.bind = migrate_engine
|
||||||
|
|
||||||
|
# Load the database tables
|
||||||
|
servers_table = Table('servers', meta, autoload=True)
|
||||||
|
servers_table.drop()
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade(migrate_engine):
|
||||||
|
pass
|
@ -51,18 +51,6 @@ quotas = Table('quotas', metadata,
|
|||||||
mysql_charset='utf8',
|
mysql_charset='utf8',
|
||||||
)
|
)
|
||||||
|
|
||||||
servers = Table('servers', metadata,
|
|
||||||
Column('id', UUID, default=utils.generate_uuid, primary_key=True),
|
|
||||||
Column('version', Integer(), default=1, nullable=False),
|
|
||||||
Column('created_at', DateTime, default=lambda: timeutils.utcnow()),
|
|
||||||
Column('updated_at', DateTime, onupdate=lambda: timeutils.utcnow()),
|
|
||||||
|
|
||||||
Column('name', String(255), nullable=False, unique=True),
|
|
||||||
|
|
||||||
mysql_engine='InnoDB',
|
|
||||||
mysql_charset='utf8',
|
|
||||||
)
|
|
||||||
|
|
||||||
tlds = Table('tlds', metadata,
|
tlds = Table('tlds', metadata,
|
||||||
Column('id', UUID, default=utils.generate_uuid, primary_key=True),
|
Column('id', UUID, default=utils.generate_uuid, primary_key=True),
|
||||||
Column('version', Integer(), default=1, nullable=False),
|
Column('version', Integer(), default=1, nullable=False),
|
||||||
|
@ -75,27 +75,27 @@ class StorageTestCase(object):
|
|||||||
|
|
||||||
def test_paging_marker_not_found(self):
|
def test_paging_marker_not_found(self):
|
||||||
with testtools.ExpectedException(exceptions.MarkerNotFound):
|
with testtools.ExpectedException(exceptions.MarkerNotFound):
|
||||||
self.storage.find_servers(
|
self.storage.find_pool_attributes(
|
||||||
self.admin_context, marker=str(uuid.uuid4()), limit=5)
|
self.admin_context, marker=str(uuid.uuid4()), limit=5)
|
||||||
|
|
||||||
def test_paging_marker_invalid(self):
|
def test_paging_marker_invalid(self):
|
||||||
with testtools.ExpectedException(exceptions.InvalidMarker):
|
with testtools.ExpectedException(exceptions.InvalidMarker):
|
||||||
self.storage.find_servers(
|
self.storage.find_pool_attributes(
|
||||||
self.admin_context, marker='4')
|
self.admin_context, marker='4')
|
||||||
|
|
||||||
def test_paging_limit_invalid(self):
|
def test_paging_limit_invalid(self):
|
||||||
with testtools.ExpectedException(exceptions.ValueError):
|
with testtools.ExpectedException(exceptions.ValueError):
|
||||||
self.storage.find_servers(
|
self.storage.find_pool_attributes(
|
||||||
self.admin_context, limit='z')
|
self.admin_context, limit='z')
|
||||||
|
|
||||||
def test_paging_sort_dir_invalid(self):
|
def test_paging_sort_dir_invalid(self):
|
||||||
with testtools.ExpectedException(exceptions.ValueError):
|
with testtools.ExpectedException(exceptions.ValueError):
|
||||||
self.storage.find_servers(
|
self.storage.find_pool_attributes(
|
||||||
self.admin_context, sort_dir='invalid_sort_dir')
|
self.admin_context, sort_dir='invalid_sort_dir')
|
||||||
|
|
||||||
def test_paging_sort_key_invalid(self):
|
def test_paging_sort_key_invalid(self):
|
||||||
with testtools.ExpectedException(exceptions.InvalidSortKey):
|
with testtools.ExpectedException(exceptions.InvalidSortKey):
|
||||||
self.storage.find_servers(
|
self.storage.find_pool_attributes(
|
||||||
self.admin_context, sort_key='invalid_sort_key')
|
self.admin_context, sort_key='invalid_sort_key')
|
||||||
|
|
||||||
# Interface Tests
|
# Interface Tests
|
||||||
|
Loading…
Reference in New Issue
Block a user