def _GetTrafficChanges(args): """Returns a changes for traffic assignment based on the flags.""" if args.to_latest: # Mutually exlcusive flag with to-revisions return config_changes.TrafficChanges({traffic.LATEST_REVISION_KEY: 100}) new_percentages = args.to_revisions if args.to_revisions else {} return config_changes.TrafficChanges(new_percentages)
def testTrafficTagsChangesRemoveOnly(self): config_changes.TrafficChanges( None, tags_to_remove=['head']).Adjust(self.resource) self.traffic_mock.return_value.UpdateTags.assert_called_once_with({}, ['head'], False) self.traffic_mock.return_value.UpdateTraffic.assert_not_called()
def testTrafficTagsChangesUpdateOnly(self): config_changes.TrafficChanges( None, tags_to_update={ 'head': 'LATEST' }).Adjust(self.resource) self.traffic_mock.return_value.UpdateTags.assert_called_once_with( {'head': 'LATEST'}, [], False) self.traffic_mock.return_value.UpdateTraffic.assert_not_called()
def testTrafficChangesByTagNotPresent(self): self.traffic_mock.return_value.TagToKey.return_value = { 'staging': 'LATEST', } with self.assertRaises(exceptions.ConfigurationError): config_changes.TrafficChanges({ 'preprod': 90, 'staging': 10 }, by_tag=True).Adjust(self.resource)
def testTrafficChanges(self): config_changes.TrafficChanges({ 'r1': 90, 'LATEST': 10 }).Adjust(self.resource) self.traffic_mock.return_value.UpdateTags.assert_not_called() self.traffic_mock.return_value.UpdateTraffic.assert_called_once_with({ 'r1': 90, 'LATEST': 10 })
def testTrafficChangesByTag(self): self.traffic_mock.return_value.TagToKey.return_value = { 'preprod': 'r1', 'staging': 'LATEST', } config_changes.TrafficChanges({ 'preprod': 90, 'staging': 10 }, by_tag=True).Adjust(self.resource) self.traffic_mock.return_value.UpdateTraffic.assert_called_once_with({ 'r1': 90, 'LATEST': 10 })
def testTrafficAndTagsChanges(self): config_changes.TrafficChanges({ 'r1': 90, 'LATEST': 10 }, False, { 'staging': 'LATEST' }, ['prod'], False).Adjust(self.resource) self.traffic_mock.return_value.UpdateTags.assert_called_once_with( {'staging': 'LATEST'}, ['prod'], False) self.traffic_mock.return_value.UpdateTraffic.assert_called_once_with({ 'r1': 90, 'LATEST': 10 })
def _GetTrafficChanges(args): """Returns a changes for traffic assignment based on the flags.""" # Check if args has tags changes again in case args does not include tags # flags. Tags will launch in the alpha release track only. if _HasTrafficTagsChanges(args): update_tags = args.update_tags or args.set_tags remove_tags = args.remove_tags clear_other_tags = bool(args.set_tags) or args.clear_tags else: update_tags = None remove_tags = None clear_other_tags = False if args.to_latest: # Mutually exlcusive flag with to-revisions new_percentages = {traffic.LATEST_REVISION_KEY: 100} else: new_percentages = args.to_revisions if args.to_revisions else {} return config_changes.TrafficChanges(new_percentages, update_tags, remove_tags, clear_other_tags)
def testTrafficTagsChangesClearOnly(self): config_changes.TrafficChanges( None, clear_other_tags=True).Adjust(self.resource) self.traffic_mock.return_value.UpdateTags.assert_called_once_with({}, [], True) self.traffic_mock.return_value.UpdateTraffic.assert_not_called()
def _GetTrafficChanges(args): """Returns a changes for traffic assignment based on the flags.""" new_percentages = args.to_revision if args.to_revision else {} new_latest_percentage = 100 if args.to_latest else None return config_changes.TrafficChanges(new_percentages, new_latest_percentage)