PageRenderTime 52ms CodeModel.GetById 33ms RepoModel.GetById 4ms app.codeStats 0ms

/lib/galaxy/model/migrate/versions/0026_cloud_tables.py

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