コード例 #1
0
ファイル: api.py プロジェクト: ljjjustin/nozzle
def delete_load_balancer_hard(context, load_balancer_ref):
    try:
        for association_ref in load_balancer_ref.instances:
            db.load_balancer_instance_association_destroy(
                context, load_balancer_ref.id, association_ref.instance_uuid)

        for domain_ref in load_balancer_ref.domains:
            db.load_balancer_domain_destroy(context, domain_ref.id)

        db.load_balancer_config_destroy(context, load_balancer_ref.config.id)
        db.load_balancer_destroy(context, load_balancer_ref.id)
    except Exception, exp:
        raise exception.DeleteLoadBalancerFailed(msg=str(exp))
コード例 #2
0
ファイル: test_http.py プロジェクト: ljjjustin/nozzle
    def test_update_load_balancer_http_servers(self):
        kwargs = copy.deepcopy(self.delete_kwargs)
        new_http_servers = ['www.abc.com', 'www.123.com']
        kwargs['http_server_names'] = new_http_servers

        self.mox.StubOutWithMock(utils, 'get_all_domain_names')
        self.mox.StubOutWithMock(db, 'load_balancer_get_by_uuid')
        self.mox.StubOutWithMock(db, 'load_balancer_domain_create')
        self.mox.StubOutWithMock(db, 'load_balancer_domain_destroy')
        self.mox.StubOutWithMock(db, 'load_balancer_update_state')

        load_balancer_ref = self.lb_ref
        for index, domain in enumerate(self.http_server_names):
            domain_values = {
                'id': index + 1,
                'load_balancer_id': load_balancer_ref.id,
                'name': domain,
            }
            domain_ref = models.LoadBalancerDomain()
            domain_ref.update(domain_values)
            load_balancer_ref.domains.append(domain_ref)

        db.load_balancer_get_by_uuid(
            self.ctxt, self.uuid).AndReturn(load_balancer_ref)
        utils.get_all_domain_names().AndReturn(list())

        old_http_servers = map(lambda x: x['name'], load_balancer_ref.domains)
        need_deleted_domains = filter(lambda x: x not in new_http_servers,
                                      old_http_servers)
        need_created_domains = filter(lambda x: x not in old_http_servers,
                                      new_http_servers)

        for domain in load_balancer_ref.domains:
            if domain.name in need_deleted_domains:
                db.load_balancer_domain_destroy(
                    self.ctxt, domain.id).AndReturn(None)
        for domain in need_created_domains:
            domain_values = {
                'load_balancer_id': load_balancer_ref.id,
                'name': domain,
            }
            db.load_balancer_domain_create(
                self.ctxt, domain_values).AndReturn(None)
        db.load_balancer_update_state(
            self.ctxt, self.uuid, state.UPDATING).AndReturn(None)
        self.mox.ReplayAll()
        r = http.update_load_balancer_http_servers(self.ctxt, **kwargs)
        self.mox.VerifyAll()
        self.assertRaises(r, None)
コード例 #3
0
ファイル: http.py プロジェクト: ljjjustin/nozzle
            inserted_domains.append(domain_ref.id)
        # binding instances
        for uuid in kwargs['instance_uuids']:
            association = {
                'load_balancer_id': load_balancer_ref.id,
                'instance_uuid': uuid,
            }
            db.load_balancer_instance_association_create(context, association)
            associated_instances.append(uuid)
    except Exception, exp:
        if load_balancer_ref:
            for instance_uuid in associated_instances:
                db.load_balancer_instance_association_destroy(
                    context, load_balancer_ref.id, instance_uuid)
        for domain_id in inserted_domains:
            db.load_balancer_domain_destroy(context, domain_id)
        if config_ref:
            db.load_balancer_config_destroy(context, config_ref.id)
        if load_balancer_ref:
            db.load_balancer_destroy(context, load_balancer_ref.id)
        raise exception.CreateLoadBalancerFailed(msg=str(exp))

    return {'data': {'uuid': load_balancer_ref.uuid}}


def update_load_balancer_config(context, **kwargs):
    expect_keys = [
        'user_id', 'tenant_id', 'protocol',
        'uuid', 'config',
    ]
    utils.check_input_parameters(expect_keys, **kwargs)