github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6@v6.2.0/fake/managers_server.go (about) 1 //go:build go1.18 2 // +build go1.18 3 4 // Copyright (c) Microsoft Corporation. All rights reserved. 5 // Licensed under the MIT License. See License.txt in the project root for license information. 6 // Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT. 7 // Changes may cause incorrect behavior and will be lost if the code is regenerated. 8 9 package fake 10 11 import ( 12 "context" 13 "errors" 14 "fmt" 15 azfake "github.com/Azure/azure-sdk-for-go/sdk/azcore/fake" 16 "github.com/Azure/azure-sdk-for-go/sdk/azcore/fake/server" 17 "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" 18 "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" 19 "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6" 20 "net/http" 21 "net/url" 22 "regexp" 23 "strconv" 24 ) 25 26 // ManagersServer is a fake server for instances of the armnetwork.ManagersClient type. 27 type ManagersServer struct { 28 // CreateOrUpdate is the fake for method ManagersClient.CreateOrUpdate 29 // HTTP status codes to indicate success: http.StatusOK, http.StatusCreated 30 CreateOrUpdate func(ctx context.Context, resourceGroupName string, networkManagerName string, parameters armnetwork.Manager, options *armnetwork.ManagersClientCreateOrUpdateOptions) (resp azfake.Responder[armnetwork.ManagersClientCreateOrUpdateResponse], errResp azfake.ErrorResponder) 31 32 // BeginDelete is the fake for method ManagersClient.BeginDelete 33 // HTTP status codes to indicate success: http.StatusOK, http.StatusAccepted, http.StatusNoContent 34 BeginDelete func(ctx context.Context, resourceGroupName string, networkManagerName string, options *armnetwork.ManagersClientBeginDeleteOptions) (resp azfake.PollerResponder[armnetwork.ManagersClientDeleteResponse], errResp azfake.ErrorResponder) 35 36 // Get is the fake for method ManagersClient.Get 37 // HTTP status codes to indicate success: http.StatusOK 38 Get func(ctx context.Context, resourceGroupName string, networkManagerName string, options *armnetwork.ManagersClientGetOptions) (resp azfake.Responder[armnetwork.ManagersClientGetResponse], errResp azfake.ErrorResponder) 39 40 // NewListPager is the fake for method ManagersClient.NewListPager 41 // HTTP status codes to indicate success: http.StatusOK 42 NewListPager func(resourceGroupName string, options *armnetwork.ManagersClientListOptions) (resp azfake.PagerResponder[armnetwork.ManagersClientListResponse]) 43 44 // NewListBySubscriptionPager is the fake for method ManagersClient.NewListBySubscriptionPager 45 // HTTP status codes to indicate success: http.StatusOK 46 NewListBySubscriptionPager func(options *armnetwork.ManagersClientListBySubscriptionOptions) (resp azfake.PagerResponder[armnetwork.ManagersClientListBySubscriptionResponse]) 47 48 // Patch is the fake for method ManagersClient.Patch 49 // HTTP status codes to indicate success: http.StatusOK 50 Patch func(ctx context.Context, resourceGroupName string, networkManagerName string, parameters armnetwork.PatchObject, options *armnetwork.ManagersClientPatchOptions) (resp azfake.Responder[armnetwork.ManagersClientPatchResponse], errResp azfake.ErrorResponder) 51 } 52 53 // NewManagersServerTransport creates a new instance of ManagersServerTransport with the provided implementation. 54 // The returned ManagersServerTransport instance is connected to an instance of armnetwork.ManagersClient via the 55 // azcore.ClientOptions.Transporter field in the client's constructor parameters. 56 func NewManagersServerTransport(srv *ManagersServer) *ManagersServerTransport { 57 return &ManagersServerTransport{ 58 srv: srv, 59 beginDelete: newTracker[azfake.PollerResponder[armnetwork.ManagersClientDeleteResponse]](), 60 newListPager: newTracker[azfake.PagerResponder[armnetwork.ManagersClientListResponse]](), 61 newListBySubscriptionPager: newTracker[azfake.PagerResponder[armnetwork.ManagersClientListBySubscriptionResponse]](), 62 } 63 } 64 65 // ManagersServerTransport connects instances of armnetwork.ManagersClient to instances of ManagersServer. 66 // Don't use this type directly, use NewManagersServerTransport instead. 67 type ManagersServerTransport struct { 68 srv *ManagersServer 69 beginDelete *tracker[azfake.PollerResponder[armnetwork.ManagersClientDeleteResponse]] 70 newListPager *tracker[azfake.PagerResponder[armnetwork.ManagersClientListResponse]] 71 newListBySubscriptionPager *tracker[azfake.PagerResponder[armnetwork.ManagersClientListBySubscriptionResponse]] 72 } 73 74 // Do implements the policy.Transporter interface for ManagersServerTransport. 75 func (m *ManagersServerTransport) Do(req *http.Request) (*http.Response, error) { 76 rawMethod := req.Context().Value(runtime.CtxAPINameKey{}) 77 method, ok := rawMethod.(string) 78 if !ok { 79 return nil, nonRetriableError{errors.New("unable to dispatch request, missing value for CtxAPINameKey")} 80 } 81 82 var resp *http.Response 83 var err error 84 85 switch method { 86 case "ManagersClient.CreateOrUpdate": 87 resp, err = m.dispatchCreateOrUpdate(req) 88 case "ManagersClient.BeginDelete": 89 resp, err = m.dispatchBeginDelete(req) 90 case "ManagersClient.Get": 91 resp, err = m.dispatchGet(req) 92 case "ManagersClient.NewListPager": 93 resp, err = m.dispatchNewListPager(req) 94 case "ManagersClient.NewListBySubscriptionPager": 95 resp, err = m.dispatchNewListBySubscriptionPager(req) 96 case "ManagersClient.Patch": 97 resp, err = m.dispatchPatch(req) 98 default: 99 err = fmt.Errorf("unhandled API %s", method) 100 } 101 102 if err != nil { 103 return nil, err 104 } 105 106 return resp, nil 107 } 108 109 func (m *ManagersServerTransport) dispatchCreateOrUpdate(req *http.Request) (*http.Response, error) { 110 if m.srv.CreateOrUpdate == nil { 111 return nil, &nonRetriableError{errors.New("fake for method CreateOrUpdate not implemented")} 112 } 113 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/networkManagers/(?P<networkManagerName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)` 114 regex := regexp.MustCompile(regexStr) 115 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 116 if matches == nil || len(matches) < 3 { 117 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 118 } 119 body, err := server.UnmarshalRequestAsJSON[armnetwork.Manager](req) 120 if err != nil { 121 return nil, err 122 } 123 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 124 if err != nil { 125 return nil, err 126 } 127 networkManagerNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkManagerName")]) 128 if err != nil { 129 return nil, err 130 } 131 respr, errRespr := m.srv.CreateOrUpdate(req.Context(), resourceGroupNameParam, networkManagerNameParam, body, nil) 132 if respErr := server.GetError(errRespr, req); respErr != nil { 133 return nil, respErr 134 } 135 respContent := server.GetResponseContent(respr) 136 if !contains([]int{http.StatusOK, http.StatusCreated}, respContent.HTTPStatus) { 137 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK, http.StatusCreated", respContent.HTTPStatus)} 138 } 139 resp, err := server.MarshalResponseAsJSON(respContent, server.GetResponse(respr).Manager, req) 140 if err != nil { 141 return nil, err 142 } 143 return resp, nil 144 } 145 146 func (m *ManagersServerTransport) dispatchBeginDelete(req *http.Request) (*http.Response, error) { 147 if m.srv.BeginDelete == nil { 148 return nil, &nonRetriableError{errors.New("fake for method BeginDelete not implemented")} 149 } 150 beginDelete := m.beginDelete.get(req) 151 if beginDelete == nil { 152 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/networkManagers/(?P<networkManagerName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)` 153 regex := regexp.MustCompile(regexStr) 154 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 155 if matches == nil || len(matches) < 3 { 156 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 157 } 158 qp := req.URL.Query() 159 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 160 if err != nil { 161 return nil, err 162 } 163 networkManagerNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkManagerName")]) 164 if err != nil { 165 return nil, err 166 } 167 forceUnescaped, err := url.QueryUnescape(qp.Get("force")) 168 if err != nil { 169 return nil, err 170 } 171 forceParam, err := parseOptional(forceUnescaped, strconv.ParseBool) 172 if err != nil { 173 return nil, err 174 } 175 var options *armnetwork.ManagersClientBeginDeleteOptions 176 if forceParam != nil { 177 options = &armnetwork.ManagersClientBeginDeleteOptions{ 178 Force: forceParam, 179 } 180 } 181 respr, errRespr := m.srv.BeginDelete(req.Context(), resourceGroupNameParam, networkManagerNameParam, options) 182 if respErr := server.GetError(errRespr, req); respErr != nil { 183 return nil, respErr 184 } 185 beginDelete = &respr 186 m.beginDelete.add(req, beginDelete) 187 } 188 189 resp, err := server.PollerResponderNext(beginDelete, req) 190 if err != nil { 191 return nil, err 192 } 193 194 if !contains([]int{http.StatusOK, http.StatusAccepted, http.StatusNoContent}, resp.StatusCode) { 195 m.beginDelete.remove(req) 196 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK, http.StatusAccepted, http.StatusNoContent", resp.StatusCode)} 197 } 198 if !server.PollerResponderMore(beginDelete) { 199 m.beginDelete.remove(req) 200 } 201 202 return resp, nil 203 } 204 205 func (m *ManagersServerTransport) dispatchGet(req *http.Request) (*http.Response, error) { 206 if m.srv.Get == nil { 207 return nil, &nonRetriableError{errors.New("fake for method Get not implemented")} 208 } 209 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/networkManagers/(?P<networkManagerName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)` 210 regex := regexp.MustCompile(regexStr) 211 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 212 if matches == nil || len(matches) < 3 { 213 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 214 } 215 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 216 if err != nil { 217 return nil, err 218 } 219 networkManagerNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkManagerName")]) 220 if err != nil { 221 return nil, err 222 } 223 respr, errRespr := m.srv.Get(req.Context(), resourceGroupNameParam, networkManagerNameParam, nil) 224 if respErr := server.GetError(errRespr, req); respErr != nil { 225 return nil, respErr 226 } 227 respContent := server.GetResponseContent(respr) 228 if !contains([]int{http.StatusOK}, respContent.HTTPStatus) { 229 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", respContent.HTTPStatus)} 230 } 231 resp, err := server.MarshalResponseAsJSON(respContent, server.GetResponse(respr).Manager, req) 232 if err != nil { 233 return nil, err 234 } 235 return resp, nil 236 } 237 238 func (m *ManagersServerTransport) dispatchNewListPager(req *http.Request) (*http.Response, error) { 239 if m.srv.NewListPager == nil { 240 return nil, &nonRetriableError{errors.New("fake for method NewListPager not implemented")} 241 } 242 newListPager := m.newListPager.get(req) 243 if newListPager == nil { 244 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/networkManagers` 245 regex := regexp.MustCompile(regexStr) 246 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 247 if matches == nil || len(matches) < 2 { 248 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 249 } 250 qp := req.URL.Query() 251 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 252 if err != nil { 253 return nil, err 254 } 255 topUnescaped, err := url.QueryUnescape(qp.Get("$top")) 256 if err != nil { 257 return nil, err 258 } 259 topParam, err := parseOptional(topUnescaped, func(v string) (int32, error) { 260 p, parseErr := strconv.ParseInt(v, 10, 32) 261 if parseErr != nil { 262 return 0, parseErr 263 } 264 return int32(p), nil 265 }) 266 if err != nil { 267 return nil, err 268 } 269 skipTokenUnescaped, err := url.QueryUnescape(qp.Get("$skipToken")) 270 if err != nil { 271 return nil, err 272 } 273 skipTokenParam := getOptional(skipTokenUnescaped) 274 var options *armnetwork.ManagersClientListOptions 275 if topParam != nil || skipTokenParam != nil { 276 options = &armnetwork.ManagersClientListOptions{ 277 Top: topParam, 278 SkipToken: skipTokenParam, 279 } 280 } 281 resp := m.srv.NewListPager(resourceGroupNameParam, options) 282 newListPager = &resp 283 m.newListPager.add(req, newListPager) 284 server.PagerResponderInjectNextLinks(newListPager, req, func(page *armnetwork.ManagersClientListResponse, createLink func() string) { 285 page.NextLink = to.Ptr(createLink()) 286 }) 287 } 288 resp, err := server.PagerResponderNext(newListPager, req) 289 if err != nil { 290 return nil, err 291 } 292 if !contains([]int{http.StatusOK}, resp.StatusCode) { 293 m.newListPager.remove(req) 294 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", resp.StatusCode)} 295 } 296 if !server.PagerResponderMore(newListPager) { 297 m.newListPager.remove(req) 298 } 299 return resp, nil 300 } 301 302 func (m *ManagersServerTransport) dispatchNewListBySubscriptionPager(req *http.Request) (*http.Response, error) { 303 if m.srv.NewListBySubscriptionPager == nil { 304 return nil, &nonRetriableError{errors.New("fake for method NewListBySubscriptionPager not implemented")} 305 } 306 newListBySubscriptionPager := m.newListBySubscriptionPager.get(req) 307 if newListBySubscriptionPager == nil { 308 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/networkManagers` 309 regex := regexp.MustCompile(regexStr) 310 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 311 if matches == nil || len(matches) < 1 { 312 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 313 } 314 qp := req.URL.Query() 315 topUnescaped, err := url.QueryUnescape(qp.Get("$top")) 316 if err != nil { 317 return nil, err 318 } 319 topParam, err := parseOptional(topUnescaped, func(v string) (int32, error) { 320 p, parseErr := strconv.ParseInt(v, 10, 32) 321 if parseErr != nil { 322 return 0, parseErr 323 } 324 return int32(p), nil 325 }) 326 if err != nil { 327 return nil, err 328 } 329 skipTokenUnescaped, err := url.QueryUnescape(qp.Get("$skipToken")) 330 if err != nil { 331 return nil, err 332 } 333 skipTokenParam := getOptional(skipTokenUnescaped) 334 var options *armnetwork.ManagersClientListBySubscriptionOptions 335 if topParam != nil || skipTokenParam != nil { 336 options = &armnetwork.ManagersClientListBySubscriptionOptions{ 337 Top: topParam, 338 SkipToken: skipTokenParam, 339 } 340 } 341 resp := m.srv.NewListBySubscriptionPager(options) 342 newListBySubscriptionPager = &resp 343 m.newListBySubscriptionPager.add(req, newListBySubscriptionPager) 344 server.PagerResponderInjectNextLinks(newListBySubscriptionPager, req, func(page *armnetwork.ManagersClientListBySubscriptionResponse, createLink func() string) { 345 page.NextLink = to.Ptr(createLink()) 346 }) 347 } 348 resp, err := server.PagerResponderNext(newListBySubscriptionPager, req) 349 if err != nil { 350 return nil, err 351 } 352 if !contains([]int{http.StatusOK}, resp.StatusCode) { 353 m.newListBySubscriptionPager.remove(req) 354 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", resp.StatusCode)} 355 } 356 if !server.PagerResponderMore(newListBySubscriptionPager) { 357 m.newListBySubscriptionPager.remove(req) 358 } 359 return resp, nil 360 } 361 362 func (m *ManagersServerTransport) dispatchPatch(req *http.Request) (*http.Response, error) { 363 if m.srv.Patch == nil { 364 return nil, &nonRetriableError{errors.New("fake for method Patch not implemented")} 365 } 366 const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/networkManagers/(?P<networkManagerName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)` 367 regex := regexp.MustCompile(regexStr) 368 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 369 if matches == nil || len(matches) < 3 { 370 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 371 } 372 body, err := server.UnmarshalRequestAsJSON[armnetwork.PatchObject](req) 373 if err != nil { 374 return nil, err 375 } 376 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 377 if err != nil { 378 return nil, err 379 } 380 networkManagerNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkManagerName")]) 381 if err != nil { 382 return nil, err 383 } 384 respr, errRespr := m.srv.Patch(req.Context(), resourceGroupNameParam, networkManagerNameParam, body, nil) 385 if respErr := server.GetError(errRespr, req); respErr != nil { 386 return nil, respErr 387 } 388 respContent := server.GetResponseContent(respr) 389 if !contains([]int{http.StatusOK}, respContent.HTTPStatus) { 390 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", respContent.HTTPStatus)} 391 } 392 resp, err := server.MarshalResponseAsJSON(respContent, server.GetResponse(respr).Manager, req) 393 if err != nil { 394 return nil, err 395 } 396 return resp, nil 397 }