trove instance service 总结

def create(self, req, body, tenant_id):    # TODO(hub-cap): turn this into middleware    LOG.info(_LI("Creating a database instance for tenant ‘%s‘"),             tenant_id)    LOG.debug("req : ‘%s‘\n\n", strutils.mask_password(req))    LOG.debug("body : ‘%s‘\n\n", strutils.mask_password(body))    context = req.environ[wsgi.CONTEXT_KEY]    context.notification = notification.DBaaSInstanceCreate(context,                                                            request=req)    datastore_args = body[‘instance‘].get(‘datastore‘, {})    datastore, datastore_version = (        datastore_models.get_datastore_version(**datastore_args))    image_id = datastore_version.image_id    name = body[‘instance‘][‘name‘]    flavor_ref = body[‘instance‘][‘flavorRef‘]    flavor_id = utils.get_id_from_href(flavor_ref)

    configuration = self._configuration_parse(context, body)    databases = populate_validated_databases(        body[‘instance‘].get(‘databases‘, []))    database_names = [database.get(‘_name‘, ‘‘) for database in databases]    users = None    try:        users = populate_users(body[‘instance‘].get(‘users‘, []),                               database_names)    except ValueError as ve:        raise exception.BadRequest(msg=ve)

    if ‘volume‘ in body[‘instance‘]:        volume_info = body[‘instance‘][‘volume‘]        volume_size = int(volume_info[‘size‘])        volume_type = volume_info.get(‘type‘)    else:        volume_size = None        volume_type = None

    if ‘restorePoint‘ in body[‘instance‘]:        backupRef = body[‘instance‘][‘restorePoint‘][‘backupRef‘]        backup_id = utils.get_id_from_href(backupRef)    else:        backup_id = None

    availability_zone = body[‘instance‘].get(‘availability_zone‘)    nics = body[‘instance‘].get(‘nics‘)

    slave_of_id = body[‘instance‘].get(‘replica_of‘,                                       # also check for older name                                       body[‘instance‘].get(‘slave_of‘))    replica_count = body[‘instance‘].get(‘replica_count‘)    modules = body[‘instance‘].get(‘modules‘)    locality = body[‘instance‘].get(‘locality‘)    if locality:        locality_domain = [‘affinity‘, ‘anti-affinity‘]        locality_domain_msg = ("Invalid locality ‘%s‘. "                               "Must be one of [‘%s‘]" %                               (locality,                                "‘, ‘".join(locality_domain)))        if locality not in locality_domain:            raise exception.BadRequest(msg=locality_domain_msg)        if slave_of_id:            dupe_locality_msg = (                ‘Cannot specify locality when adding replicas to existing ‘                ‘master.‘)            raise exception.BadRequest(msg=dupe_locality_msg)

    instance = models.Instance.create(context, name, flavor_id,                                      image_id, databases, users,                                      datastore, datastore_version,                                      volume_size, backup_id,                                      availability_zone, nics,                                      configuration, slave_of_id,                                      replica_count=replica_count,                                      volume_type=volume_type,                                      modules=modules,                                      locality=locality)

    view = views.InstanceDetailView(instance, req=req)    return wsgi.Result(view.data(), 200)

基本就是四步走,首先是请求上下文,然后创建实例对象,然后操作,最后返回wsgi
时间: 2024-10-28 18:59:47

trove instance service 总结的相关文章

通过数据库修改trove instance status

由于测试mysql5.5的复制功能,默认trove使用gtid,instance 一直处于 BACKUP 状态,trove reset-status 不能在 BACKUP 状态下运行,手动修改数据库 修改 service_statuses 表中 status_id 字段为 0x16,十进为22 状态码查看文件 # trove/common/instance.py 97行 class ServiceStatuses(object):     RUNNING = ServiceStatus(0x01

trove 基于 centos7 制作 mysql5.5 镜像

本文档是手动制作mysql5.5的trove镜像 openstack版本为newton 1.创建基础虚拟机 登录openstack创建一台虚拟机,这台虚拟机用于制作trove镜像,虚拟机的根磁盘最终会上传到glance给trove使用,虚拟机的根磁盘容量根据需要设置,这里略掉这步的详细操作. 以下操作皆登录到这台虚拟机中操作 2. 配置ssh cat /etc/ssh/sshd_config UseDNS no 3.添加mysql源 yum install http://dev.mysql.co

trove 基于 centos7 制作 mysql5.6 镜像

本文档是手动制作mysql5.6的trove镜像 openstack版本为newton 1.创建基础虚拟机 登录openstack创建一台虚拟机,这台虚拟机用于制作trove镜像,虚拟机的根磁盘最终会上传到glance给trove使用,虚拟机的根磁盘容量根据需要设置,这里略掉这步的详细操作. 以下操作皆登录到这台虚拟机中操作 2.配置ssh cat /etc/ssh/sshd_config UseDNS no 3.添加mysql源 yum install http://dev.mysql.com

SQL Server 2012 Managed Service Account

原创地址:http://www.cnblogs.com/jfzhu/p/4007472.html 转载请注明出处 (一)Windows服务使用的登陆帐号 Windows服务只有登录到某一帐户的情况下才能访问操作系统中的资源和对象.服务一般不要更改默认的登录帐户,否则可能导致服务失败.如果选定帐户没有足够的权限,Microsoft 管理控制台(MMC)的服务管理单元将自动为该帐户授予登录所管理计算机中服务的用户权限.Windows Server 的服务可以用域帐户或者三个内置的本地帐户作为各系统服

Guice 学习(六)使用Provider注入服务( Provider Inject Service)

1.定义接口 package com.guice.providerInject; import com.google.inject.ProvidedBy; public interface Service { public void execute(); } 2.定义实现类 package com.guice.providerInject; public class OneService implements Service { @Override public void execute() {

Rocky版新功能集锦之三:Trove

摘要:8月31日,备受业界关注的OpenStack第18个版本Rocky正式发布.在人工智能,机器学习,NFV和边缘计算等用户的驱动下,Rocky版本的OpenStack变得比以往更强大,它带来了数十种增强功能,并支持各种硬件架构,包括裸机管理服务等,这些更新和升级能够很好的满足基础设施的新需求.OpenStack正力争为业界提供一个开放,完善,稳定,功能齐全的最优解决方案.今天将围绕Rocky版本的Trove项目,对项目的新特性进行展示,业界需要掌握的关键点都在这里. Trove简介 Trov

《oracle asm instance & add asm diskgroup》

摘要:<oracle asm instance & add asm diskgroup> 2009/7/1 自从将oracle 9i升级到oracle 10g后,为了后公司的项目,就一直想实践ASM及RAC, 因为对ASM的建立一直不是很了解,东凑西凑,看了许多google上的参考数据后,还是觉得oracle自家的文档写的最详细, 原来ASM架构也是一个小型的oracle database instance, 用途就是管理ASM使用,所以要先建立ASM instance,这次是透过DB

OpenStack 2014.1(Icehouse) 更新说明

OpenStack 2014.1(Icehouse) 更新说明 1.综合升级说明 ?   Windows安装包应使用PBR 0.8版本,以避免发生bug1294246 ?   log-config选项被重命名为log-config-append, 该选项现在用于增加任意指定的配置,而不是像现在这样覆盖其他选项.(https://bugs.launchpad.net/oslo/+bug/1169328, https://bugs.launchpad.net/oslo/+bug/1238349) ?

ceph集群常用命令

结合网络.官网.手动查询等多方渠道,整理ceph维护管理常用命令,并且梳理常规命令在使用过程中的逻辑顺序.另外整理期间发现ceph 集群的命令体系有点乱,详细情况各自体验. 一:ceph集群启动.重启.停止 1:ceph 命令的选项如下: 选项简写描述 --verbose-v详细的日志. --valgrindN/A(只适合开发者和质检人员)用 Valgrind 调试. --allhosts-a在 ceph.conf 里配置的所有主机上执行,否 则它只在本机执行. --restartN/A核心转储