def _ApplyEnvVarsArgsToFunction(function, args): """Determines if environment variables have to be updated. It compares the cli args with the existing environment variables to compute the resulting build environment variables. Args: function: CloudFunction message to be checked and filled with env vars based on the flags args: all cli args Returns: updated_fields: update mask containing the list of fields that are considered for updating based on the cli args and existing variables """ updated_fields = [] old_env_vars = env_vars_api_util.GetEnvVarsAsDict( function.environmentVariables) env_var_flags = map_util.GetMapFlagsFromArgs('env-vars', args) new_env_vars = map_util.ApplyMapFlags(old_env_vars, **env_var_flags) if old_env_vars != new_env_vars: env_vars_type_class = api_util.GetApiMessagesModule( ).CloudFunction.EnvironmentVariablesValue function.environmentVariables = env_vars_api_util.DictToEnvVarsProperty( env_vars_type_class, new_env_vars) updated_fields.append('environmentVariables') return updated_fields
def _ApplyEnvVarsArgsToFunction(function, args): updated_fields = [] old_env_vars = env_vars_api_util.GetFunctionEnvVarsAsDict(function) env_var_flags = map_util.GetMapFlagsFromArgs('env-vars', args) new_env_vars = map_util.ApplyMapFlags(old_env_vars, **env_var_flags) if old_env_vars != new_env_vars: function.environmentVariables = env_vars_api_util.DictToEnvVarsProperty( new_env_vars) updated_fields.append('environmentVariables') return updated_fields
def testDictToEnvVarsProperty(self, env_vars_type_class): expected = (env_vars_type_class(additionalProperties=[ env_vars_type_class.AdditionalProperty(key='BAZ', value='BOO'), env_vars_type_class.AdditionalProperty(key='FOO', value='BAR'), ])) env_vars_dict = { 'FOO': 'BAR', 'BAZ': 'BOO', } actual = env_vars.DictToEnvVarsProperty(env_vars_type_class, env_vars_dict) self.assertEqual(expected, actual)
def testDictToEnvVarsProperty(self): messages = api_util.GetApiMessagesModule() env_vars_class = messages.CloudFunction.EnvironmentVariablesValue expected = (env_vars_class(additionalProperties=[ env_vars_class.AdditionalProperty(key='BAZ', value='BOO'), env_vars_class.AdditionalProperty(key='FOO', value='BAR'), ])) env_vars_dict = { 'FOO': 'BAR', 'BAZ': 'BOO', } actual = env_vars.DictToEnvVarsProperty(env_vars_dict) self.assertEqual(expected, actual)
def testDictToEnvVarsPropertyNone(self): actual = env_vars.DictToEnvVarsProperty(None) self.assertEqual(None, actual)
def testDictToEnvVarsPropertyNone(self, env_vars_type_class): actual = env_vars.DictToEnvVarsProperty(env_vars_type_class, None) self.assertIsNone(actual)