# Copyright (C) 2010-2014 Cuckoo Foundation.
# This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org
# See the file 'docs/LICENSE' for copying permission.

import os.path
import sys

from __future__ import with_statement
from alembic import context
from sqlalchemy import create_engine, pool
from logging.config import fileConfig

# this is the Alembic Config object, which provides
# access to the values within the .ini file in use.
config = context.config

# Interpret the config file for Python logging.
# This line sets up loggers basically.
fileConfig(config.config_file_name)

curdir = os.path.abspath(os.path.dirname(__file__))
sys.path.append(os.path.join(curdir, "..", ".."))

from lib.cuckoo.core.database import Base, Database

url = Database().engine.url.__to_string__(hide_password=False)
target_metadata = Base.metadata

# other values from the config, defined by the needs of env.py,
# can be acquired:
# my_important_option = config.get_main_option("my_important_option")
# ... etc.

def run_migrations_offline():
    """Run migrations in 'offline' mode.

    This configures the context with just a URL
    and not an Engine, though an Engine is acceptable
    here as well.  By skipping the Engine creation
    we don't even need a DBAPI to be available.

    Calls to context.execute() here emit the given string to the
    script output.

    """
    context.configure(url=url)

    with context.begin_transaction():
        context.run_migrations()

def run_migrations_online():
    """Run migrations in 'online' mode.

    In this scenario we need to create an Engine
    and associate a connection with the context.

    """
    engine = create_engine(url, poolclass=pool.NullPool)

    connection = engine.connect()
    context.configure(connection=connection, target_metadata=target_metadata)

    try:
        with context.begin_transaction():
            context.run_migrations()
    finally:
        connection.close()

if context.is_offline_mode():
    run_migrations_offline()
else:
    run_migrations_online()

@@ -339,17 +339,17 @@
 nfig%0A%0A# 
-t
+T
 his is t
@@ -388,18 +388,16 @@
 provides
-%0A#
  access 
@@ -416,16 +416,18 @@
 s within
+%0A#
  the .in
@@ -590,16 +590,40 @@
 _name)%0A%0A
+# Get cuckoo root path.%0A
 curdir =
@@ -770,16 +770,76 @@
 tabase%0A%0A
+# Get database connection string from cuckoo configuration.%0A
 url = Da
@@ -930,173 +930,8 @@
 ta%0A%0A
-# other values from the config, defined by the needs of env.py,%0A# can be acquired:%0A# my_important_option = config.get_main_option(%22my_important_option%22)%0A# ... etc.%0A%0A
 def 
@@ -993,25 +993,24 @@
 line' mode.%0A
-%0A
     This con
@@ -1198,17 +1198,16 @@
 ilable.%0A
-%0A
     Call
@@ -1282,17 +1282,16 @@
 output.%0A
-%0A
     %22%22%22%0A
@@ -1463,17 +1463,16 @@
 ' mode.%0A
-%0A
     In t
@@ -1512,16 +1512,16 @@
  Engine%0A
+
     and 
@@ -1561,17 +1561,16 @@
 ontext.%0A
-%0A
     %22%22%22%0A

Comment whatever