예제 #1
0
파일: service.py 프로젝트: flg77/trove
 def action(self, req, body, tenant_id, id):
     LOG.debug("Committing Action Against Cluster for "
               "Tenant '%s'" % tenant_id)
     LOG.info(_("req : '%s'\n\n") % req)
     LOG.info(_("id : '%s'\n\n") % id)
     if not body:
         raise exception.BadRequest(_("Invalid request body."))
     context = req.environ[wsgi.CONTEXT_KEY]
     cluster = models.Cluster.load(context, id)
     manager = cluster.datastore_version.manager
     api_strategy = strategy.load_api_strategy(manager)
     _actions = api_strategy.cluster_controller_actions
     selected_action = None
     for key in body:
         if key in _actions:
             selected_action = _actions[key]
             break
     else:
         message = _(
             "No action '%(action)s' supplied "
             "by strategy for manager '%(manager)s'") % ({
                 'action': key,
                 'manager': manager
             })
         raise exception.TroveError(message)
     return selected_action(cluster, body)
예제 #2
0
파일: models.py 프로젝트: vdialani/trove
 def load(cls, context, cluster_id, clazz=None):
     try:
         db_info = DBCluster.find_by(context=context, id=cluster_id,
                                     deleted=False)
     except exception.ModelNotFoundError:
         raise exception.ClusterNotFound(cluster=cluster_id)
     if not clazz:
         ds_version = (datastore_models.DatastoreVersion.
                       load_by_uuid(db_info.datastore_version_id))
         manager = ds_version.manager
         clazz = strategy.load_api_strategy(manager).cluster_class
     return clazz(context, db_info)
예제 #3
0
 def action(self, req, body, tenant_id, id):
     LOG.debug("Committing Action Against Cluster for "
               "Tenant '%s'" % tenant_id)
     LOG.info(_("req : '%s'\n\n") % req)
     LOG.info(_("id : '%s'\n\n") % id)
     if not body:
         raise exception.BadRequest(_("Invalid request body."))
     context = req.environ[wsgi.CONTEXT_KEY]
     cluster = models.Cluster.load(context, id)
     manager = cluster.datastore_version.manager
     api_strategy = strategy.load_api_strategy(manager)
     _actions = api_strategy.cluster_controller_actions
     selected_action = None
     for key in body:
         if key in _actions:
             selected_action = _actions[key]
             break
     else:
         message = _("No action '%(action)s' supplied "
                     "by strategy for manager '%(manager)s'") % (
                         {'action': key, 'manager': manager})
         raise exception.TroveError(message)
     return selected_action(cluster, body)
예제 #4
0
파일: views.py 프로젝트: vdialani/trove
def load_mgmt_view(cluster, req, load_servers=True):
    manager = cluster.datastore_version.manager
    return strategy.load_api_strategy(manager).mgmt_cluster_view_class(
        cluster, req, load_servers)
예제 #5
0
def load_mgmt_view(cluster, req, load_servers=True):
    manager = cluster.datastore_version.manager
    return strategy.load_api_strategy(manager).mgmt_cluster_view_class(
        cluster, req, load_servers)
예제 #6
0
파일: models.py 프로젝트: vdialani/trove
 def create(cls, context, name, datastore, datastore_version, instances):
     api_strategy = strategy.load_api_strategy(datastore_version.manager)
     return api_strategy.cluster_class.create(context, name, datastore,
                                              datastore_version, instances)