github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6@v6.2.0/fake/reachabilityanalysisruns_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 // ReachabilityAnalysisRunsServer is a fake server for instances of the armnetwork.ReachabilityAnalysisRunsClient type. 27 type ReachabilityAnalysisRunsServer struct { 28 // Create is the fake for method ReachabilityAnalysisRunsClient.Create 29 // HTTP status codes to indicate success: http.StatusOK, http.StatusCreated 30 Create func(ctx context.Context, resourceGroupName string, networkManagerName string, workspaceName string, reachabilityAnalysisRunName string, body armnetwork.ReachabilityAnalysisRun, options *armnetwork.ReachabilityAnalysisRunsClientCreateOptions) (resp azfake.Responder[armnetwork.ReachabilityAnalysisRunsClientCreateResponse], errResp azfake.ErrorResponder) 31 32 // BeginDelete is the fake for method ReachabilityAnalysisRunsClient.BeginDelete 33 // HTTP status codes to indicate success: http.StatusAccepted, http.StatusNoContent 34 BeginDelete func(ctx context.Context, resourceGroupName string, networkManagerName string, workspaceName string, reachabilityAnalysisRunName string, options *armnetwork.ReachabilityAnalysisRunsClientBeginDeleteOptions) (resp azfake.PollerResponder[armnetwork.ReachabilityAnalysisRunsClientDeleteResponse], errResp azfake.ErrorResponder) 35 36 // Get is the fake for method ReachabilityAnalysisRunsClient.Get 37 // HTTP status codes to indicate success: http.StatusOK 38 Get func(ctx context.Context, resourceGroupName string, networkManagerName string, workspaceName string, reachabilityAnalysisRunName string, options *armnetwork.ReachabilityAnalysisRunsClientGetOptions) (resp azfake.Responder[armnetwork.ReachabilityAnalysisRunsClientGetResponse], errResp azfake.ErrorResponder) 39 40 // NewListPager is the fake for method ReachabilityAnalysisRunsClient.NewListPager 41 // HTTP status codes to indicate success: http.StatusOK 42 NewListPager func(resourceGroupName string, networkManagerName string, workspaceName string, options *armnetwork.ReachabilityAnalysisRunsClientListOptions) (resp azfake.PagerResponder[armnetwork.ReachabilityAnalysisRunsClientListResponse]) 43 } 44 45 // NewReachabilityAnalysisRunsServerTransport creates a new instance of ReachabilityAnalysisRunsServerTransport with the provided implementation. 46 // The returned ReachabilityAnalysisRunsServerTransport instance is connected to an instance of armnetwork.ReachabilityAnalysisRunsClient via the 47 // azcore.ClientOptions.Transporter field in the client's constructor parameters. 48 func NewReachabilityAnalysisRunsServerTransport(srv *ReachabilityAnalysisRunsServer) *ReachabilityAnalysisRunsServerTransport { 49 return &ReachabilityAnalysisRunsServerTransport{ 50 srv: srv, 51 beginDelete: newTracker[azfake.PollerResponder[armnetwork.ReachabilityAnalysisRunsClientDeleteResponse]](), 52 newListPager: newTracker[azfake.PagerResponder[armnetwork.ReachabilityAnalysisRunsClientListResponse]](), 53 } 54 } 55 56 // ReachabilityAnalysisRunsServerTransport connects instances of armnetwork.ReachabilityAnalysisRunsClient to instances of ReachabilityAnalysisRunsServer. 57 // Don't use this type directly, use NewReachabilityAnalysisRunsServerTransport instead. 58 type ReachabilityAnalysisRunsServerTransport struct { 59 srv *ReachabilityAnalysisRunsServer 60 beginDelete *tracker[azfake.PollerResponder[armnetwork.ReachabilityAnalysisRunsClientDeleteResponse]] 61 newListPager *tracker[azfake.PagerResponder[armnetwork.ReachabilityAnalysisRunsClientListResponse]] 62 } 63 64 // Do implements the policy.Transporter interface for ReachabilityAnalysisRunsServerTransport. 65 func (r *ReachabilityAnalysisRunsServerTransport) Do(req *http.Request) (*http.Response, error) { 66 rawMethod := req.Context().Value(runtime.CtxAPINameKey{}) 67 method, ok := rawMethod.(string) 68 if !ok { 69 return nil, nonRetriableError{errors.New("unable to dispatch request, missing value for CtxAPINameKey")} 70 } 71 72 var resp *http.Response 73 var err error 74 75 switch method { 76 case "ReachabilityAnalysisRunsClient.Create": 77 resp, err = r.dispatchCreate(req) 78 case "ReachabilityAnalysisRunsClient.BeginDelete": 79 resp, err = r.dispatchBeginDelete(req) 80 case "ReachabilityAnalysisRunsClient.Get": 81 resp, err = r.dispatchGet(req) 82 case "ReachabilityAnalysisRunsClient.NewListPager": 83 resp, err = r.dispatchNewListPager(req) 84 default: 85 err = fmt.Errorf("unhandled API %s", method) 86 } 87 88 if err != nil { 89 return nil, err 90 } 91 92 return resp, nil 93 } 94 95 func (r *ReachabilityAnalysisRunsServerTransport) dispatchCreate(req *http.Request) (*http.Response, error) { 96 if r.srv.Create == nil { 97 return nil, &nonRetriableError{errors.New("fake for method Create not implemented")} 98 } 99 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~%@]+)/verifierWorkspaces/(?P<workspaceName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/reachabilityAnalysisRuns/(?P<reachabilityAnalysisRunName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)` 100 regex := regexp.MustCompile(regexStr) 101 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 102 if matches == nil || len(matches) < 5 { 103 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 104 } 105 body, err := server.UnmarshalRequestAsJSON[armnetwork.ReachabilityAnalysisRun](req) 106 if err != nil { 107 return nil, err 108 } 109 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 110 if err != nil { 111 return nil, err 112 } 113 networkManagerNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkManagerName")]) 114 if err != nil { 115 return nil, err 116 } 117 workspaceNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("workspaceName")]) 118 if err != nil { 119 return nil, err 120 } 121 reachabilityAnalysisRunNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("reachabilityAnalysisRunName")]) 122 if err != nil { 123 return nil, err 124 } 125 respr, errRespr := r.srv.Create(req.Context(), resourceGroupNameParam, networkManagerNameParam, workspaceNameParam, reachabilityAnalysisRunNameParam, body, nil) 126 if respErr := server.GetError(errRespr, req); respErr != nil { 127 return nil, respErr 128 } 129 respContent := server.GetResponseContent(respr) 130 if !contains([]int{http.StatusOK, http.StatusCreated}, respContent.HTTPStatus) { 131 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK, http.StatusCreated", respContent.HTTPStatus)} 132 } 133 resp, err := server.MarshalResponseAsJSON(respContent, server.GetResponse(respr).ReachabilityAnalysisRun, req) 134 if err != nil { 135 return nil, err 136 } 137 return resp, nil 138 } 139 140 func (r *ReachabilityAnalysisRunsServerTransport) dispatchBeginDelete(req *http.Request) (*http.Response, error) { 141 if r.srv.BeginDelete == nil { 142 return nil, &nonRetriableError{errors.New("fake for method BeginDelete not implemented")} 143 } 144 beginDelete := r.beginDelete.get(req) 145 if beginDelete == nil { 146 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~%@]+)/verifierWorkspaces/(?P<workspaceName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/reachabilityAnalysisRuns/(?P<reachabilityAnalysisRunName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)` 147 regex := regexp.MustCompile(regexStr) 148 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 149 if matches == nil || len(matches) < 5 { 150 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 151 } 152 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 153 if err != nil { 154 return nil, err 155 } 156 networkManagerNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkManagerName")]) 157 if err != nil { 158 return nil, err 159 } 160 workspaceNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("workspaceName")]) 161 if err != nil { 162 return nil, err 163 } 164 reachabilityAnalysisRunNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("reachabilityAnalysisRunName")]) 165 if err != nil { 166 return nil, err 167 } 168 respr, errRespr := r.srv.BeginDelete(req.Context(), resourceGroupNameParam, networkManagerNameParam, workspaceNameParam, reachabilityAnalysisRunNameParam, nil) 169 if respErr := server.GetError(errRespr, req); respErr != nil { 170 return nil, respErr 171 } 172 beginDelete = &respr 173 r.beginDelete.add(req, beginDelete) 174 } 175 176 resp, err := server.PollerResponderNext(beginDelete, req) 177 if err != nil { 178 return nil, err 179 } 180 181 if !contains([]int{http.StatusAccepted, http.StatusNoContent}, resp.StatusCode) { 182 r.beginDelete.remove(req) 183 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusAccepted, http.StatusNoContent", resp.StatusCode)} 184 } 185 if !server.PollerResponderMore(beginDelete) { 186 r.beginDelete.remove(req) 187 } 188 189 return resp, nil 190 } 191 192 func (r *ReachabilityAnalysisRunsServerTransport) dispatchGet(req *http.Request) (*http.Response, error) { 193 if r.srv.Get == nil { 194 return nil, &nonRetriableError{errors.New("fake for method Get not implemented")} 195 } 196 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~%@]+)/verifierWorkspaces/(?P<workspaceName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/reachabilityAnalysisRuns/(?P<reachabilityAnalysisRunName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)` 197 regex := regexp.MustCompile(regexStr) 198 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 199 if matches == nil || len(matches) < 5 { 200 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 201 } 202 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 203 if err != nil { 204 return nil, err 205 } 206 networkManagerNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkManagerName")]) 207 if err != nil { 208 return nil, err 209 } 210 workspaceNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("workspaceName")]) 211 if err != nil { 212 return nil, err 213 } 214 reachabilityAnalysisRunNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("reachabilityAnalysisRunName")]) 215 if err != nil { 216 return nil, err 217 } 218 respr, errRespr := r.srv.Get(req.Context(), resourceGroupNameParam, networkManagerNameParam, workspaceNameParam, reachabilityAnalysisRunNameParam, nil) 219 if respErr := server.GetError(errRespr, req); respErr != nil { 220 return nil, respErr 221 } 222 respContent := server.GetResponseContent(respr) 223 if !contains([]int{http.StatusOK}, respContent.HTTPStatus) { 224 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", respContent.HTTPStatus)} 225 } 226 resp, err := server.MarshalResponseAsJSON(respContent, server.GetResponse(respr).ReachabilityAnalysisRun, req) 227 if err != nil { 228 return nil, err 229 } 230 return resp, nil 231 } 232 233 func (r *ReachabilityAnalysisRunsServerTransport) dispatchNewListPager(req *http.Request) (*http.Response, error) { 234 if r.srv.NewListPager == nil { 235 return nil, &nonRetriableError{errors.New("fake for method NewListPager not implemented")} 236 } 237 newListPager := r.newListPager.get(req) 238 if newListPager == nil { 239 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~%@]+)/verifierWorkspaces/(?P<workspaceName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/reachabilityAnalysisRuns` 240 regex := regexp.MustCompile(regexStr) 241 matches := regex.FindStringSubmatch(req.URL.EscapedPath()) 242 if matches == nil || len(matches) < 4 { 243 return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) 244 } 245 qp := req.URL.Query() 246 resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) 247 if err != nil { 248 return nil, err 249 } 250 networkManagerNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkManagerName")]) 251 if err != nil { 252 return nil, err 253 } 254 workspaceNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("workspaceName")]) 255 if err != nil { 256 return nil, err 257 } 258 skipTokenUnescaped, err := url.QueryUnescape(qp.Get("skipToken")) 259 if err != nil { 260 return nil, err 261 } 262 skipTokenParam := getOptional(skipTokenUnescaped) 263 skipUnescaped, err := url.QueryUnescape(qp.Get("skip")) 264 if err != nil { 265 return nil, err 266 } 267 skipParam, err := parseOptional(skipUnescaped, func(v string) (int32, error) { 268 p, parseErr := strconv.ParseInt(v, 10, 32) 269 if parseErr != nil { 270 return 0, parseErr 271 } 272 return int32(p), nil 273 }) 274 if err != nil { 275 return nil, err 276 } 277 topUnescaped, err := url.QueryUnescape(qp.Get("top")) 278 if err != nil { 279 return nil, err 280 } 281 topParam, err := parseOptional(topUnescaped, func(v string) (int32, error) { 282 p, parseErr := strconv.ParseInt(v, 10, 32) 283 if parseErr != nil { 284 return 0, parseErr 285 } 286 return int32(p), nil 287 }) 288 if err != nil { 289 return nil, err 290 } 291 sortKeyUnescaped, err := url.QueryUnescape(qp.Get("sortKey")) 292 if err != nil { 293 return nil, err 294 } 295 sortKeyParam := getOptional(sortKeyUnescaped) 296 sortValueUnescaped, err := url.QueryUnescape(qp.Get("sortValue")) 297 if err != nil { 298 return nil, err 299 } 300 sortValueParam := getOptional(sortValueUnescaped) 301 var options *armnetwork.ReachabilityAnalysisRunsClientListOptions 302 if skipTokenParam != nil || skipParam != nil || topParam != nil || sortKeyParam != nil || sortValueParam != nil { 303 options = &armnetwork.ReachabilityAnalysisRunsClientListOptions{ 304 SkipToken: skipTokenParam, 305 Skip: skipParam, 306 Top: topParam, 307 SortKey: sortKeyParam, 308 SortValue: sortValueParam, 309 } 310 } 311 resp := r.srv.NewListPager(resourceGroupNameParam, networkManagerNameParam, workspaceNameParam, options) 312 newListPager = &resp 313 r.newListPager.add(req, newListPager) 314 server.PagerResponderInjectNextLinks(newListPager, req, func(page *armnetwork.ReachabilityAnalysisRunsClientListResponse, createLink func() string) { 315 page.NextLink = to.Ptr(createLink()) 316 }) 317 } 318 resp, err := server.PagerResponderNext(newListPager, req) 319 if err != nil { 320 return nil, err 321 } 322 if !contains([]int{http.StatusOK}, resp.StatusCode) { 323 r.newListPager.remove(req) 324 return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", resp.StatusCode)} 325 } 326 if !server.PagerResponderMore(newListPager) { 327 r.newListPager.remove(req) 328 } 329 return resp, nil 330 }