def delete_pool(self, pool_name, return_to=None, **unused):

        template_args = {
            'return_to': util.make_url_internal(return_to),
            'was_deleted': False,
            'pool_name': pool_name,
            'slave_table': []
        }

        # check that desired stack exists
        try:
            pool_id = Pool.build_id(pool_name, namespace=None, owner=None)
            pool = Pool.get(pool_id)
            template_args['pool'] = pool

            # get server labels from GUID
            slave_table = []
            slaves = Slave.all(count_per_req=10000)
            for slave in pool.slaves_usage_bytes:
                for so in slaves:
                    if so.name == slave:
                        slave_table.append(so.label)
                        break

            template_args['slave_table'] = slave_table

            # handle save action
            if cherrypy.request.method == 'POST':
                
                pool.delete()
                template_args['was_deleted'] = True

        except Exception, e:
            logger.exception(e)
            template_args['controller_exception'] = e    
Exemple #2
0
    def delete_pool(self, pool_name, return_to=None, **unused):

        template_args = {
            'return_to': util.make_url_internal(return_to),
            'was_deleted': False,
            'pool_name': pool_name,
            'slave_table': []
        }

        # check that desired stack exists
        try:
            pool_id = Pool.build_id(pool_name, namespace=None, owner=None)
            pool = Pool.get(pool_id)
            template_args['pool'] = pool

            # get server labels from GUID
            slave_table = []
            slaves = Slave.all()
            for slave in pool.slaves_usage_bytes:
                for so in slaves:
                    if so.name == slave:
                        slave_table.append(so.label)
                        break

            template_args['slave_table'] = slave_table

            # handle save action
            if cherrypy.request.method == 'POST':

                pool.delete()
                template_args['was_deleted'] = True

        except Exception, e:
            logger.exception(e)
            template_args['controller_exception'] = e
            stack = Stack.get(stack_id)
            stack_label = stack.label

        except splunk.ResourceNotFound, e:
            logger.exception(e)
            raise cherrypy.HTTPError(400, 'The "%s" stack was not found.  This interface only supports managing pools within that stack.' % DEFAULT_STACK_NAME)

        # determine unallocated volume
        pools = Pool.all().filter(stack_name=stack_name)
        total_pool_bytes = sum([p.quota_bytes['byte_value'] for p in pools])
        unallocated_bytes = stack.quota_bytes - total_pool_bytes
        template_args['unallocated_bytes'] = unallocated_bytes

        # determine correct model object init
        if action == 'edit':
            pool_id = Pool.build_id(pool_name, namespace=None, owner=None)
            pool_object = Pool.get(pool_id)

        elif action == 'add':
            pool_object = Pool(namespace=None, owner=None, name=formset_name)
            pool_object.quota_bytes['value_mode'] = 'MAX'
        
        else:
            raise Exception, 'unrecognized endpoint: %s' % action
    
        # determine allocation mode
        if pool_object.quota_bytes['value_mode'] == 'MAX':
            quota_mode = 'all'
        else:
            quota_mode = 'explicit'
Exemple #4
0
        except splunk.ResourceNotFound, e:
            logger.exception(e)
            raise cherrypy.HTTPError(
                400,
                'The "%s" stack was not found.  This interface only supports managing pools within that stack.'
                % DEFAULT_STACK_NAME)

        # determine unallocated volume
        pools = Pool.all().filter(stack_name=stack_name)
        total_pool_bytes = sum([p.quota_bytes['byte_value'] for p in pools])
        unallocated_bytes = stack.quota_bytes - total_pool_bytes
        template_args['unallocated_bytes'] = unallocated_bytes

        # determine correct model object init
        if action == 'edit':
            pool_id = Pool.build_id(pool_name, namespace=None, owner=None)
            pool_object = Pool.get(pool_id)

        elif action == 'add':
            pool_object = Pool(namespace=None, owner=None, name=formset_name)
            pool_object.quota_bytes['value_mode'] = 'MAX'

        else:
            raise Exception, 'unrecognized endpoint: %s' % action

        # determine allocation mode
        if pool_object.quota_bytes['value_mode'] == 'MAX':
            quota_mode = 'all'
        else:
            quota_mode = 'explicit'