配置系統(tǒng)API

配置系統(tǒng)API

1.創(chuàng)建一個(gè)配置模塊(create module

在配置系統(tǒng)中生成一個(gè)模塊

  • 請(qǐng)求體
    POST /v1/create/module
    Content-Type:application/json

    {
        "module_name":"cos_cgi"
    }
  • 響應(yīng)體
    HTTP/1.1 200 OK
    Content-Type:application/json

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

    如果出現(xiàn)錯(cuò)誤,會(huì)體現(xiàn)在code 和 error中。如果遇到http status非200,也認(rèn)為是錯(cuò)誤

2.創(chuàng)建配置的環(huán)境分類

在配置系統(tǒng)中生成一個(gè)模塊配置的環(huán)境分類

  • 請(qǐng)求體
    POST /v1/create/env
    Content-Type:application/json

    {
        "module_name":"cos_cgi",
        "env_name":"test"
    }
  • 響應(yīng)體
    HTTP/1.1 200 OK
    Content-Type:application/json

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

    如果出現(xiàn)錯(cuò)誤,會(huì)體現(xiàn)在code 和 error中。如果遇到http status非200,也認(rèn)為是錯(cuò)誤

3.創(chuàng)建配置所在模塊及環(huán)境下的配置項(xiàng)分類

  • 請(qǐng)求體
    POST /v1/create/category
    Content-Type:application/json

    {
        "module_name":"cos_cgi",
        "env_name":"test",
        "category": "ap-shanghai"
    }
  • 響應(yīng)體
    HTTP/1.1 200 OK
    Content-Type:application/json

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

    如果出現(xiàn)錯(cuò)誤,會(huì)體現(xiàn)在code 和 error中。如果遇到http status非200,也認(rèn)為是錯(cuò)誤

4.批量創(chuàng)建配置項(xiàng)

在一個(gè)特定的模塊、環(huán)境、分類下批量的創(chuàng)建配置項(xiàng)

  • 請(qǐng)求體
   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": "順序上傳分片的標(biāo)志 0:可以并發(fā) 1:必須順序上傳"
                           }
                       ]
                   }
               }
           ]
       }
   }
  • 響應(yīng)體
    HTTP/1.1 200 OK
    Content-Type:application/json

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

    如果出現(xiàn)錯(cuò)誤,會(huì)體現(xiàn)在code 和 error中。如果遇到http status非200,也認(rèn)為是錯(cuò)誤

5.通過module來獲取module下所有的配置項(xiàng)

  • 請(qǐng)求體
    POST /v1/getconfig/module
    Content-Type:application/json

    {
        "module_name":"cos-cgi"
    }
  • 響應(yīng)體
   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"
                                           }
                                       ]
                                   }
                               }
                           ]
                       }
                   ]
               }
           ]
       }
   }

    如果出現(xiàn)錯(cuò)誤,會(huì)體現(xiàn)在code 和 error中。如果遇到http status非200,也認(rèn)為是錯(cuò)誤

6.通過module和env來獲取配置

  • 請(qǐng)求體
    POST /v1/getconfig/env
    Content-Type:application/json

    {
        "module_name":"cos-cgi",
        "env_name":"prod"
    }
  • 響應(yīng)體
   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"
                                           }
                                       ]
                                   }
                               }
                           ]
                       }
                   ]
               }
           ]
       }
   }

    如果出現(xiàn)錯(cuò)誤,會(huì)體現(xiàn)在code 和 error中。如果遇到http status非200,也認(rèn)為是錯(cuò)誤

7.通過module、env和category來獲取配置項(xiàng)

  • 請(qǐng)求體
    POST /v1/getconfig/category
    Content-Type:application/json

    {
        "module_name":"cos-cgi",
        "env_name":"prod",
        "category_name":"ap-shanghai"
    }
  • 響應(yīng)體
   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"
                                           }
                                       ]
                                   }
                               }
                           ]
                       }
                   ]
               }
           ]
       }
   }

    如果出現(xiàn)錯(cuò)誤,會(huì)體現(xiàn)在code 和 error中。如果遇到http status非200,也認(rèn)為是錯(cuò)誤

8.獲取在配置系統(tǒng)中管理的所有module名字

  • 請(qǐng)求體
    POST /v1/getconfig/modules
  • 響應(yīng)體
   HTTP/1.1 200 OK
   Content-Type:application/json
   {
       "code": 0,
       "error": "success",
       "modules": [
           "cos-cgi"
       ]
   }

9.刪除一個(gè)module

刪除一個(gè)module,其下面的所有配置項(xiàng)都刪除

  • 請(qǐng)求體
    POST /v1/delete/module
   Content-Type:application/json
    {
        "module_name":"cos_cgi"
    }
  • 響應(yīng)體
   HTTP/1.1 200 OK
   Content-Type:application/json
   {
       "code": 0,
       "error": "success"
   }

10.刪除一個(gè)module下的一個(gè)env

