# Copyright 2015 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Creates a Container VM template with the provided Container manifest."""
import common
import container_instance
import vm_instance_template


# Check vm_instance and vm_instance_template for additional properties
# The optional and mandatory fields are the same as a container_instance
def GenerateContainerInstanceTemplate(context):
  """Generate a comute InstanceTemplate ready with a container image."""
  # This should modify the context properties
  container_instance.GenerateContainerInstance(context)
  return vm_instance_template.GenerateComputeVMTemplate(context)


def GenerateResourceList(context):
  """Returns list of resources generated by this module."""
  resources = GenerateContainerInstanceTemplate(context)
  resources += common.AddDiskResourcesIfNeeded(context)
  return resources


@common.FormatErrorsDec
def GenerateConfig(context):
  """Generates YAML resource configuration."""
  return common.MakeResource(GenerateResourceList(context))
