68 lines
2.1 KiB
Python
68 lines
2.1 KiB
Python
"""Adds support for rotation policies.
|
|
|
|
Creates a default rotation policy (30 days) with the name
|
|
'default' ensures that all existing certificates use the default
|
|
policy.
|
|
|
|
Revision ID: a02a678ddc25
|
|
Revises: 8ae67285ff14
|
|
Create Date: 2017-07-12 11:45:49.257927
|
|
"""
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision = "a02a678ddc25"
|
|
down_revision = "8ae67285ff14"
|
|
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
from sqlalchemy.sql import text
|
|
|
|
|
|
def upgrade():
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
op.create_table(
|
|
"rotation_policies",
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
sa.Column("name", sa.String(), nullable=True),
|
|
sa.Column("days", sa.Integer(), nullable=True),
|
|
sa.PrimaryKeyConstraint("id"),
|
|
)
|
|
op.add_column(
|
|
"certificates", sa.Column("rotation_policy_id", sa.Integer(), nullable=True)
|
|
)
|
|
op.create_foreign_key(
|
|
None, "certificates", "rotation_policies", ["rotation_policy_id"], ["id"]
|
|
)
|
|
|
|
conn = op.get_bind()
|
|
stmt = text("insert into rotation_policies (days, name) values (:days, :name)")
|
|
stmt = stmt.bindparams(days=30, name="default")
|
|
conn.execute(stmt)
|
|
|
|
stmt = text("select id from rotation_policies where name=:name")
|
|
stmt = stmt.bindparams(name="default")
|
|
rotation_policy_id = conn.execute(stmt).fetchone()[0]
|
|
|
|
stmt = text("update certificates set rotation_policy_id=:rotation_policy_id")
|
|
stmt = stmt.bindparams(rotation_policy_id=rotation_policy_id)
|
|
conn.execute(stmt)
|
|
# ### end Alembic commands ###
|
|
|
|
|
|
def downgrade():
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
op.drop_constraint(None, "certificates", type_="foreignkey")
|
|
op.drop_column("certificates", "rotation_policy_id")
|
|
op.drop_index(
|
|
"certificate_replacement_associations_ix",
|
|
table_name="certificate_replacement_associations",
|
|
)
|
|
op.create_index(
|
|
"certificate_replacement_associations_ix",
|
|
"certificate_replacement_associations",
|
|
["replaced_certificate_id", "certificate_id"],
|
|
unique=True,
|
|
)
|
|
op.drop_table("rotation_policies")
|
|
# ### end Alembic commands ###
|