Esempio n. 1
0
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)
Esempio n. 2
0
 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()
Esempio n. 3
0
 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()
Esempio n. 4
0
 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)
Esempio n. 5
0
 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
   })
Esempio n. 6
0
 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
   })
Esempio n. 7
0
 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
   })
Esempio n. 8
0
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)
Esempio n. 9
0
 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()
Esempio n. 10
0
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)