Alembic simplification
This commit is contained in:
parent
e68b3d2cbd
commit
9ccb8fb838
|
@ -8,7 +8,7 @@ class DnsProvidersNestedOutputSchema(LemurOutputSchema):
|
||||||
__envelope__ = False
|
__envelope__ = False
|
||||||
id = fields.Integer()
|
id = fields.Integer()
|
||||||
name = fields.String()
|
name = fields.String()
|
||||||
provider_type = fields.String()
|
providerType = fields.String()
|
||||||
description = fields.String()
|
description = fields.String()
|
||||||
credentials = fields.String()
|
credentials = fields.String()
|
||||||
api_endpoint = fields.String()
|
api_endpoint = fields.String()
|
||||||
|
|
|
@ -17,7 +17,8 @@ def render(args):
|
||||||
|
|
||||||
|
|
||||||
def get(dns_provider_id):
|
def get(dns_provider_id):
|
||||||
return database.get(DnsProviders, dns_provider_id)
|
provider = database.get(DnsProviders, dns_provider_id)
|
||||||
|
return provider
|
||||||
|
|
||||||
|
|
||||||
def get_friendly(dns_provider_id):
|
def get_friendly(dns_provider_id):
|
||||||
|
@ -32,8 +33,9 @@ def get_friendly(dns_provider_id):
|
||||||
dns_provider_friendly = {
|
dns_provider_friendly = {
|
||||||
"name": dns_provider.name,
|
"name": dns_provider.name,
|
||||||
"description": dns_provider.description,
|
"description": dns_provider.description,
|
||||||
"provider_type": dns_provider.provider_type,
|
"providerType": dns_provider.provider_type,
|
||||||
"options": dns_provider.options,
|
"options": dns_provider.options,
|
||||||
|
"credentials": dns_provider.credentials,
|
||||||
}
|
}
|
||||||
|
|
||||||
if dns_provider.provider_type == "route53":
|
if dns_provider.provider_type == "route53":
|
||||||
|
|
|
@ -86,7 +86,7 @@ class DnsProvidersList(AuthenticatedResource):
|
||||||
|
|
||||||
**Example request**:
|
**Example request**:
|
||||||
{
|
{
|
||||||
"provider_type": {
|
"providerType": {
|
||||||
"name": "route53",
|
"name": "route53",
|
||||||
"requirements": [
|
"requirements": [
|
||||||
{
|
{
|
||||||
|
@ -110,7 +110,7 @@ class DnsProvidersList(AuthenticatedResource):
|
||||||
|
|
||||||
**Example request 2**
|
**Example request 2**
|
||||||
{
|
{
|
||||||
"provider_type": {
|
"providerType": {
|
||||||
"name": "cloudflare",
|
"name": "cloudflare",
|
||||||
"requirements": [
|
"requirements": [
|
||||||
{
|
{
|
||||||
|
@ -144,6 +144,7 @@ class DnsProvidersList(AuthenticatedResource):
|
||||||
|
|
||||||
|
|
||||||
class DnsProviders(AuthenticatedResource):
|
class DnsProviders(AuthenticatedResource):
|
||||||
|
@validate_schema(None, dns_provider_output_schema)
|
||||||
def get(self, dns_provider_id):
|
def get(self, dns_provider_id):
|
||||||
return service.get_friendly(dns_provider_id)
|
return service.get_friendly(dns_provider_id)
|
||||||
|
|
||||||
|
|
|
@ -1,62 +0,0 @@
|
||||||
"""Adding endpoint tables
|
|
||||||
|
|
||||||
Revision ID: 29d8c8455c86
|
|
||||||
Revises: 3307381f3b88
|
|
||||||
Create Date: 2016-06-28 16:05:25.720213
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
|
||||||
revision = '29d8c8455c86'
|
|
||||||
down_revision = '3307381f3b88'
|
|
||||||
|
|
||||||
from alembic import op
|
|
||||||
import sqlalchemy as sa
|
|
||||||
from sqlalchemy.dialects import postgresql
|
|
||||||
|
|
||||||
|
|
||||||
def upgrade():
|
|
||||||
### commands auto generated by Alembic - please adjust! ###
|
|
||||||
op.create_table('ciphers',
|
|
||||||
sa.Column('id', sa.Integer(), nullable=False),
|
|
||||||
sa.Column('name', sa.String(length=128), nullable=False),
|
|
||||||
sa.PrimaryKeyConstraint('id')
|
|
||||||
)
|
|
||||||
op.create_table('policy',
|
|
||||||
sa.Column('id', sa.Integer(), nullable=False),
|
|
||||||
sa.Column('name', sa.String(length=128), nullable=True),
|
|
||||||
sa.PrimaryKeyConstraint('id')
|
|
||||||
)
|
|
||||||
op.create_table('policies_ciphers',
|
|
||||||
sa.Column('cipher_id', sa.Integer(), nullable=True),
|
|
||||||
sa.Column('policy_id', sa.Integer(), nullable=True),
|
|
||||||
sa.ForeignKeyConstraint(['cipher_id'], ['ciphers.id'], ),
|
|
||||||
sa.ForeignKeyConstraint(['policy_id'], ['policy.id'], )
|
|
||||||
)
|
|
||||||
op.create_index('policies_ciphers_ix', 'policies_ciphers', ['cipher_id', 'policy_id'], unique=False)
|
|
||||||
op.create_table('endpoints',
|
|
||||||
sa.Column('id', sa.Integer(), nullable=False),
|
|
||||||
sa.Column('owner', sa.String(length=128), nullable=True),
|
|
||||||
sa.Column('name', sa.String(length=128), nullable=True),
|
|
||||||
sa.Column('dnsname', sa.String(length=256), nullable=True),
|
|
||||||
sa.Column('type', sa.String(length=128), nullable=True),
|
|
||||||
sa.Column('active', sa.Boolean(), nullable=True),
|
|
||||||
sa.Column('port', sa.Integer(), nullable=True),
|
|
||||||
sa.Column('date_created', sa.DateTime(), server_default=sa.text(u'now()'), nullable=False),
|
|
||||||
sa.Column('policy_id', sa.Integer(), nullable=True),
|
|
||||||
sa.Column('certificate_id', sa.Integer(), nullable=True),
|
|
||||||
sa.ForeignKeyConstraint(['certificate_id'], ['certificates.id'], ),
|
|
||||||
sa.ForeignKeyConstraint(['policy_id'], ['policy.id'], ),
|
|
||||||
sa.PrimaryKeyConstraint('id')
|
|
||||||
)
|
|
||||||
### end Alembic commands ###
|
|
||||||
|
|
||||||
|
|
||||||
def downgrade():
|
|
||||||
### commands auto generated by Alembic - please adjust! ###
|
|
||||||
op.drop_table('endpoints')
|
|
||||||
op.drop_index('policies_ciphers_ix', table_name='policies_ciphers')
|
|
||||||
op.drop_table('policies_ciphers')
|
|
||||||
op.drop_table('policy')
|
|
||||||
op.drop_table('ciphers')
|
|
||||||
### end Alembic commands ###
|
|
|
@ -1,4 +1,4 @@
|
||||||
"""Create dns_providers table
|
"""Create tables and columns for the acme issuer.
|
||||||
|
|
||||||
Revision ID: 3adfdd6598df
|
Revision ID: 3adfdd6598df
|
||||||
Revises: 556ceb3e3c3e
|
Revises: 556ceb3e3c3e
|
||||||
|
@ -10,30 +10,92 @@ Create Date: 2018-04-10 13:25:47.007556
|
||||||
revision = '3adfdd6598df'
|
revision = '3adfdd6598df'
|
||||||
down_revision = '556ceb3e3c3e'
|
down_revision = '556ceb3e3c3e'
|
||||||
|
|
||||||
from alembic import op
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
from alembic import op
|
||||||
from sqlalchemy.dialects.postgresql import JSON
|
from sqlalchemy.dialects.postgresql import JSON
|
||||||
|
|
||||||
from sqlalchemy_utils import ArrowType
|
from sqlalchemy_utils import ArrowType
|
||||||
|
|
||||||
|
from lemur.utils import Vault
|
||||||
|
|
||||||
|
|
||||||
def upgrade():
|
def upgrade():
|
||||||
# create provider table
|
# create provider table
|
||||||
|
print("Creating dns_providers table")
|
||||||
op.create_table(
|
op.create_table(
|
||||||
'dns_providers',
|
'dns_providers',
|
||||||
sa.Column('id', sa.Integer(), nullable=False),
|
sa.Column('id', sa.Integer(), nullable=False),
|
||||||
sa.Column('name', sa.String(length=256), nullable=True),
|
sa.Column('name', sa.String(length=256), nullable=True),
|
||||||
sa.Column('description', sa.String(length=1024), nullable=True),
|
sa.Column('description', sa.String(length=1024), nullable=True),
|
||||||
sa.Column('provider_type', sa.String(length=256), nullable=True),
|
sa.Column('provider_type', sa.String(length=256), nullable=True),
|
||||||
sa.Column('credentials', sa.String(length=256), nullable=True),
|
sa.Column('credentials', Vault(), nullable=True),
|
||||||
sa.Column('api_endpoint', sa.String(length=256), nullable=True),
|
sa.Column('api_endpoint', sa.String(length=256), nullable=True),
|
||||||
sa.Column('date_created', ArrowType(), server_default=sa.text('now()'), nullable=False),
|
sa.Column('date_created', ArrowType(), server_default=sa.text('now()'), nullable=False),
|
||||||
sa.Column('status', sa.String(length=128), nullable=True),
|
sa.Column('status', sa.String(length=128), nullable=True),
|
||||||
sa.Column('options', JSON),
|
sa.Column('options', JSON),
|
||||||
|
sa.Column('domains', sa.JSON(), nullable=True),
|
||||||
sa.PrimaryKeyConstraint('id'),
|
sa.PrimaryKeyConstraint('id'),
|
||||||
sa.UniqueConstraint('name')
|
sa.UniqueConstraint('name')
|
||||||
)
|
)
|
||||||
|
print("Adding dns_provider_id column to certificates")
|
||||||
|
op.add_column('certificates', sa.Column('dns_provider_id', sa.Integer(), nullable=True))
|
||||||
|
print("Adding dns_provider_id column to pending_certs")
|
||||||
|
op.add_column('pending_certs', sa.Column('dns_provider_id', sa.Integer(), nullable=True))
|
||||||
|
print("Adding options column to pending_certs")
|
||||||
|
op.add_column('pending_certs', sa.Column('options', JSON))
|
||||||
|
|
||||||
|
print("Creating pending_dns_authorizations table")
|
||||||
|
op.create_table(
|
||||||
|
'pending_dns_authorizations',
|
||||||
|
sa.Column('id', sa.Integer(), primary_key=True, autoincrement=True),
|
||||||
|
sa.Column('account_number', sa.String(length=128), nullable=True),
|
||||||
|
sa.Column('domains', JSON, nullable=True),
|
||||||
|
sa.Column('dns_provider_type', sa.String(length=128), nullable=True),
|
||||||
|
sa.Column('options', JSON, nullable=True),
|
||||||
|
)
|
||||||
|
|
||||||
|
print("Creating certificates_dns_providers_fk foreign key")
|
||||||
|
op.create_foreign_key('certificates_dns_providers_fk', 'certificates', 'dns_providers', ['dns_provider_id'], ['id'],
|
||||||
|
ondelete='cascade')
|
||||||
|
|
||||||
|
print("Altering column types in the api_keys table")
|
||||||
|
op.alter_column('api_keys', 'issued_at',
|
||||||
|
existing_type=sa.BIGINT(),
|
||||||
|
nullable=True)
|
||||||
|
op.alter_column('api_keys', 'revoked',
|
||||||
|
existing_type=sa.BOOLEAN(),
|
||||||
|
nullable=True)
|
||||||
|
op.alter_column('api_keys', 'ttl',
|
||||||
|
existing_type=sa.BIGINT(),
|
||||||
|
nullable=True)
|
||||||
|
op.alter_column('api_keys', 'user_id',
|
||||||
|
existing_type=sa.INTEGER(),
|
||||||
|
nullable=True)
|
||||||
|
|
||||||
|
|
||||||
def downgrade():
|
def downgrade():
|
||||||
|
print("Reverting column types in the api_keys table")
|
||||||
|
op.alter_column('api_keys', 'user_id',
|
||||||
|
existing_type=sa.INTEGER(),
|
||||||
|
nullable=False)
|
||||||
|
op.alter_column('api_keys', 'ttl',
|
||||||
|
existing_type=sa.BIGINT(),
|
||||||
|
nullable=False)
|
||||||
|
op.alter_column('api_keys', 'revoked',
|
||||||
|
existing_type=sa.BOOLEAN(),
|
||||||
|
nullable=False)
|
||||||
|
op.alter_column('api_keys', 'issued_at',
|
||||||
|
existing_type=sa.BIGINT(),
|
||||||
|
nullable=False)
|
||||||
|
print("Reverting certificates_dns_providers_fk foreign key")
|
||||||
|
op.drop_constraint('certificates_dns_providers_fk', 'certificates', type_='foreignkey')
|
||||||
|
|
||||||
|
print("Dropping pending_dns_authorizations table")
|
||||||
|
op.drop_table('pending_dns_authorizations')
|
||||||
|
print("Undoing modifications to pending_certs table")
|
||||||
|
op.drop_column('pending_certs', 'options')
|
||||||
|
op.drop_column('pending_certs', 'dns_provider_id')
|
||||||
|
print("Undoing modifications to certificates table")
|
||||||
|
op.drop_column('certificates', 'dns_provider_id')
|
||||||
|
|
||||||
|
print("Deleting dns_providers table")
|
||||||
op.drop_table('dns_providers')
|
op.drop_table('dns_providers')
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
"""Add dns_provider id column to certificates table
|
|
||||||
|
|
||||||
Revision ID: 4e78b9e4e1dd
|
|
||||||
Revises: 3adfdd6598df
|
|
||||||
Create Date: 2018-04-10 14:00:30.701669
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
|
||||||
revision = '4e78b9e4e1dd'
|
|
||||||
down_revision = '3adfdd6598df'
|
|
||||||
|
|
||||||
from alembic import op
|
|
||||||
import sqlalchemy as sa
|
|
||||||
|
|
||||||
|
|
||||||
def upgrade():
|
|
||||||
op.add_column('certificates', sa.Column('dns_provider_id', sa.Integer(), nullable=True))
|
|
||||||
|
|
||||||
|
|
||||||
def downgrade():
|
|
||||||
op.drop_column('certificates', 'dns_provider_id')
|
|
|
@ -36,7 +36,9 @@ angular.module('lemur')
|
||||||
})
|
})
|
||||||
|
|
||||||
.controller('DnsProviderEditController', function ($scope, $uibModalInstance, DnsProviderService, DnsProviderApi, PluginService, toaster, editId) {
|
.controller('DnsProviderEditController', function ($scope, $uibModalInstance, DnsProviderService, DnsProviderApi, PluginService, toaster, editId) {
|
||||||
|
DnsProviderService.getDnsProviderOptions().then(function(res) {
|
||||||
|
$scope.options = res;
|
||||||
|
});
|
||||||
|
|
||||||
DnsProviderApi.get(editId).then(function (dns_provider) {
|
DnsProviderApi.get(editId).then(function (dns_provider) {
|
||||||
$scope.dns_provider = dns_provider;
|
$scope.dns_provider = dns_provider;
|
||||||
|
|
|
@ -31,11 +31,11 @@
|
||||||
Provider Type
|
Provider Type
|
||||||
</label>
|
</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<select class="form-control" ng-model="dns_provider.provider_type" ng-options="item.name for item in options"
|
<select class="form-control" ng-model="dns_provider.providerType" ng-options="item.name for item in options"
|
||||||
required></select>
|
required></select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group" ng-repeat="item in dns_provider.provider_type.requirements">
|
<div class="form-group" ng-repeat="item in dns_provider.providerType.requirements">
|
||||||
<ng-form name="subForm" class="form-horizontal" role="form" novalidate>
|
<ng-form name="subForm" class="form-horizontal" role="form" novalidate>
|
||||||
<div ng-class="{'has-error': subForm.sub.$invalid, 'has-success': !subForm.sub.$invalid&&subForm.sub.$dirty}">
|
<div ng-class="{'has-error': subForm.sub.$invalid, 'has-success': !subForm.sub.$invalid&&subForm.sub.$dirty}">
|
||||||
<label class="control-label col-sm-2">
|
<label class="control-label col-sm-2">
|
||||||
|
|
Loading…
Reference in New Issue