• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python remote.create_guest_client函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中reddwarf.common.remote.create_guest_client函数的典型用法代码示例。如果您正苦于以下问题:Python create_guest_client函数的具体用法?Python create_guest_client怎么用?Python create_guest_client使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了create_guest_client函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: create

    def create(cls, context, name, flavor_ref, image_id,
               databases, service_type, volume_size):
        db_info = DBInstance.create(name=name,
            task_status=InstanceTasks.NONE)
        LOG.debug(_("Created new Reddwarf instance %s...") % db_info.id)
        volume, volume_info = cls._create_volume(context,
                                                     db_info,
                                                     volume_size)
        client = create_nova_client(context)
        files = {"/etc/guest_info": "guest_id=%s\nservice_type=%s\n" %
                 (db_info.id, service_type)}
        server = client.servers.create(name, image_id, flavor_ref,
                     files=files,
                     block_device_mapping=volume_info['block_device'])
        LOG.debug(_("Created new compute instance %s.") % server.id)

        db_info.compute_instance_id = server.id
        db_info.save()
        service_status = InstanceServiceStatus.create(instance_id=db_info.id,
            status=ServiceStatuses.NEW)
        # Now wait for the response from the create to do additional work

        guest = create_guest_client(context, db_info.id)

        # populate the databases
        model_schemas = populate_databases(databases)
        guest.prepare(512, model_schemas, users=[],
                      device_path=volume_info['device_path'],
                      mount_point=volume_info['mount_point'])
        return Instance(context, db_info, server, service_status, volume)
开发者ID:pdmars,项目名称:reddwarf_lite,代码行数:30,代码来源:models.py


示例2: create

 def create(cls, context, instance_id, user):
     load_and_verify(context, instance_id)
     root = create_guest_client(context, instance_id).enable_root()
     root_user = guest_models.RootUser()
     root_user.deserialize(root)
     root_history = RootHistory.create(context, instance_id, user)
     return root_user
开发者ID:pcrews,项目名称:reddwarf_lite,代码行数:7,代码来源:models.py


示例3: load_via_context

def load_via_context(cls, context, instance_id):
    """Creates guest and fetches pagination arguments from the context."""
    load_and_verify(context, instance_id)
    limit = int(context.limit or cls.DEFAULT_LIMIT)
    limit = cls.DEFAULT_LIMIT if limit > cls.DEFAULT_LIMIT else limit
    client = create_guest_client(context, instance_id)
    # The REST API standard dictates that we *NEVER* include the marker.
    return cls.load_with_client(client=client, limit=limit, marker=context.marker, include_marker=False)
开发者ID:rmyers,项目名称:reddwarf,代码行数:8,代码来源:models.py


示例4: change_password

 def change_password(cls, context, instance_id, users):
     load_and_verify(context, instance_id)
     client = create_guest_client(context, instance_id)
     change_users = []
     for user in users:
         change_user = {"name": user.name, "host": user.host, "password": user.password}
         change_users.append(change_user)
     client.change_passwords(change_users)
开发者ID:rmyers,项目名称:reddwarf,代码行数:8,代码来源:models.py


示例5: access

 def access(cls, context, instance_id, username, hostname):
     load_and_verify(context, instance_id)
     client = create_guest_client(context, instance_id)
     databases = client.list_access(username, hostname)
     dbs = []
     for db in databases:
         dbs.append(Schema(name=db["_name"], collate=db["_collate"], character_set=db["_character_set"]))
     return UserAccess(dbs)
开发者ID:rmyers,项目名称:reddwarf,代码行数:8,代码来源:models.py


示例6: load_guest_info

def load_guest_info(instance, context, id):
    if instance.status not in AGENT_INVALID_STATUSES:
        guest = create_guest_client(context, id)
        try:
            instance.volume_used = guest.get_volume_info()['used']
        except Exception as e:
            LOG.error(e)
    return instance
开发者ID:jeredding,项目名称:reddwarf,代码行数:8,代码来源:models.py


示例7: load

 def load(cls, context, instance_id, username, hostname):
     load_and_verify(context, instance_id)
     client = create_guest_client(context, instance_id)
     found_user = client.get_user(username=username, hostname=hostname)
     if not found_user:
         return None
     database_names = [{"name": db["_name"]} for db in found_user["_databases"]]
     return cls(found_user["_name"], found_user["_host"], found_user["_password"], database_names)
开发者ID:rmyers,项目名称:reddwarf,代码行数:8,代码来源:models.py


