Example #1
0
  def testNeq(self):
    client1 = object()
    client2 = object()
    service = object()
    resource_registry = object()
    zonal_lister1 = lister.ZonalParallelLister(client1, service,
                                               resource_registry)
    zonal_lister2 = lister.ZonalParallelLister(client2, service,
                                               resource_registry)

    self.assertNotEqual(zonal_lister1, zonal_lister2)
Example #2
0
  def testEq(self):
    client = object()
    service = object()
    resource_registry = object()
    zonal_lister1 = lister.ZonalParallelLister(client, service,
                                               resource_registry)
    zonal_lister2 = lister.ZonalParallelLister(client, service,
                                               resource_registry)

    self.assertEqual(zonal_lister1, zonal_lister2)
    self.assertEqual(hash(zonal_lister1), hash(zonal_lister2))
    self.assertNotEqual(zonal_lister1, object())
Example #3
0
  def testNoExplicitZoneList(self):
    # In this tests zonal wildcard is used, zones have to be fetched by
    # implementation
    self.api_mock = utils.ComputeApiMock('v1').Start()
    self.addCleanup(self.api_mock.Stop)

    resource_registry = resources.REGISTRY.Clone()
    resource_registry.RegisterApiByName('compute', 'v1')

    frontend = lister._Frontend('filter', 123, self.MakeAllScopes(zonal=True))

    zonal_lister = lister.ZonalParallelLister(
        self.api_mock.adapter, self.api_mock.adapter.apitools_client.instances,
        resource_registry)

    zone_set = self.MakeZoneSet(['zone-1', 'zone-2'])

    # This is for zones listing
    self.ExpectListerInvoke(
        scope_set=self.MakeGlobalScope(),
        result=[{
            'selfLink': z.SelfLink()
        } for z in zone_set])

    # This is for "instances" listing
    self.ExpectListerInvoke(
        scope_set=zone_set,
        filter_expr=frontend.filter,
        max_results=frontend.max_results,
        result=[1, 2, 3])

    result = list(zonal_lister(frontend))
    self.assertListEqual(result, [1, 2, 3])
Example #4
0
 def testRepr(self):
   zonal_lister = lister.ZonalParallelLister('client', 'service', 'resources')
   # Python 2: u"ZonalParallelLister(u'client', u'service', u'resources')"
   # Python 3: "ZonalParallelLister('client', 'service', 'resources')"
   expected = 'ZonalParallelLister({}, {}, {})'.format(
       repr('client'), repr('service'), repr('resources'))
   self.assertEqual(repr(zonal_lister), expected)
Example #5
0
    def SetUp(self):
        api_mock = utils.ComputeApiMock('v1').Start()
        self.addCleanup(api_mock.Stop)

        # instances list implementation always uses this implementation
        self.implementation = lister.ZonalParallelLister(
            api_mock.adapter, api_mock.adapter.apitools_client.instances,
            api_mock.resources)
Example #6
0
    def Run(self, args):
        holder = base_classes.ComputeApiHolder(self.ReleaseTrack())
        client = holder.client

        request_data = lister.ParseZonalFlags(args, holder.resources)

        list_implementation = lister.ZonalParallelLister(
            client, client.apitools_client.instances, holder.resources)

        return lister.Invoke(request_data, list_implementation)
Example #7
0
  def testExplicitZoneList(self):
    # In this test fronted is provided with precise set of zones
    self.api_mock = utils.ComputeApiMock('v1').Start()
    self.addCleanup(self.api_mock.Stop)

    frontend = lister._Frontend('filter', 123,
                                self.MakeZoneSet(['zone-1', 'zone-2']))

    zonal_lister = lister.ZonalParallelLister(
        self.api_mock.adapter, self.api_mock.adapter.apitools_client.instances,
        'registry')

    self.ExpectListerInvoke(
        scope_set=frontend.scope_set,
        filter_expr=frontend.filter,
        max_results=frontend.max_results,
        result=[1, 2, 3])
    result = list(zonal_lister(frontend))

    self.assertListEqual(result, [1, 2, 3])
Example #8
0
    def SetUp(self):
        api_mock = utils.ComputeApiMock('v1').Start()
        self.addCleanup(api_mock.Stop)

        self.implementation = lister.ZonalParallelLister(
            api_mock.adapter, api_mock.adapter.apitools_client.instances,
            api_mock.resources)

        self.test_resources = resource_projector.MakeSerializable(
            test_resources.INSTANCES_V1)

        self.all_project_requests = [
            (self.compute_v1.instances, 'List',
             self.messages.ComputeInstancesListRequest(project='my-project',
                                                       zone='zone-1')),
            (self.compute_v1.instances, 'List',
             self.messages.ComputeInstancesListRequest(project='my-project',
                                                       zone='zone-2')),
            (self.compute_v1.instances, 'List',
             self.messages.ComputeInstancesListRequest(project='my-project',
                                                       zone='zone-3'))
        ]

        def ReplicatePartialError(requests, http, batch_url, errors):  # pylint: disable=unused-argument

            for i, resource in enumerate(self.test_resources):
                if i == 1:
                    errors.append((400, six.text_type('Internal error')))
                    continue
                elif i >= len(self.test_resources):
                    return
                else:
                    yield resource

        list_json_patcher = mock.patch(
            'googlecloudsdk.api_lib.compute.request_helper.ListJson')

        self.addCleanup(list_json_patcher.stop)
        self.list_json = list_json_patcher.start()
        self.list_json.side_effect = ReplicatePartialError
Example #9
0
  def testDeepcopy(self):
    zonal_lister = lister.ZonalParallelLister('client', 'service', 'resources')

    self.assertEqual(zonal_lister, copy.deepcopy(zonal_lister))