157
157
@require_admin_context
158
def service_get_by_host_and_topic(context, host, topic):
159
session = get_session()
160
return session.query(models.Service).\
161
filter_by(deleted=False).\
162
filter_by(disabled=False).\
163
filter_by(host=host).\
164
filter_by(topic=topic).\
168
@require_admin_context
158
169
def service_get_all_by_host(context, host):
159
170
session = get_session()
160
171
return session.query(models.Service).\
1264
1275
@require_admin_context
1265
def auth_destroy_token(_context, token):
1276
def auth_token_destroy(context, token_id):
1266
1277
session = get_session()
1267
session.delete(token)
1278
with session.begin():
1279
token_ref = auth_token_get(context, token_id, session=session)
1280
token_ref.delete(session=session)
1270
1283
@require_admin_context
1271
def auth_get_token(_context, token_hash):
1272
session = get_session()
1284
def auth_token_get(context, token_hash, session=None):
1286
session = get_session()
1273
1287
tk = session.query(models.AuthToken).\
1274
1288
filter_by(token_hash=token_hash).\
1289
filter_by(deleted=can_read_deleted(context)).\
1277
1292
raise exception.NotFound(_('Token %s does not exist') % token_hash)
1281
1296
@require_admin_context
1282
def auth_create_token(_context, token):
1297
def auth_token_update(context, token_hash, values):
1298
session = get_session()
1299
with session.begin():
1300
token_ref = auth_token_get(context, token_hash, session=session)
1301
token_ref.update(values)
1302
token_ref.save(session=session)
1305
@require_admin_context
1306
def auth_token_create(_context, token):
1283
1307
tk = models.AuthToken()
1284
1308
tk.update(token)
1989
@require_admin_context
1990
def migration_create(context, values):
1991
migration = models.Migration()
1992
migration.update(values)
1997
@require_admin_context
1998
def migration_update(context, id, values):
1999
session = get_session()
2000
with session.begin():
2001
migration = migration_get(context, id, session=session)
2002
migration.update(values)
2003
migration.save(session=session)
2007
@require_admin_context
2008
def migration_get(context, id, session=None):
2010
session = get_session()
2011
result = session.query(models.Migration).\
2012
filter_by(id=id).first()
2014
raise exception.NotFound(_("No migration found with id %s")
2019
@require_admin_context
2020
def migration_get_by_instance_and_status(context, instance_id, status):
2021
session = get_session()
2022
result = session.query(models.Migration).\
2023
filter_by(instance_id=instance_id).\
2024
filter_by(status=status).first()
2026
raise exception.NotFound(_("No migration found with instance id %s")
1962
2031
##################
2135
@require_admin_context
2136
def instance_type_create(_context, values):
2138
instance_type_ref = models.InstanceTypes()
2139
instance_type_ref.update(values)
2140
instance_type_ref.save()
2142
raise exception.DBError
2143
return instance_type_ref
2147
def instance_type_get_all(context, inactive=0):
2149
Returns a dict describing all instance_types with name as key.
2151
session = get_session()
2153
inst_types = session.query(models.InstanceTypes).\
2157
inst_types = session.query(models.InstanceTypes).\
2158
filter_by(deleted=inactive).\
2163
for i in inst_types:
2164
inst_dict[i['name']] = dict(i)
2167
raise exception.NotFound
2171
def instance_type_get_by_name(context, name):
2172
"""Returns a dict describing specific instance_type"""
2173
session = get_session()
2174
inst_type = session.query(models.InstanceTypes).\
2175
filter_by(name=name).\
2178
raise exception.NotFound(_("No instance type with name %s") % name)
2180
return dict(inst_type)
2184
def instance_type_get_by_flavor_id(context, id):
2185
"""Returns a dict describing specific flavor_id"""
2186
session = get_session()
2187
inst_type = session.query(models.InstanceTypes).\
2188
filter_by(flavorid=int(id)).\
2191
raise exception.NotFound(_("No flavor with name %s") % id)
2193
return dict(inst_type)
2196
@require_admin_context
2197
def instance_type_destroy(context, name):
2198
""" Marks specific instance_type as deleted"""
2199
session = get_session()
2200
instance_type_ref = session.query(models.InstanceTypes).\
2201
filter_by(name=name)
2202
records = instance_type_ref.update(dict(deleted=1))
2204
raise exception.NotFound
2206
return instance_type_ref
2209
@require_admin_context
2210
def instance_type_purge(context, name):
2211
""" Removes specific instance_type from DB
2212
Usually instance_type_destroy should be used
2214
session = get_session()
2215
instance_type_ref = session.query(models.InstanceTypes).\
2216
filter_by(name=name)
2217
records = instance_type_ref.delete()
2219
raise exception.NotFound
2221
return instance_type_ref
2063
2224
####################