示例8: resize_flavor_async

    def resize_flavor_async(self, new_flavor_id, old_memory_size,
                            updated_memory_size):
        def resize_status_msg():
            return "instance_id=%s, status=%s, flavor_id=%s, " \
                   "dest. flavor id=%s)" % (self.id, self.server.status, \
                    str(self.flavor['id']), str(new_flavor_id))
        try:
            LOG.debug("Instance %s calling stop_mysql..." % self.id)
            guest = create_guest_client(self.context, self.db_info.id)
            guest.stop_mysql()
            try:
                LOG.debug("Instance %s calling Compute resize..." % self.id)
                self.server.resize(new_flavor_id)
                #TODO(tim.simpson): Figure out some way to message the
                #                   following exceptions:
                # nova_exceptions.NotFound (for the flavor)
                # nova_exceptions.OverLimit

                self._refresh_compute_server_info()
                # Do initial check and confirm the status is appropriate.
                if self.server.status != "RESIZE" and \
                    self.server.status != "VERIFY_RESIZE":
                    raise ReddwarfError("Unexpected status after call to "
                        "resize! : %s" % resize_status_msg())

                # Wait for the flavor to change.
                #TODO(tim.simpson): Bring back our good friend poll_until.
                while(self.server.status == "RESIZE"):
                    LOG.debug("Resizing... currently, %s" % resize_status_msg())
                    time.sleep(1)
                    self._refresh_compute_server_info()

                # Do check to make sure the status and flavor id are correct.
                if (str(self.flavor['id']) != str(new_flavor_id) or
                    self.server.status != "VERIFY_RESIZE"):
                    raise ReddwarfError("Assertion failed! flavor_id=%s "
                        "and not %s"
                        % (self.server.status, str(self.flavor['id'])))

                # Confirm the resize with Nova.
                LOG.debug("Instance %s calling Compute confirm resize..."
                          % self.id)
                self.server.confirm_resize()
            except Exception as ex:
                updated_memory_size = old_memory_size
                LOG.error("Error during resize compute! Aborting action.")
                LOG.error(ex)
                raise
            finally:
                # Tell the guest to restart MySQL with the new RAM size.
                # This is in the finally because we have to call this, or
                # else MySQL could stay turned off on an otherwise usable
                # instance.
                LOG.debug("Instance %s starting mysql..." % self.id)
                guest.start_mysql_with_conf_changes(updated_memory_size)
        finally:
            self.db_info.task_status = InstanceTasks.NONE
            self.db_info.save()
开发者ID:TimSimpsonR,项目名称:reddwarf_lite,代码行数:58,代码来源:models.py


示例9: create

 def create(cls, context, instance_id, schemas):
     load_and_verify(context, instance_id)
     client = create_guest_client(context, instance_id)
     for schema in schemas:
         schema_name = schema["_name"]
         existing_schema, _nadda = Schemas.load_with_client(client, limit=1, marker=schema_name, include_marker=True)
         if len(existing_schema) > 0 and str(existing_schema[0].name) == str(schema_name):
             raise exception.DatabaseAlreadyExists(name=schema_name)
     return client.create_database(schemas)
开发者ID:rmyers,项目名称:reddwarf,代码行数:9,代码来源:models.py


示例10: load

 def load(cls, context, instance_id):
     load_and_verify(context, instance_id)
     schemas = create_guest_client(context, instance_id).list_databases()
     model_schemas = []
     for schema in schemas:
         mysql_schema = guest_models.MySQLDatabase()
         mysql_schema.deserialize(schema)
         model_schemas.append(Schema(mysql_schema.name,
                                     mysql_schema.collate,
                                     mysql_schema.character_set))
     return model_schemas
开发者ID:pdmars,项目名称:reddwarf_lite,代码行数:11,代码来源:models.py


示例11: change_password

 def change_password(cls, context, instance_id, users):
     load_and_verify(context, instance_id)
     client = create_guest_client(context, instance_id)
     change_users = []
     for user in users:
         change_user = {'name': user.name,
                        'host': user.host,
                        'password': user.password,
                        }
         change_users.append(change_user)
     client.change_passwords(change_users)
开发者ID:jeredding,项目名称:reddwarf,代码行数:11,代码来源:models.py


示例12: load_instance_with_guest

def load_instance_with_guest(cls, context, id):
    db_info = get_db_info(context, id)
    load_simple_instance_server_status(context, db_info)
    service_status = InstanceServiceStatus.find_by(instance_id=id)
    LOG.info("service status=%s" % service_status)
    instance = cls(context, db_info, service_status)
    if instance.status not in AGENT_INVALID_STATUSES:
        guest = create_guest_client(context, id)
        try:
            instance.volume_used = guest.get_volume_info()['used']
        except Exception as e:
            LOG.error(e)
    return instance
开发者ID:hub-cap,项目名称:reddwarf_lite,代码行数:13,代码来源:models.py


示例13: load

 def load(cls, context, instance_id, username, hostname):
     load_and_verify(context, instance_id)
     validate = guest_models.MySQLUser()
     validate.name = username
     validate.host = hostname
     client = create_guest_client(context, instance_id)
     found_user = client.get_user(username=username, hostname=hostname)
     if not found_user:
         return None
     database_names = [{'name': db['_name']}
                       for db in found_user['_databases']]
     return cls(found_user['_name'],
                found_user['_host'],
                found_user['_password'],
                database_names)
