Esempio n. 1
0
  def Run(self, args):
    env_ref = args.CONCEPTS.environment.Parse()

    if args.airflow_version:
      # Converts airflow_version arg to image_version arg
      args.image_version = (
          image_versions_command_util.ImageVersionFromAirflowVersion(
              args.airflow_version))

    # Checks validity of image_version upgrade request.
    if (args.image_version and
        not image_versions_command_util.IsValidImageVersionUpgrade(
            env_ref, args.image_version, self.ReleaseTrack())):
      raise command_util.InvalidUserInputError(
          'Invalid environment upgrade. [Requested: {}]'.format(
              args.image_version))

    # Checks validity of update_web_server_allow_ip
    if (self.ReleaseTrack() == base.ReleaseTrack.BETA and
        args.update_web_server_allow_ip):
      flags.ValidateIpRanges(
          [acl['ip_range'] for acl in args.update_web_server_allow_ip])

    field_mask, patch = self._ConstructPatch(
        env_ref, args, UpdateBeta.support_environment_upgrades,
        UpdateBeta.support_web_server_access_control, True, True)

    return patch_util.Patch(
        env_ref,
        field_mask,
        patch,
        args.async_,
        release_track=self.ReleaseTrack())
Esempio n. 2
0
    def Run(self, args):
        env_ref = args.CONCEPTS.environment.Parse()

        if args.airflow_version:
            # Converts airflow_version arg to image_version arg
            args.image_version = (
                image_versions_command_util.ImageVersionFromAirflowVersion(
                    args.airflow_version))

        # Checks validity of image_version upgrade request.
        if (args.image_version
                and not image_versions_command_util.IsValidImageVersionUpgrade(
                    env_ref, args.image_version, self.ReleaseTrack())):
            raise command_util.InvalidUserInputError(
                'Invalid environment upgrade. [Requested: {}]'.format(
                    args.image_version))

        field_mask, patch = self._ConstructPatch(
            env_ref, args, UpdateBeta.support_environment_upgrades)

        return patch_util.Patch(env_ref,
                                field_mask,
                                patch,
                                args.async_,
                                release_track=self.ReleaseTrack())
Esempio n. 3
0
 def Run(self, args):
     env_ref = args.CONCEPTS.environment.Parse()
     field_mask, patch = self._ConstructPatch(env_ref, args)
     return patch_util.Patch(env_ref,
                             field_mask,
                             patch,
                             args.async_,
                             release_track=self.ReleaseTrack())
    def testPatch_Asynchronous(self, track):
        self.SetTrack(track)
        self._SetTestMessages()
        self.ExpectEnvironmentPatch(self.TEST_PROJECT,
                                    self.TEST_LOCATION,
                                    self.TEST_ENVIRONMENT_ID,
                                    patch_environment=self.patch_environment,
                                    update_mask=self.field_mask,
                                    response=self.running_op)

        retval = patch_util.Patch(self.env_resource,
                                  self.field_mask,
                                  self.patch_environment,
                                  True,
                                  release_track=self.track)
        self.assertEqual(self.running_op, retval)
        self.AssertErrMatches(
            r'^Update in progress for environment \[{}] with operation \[{}]'.
            format(self.TEST_ENVIRONMENT_NAME, self.TEST_OPERATION_NAME))
    def testPatch_Synchronous(self, track):
        self.SetTrack(track)
        self._SetTestMessages()
        self.ExpectEnvironmentPatch(self.TEST_PROJECT,
                                    self.TEST_LOCATION,
                                    self.TEST_ENVIRONMENT_ID,
                                    patch_environment=self.patch_environment,
                                    update_mask=self.field_mask,
                                    response=self.running_op)
        self.ExpectOperationGet(self.TEST_PROJECT,
                                self.TEST_LOCATION,
                                self.TEST_OPERATION_UUID,
                                response=self.successful_op)

        retval = patch_util.Patch(self.env_resource,
                                  self.field_mask,
                                  self.patch_environment,
                                  False,
                                  release_track=self.track)
        self.assertIsNone(retval)
        self.AssertErrMatches(
            r'^{{"ux": "PROGRESS_TRACKER", "message": "Waiting for \[{}] to be '
            r'updated with \[{}]"'.format(self.TEST_ENVIRONMENT_NAME,
                                          self.TEST_OPERATION_NAME))