|
9 | 9 | "fmt" |
10 | 10 | "io/ioutil" |
11 | 11 | "net/http" |
| 12 | + "os" |
12 | 13 | ) |
13 | 14 |
|
14 | 15 | // NetBackup structure to directly call raw APIs |
@@ -97,9 +98,9 @@ func Ping(server string) string { |
97 | 98 | } |
98 | 99 |
|
99 | 100 | //Login function |
100 | | -func Login(username string, password string, server string) string { |
| 101 | +func Login(username string, password string, domain string, domainType string, server string) string { |
101 | 102 | url := GetBaseURLString(server) + "/login" |
102 | | - reqData := map[string]string{"userName": username, "password": password} |
| 103 | + reqData := map[string]string{"userName": username, "password": password, "domainName": domain, "domainType": domainType} |
103 | 104 | reqValue, _ := json.Marshal(reqData) |
104 | 105 |
|
105 | 106 | jsonData, code, err := Post("", url, reqValue) |
@@ -133,6 +134,99 @@ func MappingList(jwt string, server string) { |
133 | 134 | fmt.Println(jsonData) |
134 | 135 | } |
135 | 136 |
|
| 137 | +// ImagesList API Returns list of catalog images |
| 138 | +func ImagesList(jwt string, server string) { |
| 139 | + |
| 140 | + url := GetBaseURLString(server) + "/catalog/images" |
| 141 | + |
| 142 | + client := getHTTPClient() |
| 143 | + req, err := http.NewRequest("GET", url, nil) |
| 144 | + if jwt != "" { |
| 145 | + req.Header.Add("Authorization", jwt) |
| 146 | + } |
| 147 | + req.Header.Add("ContentType", "application/vnd.netbackup+json; version=1.0") |
| 148 | + |
| 149 | + //Adding filters in query string |
| 150 | + q := req.URL.Query() |
| 151 | + q.Add("filter", "policyType eq 'Standard'") |
| 152 | + q.Add("page[limit]", "10") |
| 153 | + req.URL.RawQuery = q.Encode() |
| 154 | + |
| 155 | + var jsonData map[string]interface{} |
| 156 | + |
| 157 | + response, err := client.Do(req) |
| 158 | + if err == nil { |
| 159 | + if response.StatusCode >= 200 && response.StatusCode <= 299 { |
| 160 | + data, _ := ioutil.ReadAll(response.Body) |
| 161 | + if err := json.Unmarshal(data, &jsonData); err != nil { |
| 162 | + panic(err) |
| 163 | + } |
| 164 | + } |
| 165 | + } |
| 166 | + defer response.Body.Close() |
| 167 | + |
| 168 | + if err != nil { |
| 169 | + fmt.Printf("Request Failed %s \n", err) |
| 170 | + } else { |
| 171 | + if response.StatusCode != 200 { |
| 172 | + fmt.Printf("Request returned wrong code %d \n", response.StatusCode) |
| 173 | + return |
| 174 | + } |
| 175 | + } |
| 176 | + |
| 177 | + b, err := json.MarshalIndent(jsonData, "", " ") |
| 178 | + if err != nil { |
| 179 | + fmt.Println("error:", err) |
| 180 | + } |
| 181 | + os.Stdout.Write(b) |
| 182 | +} |
| 183 | + |
| 184 | +// JobList API Returns list of backup jobs |
| 185 | +func JobList(jwt string, server string) { |
| 186 | + url := GetBaseURLString(server) + "/admin/jobs" |
| 187 | + |
| 188 | + client := getHTTPClient() |
| 189 | + req, err := http.NewRequest("GET", url, nil) |
| 190 | + if jwt != "" { |
| 191 | + req.Header.Add("Authorization", jwt) |
| 192 | + } |
| 193 | + req.Header.Add("ContentType", "application/vnd.netbackup+json; version=1.0") |
| 194 | + |
| 195 | + //Adding filters in query string |
| 196 | + q := req.URL.Query() |
| 197 | + q.Add("filter", "jobType eq 'BACKUP'") |
| 198 | + q.Add("page[limit]", "10") |
| 199 | + req.URL.RawQuery = q.Encode() |
| 200 | + |
| 201 | + var jsonData map[string]interface{} |
| 202 | + |
| 203 | + response, err := client.Do(req) |
| 204 | + if err == nil { |
| 205 | + if response.StatusCode >= 200 && response.StatusCode <= 299 { |
| 206 | + data, _ := ioutil.ReadAll(response.Body) |
| 207 | + if err := json.Unmarshal(data, &jsonData); err != nil { |
| 208 | + panic(err) |
| 209 | + } |
| 210 | + } |
| 211 | + } |
| 212 | + defer response.Body.Close() |
| 213 | + |
| 214 | + if err != nil { |
| 215 | + fmt.Printf("Request Failed %s \n", err) |
| 216 | + } else { |
| 217 | + if response.StatusCode != 200 { |
| 218 | + fmt.Printf("Request returned wrong code %d \n", response.StatusCode) |
| 219 | + return |
| 220 | + } |
| 221 | + } |
| 222 | + |
| 223 | + b, err := json.MarshalIndent(jsonData, "", " ") |
| 224 | + if err != nil { |
| 225 | + fmt.Println("error:", err) |
| 226 | + } |
| 227 | + os.Stdout.Write(b) |
| 228 | +} |
| 229 | + |
136 | 230 | // GetBaseURLString This returns the base URL for netbackup |
137 | 231 | func GetBaseURLString(server string) string { |
138 | 232 | return "https://" + server + ":1556/netbackup" |
|
0 commit comments