Example #1
0
 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)
Example #2
0
    def authorize_target_action(cls, context, target_rule_name,
                                target_id, is_cluster=False):
        target = None
        if is_cluster:
            target = cluster_models.Cluster.load(context, target_id)
        else:
            target = instance_models.Instance.load(context, target_id)

        if not target:
            if is_cluster:
                raise exception.ClusterNotFound(cluster=target_id)
            raise exception.InstanceNotFound(instance=target_id)

        target_type = 'cluster' if is_cluster else 'instance'
        policy.authorize_on_target(
            context, '%s:extension:%s' % (target_type, target_rule_name),
            {'tenant': target.tenant_id})