刪除一個(gè)module下的一個(gè)env,其env下面的所有配置項(xiàng)都刪除

  • 請(qǐng)求體
    POST /v1/delete/env
   Content-Type:application/json
    {
        "module_name":"cos_cgi",
        "env_name":"test"
    }
  • 響應(yīng)體
   HTTP/1.1 200 OK
   Content-Type:application/json
   {
       "code": 0,
       "error": "success"
   }

11.刪除一個(gè)module及env下的一個(gè)category分類

刪除一個(gè)module及env下的category,其category下面的所有配置項(xiàng)都刪除

  • 請(qǐng)求體
   POST /v1/delete/category
   Content-Type:application/json
    {
        "module_name":"cos_cgi",
        "env_name":"test",
        "category":{
            "category_name": "ap-shanghai"
        }
    }
  • 響應(yīng)體
   HTTP/1.1 200 OK
   Content-Type:application/json
   {
       "code": 0,
       "error": "success"
   }

刪除刪除一個(gè)module及env下的category,其category部分配置項(xiàng)

  • 請(qǐng)求體
   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": "順序上傳分片的標(biāo)志 0:可以并發(fā) 1:必須順序上傳"
                           }
                       ]
                   }
               }
           ]
       }
    }
  • 響應(yīng)體
   HTTP/1.1 200 OK
   Content-Type:application/json
   {
       "code": 0,
       "error": "success"
   }

12.提交配置的修改

提交配置僅僅是對(duì)配置上的修改生成一個(gè)版本。不做下發(fā)的操作

  • 請(qǐng)求體
   POST /v1/config/submit
   Content-Type:application/json
   {
       "module_name": "cos-cgi",
       "env_name" : "prod",
       "category": "ap-shanghai",
       "external_category":[
           "common"
       ]
   }

   // 生成的配置以category指定的為主,但是可以附加上external_category上的配置項(xiàng)
  • 響應(yīng)體
   HTTP/1.1 200 OK
   Content-Type:application/json
   {
       "code": 0,
       "error": "success",
       "version": "1.2"  // 返回的版本號(hào)
   }

13.指定版本升級(jí)配置

下發(fā)指定版本的配置,并且通過灰度開關(guān)來指定下發(fā)策略

  • 請(qǐng)求體
   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上的配置項(xiàng)
  • 響應(yīng)體
   HTTP/1.1 200 OK
   Content-Type:application/json
   {
       "code": 0,
       "error": "success"
   }

14.通過module來獲取到配置的元數(shù)據(jù)信息

  • 請(qǐng)求體
    POST /v1/getconfig/meta/module"
    Content-Type:application/json

    {
        "module_name":"cos-cgi"
    }
  • 響應(yīng)體
   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"
                                           },

                                       ]
                                   }
                               }
                           ]
                       }
                   ]
               }
           ]
       }
   }

    如果出現(xiàn)錯(cuò)誤,會(huì)體現(xiàn)在code 和 error中。如果遇到http status非200,也認(rèn)為是錯(cuò)誤

15.獲取在配置系統(tǒng)中管理的module下所有的env的名字

  • 請(qǐng)求體
    POST /v1/getconfig/envs
    Content-Type:application/json

    {
        "module_name":"cos-cgi"
    }
  • 響應(yīng)體
   HTTP/1.1 200 OK
   Content-Type:application/json
   {
       "code": 0,
       "error": "success",
       "envs": [
           "prod"
       ]
   }

16.獲取在配置系統(tǒng)中管理的特定module和env下所有category的名字

  • 請(qǐng)求體
    POST /v1/getconfig/categories
    Content-Type:application/json

    {
        "module_name":"cos-cgi",
        "env_name":"prod"
    }
  • 響應(yīng)體
   HTTP/1.1 200 OK
   Content-Type:application/json
   {
       "code": 0,
       "error": "success",
       "categories": [
           "common", "ap-shanghai"
       ]
   }

17.根據(jù)module獲取當(dāng)前園區(qū)下所有agent的狀態(tài)信息
** According the module get the agentinfo

  • 請(qǐng)求體
    POST /v1/getagentinfo/module
    Content-Type:application/json                                                      
    {
        "module_name":"cos_cgi",
        "env_name":"test",
        "category_name": "ap-shanghai"
    }                                                             
  
  
 + 響應(yīng)體
 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來獲取指定園區(qū)下配置的元數(shù)據(jù)信息

  • 請(qǐng)求體
    POST /v1/getconfig/meta/category
    Content-Type:application/json

    {
        "module_name":"cos-cgi",
        "env_name":"test",
        "category": "ap-shanghai"
    }
  • 響應(yīng)體
   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 需要從狀態(tài)流轉(zhuǎn)為事件流,下面結(jié)構(gòu)將會(huì)修改
  **根據(jù)module獲取當(dāng)前園區(qū)下版本下發(fā)的狀態(tài)**
  ** agent_status: progress, fail,success
  + 請(qǐng)求體
 POST /v1/getupgradeinfo/category
 Content-Type:application/json                                                      
 {
     "module_name":"cos_cgi",
     "env_name":"test",
     "category": "ap-shanghai"
 }                                                             
  • 響應(yīng)體
    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
           },
       
       ]
       
    }

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容