Add Keypairs to the API database
This adds the keypairs table to the API database and the corresponding model. Related to cells-keypairs-api-db Change-Id: I5f6d88fee47dd87de2867d3947d65b04f0b21e8f
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
# 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 migrate import UniqueConstraint
|
||||
from sqlalchemy import Column
|
||||
from sqlalchemy import DateTime
|
||||
from sqlalchemy import Enum
|
||||
from sqlalchemy import Integer
|
||||
from sqlalchemy import MetaData
|
||||
from sqlalchemy import String
|
||||
from sqlalchemy import Table
|
||||
from sqlalchemy import Text
|
||||
|
||||
from nova.objects import keypair
|
||||
|
||||
|
||||
def upgrade(migrate_engine):
|
||||
meta = MetaData()
|
||||
meta.bind = migrate_engine
|
||||
|
||||
enum = Enum('ssh', 'x509', metadata=meta, name='keypair_types')
|
||||
enum.create(checkfirst=True)
|
||||
|
||||
keypairs = Table('key_pairs', meta,
|
||||
Column('created_at', DateTime),
|
||||
Column('updated_at', DateTime),
|
||||
Column('id', Integer, primary_key=True, nullable=False),
|
||||
Column('name', String(255), nullable=False),
|
||||
Column('user_id', String(255), nullable=False),
|
||||
Column('fingerprint', String(255)),
|
||||
Column('public_key', Text()),
|
||||
Column('type', enum, nullable=False,
|
||||
server_default=keypair.KEYPAIR_TYPE_SSH),
|
||||
UniqueConstraint('user_id', 'name',
|
||||
name="uniq_key_pairs0user_id0name"),
|
||||
mysql_engine='InnoDB',
|
||||
mysql_charset='utf8'
|
||||
)
|
||||
keypairs.create(checkfirst=True)
|
@@ -200,3 +200,22 @@ class BuildRequest(API_BASE):
|
||||
key_name = Column(String(255))
|
||||
locked_by = Column(Enum('owner', 'admin'))
|
||||
instance = Column(Text)
|
||||
|
||||
|
||||
class KeyPair(API_BASE):
|
||||
"""Represents a public key pair for ssh / WinRM."""
|
||||
__tablename__ = 'key_pairs'
|
||||
__table_args__ = (
|
||||
schema.UniqueConstraint("user_id", "name",
|
||||
name="uniq_key_pairs0user_id0name"),
|
||||
)
|
||||
id = Column(Integer, primary_key=True, nullable=False)
|
||||
|
||||
name = Column(String(255), nullable=False)
|
||||
|
||||
user_id = Column(String(255), nullable=False)
|
||||
|
||||
fingerprint = Column(String(255))
|
||||
public_key = Column(Text())
|
||||
type = Column(Enum('ssh', 'x509', name='keypair_types'),
|
||||
nullable=False, server_default='ssh')
|
||||
|
Reference in New Issue
Block a user