From b4d9e2d45f7b50da35204c159b17006d8d2bedc4 Mon Sep 17 00:00:00 2001 From: dkhandel Date: Tue, 13 Mar 2018 15:43:47 +0530 Subject: [PATCH 1/2] Add a deleted_at column in Vm table of db Fixes #27 --- softserve/lib.py | 2 ++ softserve/model.py | 1 + 2 files changed, 3 insertions(+) diff --git a/softserve/lib.py b/softserve/lib.py index c777d34..688c455 100644 --- a/softserve/lib.py +++ b/softserve/lib.py @@ -6,6 +6,7 @@ import pyrax import re import logging +from datetime import datetime from novaclient.exceptions import NotFound from functools import wraps from flask import jsonify @@ -82,5 +83,6 @@ def delete_node(vm_name): except NotFound: logging.exception('Server not found') vm.state = 'DELETED' + vm.deleted_at = datetime.now db.session.add(vm) db.session.commit() diff --git a/softserve/model.py b/softserve/model.py index e04ad31..16004bf 100644 --- a/softserve/model.py +++ b/softserve/model.py @@ -50,6 +50,7 @@ class Vm(db.Model): vm_name = db.Column(db.String(100), unique=False, nullable=False) details_id = db.Column(db.Integer, db.ForeignKey('node_request.id')) created_at = db.Column(db.DateTime, default=datetime.now) + deleted_at = db.Column(db.DateTime) state = db.Column(db.String(10)) def __init__(self, ip_address, vm_name, state): From ac83ca7e1c261d7e70fb5c374824480820663628 Mon Sep 17 00:00:00 2001 From: dkhandel Date: Thu, 15 Mar 2018 11:38:54 +0530 Subject: [PATCH 2/2] Generate a new migration for change in table --- ...7c_added_a_deleted_at_field_in_vm_table.py | 28 +++++++++ migrations/versions/45b003a9a66f_.py | 62 ------------------- 2 files changed, 28 insertions(+), 62 deletions(-) create mode 100644 migrations/versions/16740cdbdd7c_added_a_deleted_at_field_in_vm_table.py delete mode 100644 migrations/versions/45b003a9a66f_.py diff --git a/migrations/versions/16740cdbdd7c_added_a_deleted_at_field_in_vm_table.py b/migrations/versions/16740cdbdd7c_added_a_deleted_at_field_in_vm_table.py new file mode 100644 index 0000000..7f5e0fc --- /dev/null +++ b/migrations/versions/16740cdbdd7c_added_a_deleted_at_field_in_vm_table.py @@ -0,0 +1,28 @@ +"""Added a deleted_at field in Vm table + +Revision ID: 16740cdbdd7c +Revises: +Create Date: 2018-03-15 11:35:59.559663 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '16740cdbdd7c' +down_revision = None +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('vm', sa.Column('deleted_at', sa.DateTime(), nullable=True)) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('vm', 'deleted_at') + # ### end Alembic commands ### diff --git a/migrations/versions/45b003a9a66f_.py b/migrations/versions/45b003a9a66f_.py deleted file mode 100644 index ac91a31..0000000 --- a/migrations/versions/45b003a9a66f_.py +++ /dev/null @@ -1,62 +0,0 @@ -"""empty message - -Revision ID: 45b003a9a66f -Revises: -Create Date: 2018-02-12 15:32:20.685721 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '45b003a9a66f' -down_revision = None -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table( - 'user', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('username', sa.String(length=100), nullable=False), - sa.Column('token', sa.String(length=1000), nullable=True), - sa.Column('email', sa.String(length=100), nullable=True), - sa.Column('name', sa.String(length=100), nullable=True), - sa.PrimaryKeyConstraint('id'), - sa.UniqueConstraint('email'), - sa.UniqueConstraint('username') - ) - op.create_table( - 'node_request', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('user_id', sa.Integer(), nullable=True), - sa.Column('node_name', sa.String(length=100), nullable=False), - sa.Column('node_counts', sa.Integer(), nullable=False), - sa.Column('hours', sa.Integer(), nullable=False), - sa.Column('pubkey', sa.VARCHAR(length=1024), nullable=False), - sa.ForeignKeyConstraint(['user_id'], ['user.id'], ), - sa.PrimaryKeyConstraint('id') - ) - op.create_table( - 'vm', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('ip_address', sa.VARCHAR(length=45), nullable=True), - sa.Column('vm_name', sa.String(length=100), nullable=False), - sa.Column('details_id', sa.Integer(), nullable=True), - sa.Column('created_at', sa.DateTime(), nullable=True), - sa.Column('state', sa.String(length=10), nullable=True), - sa.ForeignKeyConstraint(['details_id'], ['node_request.id'], ), - sa.PrimaryKeyConstraint('id') - ) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_table('vm') - op.drop_table('node_request') - op.drop_table('user') - # ### end Alembic commands ###