Beispiel #1
0
def create_server_farm(ctx, sf):
    try:
        pr = db_api.predictor_get_all_by_sf_id(ctx.conf, sf['id'])
        ctx.device.create_server_farm(sf, pr)
        db_api.serverfarm_update(ctx.conf, sf['id'], {'deployed': True})
        yield
    except Exception:
        delete_server_farm(ctx, sf)
        raise
Beispiel #2
0
def create_server_farm(ctx, sf_ref):
    try:
        predictor_ref = db_api.predictor_get_by_sf_id(ctx.conf, sf_ref['id'])
        ctx.device.create_server_farm(sf_ref, predictor_ref)
        db_api.serverfarm_update(ctx.conf, sf_ref['id'], {'deployed': True})
        yield
    except Exception:
        with utils.save_and_reraise_exception():
            delete_server_farm(ctx, sf_ref)
Beispiel #3
0
def create_server_farm(ctx, sf):
    try:
        pr = db_api.predictor_get_all_by_sf_id(ctx.conf, sf["id"])
        ctx.device.create_server_farm(sf, pr)
        sf["deployed"] = "True"
        db_api.serverfarm_update(ctx.conf, sf["id"], sf)
        yield
    except Exception:
        delete_server_farm(ctx, sf)
        raise
 def test_serverfarm_update(self):
     values = get_fake_sf("1")
     serverfarm_ref = db_api.serverfarm_create(self.conf, values)
     update = {"name": "test", "extra": {"extrafield": "extravalue"}}
     serverfarm_ref = db_api.serverfarm_update(self.conf, serverfarm_ref["id"], update)
     serverfarm = dict(serverfarm_ref.iteritems())
     values.update(update)
     self.assertIsNotNone(serverfarm["id"])
     values["id"] = serverfarm["id"]
     self.assertEqual(serverfarm, values)
 def test_serverfarm_update(self):
     values = get_fake_sf('1')
     serverfarm_ref = db_api.serverfarm_create(self.conf, values)
     update = {'name': 'test',
               'extra': {'extrafield': 'extravalue'}}
     serverfarm_ref = db_api.serverfarm_update(self.conf,
                                               serverfarm_ref['id'],
                                               update)
     serverfarm = dict(serverfarm_ref.iteritems())
     values.update(update)
     self.assertIsNotNone(serverfarm['id'])
     values['id'] = serverfarm['id']
     self.assertEqual(serverfarm, values)
Beispiel #6
0
def delete_server_farm(ctx, sf):
    ctx.device.delete_server_farm(sf)
    sf['deployed'] = 'False'
    db_api.serverfarm_update(ctx.conf, sf['id'], sf)
Beispiel #7
0
def delete_server_farm(ctx, sf):
    ctx.device.delete_server_farm(sf)
    sf["deployed"] = "False"
    db_api.serverfarm_update(ctx.conf, sf["id"], sf)
Beispiel #8
0
    def savetoDB(self):
        try:
            lb_ref = db_api.loadbalancer_update(self.conf, self.lb['id'],
                                                self.lb)
        except exception.LoadBalancerNotFound:
            lb_ref = db_api.loadbalancer_create(self.conf, self.lb)

        self.sf['lb_id'] = lb_ref['id']
        try:
            sf_ref = db_api.serverfarm_update(self.conf, self.sf['id'],
                                              self.sf)
        except exception.ServerFarmNotFound:
            sf_ref = db_api.serverfarm_create(self.conf, self.sf)

        self.sf._predictor['sf_id'] = sf_ref['id']
        try:
            db_api.predictor_update(self.conf, self.sf._predictor['id'],
                                    self.sf._predictor)
        except exception.PredictorNotFound:
            db_api.predictor_create(self.conf, self.sf._predictor)

        stickies = self.sf._sticky
        vips = []

        self.sf = sf_ref
        self.sf._rservers = []
        self.sf._probes = []
        self.sf._sticky = []

        for rs in self.rs:
            rs['sf_id'] = sf_ref['id']
            try:
                rs_ref = db_api.server_update(self.conf, rs['id'], rs)
            except exception.ServerNotFound:
                rs_ref = db_api.server_create(self.conf, rs)
            self.sf._rservers.append(rs_ref)

        for pr in self.probes:
            pr['sf_id'] = sf_ref['id']
            try:
                pr_ref = db_api.probe_update(self.conf, pr['id'], pr)
            except exception.ProbeNotFound:
                pr_ref = db_api.probe_create(self.conf, pr)
            self.sf._probes.append(pr_ref)

        for vip in self.vips:
            vip['sf_id'] = sf_ref['id']
            vip['lb_id'] = lb_ref['id']
            try:
                vip_ref = db_api.virtualserver_update(self.conf, vip['id'],
                                                      vip)
            except exception.VirtualServerNotFound:
                vip_ref = db_api.virtualserver_create(self.conf, vip)
            vips.append(vip_ref)

        for st in stickies:
            st['sf_id'] = sf_ref['id']
            try:
                st_ref = db_api.sticky_update(self.conf, st['id'], st)
            except exception.StickyNotFound:
                st_ref = db_api.sticky_create(self.conf, st)
            self.sf._sticky.append(st_ref)

        self.rs = self.sf._rservers
        self.probes = self.sf._probes
        self.vips = vips