配置系统API

配置系统API

1.创建一个配置模块(create module

在配置系统中生成一个模块

  • 请求体
    POST /v1/create/module
    Content-Type:application/json

    {
        "module_name":"cos_cgi"
    }
  • 响应体
    HTTP/1.1 200 OK
    Content-Type:application/json

    {
       "code": 0,
       "error": "success"
    }

    如果出现错误,会体现在code 和 error中。如果遇到http status非200,也认为是错误

2.创建配置的环境分类

在配置系统中生成一个模块配置的环境分类

  • 请求体
    POST /v1/create/env
    Content-Type:application/json

    {
        "module_name":"cos_cgi",
        "env_name":"test"
    }
  • 响应体
    HTTP/1.1 200 OK
    Content-Type:application/json

    {
       "code": 0,
       "error": "success"
    }

    如果出现错误,会体现在code 和 error中。如果遇到http status非200,也认为是错误

3.创建配置所在模块及环境下的配置项分类

  • 请求体
    POST /v1/create/category
    Content-Type:application/json

    {
        "module_name":"cos_cgi",
        "env_name":"test",
        "category": "ap-shanghai"
    }
  • 响应体
    HTTP/1.1 200 OK
    Content-Type:application/json

    {
       "code": 0,
       "error": "success"
    }

    如果出现错误,会体现在code 和 error中。如果遇到http status非200,也认为是错误

4.批量创建配置项

在一个特定的模块、环境、分类下批量的创建配置项

  • 请求体
   POST /v1/create/batch/config
   Content-Type:application/json

   {
       "module_name": "test_cgi",
       "env_name": "dev",
       "category": {
           "category_name" : "common",
           "ns" : [
               {
                   "name": "file1",
                   "kv_pair":
                   {
                       "kvs": [
                           {
                               "key":"min_slice_size",
                               "value":"1024000"
                           },
                           {
                               "key":"max_slice_size",
                               "value":"20971520"
                           },
                           {
                               "key": "serial_upload",
                               "value": "1",
                               "comment": "顺序上传分片的标志 0:可以并发 1:必须顺序上传"
                           }
                       ]
                   }
               }
           ]
       }
   }
  • 响应体
    HTTP/1.1 200 OK
    Content-Type:application/json

    {
       "code": 0,
       "error": "success"
    }

    如果出现错误,会体现在code 和 error中。如果遇到http status非200,也认为是错误

5.通过module来获取module下所有的配置项

  • 请求体
    POST /v1/getconfig/module
    Content-Type:application/json

    {
        "module_name":"cos-cgi"
    }
  • 响应体
   HTTP/1.1 200 OK
   Content-Type:application/json

   {
       "code": 0,
       "error": "success",
       "module_conf": {
           "module_name": "cos-cgi",
           "env_conf": [
               {
                   "env_name": "prod",
                   "ctg": [
                       {
                           "category_name": "ap-shanghai",
                           "ns": [
                               {
                                   "name": "accelerate",
                                   "kv_pair": {
                                       "kvs": [
                                           {
                                               "key": "dsa_server_domain",
                                               "value": "openapi.dsa.tencentyun.com"
                                           }
                                       ]
                                   }
                               }
                           ]
                       }
                   ]
               }
           ]
       }
   }

    如果出现错误,会体现在code 和 error中。如果遇到http status非200,也认为是错误

6.通过module和env来获取配置

  • 请求体
    POST /v1/getconfig/env
    Content-Type:application/json

    {
        "module_name":"cos-cgi",
        "env_name":"prod"
    }
  • 响应体
   HTTP/1.1 200 OK
   Content-Type:application/json

   {
       "code": 0,
       "error": "success",
       "module_conf": {
           "module_name": "cos-cgi",
           "env_conf": [
               {
                   "env_name": "prod",
                   "ctg": [
                       {
                           "category_name": "ap-shanghai",
                           "ns": [
                               {
                                   "name": "accelerate",
                                   "kv_pair": {
                                       "kvs": [
                                           {
                                               "key": "dsa_server_domain",
                                               "value": "openapi.dsa.tencentyun.com"
                                           }
                                       ]
                                   }
                               }
                           ]
                       }
                   ]
               }
           ]
       }
   }

    如果出现错误,会体现在code 和 error中。如果遇到http status非200,也认为是错误

7.通过module、env和category来获取配置项

  • 请求体
    POST /v1/getconfig/category
    Content-Type:application/json

    {
        "module_name":"cos-cgi",
        "env_name":"prod",
        "category_name":"ap-shanghai"
    }
  • 响应体
   HTTP/1.1 200 OK
   Content-Type:application/json

   {
       "code": 0,
       "error": "success",
       "module_conf": {
           "module_name": "cos-cgi",
           "env_conf": [
               {
                   "env_name": "prod",
                   "ctg": [
                       {
                           "category_name": "ap-shanghai",
                           "ns": [
                               {
                                   "name": "accelerate",
                                   "kv_pair": {
                                       "kvs": [
                                           {
                                               "key": "dsa_server_domain",
                                               "value": "openapi.dsa.tencentyun.com"
                                           }
                                       ]
                                   }
                               }
                           ]
                       }
                   ]
               }
           ]
       }
   }

    如果出现错误,会体现在code 和 error中。如果遇到http status非200,也认为是错误

8.获取在配置系统中管理的所有module名字

  • 请求体
    POST /v1/getconfig/modules
  • 响应体
   HTTP/1.1 200 OK
   Content-Type:application/json
   {
       "code": 0,
       "error": "success",
       "modules": [
           "cos-cgi"
       ]
   }

9.删除一个module

删除一个module,其下面的所有配置项都删除

  • 请求体
    POST /v1/delete/module
   Content-Type:application/json
    {
        "module_name":"cos_cgi"
    }
  • 响应体
   HTTP/1.1 200 OK
   Content-Type:application/json
   {
       "code": 0,
       "error": "success"
   }

10.删除一个module下的一个env

删除一个module下的一个env,其env下面的所有配置项都删除

  • 请求体
    POST /v1/delete/env
   Content-Type:application/json
    {
        "module_name":"cos_cgi",
        "env_name":"test"
    }
  • 响应体
   HTTP/1.1 200 OK
   Content-Type:application/json
   {
       "code": 0,
       "error": "success"
   }

11.删除一个module及env下的一个category分类

删除一个module及env下的category,其category下面的所有配置项都删除

  • 请求体
   POST /v1/delete/category
   Content-Type:application/json
    {
        "module_name":"cos_cgi",
        "env_name":"test",
        "category":{
            "category_name": "ap-shanghai"
        }
    }
  • 响应体
   HTTP/1.1 200 OK
   Content-Type:application/json
   {
       "code": 0,
       "error": "success"
   }

删除删除一个module及env下的category,其category部分配置项

  • 请求体
   POST /v1/delete/category
   Content-Type:application/json
    {
        "module_name":"cos_cgi",
        "env_name":"test",
        "category": {
           "category_name" : "common",
           "ns" : [
               {
                   "name": "file1",
                   "kv_pair":
                   {
                       "kvs": [
                           {
                               "key":"min_slice_size",
                               "value":"1024000"
                           },
                           {
                               "key":"max_slice_size",
                               "value":"20971520"
                           },
                           {
                               "key": "serial_upload",
                               "value": "1",
                               "comment": "顺序上传分片的标志 0:可以并发 1:必须顺序上传"
                           }
                       ]
                   }
               }
           ]
       }
    }
  • 响应体
   HTTP/1.1 200 OK
   Content-Type:application/json
   {
       "code": 0,
       "error": "success"
   }

12.提交配置的修改

提交配置仅仅是对配置上的修改生成一个版本。不做下发的操作

  • 请求体
   POST /v1/config/submit
   Content-Type:application/json
   {
       "module_name": "cos-cgi",
       "env_name" : "prod",
       "category": "ap-shanghai",
       "external_category":[
           "common"
       ]
   }

   // 生成的配置以category指定的为主,但是可以附加上external_category上的配置项
  • 响应体
   HTTP/1.1 200 OK
   Content-Type:application/json
   {
       "code": 0,
       "error": "success",
       "version": "1.2"  // 返回的版本号
   }

13.指定版本升级配置

下发指定版本的配置,并且通过灰度开关来指定下发策略

  • 请求体
   POST /v1/config/upgrade
   Content-Type:application/json
   {
       "module_name": "cos-cgi",
       "env_name" : "prod",
       "category": "ap-shanghai",
       "version":"1.2",
       "upgrade_percent":0.8,
       "pre_script": "",
       "post_script": "",
       "local_file_path":"/tmp/filecloud_coss3.ini"
   }

   // 生成的配置以category指定的为主,但是可以附加上external_category上的配置项
  • 响应体
   HTTP/1.1 200 OK
   Content-Type:application/json
   {
       "code": 0,
       "error": "success"
   }

14.通过module来获取到配置的元数据信息

  • 请求体
    POST /v1/getconfig/meta/module"
    Content-Type:application/json

    {
        "module_name":"cos-cgi"
    }
  • 响应体
   HTTP/1.1 200 OK
   Content-Type:application/json
   {
       "code": 0,
       "error": "success",
       "module_conf": {
           "module_name": "cos-cgi",
           "env_conf": [
               {
                   "env_name": "prod",
                   "ctg": [
                       {
                           "category_name": "ap-shanghai",
                           "ns": [
                               {
                                   "name": "1.1",
                                   "kv_pair": {
                                       "kvs": [
                                           {
                                               "key": "cos_file_md5",
                                               "value": "78601ddf3c327fa4a2a2a595f5609f55"
                                           },
                                           {
                                               "key": "cos_file_path",
                                               "value": "cos-cgi/prod/ap-shanghai/1.1"
                                           },
                                           {
                                                                                       {
                                               "key": "pre_script",
                                                "value": ""
                                           },
                                           {
                                               "key": "post_script",
                                               "value": ""
                                           },
                                           {
                                               "key": "local_file_path",
                                               "value": "/tmp/filecloud_coss3.ini"
                                           }
                                       ]
                                   }
                               },
                               {
                                   "name": "1.2",
                                   "kv_pair": {
                                       "kvs": [
                                           {
                                               "key": "cos_file_md5",
                                               "value": "0015a32e4093fc82b387e61e7679f8b6"
                                           },
                                           {
                                               "key": "cos_file_path",
                                               "value": "cos-cgi/prod/ap-shanghai/1.2"
                                           },
                                           {
                                               "key": "pre_script",
                                                "value": ""
                                           },
                                           {
                                               "key": "post_script",
                                               "value": ""
                                           },
                                           {
                                               "key": "local_file_path",
                                               "value": "/tmp/filecloud_coss3.ini"
                                           }
                                       ]
                                   }
                               },
                               {
                                   "name": "current_version",
                                   "kv_pair": {
                                       "kvs": [
                                           {
                                               "key": "last_version",
                                               "value": "1.2"
                                           },
                                           {
                                               "key": "local_file_path",
                                               "value": "/tmp/filecloud_coss3.ini"
                                           },
                                           {
                                               "key": "upgrade_percent",
                                               "value": "0.8"
                                           },
                                           {
                                               "key": "version_id",
                                               "value": "1.2"
                                           },

                                       ]
                                   }
                               }
                           ]
                       }
                   ]
               }
           ]
       }
   }

    如果出现错误,会体现在code 和 error中。如果遇到http status非200,也认为是错误

15.获取在配置系统中管理的module下所有的env的名字

  • 请求体
    POST /v1/getconfig/envs
    Content-Type:application/json

    {
        "module_name":"cos-cgi"
    }
  • 响应体
   HTTP/1.1 200 OK
   Content-Type:application/json
   {
       "code": 0,
       "error": "success",
       "envs": [
           "prod"
       ]
   }

16.获取在配置系统中管理的特定module和env下所有category的名字

  • 请求体
    POST /v1/getconfig/categories
    Content-Type:application/json

    {
        "module_name":"cos-cgi",
        "env_name":"prod"
    }
  • 响应体
   HTTP/1.1 200 OK
   Content-Type:application/json
   {
       "code": 0,
       "error": "success",
       "categories": [
           "common", "ap-shanghai"
       ]
   }

17.根据module获取当前园区下所有agent的状态信息
** According the module get the agentinfo

  • 请求体
    POST /v1/getagentinfo/module
    Content-Type:application/json                                                      
    {
        "module_name":"cos_cgi",
        "env_name":"test",
        "category_name": "ap-shanghai"
    }                                                             
  
  
 + 响应体
 HTTP/1.1 200 OK
 Content-Type:application/json
 
 {
    "code": 0,
    "error": "success",
    "agent_info" :[
        {
            "ip_addr" : "127.0.0.1",
            "version": "1.2",
            "last_alive": "0123456789",
            "is_timeout": "true",
        },
        {
            "ip_addr" : "127.0.0.1",
            "version": "1.2",
            "last_alive": "0123456789",
            "is_timeout": "true",   
        },
    ]
 }

18.通过request module来获取指定园区下配置的元数据信息

  • 请求体
    POST /v1/getconfig/meta/category
    Content-Type:application/json

    {
        "module_name":"cos-cgi",
        "env_name":"test",
        "category": "ap-shanghai"
    }
  • 响应体
   HTTP/1.1 200 OK
   Content-Type:application/json
   {
       "code": 0,
       "error": "success",
       "ctg": {
           "category_name": "ap-shanghai",
           "ns": [
               {
                   "name": "1.1",
                   "kv_pair": {
                       "kvs": [
                           {
                               "key": "cos_file_md5",
                               "value": "78601ddf3c327fa4a2a2a595f5609f55"
                           },
                           {
                               "key": "cos_file_path",
                               "value": "cos-cgi/prod/ap-shanghai/1.1"
                           },
                           {
                                                                       {
                               "key": "pre_script",
                                "value": ""
                           },
                           {
                               "key": "post_script",
                               "value": ""
                           },
                           {
                               "key": "local_file_path",
                               "value": "/tmp/filecloud_coss3.ini"
                           }
                       ]
                   },
               
               {
                   "name": "1.2",
                   "kv_pair": {
                       "kvs": [
                           {
                               "key": "cos_file_md5",
                               "value": "0015a32e4093fc82b387e61e7679f8b6"
                           },
                           {
                               "key": "cos_file_path",
                               "value": "cos-cgi/prod/ap-shanghai/1.2"
                           },
                           {
                               "key": "pre_script",
                                "value": ""
                           },
                           {
                               "key": "post_script",
                               "value": ""
                           },
                           {
                               "key": "local_file_path",
                               "value": "/tmp/filecloud_coss3.ini"
                           }
                       ]
                   }
               },
               {
                   "name": "current_version",
                   "kv_pair": {
                       "kvs": [
                           {
                               "key": "last_version",
                               "value": "1.2"
                           },
                           {
                               "key": "local_file_path",
                               "value": "/tmp/filecloud_coss3.ini"
                           },
                           {
                               "key": "upgrade_percent",
                               "value": "0.8"
                           },
                           {
                               "key": "version_id",
                               "value": "1.2"
                           },

                       ]
                   }
               }
           ]

   }


19. ** TODO 需要从状态流转为事件流,下面结构将会修改
  **根据module获取当前园区下版本下发的状态**
  ** agent_status: progress, fail,success
  + 请求体
 POST /v1/getupgradeinfo/category
 Content-Type:application/json                                                      
 {
     "module_name":"cos_cgi",
     "env_name":"test",
     "category": "ap-shanghai"
 }                                                             
  • 响应体
    HTTP/1.1 200 OK
    Content-Type:application/json
    
    {
       "code": 0,
       "error": "success",
       "upgrade_info" [
           {
               "version":"1.2",
               "timestamp":"0123456789",
               "node_info" : [
                   {
                       "node_ip":"127.0.0.1",
                       "agent_detials":[
                           {
                               "agent_ip":"127.0.1.12",
                               "agent_status":"progress",
                               "agent_msg":"pre script exec failed",
                           },
                           {
                               ...other agent_details
                           },
                       
                       ]
                   
                   
                   },
                   {
                       ...other node_info
                   },
               ]
           
           },
           {
               ...other_upgrade_info
           },
       
       ]
       
    }

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,039评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,426评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,417评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,868评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,892评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,692评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,416评论 3 419
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,326评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,782评论 1 316
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,957评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,102评论 1 350
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,790评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,442评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,996评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,113评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,332评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,044评论 2 355

推荐阅读更多精彩内容