github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6@v6.2.0/fake/packetcaptures_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/resourcemanager/network/armnetwork/v6"
    19  	"net/http"
    20  	"net/url"
    21  	"regexp"
    22  )
    23  
    24  // PacketCapturesServer is a fake server for instances of the armnetwork.PacketCapturesClient type.
    25  type PacketCapturesServer struct {
    26  	// BeginCreate is the fake for method PacketCapturesClient.BeginCreate
    27  	// HTTP status codes to indicate success: http.StatusCreated
    28  	BeginCreate func(ctx context.Context, resourceGroupName string, networkWatcherName string, packetCaptureName string, parameters armnetwork.PacketCapture, options *armnetwork.PacketCapturesClientBeginCreateOptions) (resp azfake.PollerResponder[armnetwork.PacketCapturesClientCreateResponse], errResp azfake.ErrorResponder)
    29  
    30  	// BeginDelete is the fake for method PacketCapturesClient.BeginDelete
    31  	// HTTP status codes to indicate success: http.StatusAccepted, http.StatusNoContent
    32  	BeginDelete func(ctx context.Context, resourceGroupName string, networkWatcherName string, packetCaptureName string, options *armnetwork.PacketCapturesClientBeginDeleteOptions) (resp azfake.PollerResponder[armnetwork.PacketCapturesClientDeleteResponse], errResp azfake.ErrorResponder)
    33  
    34  	// Get is the fake for method PacketCapturesClient.Get
    35  	// HTTP status codes to indicate success: http.StatusOK
    36  	Get func(ctx context.Context, resourceGroupName string, networkWatcherName string, packetCaptureName string, options *armnetwork.PacketCapturesClientGetOptions) (resp azfake.Responder[armnetwork.PacketCapturesClientGetResponse], errResp azfake.ErrorResponder)
    37  
    38  	// BeginGetStatus is the fake for method PacketCapturesClient.BeginGetStatus
    39  	// HTTP status codes to indicate success: http.StatusOK, http.StatusAccepted
    40  	BeginGetStatus func(ctx context.Context, resourceGroupName string, networkWatcherName string, packetCaptureName string, options *armnetwork.PacketCapturesClientBeginGetStatusOptions) (resp azfake.PollerResponder[armnetwork.PacketCapturesClientGetStatusResponse], errResp azfake.ErrorResponder)
    41  
    42  	// NewListPager is the fake for method PacketCapturesClient.NewListPager
    43  	// HTTP status codes to indicate success: http.StatusOK
    44  	NewListPager func(resourceGroupName string, networkWatcherName string, options *armnetwork.PacketCapturesClientListOptions) (resp azfake.PagerResponder[armnetwork.PacketCapturesClientListResponse])
    45  
    46  	// BeginStop is the fake for method PacketCapturesClient.BeginStop
    47  	// HTTP status codes to indicate success: http.StatusOK, http.StatusAccepted
    48  	BeginStop func(ctx context.Context, resourceGroupName string, networkWatcherName string, packetCaptureName string, options *armnetwork.PacketCapturesClientBeginStopOptions) (resp azfake.PollerResponder[armnetwork.PacketCapturesClientStopResponse], errResp azfake.ErrorResponder)
    49  }
    50  
    51  // NewPacketCapturesServerTransport creates a new instance of PacketCapturesServerTransport with the provided implementation.
    52  // The returned PacketCapturesServerTransport instance is connected to an instance of armnetwork.PacketCapturesClient via the
    53  // azcore.ClientOptions.Transporter field in the client's constructor parameters.
    54  func NewPacketCapturesServerTransport(srv *PacketCapturesServer) *PacketCapturesServerTransport {
    55  	return &PacketCapturesServerTransport{
    56  		srv:            srv,
    57  		beginCreate:    newTracker[azfake.PollerResponder[armnetwork.PacketCapturesClientCreateResponse]](),
    58  		beginDelete:    newTracker[azfake.PollerResponder[armnetwork.PacketCapturesClientDeleteResponse]](),
    59  		beginGetStatus: newTracker[azfake.PollerResponder[armnetwork.PacketCapturesClientGetStatusResponse]](),
    60  		newListPager:   newTracker[azfake.PagerResponder[armnetwork.PacketCapturesClientListResponse]](),
    61  		beginStop:      newTracker[azfake.PollerResponder[armnetwork.PacketCapturesClientStopResponse]](),
    62  	}
    63  }
    64  
    65  // PacketCapturesServerTransport connects instances of armnetwork.PacketCapturesClient to instances of PacketCapturesServer.
    66  // Don't use this type directly, use NewPacketCapturesServerTransport instead.
    67  type PacketCapturesServerTransport struct {
    68  	srv            *PacketCapturesServer
    69  	beginCreate    *tracker[azfake.PollerResponder[armnetwork.PacketCapturesClientCreateResponse]]
    70  	beginDelete    *tracker[azfake.PollerResponder[armnetwork.PacketCapturesClientDeleteResponse]]
    71  	beginGetStatus *tracker[azfake.PollerResponder[armnetwork.PacketCapturesClientGetStatusResponse]]
    72  	newListPager   *tracker[azfake.PagerResponder[armnetwork.PacketCapturesClientListResponse]]
    73  	beginStop      *tracker[azfake.PollerResponder[armnetwork.PacketCapturesClientStopResponse]]
    74  }
    75  
    76  // Do implements the policy.Transporter interface for PacketCapturesServerTransport.
    77  func (p *PacketCapturesServerTransport) Do(req *http.Request) (*http.Response, error) {
    78  	rawMethod := req.Context().Value(runtime.CtxAPINameKey{})
    79  	method, ok := rawMethod.(string)
    80  	if !ok {
    81  		return nil, nonRetriableError{errors.New("unable to dispatch request, missing value for CtxAPINameKey")}
    82  	}
    83  
    84  	var resp *http.Response
    85  	var err error
    86  
    87  	switch method {
    88  	case "PacketCapturesClient.BeginCreate":
    89  		resp, err = p.dispatchBeginCreate(req)
    90  	case "PacketCapturesClient.BeginDelete":
    91  		resp, err = p.dispatchBeginDelete(req)
    92  	case "PacketCapturesClient.Get":
    93  		resp, err = p.dispatchGet(req)
    94  	case "PacketCapturesClient.BeginGetStatus":
    95  		resp, err = p.dispatchBeginGetStatus(req)
    96  	case "PacketCapturesClient.NewListPager":
    97  		resp, err = p.dispatchNewListPager(req)
    98  	case "PacketCapturesClient.BeginStop":
    99  		resp, err = p.dispatchBeginStop(req)
   100  	default:
   101  		err = fmt.Errorf("unhandled API %s", method)
   102  	}
   103  
   104  	if err != nil {
   105  		return nil, err
   106  	}
   107  
   108  	return resp, nil
   109  }
   110  
   111  func (p *PacketCapturesServerTransport) dispatchBeginCreate(req *http.Request) (*http.Response, error) {
   112  	if p.srv.BeginCreate == nil {
   113  		return nil, &nonRetriableError{errors.New("fake for method BeginCreate not implemented")}
   114  	}
   115  	beginCreate := p.beginCreate.get(req)
   116  	if beginCreate == nil {
   117  		const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/networkWatchers/(?P<networkWatcherName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/packetCaptures/(?P<packetCaptureName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)`
   118  		regex := regexp.MustCompile(regexStr)
   119  		matches := regex.FindStringSubmatch(req.URL.EscapedPath())
   120  		if matches == nil || len(matches) < 4 {
   121  			return nil, fmt.Errorf("failed to parse path %s", req.URL.Path)
   122  		}
   123  		body, err := server.UnmarshalRequestAsJSON[armnetwork.PacketCapture](req)
   124  		if err != nil {
   125  			return nil, err
   126  		}
   127  		resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")])
   128  		if err != nil {
   129  			return nil, err
   130  		}
   131  		networkWatcherNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkWatcherName")])
   132  		if err != nil {
   133  			return nil, err
   134  		}
   135  		packetCaptureNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("packetCaptureName")])
   136  		if err != nil {
   137  			return nil, err
   138  		}
   139  		respr, errRespr := p.srv.BeginCreate(req.Context(), resourceGroupNameParam, networkWatcherNameParam, packetCaptureNameParam, body, nil)
   140  		if respErr := server.GetError(errRespr, req); respErr != nil {
   141  			return nil, respErr
   142  		}
   143  		beginCreate = &respr
   144  		p.beginCreate.add(req, beginCreate)
   145  	}
   146  
   147  	resp, err := server.PollerResponderNext(beginCreate, req)
   148  	if err != nil {
   149  		return nil, err
   150  	}
   151  
   152  	if !contains([]int{http.StatusCreated}, resp.StatusCode) {
   153  		p.beginCreate.remove(req)
   154  		return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusCreated", resp.StatusCode)}
   155  	}
   156  	if !server.PollerResponderMore(beginCreate) {
   157  		p.beginCreate.remove(req)
   158  	}
   159  
   160  	return resp, nil
   161  }
   162  
   163  func (p *PacketCapturesServerTransport) dispatchBeginDelete(req *http.Request) (*http.Response, error) {
   164  	if p.srv.BeginDelete == nil {
   165  		return nil, &nonRetriableError{errors.New("fake for method BeginDelete not implemented")}
   166  	}
   167  	beginDelete := p.beginDelete.get(req)
   168  	if beginDelete == nil {
   169  		const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/networkWatchers/(?P<networkWatcherName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/packetCaptures/(?P<packetCaptureName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)`
   170  		regex := regexp.MustCompile(regexStr)
   171  		matches := regex.FindStringSubmatch(req.URL.EscapedPath())
   172  		if matches == nil || len(matches) < 4 {
   173  			return nil, fmt.Errorf("failed to parse path %s", req.URL.Path)
   174  		}
   175  		resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")])
   176  		if err != nil {
   177  			return nil, err
   178  		}
   179  		networkWatcherNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkWatcherName")])
   180  		if err != nil {
   181  			return nil, err
   182  		}
   183  		packetCaptureNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("packetCaptureName")])
   184  		if err != nil {
   185  			return nil, err
   186  		}
   187  		respr, errRespr := p.srv.BeginDelete(req.Context(), resourceGroupNameParam, networkWatcherNameParam, packetCaptureNameParam, nil)
   188  		if respErr := server.GetError(errRespr, req); respErr != nil {
   189  			return nil, respErr
   190  		}
   191  		beginDelete = &respr
   192  		p.beginDelete.add(req, beginDelete)
   193  	}
   194  
   195  	resp, err := server.PollerResponderNext(beginDelete, req)
   196  	if err != nil {
   197  		return nil, err
   198  	}
   199  
   200  	if !contains([]int{http.StatusAccepted, http.StatusNoContent}, resp.StatusCode) {
   201  		p.beginDelete.remove(req)
   202  		return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusAccepted, http.StatusNoContent", resp.StatusCode)}
   203  	}
   204  	if !server.PollerResponderMore(beginDelete) {
   205  		p.beginDelete.remove(req)
   206  	}
   207  
   208  	return resp, nil
   209  }
   210  
   211  func (p *PacketCapturesServerTransport) dispatchGet(req *http.Request) (*http.Response, error) {
   212  	if p.srv.Get == nil {
   213  		return nil, &nonRetriableError{errors.New("fake for method Get not implemented")}
   214  	}
   215  	const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/networkWatchers/(?P<networkWatcherName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/packetCaptures/(?P<packetCaptureName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)`
   216  	regex := regexp.MustCompile(regexStr)
   217  	matches := regex.FindStringSubmatch(req.URL.EscapedPath())
   218  	if matches == nil || len(matches) < 4 {
   219  		return nil, fmt.Errorf("failed to parse path %s", req.URL.Path)
   220  	}
   221  	resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")])
   222  	if err != nil {
   223  		return nil, err
   224  	}
   225  	networkWatcherNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkWatcherName")])
   226  	if err != nil {
   227  		return nil, err
   228  	}
   229  	packetCaptureNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("packetCaptureName")])
   230  	if err != nil {
   231  		return nil, err
   232  	}
   233  	respr, errRespr := p.srv.Get(req.Context(), resourceGroupNameParam, networkWatcherNameParam, packetCaptureNameParam, nil)
   234  	if respErr := server.GetError(errRespr, req); respErr != nil {
   235  		return nil, respErr
   236  	}
   237  	respContent := server.GetResponseContent(respr)
   238  	if !contains([]int{http.StatusOK}, respContent.HTTPStatus) {
   239  		return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", respContent.HTTPStatus)}
   240  	}
   241  	resp, err := server.MarshalResponseAsJSON(respContent, server.GetResponse(respr).PacketCaptureResult, req)
   242  	if err != nil {
   243  		return nil, err
   244  	}
   245  	return resp, nil
   246  }
   247  
   248  func (p *PacketCapturesServerTransport) dispatchBeginGetStatus(req *http.Request) (*http.Response, error) {
   249  	if p.srv.BeginGetStatus == nil {
   250  		return nil, &nonRetriableError{errors.New("fake for method BeginGetStatus not implemented")}
   251  	}
   252  	beginGetStatus := p.beginGetStatus.get(req)
   253  	if beginGetStatus == nil {
   254  		const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/networkWatchers/(?P<networkWatcherName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/packetCaptures/(?P<packetCaptureName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/queryStatus`
   255  		regex := regexp.MustCompile(regexStr)
   256  		matches := regex.FindStringSubmatch(req.URL.EscapedPath())
   257  		if matches == nil || len(matches) < 4 {
   258  			return nil, fmt.Errorf("failed to parse path %s", req.URL.Path)
   259  		}
   260  		resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")])
   261  		if err != nil {
   262  			return nil, err
   263  		}
   264  		networkWatcherNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkWatcherName")])
   265  		if err != nil {
   266  			return nil, err
   267  		}
   268  		packetCaptureNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("packetCaptureName")])
   269  		if err != nil {
   270  			return nil, err
   271  		}
   272  		respr, errRespr := p.srv.BeginGetStatus(req.Context(), resourceGroupNameParam, networkWatcherNameParam, packetCaptureNameParam, nil)
   273  		if respErr := server.GetError(errRespr, req); respErr != nil {
   274  			return nil, respErr
   275  		}
   276  		beginGetStatus = &respr
   277  		p.beginGetStatus.add(req, beginGetStatus)
   278  	}
   279  
   280  	resp, err := server.PollerResponderNext(beginGetStatus, req)
   281  	if err != nil {
   282  		return nil, err
   283  	}
   284  
   285  	if !contains([]int{http.StatusOK, http.StatusAccepted}, resp.StatusCode) {
   286  		p.beginGetStatus.remove(req)
   287  		return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK, http.StatusAccepted", resp.StatusCode)}
   288  	}
   289  	if !server.PollerResponderMore(beginGetStatus) {
   290  		p.beginGetStatus.remove(req)
   291  	}
   292  
   293  	return resp, nil
   294  }
   295  
   296  func (p *PacketCapturesServerTransport) dispatchNewListPager(req *http.Request) (*http.Response, error) {
   297  	if p.srv.NewListPager == nil {
   298  		return nil, &nonRetriableError{errors.New("fake for method NewListPager not implemented")}
   299  	}
   300  	newListPager := p.newListPager.get(req)
   301  	if newListPager == nil {
   302  		const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/networkWatchers/(?P<networkWatcherName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/packetCaptures`
   303  		regex := regexp.MustCompile(regexStr)
   304  		matches := regex.FindStringSubmatch(req.URL.EscapedPath())
   305  		if matches == nil || len(matches) < 3 {
   306  			return nil, fmt.Errorf("failed to parse path %s", req.URL.Path)
   307  		}
   308  		resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")])
   309  		if err != nil {
   310  			return nil, err
   311  		}
   312  		networkWatcherNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkWatcherName")])
   313  		if err != nil {
   314  			return nil, err
   315  		}
   316  		resp := p.srv.NewListPager(resourceGroupNameParam, networkWatcherNameParam, nil)
   317  		newListPager = &resp
   318  		p.newListPager.add(req, newListPager)
   319  	}
   320  	resp, err := server.PagerResponderNext(newListPager, req)
   321  	if err != nil {
   322  		return nil, err
   323  	}
   324  	if !contains([]int{http.StatusOK}, resp.StatusCode) {
   325  		p.newListPager.remove(req)
   326  		return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", resp.StatusCode)}
   327  	}
   328  	if !server.PagerResponderMore(newListPager) {
   329  		p.newListPager.remove(req)
   330  	}
   331  	return resp, nil
   332  }
   333  
   334  func (p *PacketCapturesServerTransport) dispatchBeginStop(req *http.Request) (*http.Response, error) {
   335  	if p.srv.BeginStop == nil {
   336  		return nil, &nonRetriableError{errors.New("fake for method BeginStop not implemented")}
   337  	}
   338  	beginStop := p.beginStop.get(req)
   339  	if beginStop == nil {
   340  		const regexStr = `/subscriptions/(?P<subscriptionId>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P<resourceGroupName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Microsoft\.Network/networkWatchers/(?P<networkWatcherName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/packetCaptures/(?P<packetCaptureName>[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/stop`
   341  		regex := regexp.MustCompile(regexStr)
   342  		matches := regex.FindStringSubmatch(req.URL.EscapedPath())
   343  		if matches == nil || len(matches) < 4 {
   344  			return nil, fmt.Errorf("failed to parse path %s", req.URL.Path)
   345  		}
   346  		resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")])
   347  		if err != nil {
   348  			return nil, err
   349  		}
   350  		networkWatcherNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("networkWatcherName")])
   351  		if err != nil {
   352  			return nil, err
   353  		}
   354  		packetCaptureNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("packetCaptureName")])
   355  		if err != nil {
   356  			return nil, err
   357  		}
   358  		respr, errRespr := p.srv.BeginStop(req.Context(), resourceGroupNameParam, networkWatcherNameParam, packetCaptureNameParam, nil)
   359  		if respErr := server.GetError(errRespr, req); respErr != nil {
   360  			return nil, respErr
   361  		}
   362  		beginStop = &respr
   363  		p.beginStop.add(req, beginStop)
   364  	}
   365  
   366  	resp, err := server.PollerResponderNext(beginStop, req)
   367  	if err != nil {
   368  		return nil, err
   369  	}
   370  
   371  	if !contains([]int{http.StatusOK, http.StatusAccepted}, resp.StatusCode) {
   372  		p.beginStop.remove(req)
   373  		return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK, http.StatusAccepted", resp.StatusCode)}
   374  	}
   375  	if !server.PollerResponderMore(beginStop) {
   376  		p.beginStop.remove(req)
   377  	}
   378  
   379  	return resp, nil
   380  }