Example #1
0
    def do(self, workflow_dict):
        try:

            databaseinfra = workflow_dict['databaseinfra']
            LOG.info("Creating dns for VIP...")
            vip_ip = get_vip_ip_from_databaseinfra(databaseinfra=databaseinfra)

            vip_dns = add_dns_record(databaseinfra=databaseinfra,
                                     name=databaseinfra.name,
                                     ip=vip_ip,
                                     type=FOXHA)

            LOG.info("Updating databaseinfra endpoint...")
            databaseinfra.endpoint_dns = "{}:{}".format(vip_dns, 3306)
            databaseinfra.save()
            workflow_dict['databaseinfra'] = databaseinfra

            LOG.info("Creating dns for hosts...")
            for host_name in zip(workflow_dict['hosts'],
                                 workflow_dict['names']['vms']):
                host = host_name[0]

                host.hostname = add_dns_record(
                    databaseinfra=workflow_dict['databaseinfra'],
                    name=host_name[1],
                    ip=host.address,
                    type=HOST)
                host.save()

            LOG.info("Creating dns for instances...")
            for instance_name in zip(workflow_dict['instances'],
                                     workflow_dict['names']['vms']):
                instance = instance_name[0]

                instance.dns = add_dns_record(
                    databaseinfra=workflow_dict['databaseinfra'],
                    name=instance_name[1],
                    ip=instance.address,
                    type=INSTANCE)
                instance.save()

            LOG.info("Calling dnsapi provider...")
            DNSAPIProvider.create_database_dns(
                databaseinfra=workflow_dict['databaseinfra'])

            return True

        except Exception:
            traceback = full_stack()

            workflow_dict['exceptions']['error_codes'].append(DBAAS_0007)
            workflow_dict['exceptions']['traceback'].append(traceback)

            return False
    def do(self, workflow_dict):
        try:
            LOG.info("Creating dns for hosts...")
            for host_name in zip(workflow_dict['hosts'],
                                 workflow_dict['names']['vms']):
                host = host_name[0]
                LOG.info("Updating host dns - host: {}".format(host))

                host.hostname = add_dns_record(
                    databaseinfra=workflow_dict['databaseinfra'],
                    name=host_name[1],
                    ip=host.address,
                    type=HOST)
                host.save()
                LOG.info("DNS host updated - dns: {}".format(host.hostname))

            LOG.info("Creating dns for instances...")
            for instance_name in zip(workflow_dict['instances'],
                                     workflow_dict['names']['vms']):
                instance = instance_name[0]
                LOG.info(
                    "Updating instance dns - instance: {}".format(instance))

                instance.dns = add_dns_record(
                    databaseinfra=workflow_dict['databaseinfra'],
                    name=instance_name[1],
                    ip=instance.address,
                    type=INSTANCE)
                instance.save()
                LOG.info("DNS instance updated - dns: {}".format(instance.dns))

                if workflow_dict['qt'] == 1:
                    LOG.info("Updating databaseinfra dns endpoint")
                    databaseinfra = workflow_dict['databaseinfra']
                    databaseinfra.endpoint_dns = instance.dns + \
                        ':%i' % instance.port
                    databaseinfra.save()
                    workflow_dict['databaseinfra'] = databaseinfra

            LOG.info("Calling dnsapi provider...")
            DNSAPIProvider.create_database_dns(
                databaseinfra=workflow_dict['databaseinfra'])

            return True

        except Exception:
            traceback = full_stack()

            workflow_dict['exceptions']['error_codes'].append(DBAAS_0007)
            workflow_dict['exceptions']['traceback'].append(traceback)

            return False
    def do(self, workflow_dict):
        try:
            LOG.info("Creating dns for hosts...")
            for host_name in zip(workflow_dict['hosts'], workflow_dict['names']['vms']):
                host = host_name[0]
                LOG.info("Updating host dns - host: {}".format(host))

                host.hostname = add_dns_record(
                    databaseinfra=workflow_dict['databaseinfra'],
                    name=host_name[
                        1],
                    ip=host.address,
                    type=HOST)
                host.save()
                LOG.info("DNS host updated - dns: {}".format(host.hostname))

            LOG.info("Creating dns for instances...")
            for instance_name in zip(workflow_dict['instances'], workflow_dict['names']['vms']):
                instance = instance_name[0]
                LOG.info("Updating instance dns - instance: {}".format(instance))

                instance.dns = add_dns_record(
                    databaseinfra=workflow_dict['databaseinfra'],
                    name=instance_name[
                        1],
                    ip=instance.address,
                    type=INSTANCE)
                instance.save()
                LOG.info("DNS instance updated - dns: {}".format(instance.dns))

                if workflow_dict['qt'] == 1:
                    LOG.info("Updating databaseinfra dns endpoint")
                    databaseinfra = workflow_dict['databaseinfra']
                    databaseinfra.endpoint_dns = instance.dns + \
                        ':%i' % instance.port
                    databaseinfra.save()
                    workflow_dict['databaseinfra'] = databaseinfra

            LOG.info("Calling dnsapi provider...")
            DNSAPIProvider.create_database_dns(
                databaseinfra=workflow_dict['databaseinfra'])

            return True

        except Exception:
            traceback = full_stack()

            workflow_dict['exceptions']['error_codes'].append(DBAAS_0007)
            workflow_dict['exceptions']['traceback'].append(traceback)

            return False
    def do(self, workflow_dict):
        try:

            if 'databaseinfraattr' in workflow_dict:

                LOG.info("Creating dns for databaseinfraattr...")
                for infra_attr in workflow_dict['databaseinfraattr']:

                    if infra_attr.is_write:
                        dnsname = workflow_dict['databaseinfra'].name
                    else:
                        dnsname = workflow_dict['databaseinfra'].name + '-r'

                    dnsname = add_dns_record(
                        databaseinfra=workflow_dict['databaseinfra'],
                        name=dnsname,
                        ip=infra_attr.ip,
                        type=FLIPPER)

                    infra_attr.dns = dnsname
                    infra_attr.save()

                    if infra_attr.is_write:
                        LOG.info("Updating databaseinfra dns endpoint")
                        databaseinfra = workflow_dict['databaseinfra']
                        databaseinfra.endpoint_dns = infra_attr.dns + ':%i' % 3306
                        databaseinfra.save()
                        workflow_dict['databaseinfra'] = databaseinfra

            LOG.info("Creating dns for hosts...")
            for host_name in zip(workflow_dict['hosts'],
                                 workflow_dict['names']['vms']):
                host = host_name[0]

                host.hostname = add_dns_record(
                    databaseinfra=workflow_dict['databaseinfra'],
                    name=host_name[1],
                    ip=host.address,
                    type=HOST)
                host.save()

            LOG.info("Creating dns for instances...")
            for instance_name in zip(workflow_dict['instances'],
                                     workflow_dict['names']['vms']):
                instance = instance_name[0]

                instance.dns = add_dns_record(
                    databaseinfra=workflow_dict['databaseinfra'],
                    name=instance_name[1],
                    ip=instance.address,
                    type=INSTANCE)
                instance.save()

                if workflow_dict['qt'] == 1:
                    LOG.info("Updating databaseinfra dns endpoint")
                    databaseinfra = workflow_dict['databaseinfra']
                    databaseinfra.endpoint_dns = instance.dns + ':%i' % instance.port
                    databaseinfra.save()
                    workflow_dict['databaseinfra'] = databaseinfra

            LOG.info("Calling dnsapi provider...")
            DNSAPIProvider.create_database_dns(
                databaseinfra=workflow_dict['databaseinfra'])

            return True

        except Exception, e:
            traceback = full_stack()

            workflow_dict['exceptions']['error_codes'].append(DBAAS_0007)
            workflow_dict['exceptions']['traceback'].append(traceback)

            return False
    def do(self, workflow_dict):
        try:

            if 'databaseinfraattr' in workflow_dict:

                LOG.info("Creating dns for databaseinfraattr...")
                for infra_attr in workflow_dict['databaseinfraattr']:

                    if infra_attr.is_write:
                        dnsname = workflow_dict['databaseinfra'].name
                    else:
                        dnsname = workflow_dict['databaseinfra'].name + '-r'

                    dnsname = add_dns_record(
                        databaseinfra=workflow_dict['databaseinfra'],
                        name=dnsname,
                        ip=infra_attr.ip,
                        type=FLIPPER)

                    infra_attr.dns = dnsname
                    infra_attr.save()

                    if infra_attr.is_write:
                        LOG.info("Updating databaseinfra dns endpoint")
                        databaseinfra = workflow_dict['databaseinfra']
                        databaseinfra.endpoint_dns = infra_attr.dns + \
                            ':%i' % 3306
                        databaseinfra.save()
                        workflow_dict['databaseinfra'] = databaseinfra

            LOG.info("Creating dns for hosts...")
            for host_name in zip(workflow_dict['hosts'], workflow_dict['names']['vms']):
                host = host_name[0]

                host.hostname = add_dns_record(
                    databaseinfra=workflow_dict['databaseinfra'],
                    name=host_name[
                        1],
                    ip=host.address,
                    type=HOST)
                host.save()

            LOG.info("Creating dns for instances...")
            for instance_name in zip(workflow_dict['instances'], workflow_dict['names']['vms']):
                instance = instance_name[0]

                instance.dns = add_dns_record(
                    databaseinfra=workflow_dict['databaseinfra'],
                    name=instance_name[
                        1],
                    ip=instance.address,
                    type=INSTANCE)
                instance.save()

                if workflow_dict['qt'] == 1:
                    LOG.info("Updating databaseinfra dns endpoint")
                    databaseinfra = workflow_dict['databaseinfra']
                    databaseinfra.endpoint_dns = instance.dns + \
                        ':%i' % instance.port
                    databaseinfra.save()
                    workflow_dict['databaseinfra'] = databaseinfra

            LOG.info("Calling dnsapi provider...")
            DNSAPIProvider.create_database_dns(
                databaseinfra=workflow_dict['databaseinfra'])

            return True

        except Exception:
            traceback = full_stack()

            workflow_dict['exceptions']['error_codes'].append(DBAAS_0007)
            workflow_dict['exceptions']['traceback'].append(traceback)

            return False
    def do(self, workflow_dict):
        try:
            LOG.info("Creating dns for hosts...")
            for host_name in zip(workflow_dict['hosts'],
                                 workflow_dict['names']['vms']):
                host = host_name[0]

                host.hostname = add_dns_record(
                    databaseinfra=workflow_dict['databaseinfra'],
                    name=host_name[1],
                    ip=host.address,
                    type=HOST)
                host.save()

            instances_redis = []
            instances_sentinel = []

            for instance in workflow_dict['instances']:
                if instance.instance_type == Instance.REDIS_SENTINEL:
                    instances_sentinel.append(instance)
                else:
                    instances_redis.append(instance)

            LOG.info("Creating dns for instances...")
            for instance_name in zip(instances_redis,
                                     workflow_dict['names']['vms']):
                instance = instance_name[0]

                instance.dns = add_dns_record(
                    databaseinfra=workflow_dict['databaseinfra'],
                    name=instance_name[1],
                    ip=instance.address,
                    type=INSTANCE)
                instance.save()

                if workflow_dict['qt'] == 1:
                    LOG.info("Updating databaseinfra dns endpoint")
                    databaseinfra = workflow_dict['databaseinfra']
                    databaseinfra.endpoint_dns = instance.dns + \
                        ':%i' % instance.port
                    databaseinfra.save()
                    workflow_dict['databaseinfra'] = databaseinfra

            LOG.info("Creating dns for sentinel instances...")
            for instance_name in zip(instances_sentinel,
                                     workflow_dict['names']['vms']):
                instance = instance_name[0]

                instance.dns = add_dns_record(
                    databaseinfra=workflow_dict['databaseinfra'],
                    name=instance_name[1],
                    ip=instance.address,
                    type=INSTANCE,
                    database_sufix='sentinel')
                instance.save()

            LOG.info("Calling dnsapi provider...")
            DNSAPIProvider.create_database_dns(
                databaseinfra=workflow_dict['databaseinfra'])

            return True

        except Exception:
            traceback = full_stack()

            workflow_dict['exceptions']['error_codes'].append(DBAAS_0007)
            workflow_dict['exceptions']['traceback'].append(traceback)

            return False
    def do(self, workflow_dict):
        try:
            LOG.info("Creating dns for hosts...")
            for host_name in zip(workflow_dict["hosts"], workflow_dict["names"]["vms"]):
                host = host_name[0]

                host.hostname = add_dns_record(
                    databaseinfra=workflow_dict["databaseinfra"], name=host_name[1], ip=host.address, type=HOST
                )
                host.save()

            instances_redis = []
            instances_sentinel = []

            for instance in workflow_dict["instances"]:
                if instance.instance_type == Instance.REDIS_SENTINEL:
                    instances_sentinel.append(instance)
                else:
                    instances_redis.append(instance)

            LOG.info("Creating dns for instances...")
            for instance_name in zip(instances_redis, workflow_dict["names"]["vms"]):
                instance = instance_name[0]

                instance.dns = add_dns_record(
                    databaseinfra=workflow_dict["databaseinfra"],
                    name=instance_name[1],
                    ip=instance.address,
                    type=INSTANCE,
                )
                instance.save()

                if workflow_dict["qt"] == 1:
                    LOG.info("Updating databaseinfra dns endpoint")
                    databaseinfra = workflow_dict["databaseinfra"]
                    databaseinfra.endpoint_dns = instance.dns + ":%i" % instance.port
                    databaseinfra.save()
                    workflow_dict["databaseinfra"] = databaseinfra

            LOG.info("Creating dns for sentinel instances...")
            for instance_name in zip(instances_sentinel, workflow_dict["names"]["vms"]):
                instance = instance_name[0]

                instance.dns = add_dns_record(
                    databaseinfra=workflow_dict["databaseinfra"],
                    name=instance_name[1],
                    ip=instance.address,
                    type=INSTANCE,
                    database_sufix="sentinel",
                )
                instance.save()

            LOG.info("Calling dnsapi provider...")
            DNSAPIProvider.create_database_dns(databaseinfra=workflow_dict["databaseinfra"])

            return True

        except Exception:
            traceback = full_stack()

            workflow_dict["exceptions"]["error_codes"].append(DBAAS_0007)
            workflow_dict["exceptions"]["traceback"].append(traceback)

            return False