@@ -27,7 +27,11 @@ var name string
2727type Result struct {
2828 Status json.Number `json:"status"`
2929 Message string `json:"message"`
30- Data interface {} `json:"data"`
30+ Data Data `json:"data"`
31+ }
32+ type Data struct {
33+ InstanceName string `json:"display-name"`
34+ Shape string `json:"shape"`
3135}
3236
3337type Node struct {
@@ -61,10 +65,10 @@ func main() {
6165
6266func mainMenu () {
6367 cmdClear ()
64- fmt .Printf ("\n \033 [1;32;40m%s\033 [0m\n \n " , "欢迎使用甲骨文新建实例脚本 " )
65- fmt .Printf ("\033 [1;36;40m%s\033 [0m %s\n " , "1." , "查看新建记录 " )
66- fmt .Printf ("\033 [1;36;40m%s\033 [0m %s\n " , "2." , "开始新建实例 " )
67- fmt .Printf ("\033 [1;36;40m%s\033 [0m %s\n " , "3." , "Telegram bot 消息提醒" )
68+ fmt .Printf ("\n \033 [1;32;40m%s\033 [0m\n \n " , "欢迎使用甲骨文实例抢购脚本 " )
69+ fmt .Printf ("\033 [1;36;40m%s\033 [0m %s\n " , "1." , "历史抢购实例任务 " )
70+ fmt .Printf ("\033 [1;36;40m%s\033 [0m %s\n " , "2." , "新建抢购实例任务 " )
71+ fmt .Printf ("\033 [1;36;40m%s\033 [0m %s\n " , "3." , "Telegram Bot 消息提醒" )
6872 fmt .Println ("" )
6973 fmt .Print ("请选择[1-3]: " )
7074 var num int
@@ -82,13 +86,13 @@ func mainMenu() {
8286func loadNode () {
8387 cmdClear ()
8488 sections := cfg .Sections ()
85- fmt .Printf ("\n \033 [1;32;40m%s\033 [0m\n \n " , "新建实例历史记录 " )
89+ fmt .Printf ("\n \033 [1;32;40m%s\033 [0m\n \n " , "历史抢购实例任务 " )
8690 for i := 1 ; i < len (sections ); i ++ {
8791 fmt .Printf ("\033 [1;36;40m%d.\033 [0m %s\n " , i , sections [i ].Name ())
8892 }
8993 fmt .Printf ("\n \033 [1;36;40m%d.\033 [0m %s\n " , 0 , "返回主菜单" )
9094 var num int
91- fmt .Print ("\n 请输入序号, 开始新建实例 : " )
95+ fmt .Print ("\n 请输入序号, 开始抢购实例 : " )
9296 fmt .Scanln (& num )
9397 if num <= 0 || num >= len (sections ) {
9498 mainMenu ()
@@ -120,7 +124,7 @@ func addNode() {
120124 min_time string
121125 max_time string
122126 )
123- fmt .Printf ("\n \033 [1;32;40m%s\033 [0m\n \n " , "开始新建实例 , 请按要求输入以下参数" )
127+ fmt .Printf ("\n \033 [1;32;40m%s\033 [0m\n \n " , "新建抢购实例任务 , 请按要求输入以下参数" )
124128 fmt .Print ("请随便输入一个名称(不能有空格): " )
125129 fmt .Scanln (& name )
126130 fmt .Print ("请输入[availabilityDomain|availability_domain]: " )
@@ -174,7 +178,7 @@ func addNode() {
174178
175179func setTelegramBot () {
176180 cmdClear ()
177- fmt .Printf ("\n \033 [1;32;40m%s\033 [0m\n \n " , "Telegram bot 消息提醒配置" )
181+ fmt .Printf ("\n \033 [1;32;40m%s\033 [0m\n \n " , "Telegram Bot 消息提醒配置" )
178182 fmt .Println ("Telegram Bot Token:" , tg_token )
179183 fmt .Println ("Telegram User ID:" , tg_chatId )
180184 fmt .Printf ("\n \033 [1;36;40m%s\033 [0m %s\n " , "1." , "设置token和用户id" )
@@ -214,7 +218,7 @@ func sendMessage(name, text string) {
214218
215219func launchInstance (node * Node ) {
216220 name = node .Name
217- text := "开始创建实例 "
221+ text := "开始抢购实例 "
218222 printGreen (text )
219223 sendMessage (node .Name , text )
220224 cmd := "oci"
@@ -233,17 +237,24 @@ func launchInstance(node *Node) {
233237 }
234238
235239 for {
236- out , _ := exec .Command (cmd , args ... ).CombinedOutput ()
240+ out , err := exec .Command (cmd , args ... ).CombinedOutput ()
237241 ret := string (out )
242+ if err != nil {
243+ text = "抢购失败, Command failed. " + err .Error () + "\n " + ret
244+ printRed (text )
245+ sendMessage (node .Name , text )
246+ return
247+ }
248+
238249 pos := strings .Index (ret , "{" )
239250 if pos != - 1 {
240251 ret = ret [pos :]
241252 }
242253
243254 var result Result
244- err : = json .Unmarshal ([]byte (ret ), & result )
255+ err = json .Unmarshal ([]byte (ret ), & result )
245256 if err != nil {
246- text = "出现异常, " + ret
257+ text = "抢购失败, Unmarshal failed. " + " \n " + ret
247258 printRed (text )
248259 sendMessage (node .Name , text )
249260 return
@@ -253,13 +264,13 @@ func launchInstance(node *Node) {
253264 case "500" , "429" :
254265 printNone (result .Message )
255266 default :
256- if result .Data != nil {
257- text = "实例创建成功 "
267+ if result .Data != ( Data {}) {
268+ text = "抢购成功, 实例名称: [" + result . Data . InstanceName + "] "
258269 printGreen (text )
259270 sendMessage (node .Name , text )
260271 return
261272 }
262- text = "出现异常 , " + result .Message
273+ text = "抢购失败 , " + result .Message
263274 printRed (text )
264275 sendMessage (node .Name , text )
265276 return
0 commit comments