开发者ID:jeredding,项目名称:reddwarf,代码行数:15,代码来源:models.py


示例14: update_all

 def update_all(self, context):
     num_i = len(self.instances)
     LOG.debug("Host %s has %s instances to update" % (self.name, num_i))
     failed_instances = []
     for instance in self.instances:
         client = create_guest_client(context, instance['id'])
         try:
             client.update_guest()
         except exception.ReddwarfError as re:
             LOG.error(re)
             LOG.error("Unable to update instance: %s" % instance['id'])
             failed_instances.append(instance['id'])
     if len(failed_instances) > 0:
         msg = "Failed to update instances: %s" % failed_instances
         raise exception.UpdateGuestError(msg)
开发者ID:cp16net,项目名称:reddwarf-1,代码行数:15,代码来源:models.py


示例15: load

 def load(cls, context, instance_id):
     load_and_verify(context, instance_id)
     limit = int(context.limit or Schemas.DEFAULT_LIMIT)
     if limit > Schemas.DEFAULT_LIMIT:
         limit = Schemas.DEFAULT_LIMIT
     client = create_guest_client(context, instance_id)
     schemas, next_marker = client.list_databases(limit=limit,
                                                  marker=context.marker)
     model_schemas = []
     for schema in schemas:
         mysql_schema = guest_models.MySQLDatabase()
         mysql_schema.deserialize(schema)
         model_schemas.append(Schema(mysql_schema.name,
                                     mysql_schema.collate,
                                     mysql_schema.character_set))
     return model_schemas, next_marker
开发者ID:TimSimpsonR,项目名称:reddwarf_lite,代码行数:16,代码来源:models.py


示例16: load

 def load(context, id):
     if context is None:
         raise TypeError("Argument context not defined.")
     elif id is None:
         raise TypeError("Argument id not defined.")
     try:
         db_info = inst_models.DBInstance.find_by(id=id)
     except exception.NotFound:
         raise exception.NotFound(uuid=id)
     server, volumes = inst_models.load_server_with_volumes(context,
                                             db_info.id,
                                             db_info.compute_instance_id)
     nova_client = remote.create_nova_client(context)
     volume_client = remote.create_nova_volume_client(context)
     guest = remote.create_guest_client(context, id)
     return InstanceTasks(context, db_info, server, volumes,
                          nova_client=nova_client,
                          volume_client=volume_client, guest=guest)
开发者ID:TimSimpsonR,项目名称:reddwarf_lite,代码行数:18,代码来源:models.py


示例17: load_instance_with_guest

def load_instance_with_guest(cls, context, id):
    db_info = get_db_info(context, id)
    load_simple_instance_server_status(context, db_info)
    service_status = InstanceServiceStatus.find_by(instance_id=id)
    LOG.info("service status=%s" % service_status)
    instance = cls(context, db_info, service_status)
    try:
        agent = agent_models.AgentHeartBeat.find_by(instance_id=id)
    except exception.ModelNotFoundError as mnfe:
        LOG.warn(mnfe)
        return instance

    if instance.status not in AGENT_INVALID_STATUSES and \
       agent_models.AgentHeartBeat.is_active(agent):
        guest = create_guest_client(context, id)
        try:
            instance.volume_used = guest.get_volume_info()['used']
        except Exception as e:
            LOG.error(e)
    return instance
开发者ID:vipulsabhaya,项目名称:reddwarf_lite,代码行数:20,代码来源:models.py


示例18: create

 def create(cls, context, instance_id, users):
     # Load InstanceServiceStatus to verify if it's running
     load_and_verify(context, instance_id)
     client = create_guest_client(context, instance_id)
     for user in users:
         user_name = user['_name']
         host_name = user['_host']
         if host_name is None:
             host_name = '%'
         userhost = "%[email protected]%s" % (user_name, host_name)
         existing_users, _nadda = Users.load_with_client(
             client,
             limit=1,
             marker=userhost,
             include_marker=True)
         if (len(existing_users) > 0 and
                 str(existing_users[0].name) == str(user_name) and
                 str(existing_users[0].host) == str(host_name)):
             raise exception.UserAlreadyExists(name=user_name,
                                               host=host_name)
     return client.create_user(users)
开发者ID:jeredding,项目名称:reddwarf,代码行数:21,代码来源:models.py


示例19: delete

 def delete(cls, context, instance_id, username):
     load_and_verify(context, instance_id)
     create_guest_client(context, instance_id).delete_user(username)
开发者ID:pcrews,项目名称:reddwarf_lite,代码行数:3,代码来源:models.py


示例20: get_guest

 def get_guest(self):
     return create_guest_client(self.context, self.db_info.id)
开发者ID:jeredding,项目名称:reddwarf,代码行数:2,代码来源:models.py



注:本文中的reddwarf.common.remote.create_guest_client函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python remote.create_nova_client函数代码示例发布时间:2022-05-26
下一篇:
Python api.get_reddit_api函数代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap