2 * Copyright (C) 2017-2018 "IoT.bzh"
3 * Author Sebastien Douheret <sebastien@iot.bzh>
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
20 // SDK status definition
22 SdkStatusDisable = "Disable"
23 SdkStatusNotInstalled = "Not Installed"
24 SdkStatusInstalling = "Installing"
25 SdkStatusUninstalling = "Un-installing"
26 SdkStatusInstalled = "Installed"
29 // SDK Define a cross tool chain used to build application
31 ID string `json:"id" binding:"required"`
32 Name string `json:"name"`
33 UUID string `json:"uuid"`
34 Description string `json:"description"`
35 Profile string `json:"profile"`
36 Version string `json:"version"`
37 Arch string `json:"arch"`
38 Path string `json:"path"`
39 URL string `json:"url"`
40 Status string `json:"status"`
41 Date string `json:"date"`
42 Size string `json:"size"`
43 Md5sum string `json:"md5sum"`
44 SetupFile string `json:"setupFile"`
45 LastError string `json:"lastError"`
47 // Not exported fields
48 FamilyConf SDKFamilyConfig `json:"-"`
51 // SDKFamilyConfig Configuration structure to define a SDKs family
52 type SDKFamilyConfig struct {
53 FamilyName string `json:"familyName"`
54 Description string `json:"description"`
55 RootDir string `json:"rootDir"`
56 EnvSetupFile string `json:"envSetupFilename"`
57 ScriptsDir string `json:"scriptsDir"`
60 // SDKInstallArgs JSON parameters of POST /sdks or /sdks/abortinstall commands
61 type SDKInstallArgs struct {
62 ID string `json:"id"` // install by ID (must be part of GET /sdks result)
63 Filename string `json:"filename"` // install by using a file
64 Force bool `json:"force"` // force SDK install when already existing
65 Timeout int `json:"timeout"` // 1800 == default 30 minutes
66 InstallArgs []string `json:"installArgs"` // args directly passed to add/install script
69 // SDK SDKManagementMsg Actions
71 SdkMgtActionInstall = "installing"
72 SdkMgtActionRemove = "removing"
75 // SDKManagementMsg Message send during SDK installation or when installation is complete
76 type SDKManagementMsg struct {
77 CmdID string `json:"cmdID"`
78 Timestamp string `json:"timestamp"`
79 Action string `json:"action"`
81 Stdout string `json:"stdout"`
82 Stderr string `json:"stderr"`
83 Progress int `json:"progress"` // 0 = not started to 100% = complete
84 Exited bool `json:"exited"`
85 Code int `json:"code"`
86 Error string `json:"error"`