def testRemoveListOfBgpPeers(self): orig = router_test_utils.CreateBaseRouterMessage(self.messages) orig.bgpPeers.append( self.messages.RouterBgpPeer(name='my-peer-2', interfaceName='my-if-2', peerAsn=66000)) expected = copy.deepcopy(orig) expected.bgpPeers.pop() expected.bgpPeers.pop() self.make_requests.side_effect = iter([[orig], []]) self.Run(""" compute routers remove-bgp-peer my-router --peer-names my-peer,my-peer-2 --region us-central1 """) self.CheckRequests( [(self.compute.routers, 'Get', self.messages.ComputeRoutersGetRequest(router='my-router', region='us-central1', project='my-project'))], [(self.compute.routers, 'Patch', self.messages.ComputeRoutersPatchRequest(router='my-router', routerResource=expected, region='us-central1', project='my-project'))], )
def testUpdate_base(self): self.SelectApi(self.track, self.api_version) orig = router_test_utils.CreateBaseRouterMessage(self.messages) updated = copy.deepcopy(orig) updated.bgpPeers[0] = (self.messages.RouterBgpPeer( name='my-peer', interfaceName='new-if', peerAsn=65002, ipAddress='1.1.1.1', peerIpAddress='1.1.1.2', advertisedRoutePriority=1)) self.ExpectGet(orig) self.ExpectPatch(updated) self.ExpectOperationsPolling() self.ExpectGet(updated) self.Run(""" compute routers update-bgp-peer my-router --region us-central1 --peer-name my-peer --peer-asn 65002 --interface new-if --ip-address 1.1.1.1 --peer-ip-address 1.1.1.2 --advertised-route-priority 1 """) self.AssertOutputEquals('') self.AssertErrContains('Updating peer [my-peer] in router [my-router]')
def testSimple(self): self.make_requests.side_effect = iter( [[router_test_utils.CreateBaseRouterMessage(self.messages)]]) self.Run(""" compute routers describe my-router --region us-central1 """)
def testRemoveListOfInterfaces(self): orig = router_test_utils.CreateBaseRouterMessage(self.messages) orig.interfaces.append( self.messages.RouterInterface( name='my-if-2', linkedVpnTunnel='', ipRange='10.0.1.1/24')) expected = copy.deepcopy(orig) expected.interfaces.pop() expected.interfaces.pop() self.make_requests.side_effect = iter([[orig], []]) self.Run(""" compute routers remove-interface my-router --interface-names my-if,my-if-2 --region us-central1 """) self.CheckRequests( [(self.compute.routers, 'Get', self.messages.ComputeRoutersGetRequest( router='my-router', region='us-central1', project='my-project'))], [(self.compute.routers, 'Patch', self.messages.ComputeRoutersPatchRequest( router='my-router', routerResource=expected, region='us-central1', project='my-project'))], )
def testSimple(self): orig = router_test_utils.CreateBaseRouterMessage(self.messages) expected = copy.deepcopy(orig) expected.interfaces.pop() self.make_requests.side_effect = iter([ [orig], [] ]) self.Run(""" compute routers remove-interface my-router --interface-name my-if --region us-central1 """) self.CheckRequests( [(self.compute.routers, 'Get', self.messages.ComputeRoutersGetRequest( router='my-router', region='us-central1', project='my-project'))], [(self.compute.routers, 'Patch', self.messages.ComputeRoutersPatchRequest( router='my-router', routerResource=expected, region='us-central1', project='my-project'))], )
def testInterfaceNotFoundError(self): orig = router_test_utils.CreateBaseRouterMessage(self.messages) expected = copy.deepcopy(orig) expected.interfaces.pop() self.make_requests.side_effect = iter([[orig], []]) self.make_requests.side_effect = iter([[orig]]) with self.assertRaises(exceptions.Error): self.Run(""" compute routers remove-interface my-router --interface-name my-if-not --region us-central1 """)
def testUpdate_noop(self): """Sanity test to verify no changes when no flags are specified.""" self.SelectApi(self.track, self.api_version) orig = router_test_utils.CreateBaseRouterMessage(self.messages) updated = copy.deepcopy(orig) self.ExpectGet(orig) self.ExpectPatch(updated) self.ExpectOperationsPolling() self.ExpectGet(updated) self.Run(""" compute routers update my-router --region us-central1 """) self.AssertOutputEquals('') self.AssertErrContains('Updating router [my-router]')
def testUpdateAdvertisements_default(self): self.SelectApi(self.track, self.api_version) orig = router_test_utils.CreateBaseRouterMessage(self.messages) updated = copy.deepcopy(orig) mode = self.messages.RouterBgp.AdvertiseModeValueValuesEnum.DEFAULT updated.bgp.advertiseMode = mode self.ExpectGet(orig) self.ExpectPatch(updated) self.ExpectOperationsPolling() self.ExpectGet(updated) self.Run(""" compute routers update my-router --region us-central1 --advertisement-mode=DEFAULT """) self.AssertOutputEquals('') self.AssertErrContains('Updating router [my-router]')
def testSpecifyBothInterfaceNameAndInterfaceNameList(self): orig = router_test_utils.CreateBaseRouterMessage(self.messages) orig.interfaces.append( self.messages.RouterInterface( name='my-if-2', linkedVpnTunnel='', ipRange='10.0.1.1/24')) expected = copy.deepcopy(orig) expected.interfaces.pop() expected.interfaces.pop() self.make_requests.side_effect = iter([[orig], []]) with self.AssertRaisesArgumentErrorMatches( 'argument --interface-name: Exactly one of (--interface-name | ' '--interface-names) must be specified.'): self.Run(""" compute routers remove-interface my-router --interface-names my-if,my-if-2 --interface-name my-if --region us-central1 """)
def testUsingBothPeerNameAndPeerNameListError(self): orig = router_test_utils.CreateBaseRouterMessage(self.messages) orig.bgpPeers.append( self.messages.RouterBgpPeer(name='my-peer-2', interfaceName='my-if-2', peerAsn=66000)) expected = copy.deepcopy(orig) expected.bgpPeers.pop() expected.bgpPeers.pop() self.make_requests.side_effect = iter([[orig], []]) with self.AssertRaisesArgumentErrorMatches( 'argument --peer-name: Exactly one of (--peer-name | ' '--peer-names) must be specified.'): self.Run(""" compute routers remove-bgp-peer my-router --peer-names my-peer,my-peer-2 --region us-central1 --peer-name my-peer """)
def testUpdate_async(self): """Test command with --async flag.""" self.SelectApi(self.track, self.api_version) orig = router_test_utils.CreateBaseRouterMessage(self.messages) updated = copy.deepcopy(orig) self.ExpectGet(orig) self.ExpectPatch(updated) result = self.Run(""" compute routers update my-router --region us-central1 --async """) self.assertIn('operation-X', result.name) self.AssertOutputEquals('') self.AssertErrEquals( 'Update in progress for router [my-router] ' '[https://compute.googleapis.com/compute/{}/' 'projects/fake-project/regions/us-central1/operations/operation-X] ' 'Run the [gcloud compute operations describe] command to check the ' 'status of this operation.\n'.format(self.api_version))