Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: 订阅接口支持指定用户操作进程 #2297

Closed
Huayeaaa opened this issue Jun 24, 2024 · 2 comments
Closed

feat: 订阅接口支持指定用户操作进程 #2297

Huayeaaa opened this issue Jun 24, 2024 · 2 comments
Assignees
Labels
backlog 需求初始状态,等待产品进行评估 kind/feature 功能

Comments

@Huayeaaa
Copy link
Collaborator

Huayeaaa commented Jun 24, 2024

背景

订阅接口支持指定用户操作进程

为什么需要

功能

你想要什么功能
image

功能实现

建议的方案

实现方案

功能自测

代码变更覆盖功能点需要自测并截图

功能点 1

描述代码变更涉及功能点及自测截图

功能点 2

描述代码变更涉及功能点及自测截图

...

@Huayeaaa Huayeaaa added kind/feature 功能 backlog 需求初始状态,等待产品进行评估 labels Jun 24, 2024
@Huayeaaa Huayeaaa self-assigned this Jun 24, 2024
@Huayeaaa
Copy link
Collaborator Author

Huayeaaa commented Jul 9, 2024

支持指定用户操作进程

SaaS层面

根据之前对的方案:支持所有的插件操作
1.增加plugin_v2.PluginV2ViewSet.operate的参数;
例如host_id_operate_user_list;参数格式:[{"bk_host_id": 1, "operate_user": "user1"}, {"bk_host_id": 2, "operate_user": "user2"}····]
将host_id_operate_user_list作为传入创建订阅的参数,创建订阅接口需新增参数接收参数

后台创建订阅层面

1.服务模板
(HOST): "scope": {'bk_biz_id': 1, 'object_type': 'HOST', 'node_type': 'SERVICE_TEMPLATE', 'nodes': [{'bk_obj_id': 'SERVICE_TEMPLATE', 'bk_inst_id': 21}]

(SERVICE) :"scope":{"nodes":[{"bk_inst_id":3370,"bk_obj_id":"SERVICE_TEMPLATE"}],"bk_biz_id":123,"node_type":"SERVICE_TEMPLATE","object_type":"SERVICE"}}

2.集群模板
(HOST):"scope": {"bk_biz_id": 1, "object_type": "HOST", "node_type": "SET_TEMPLATE","nodes": [{'bk_obj_id': 'SERVICE_TEMPLATE', 'bk_inst_id': 21}]}

(SERVICE):"scope": {"nodes": [{ "bk_obj_id": "SET_TEMPLATE","bk_inst_id": 293}],"bk_biz_id": 108,"node_type": "SET_TEMPLATE", "object_type": "SERVICE"}

3.动态实例(拓扑)
(HOST)
"scope": {"bk_biz_id": 1, "object_type": "HOST", "node_type": "TOPO",nodes:[{'bk_obj_id': 'module', 'bk_inst_id': 130}]}
(SERVICE)
"scope": {"node_type":"TOPO","bk_biz_id":5000157,"object_type":"SERVICE","nodes":[{"bk_obj_id":"set","bk_inst_id":5061998}]}

"scope": {"nodes": [{ "bk_biz_id": 100849,"bk_obj_id": "set","bk_inst_id": 5061632}, { "bk_biz_id": 106, "bk_obj_id": "set", "bk_inst_id": 5061871 }], "bk_biz_id": 5005578,"node_type": "TOPO","object_type": "SERVICE"}

4.静态实例
"scope": {"bk_biz_id": None, "object_type": "HOST", "node_type": "INSTANCE",nodes:[{"bk_host_id": 111}]}

实现层面

0.对接(明确)需求人的细粒度,TA需要的是单台主机 or 服务实例 or 操作系统 or 业务层面 来指定用户?确定执行目标
1.单台主机-》:后台创建订阅指定用户的情况下;因为传递的是主机ID,考虑大量主机的情况下,用户是否愿意写这么多参数呢?还是使用默认值?
2.服务模板 & 集群模板 & 动态实例(拓扑) 都会传递业务,是否根据业务去传递用户呢?比如某个业务下的机器用户都是user00这种;还是根据操作系统:{“windows_account”: "administrator","linux_account": "user11"·····}

是否还有更好的设计思路 or 实现思路

对于已存在的订阅

对于已存在的订阅,用户也希望能指定用户操作:
调用update_subscription接口,传递scope和对应的操作粒度;先明确第0点,确认需求方的具体执行力度。

@ivensu
Copy link

ivensu commented Jul 10, 2024

0.对接(明确)需求人的细粒度,TA需要的是单台主机 或 服务实例 或 操作系统 或 业务层面 来指定用户?确定执行目标
1.单台主机-》:后台创建订阅指定用户的情况下;因为传递的是主机ID,考虑大量主机的情况下,用户是否愿意写这么多参数呢?还是使用默认值?

按插件下发任务中的单台目标主机的粒度指定执行账号(每个下发主机分别指定账号),不指定账号使用默认值,默认用之前的逻辑(linux默认应该是root,windows还不清楚默认是啥)

2.服务模板 & 集群模板 & 动态实例(拓扑) 都会传递业务,是否根据业务去传递用户呢?比如某个业务下的机器用户都是user00这种;还是根据操作系统:{“windows_account”: “administrator”,“linux_account”: “user11”·····}

这种批量场景,建议支持动态拓扑这个组指定账号,且填写账号时可区分操作系统类型指定不同的账号

@wyyalt wyyalt closed this as completed in faebaff Sep 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backlog 需求初始状态,等待产品进行评估 kind/feature 功能
Projects
None yet
Development

No branches or pull requests

2 participants