| 1 | from sqlalchemy import * | 
|---|
| 2 | from migrate import * | 
|---|
| 3 |  | 
|---|
| 4 | import datetime | 
|---|
| 5 | now = datetime.datetime.utcnow | 
|---|
| 6 |  | 
|---|
| 7 | # Need our custom types, but don't import anything else from model | 
|---|
| 8 | from galaxy.model.custom_types import * | 
|---|
| 9 |  | 
|---|
| 10 | import logging | 
|---|
| 11 | log = logging.getLogger( __name__ ) | 
|---|
| 12 |  | 
|---|
| 13 | metadata = MetaData( migrate_engine ) | 
|---|
| 14 |  | 
|---|
| 15 | def display_migration_details(): | 
|---|
| 16 | print | 
|---|
| 17 | print "========================================" | 
|---|
| 18 | print "This script adds tables needed for Galaxy cloud functionality." | 
|---|
| 19 | print "========================================" | 
|---|
| 20 |  | 
|---|
| 21 | CloudImage_table = Table( "cloud_image", metadata, | 
|---|
| 22 | Column( "id", Integer, primary_key=True ), | 
|---|
| 23 | Column( "create_time", DateTime, default=now ), | 
|---|
| 24 | Column( "update_time", DateTime, default=now, onupdate=now ), | 
|---|
| 25 | Column( "provider_type", TEXT ), | 
|---|
| 26 | Column( "image_id", TEXT, nullable=False ), | 
|---|
| 27 | Column( "manifest", TEXT ), | 
|---|
| 28 | Column( "state", TEXT ), | 
|---|
| 29 | Column( "architecture", TEXT ), | 
|---|
| 30 | Column( "deleted", Boolean, default=False ) ) | 
|---|
| 31 |  | 
|---|
| 32 | """ UserConfiguredInstance (UCI) table """ | 
|---|
| 33 | UCI_table = Table( "cloud_uci", metadata, | 
|---|
| 34 | Column( "id", Integer, primary_key=True ), | 
|---|
| 35 | Column( "create_time", DateTime, default=now ), | 
|---|
| 36 | Column( "update_time", DateTime, default=now, onupdate=now ), | 
|---|
| 37 | Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True, nullable=False ), | 
|---|
| 38 | Column( "credentials_id", Integer, ForeignKey( "cloud_user_credentials.id" ), index=True ), | 
|---|
| 39 | Column( "key_pair_name", TEXT ), | 
|---|
| 40 | Column( "key_pair_material", TEXT ), | 
|---|
| 41 | Column( "name", TEXT ), | 
|---|
| 42 | Column( "state", TEXT ), | 
|---|
| 43 | Column( "error", TEXT ), | 
|---|
| 44 | Column( "total_size", Integer ), | 
|---|
| 45 | Column( "launch_time", DateTime ), | 
|---|
| 46 | Column( "deleted", Boolean, default=False ) ) | 
|---|
| 47 |  | 
|---|
| 48 | CloudInstance_table = Table( "cloud_instance", metadata, | 
|---|
| 49 | Column( "id", Integer, primary_key=True ), | 
|---|
| 50 | Column( "create_time", DateTime, default=now ), | 
|---|
| 51 | Column( "update_time", DateTime, default=now, onupdate=now ), | 
|---|
| 52 | Column( "launch_time", DateTime ), | 
|---|
| 53 | Column( "stop_time", DateTime ), | 
|---|
| 54 | Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True, nullable=False ), | 
|---|
| 55 | Column( "uci_id", Integer, ForeignKey( "cloud_uci.id" ), index=True ), | 
|---|
| 56 | Column( "type", TEXT ), | 
|---|
| 57 | Column( "reservation_id", TEXT ), | 
|---|
| 58 | Column( "instance_id", TEXT ), | 
|---|
| 59 | Column( "mi_id", Integer, ForeignKey( "cloud_image.id" ), index=True ), | 
|---|
| 60 | Column( "state", TEXT ), | 
|---|
| 61 | Column( "error", TEXT ), | 
|---|
| 62 | Column( "public_dns", TEXT ), | 
|---|
| 63 | Column( "private_dns", TEXT ), | 
|---|
| 64 | Column( "security_group", TEXT ), | 
|---|
| 65 | Column( "availability_zone", TEXT ) ) | 
|---|
| 66 |  | 
|---|
| 67 | CloudStore_table = Table( "cloud_store", metadata, | 
|---|
| 68 | Column( "id", Integer, primary_key=True ), | 
|---|
| 69 | Column( "create_time", DateTime, default=now ), | 
|---|
| 70 | Column( "update_time", DateTime, default=now, onupdate=now ), | 
|---|
| 71 | Column( "attach_time", DateTime ), | 
|---|
| 72 | Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True, nullable=False ), | 
|---|
| 73 | Column( "uci_id", Integer, ForeignKey( "cloud_uci.id" ), index=True, nullable=False ), | 
|---|
| 74 | Column( "volume_id", TEXT ), | 
|---|
| 75 | Column( "size", Integer, nullable=False ), | 
|---|
| 76 | Column( "availability_zone", TEXT ), | 
|---|
| 77 | Column( "inst_id", Integer, ForeignKey( "cloud_instance.id" ) ), | 
|---|
| 78 | Column( "status", TEXT ), | 
|---|
| 79 | Column( "device", TEXT ), | 
|---|
| 80 | Column( "space_consumed", Integer ), | 
|---|
| 81 | Column( "error", TEXT ), | 
|---|
| 82 | Column( "deleted", Boolean, default=False ) ) | 
|---|
| 83 |  | 
|---|
| 84 | CloudSnapshot_table = Table( "cloud_snapshot", metadata, | 
|---|
| 85 | Column( "id", Integer, primary_key=True ), | 
|---|
| 86 | Column( "create_time", DateTime, default=now ), | 
|---|
| 87 | Column( "update_time", DateTime, default=now, onupdate=now ), | 
|---|
| 88 | Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True, nullable=False ), | 
|---|
| 89 | Column( "uci_id", Integer, ForeignKey( "cloud_uci.id" ), index=True ), | 
|---|
| 90 | Column( "store_id", Integer, ForeignKey( "cloud_store.id" ), index=True, nullable=False ), | 
|---|
| 91 | Column( "snapshot_id", TEXT ), | 
|---|
| 92 | Column( "status", TEXT ), | 
|---|
| 93 | Column( "description", TEXT ), | 
|---|
| 94 | Column( "error", TEXT ), | 
|---|
| 95 | Column( "deleted", Boolean, default=False ) ) | 
|---|
| 96 |  | 
|---|
| 97 | CloudUserCredentials_table = Table( "cloud_user_credentials", metadata, | 
|---|
| 98 | Column( "id", Integer, primary_key=True ), | 
|---|
| 99 | Column( "create_time", DateTime, default=now ), | 
|---|
| 100 | Column( "update_time", DateTime, default=now, onupdate=now ), | 
|---|
| 101 | Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True, nullable=False ), | 
|---|
| 102 | Column( "provider_id", Integer, ForeignKey( "cloud_provider.id" ), index=True, nullable=False ), | 
|---|
| 103 | Column( "name", TEXT ), | 
|---|
| 104 | Column( "access_key", TEXT ), | 
|---|
| 105 | Column( "secret_key", TEXT ), | 
|---|
| 106 | Column( "deleted", Boolean, default=False ) ) | 
|---|
| 107 |  | 
|---|
| 108 | CloudProvider_table = Table( "cloud_provider", metadata, | 
|---|
| 109 | Column( "id", Integer, primary_key=True ), | 
|---|
| 110 | Column( "create_time", DateTime, default=now ), | 
|---|
| 111 | Column( "update_time", DateTime, default=now, onupdate=now ), | 
|---|
| 112 | Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True, nullable=False ), | 
|---|
| 113 | Column( "type", TEXT, nullable=False ), | 
|---|
| 114 | Column( "name", TEXT ), | 
|---|
| 115 | Column( "region_connection", TEXT ), | 
|---|
| 116 | Column( "region_name", TEXT ), | 
|---|
| 117 | Column( "region_endpoint", TEXT ), | 
|---|
| 118 | Column( "is_secure", Boolean ), | 
|---|
| 119 | Column( "host", TEXT ), | 
|---|
| 120 | Column( "port", Integer ), | 
|---|
| 121 | Column( "proxy", TEXT ), | 
|---|
| 122 | Column( "proxy_port", TEXT ), | 
|---|
| 123 | Column( "proxy_user", TEXT ), | 
|---|
| 124 | Column( "proxy_pass", TEXT ), | 
|---|
| 125 | Column( "debug", Integer ), | 
|---|
| 126 | Column( "https_connection_factory", TEXT ), | 
|---|
| 127 | Column( "path", TEXT ), | 
|---|
| 128 | Column( "deleted", Boolean, default=False ) ) | 
|---|
| 129 |  | 
|---|
| 130 | def upgrade(): | 
|---|
| 131 | display_migration_details() | 
|---|
| 132 | # Load existing tables | 
|---|
| 133 | metadata.reflect() | 
|---|
| 134 |  | 
|---|
| 135 | CloudProvider_table.create() | 
|---|
| 136 | CloudUserCredentials_table.create() | 
|---|
| 137 |  | 
|---|
| 138 | CloudImage_table.create() | 
|---|
| 139 | UCI_table.create() | 
|---|
| 140 |  | 
|---|
| 141 | CloudInstance_table.create() | 
|---|
| 142 | CloudStore_table.create() | 
|---|
| 143 | CloudSnapshot_table.create() | 
|---|
| 144 |  | 
|---|
| 145 | def downgrade(): | 
|---|
| 146 | metadata.reflect() | 
|---|
| 147 |  | 
|---|
| 148 | CloudInstance_table.drop() | 
|---|
| 149 | CloudSnapshot_table.drop() | 
|---|
| 150 | CloudStore_table.drop() | 
|---|
| 151 |  | 
|---|
| 152 | UCI_table.drop() | 
|---|
| 153 | CloudImage_table.drop() | 
|---|
| 154 |  | 
|---|
| 155 | CloudUserCredentials_table.drop() | 
|---|
| 156 | CloudProvider_table.drop() | 
|---|