OpenStack Heat software config and software deployment code anlysis

来源:互联网 发布:淘宝开店的基本流程图 编辑:程序博客网 时间:2024/06/14 09:58

service 类
1. heat/engine/service_software_config.py

class SoftwareConfigService(service.Service):
def show_software_config(config_id)
#从db中读取,返回sc
def list_software_configs()
def create_software_config(group, name, config, inputs, outputs, options)
def delete_software_config(config_id)

def list_software_deployments(server_id)
def show_software_deployment(deployment_id):
# 先从db拿到sd,然后根据sd的status,如果是in-progress,则从sd.config中拿到deploy_signal_transport的值,如果值为TEMP_URL_SIGNAL 则掉用refresh_swift_software_deployment(), 如果值为ZAQAR_SIGNAL,则调用refresh_zaqar_software_deployment()来查看sd的执行情况

def create_software_deployment(server_id, config_id,
input_values, action, status,
status_reason, stack_user_project_id,
deployment_id=None):
# 首先调用software deployment object,create from db, then call push_metadata_software_deployment() , 将config push到server的rsrc_metadata中

def update_software_deployment(deployment_id, config_id,
input_values, output_values, action,
status, status_reason, updated_at)
# 如果config_id 改变了,then call _push_metadata_software_deployments()
def delete_software_deployment(deployment_id):
# get sd from db,then delete , and then call _push_metadata_software_deployments update the server’s metadata.

def metadata_software_deployments(server_id)
# return 跟Server_id 相关的含有config的 sd的config.

def _push_metadata_software_deployments(server_id, stack_user_project_id)
# 从server_id 拿到config, 用来更新server的src_metadata,然后去更新db,
# 拿到server.data “metadata_put_url” or “metadata_queue_id” call put method or zaqar queue,
# queue.post({‘body’: md, ‘ttl’: zaqar_plugin.DEFAULT_TTL})

def signal_software_deployment(deployment_id, details,
updated_at):
# ?????details.?details???output_status_code ???deployment????.
# ?details???output_values?config????config.output
# ?????:event_reason
# ???update_software_deployment ??
def _refresh_swift_software_deployment(sd, deploy_signal_id)
# ?signal_transpost ???TEMP_URL_SIGNAL????????sd
def _refresh_zaqar_software_deployment(sd, deploy_queue_id):
# ?signal_transpost ???zaqar????????sd
# queue.pop()
# ???signal_software_deployment() ??
# ?????,?server???software deployment???,??heat?software deployment

  1. tripleo heat application

  2. heat/engine/resources/openstack/heat/software_config.py

    def handle_create()
    def handle_delete()
    # ????,?self.rpc_client().ignore_error_named(ex, ‘NotFound’) TODO ITEM:Add clientPlugin

  3. heat/engine/resources/openstack/heat/software_deploment.py

    def check_create_complete
    handle_delete()
    handle_update()

  4. signal_responder.py

  5. UML图

0 0
原创粉丝点击