text: #% description: Creates a VM running a Salt master daemon in a Docker container.
  #% parameters:
  #% - name: masterAddress
  #%   type: string
  #%   description: Name of the Salt master VM.
  #%   required: true
  #% - name: project
  #%   type: string
  #%   description: Name of the Cloud project.
  #%   required: true
  #% - name: zone
  #%   type: string
  #%   description: Zone to create the resources in.
  #%   required: true
  
  """Generates config for a VM running a SaltStack master.
  
  Just for fun this template is in Python, while the others in this
  directory are in Jinja2.
  """
  
  
  def GenerateConfig(evaluation_context):
    return """
  resources:
  - type: compute.v1.firewall
    name: %(master)s-firewall
    properties:
      network: https://www.googleapis.com/compute/v1/projects/%(project)s/global/networks/default
      sourceRanges: [ "0.0.0.0/0" ]
      allowed:
      - IPProtocol: tcp
        ports: [ "4505", "4506" ]
  - type: compute.v1.instance
    name: %(master)s
    properties:
      zone: %(zone)s
      machineType: https://www.googleapis.com/compute/v1/projects/%(project)s/zones/%(zone)s/machineTypes/f1-micro
      disks:
      - deviceName: boot
        type: PERSISTENT
        boot: true
        autoDelete: true
        initializeParams:
          sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20140619
      networkInterfaces:
      - network: https://www.googleapis.com/compute/v1/projects/%(project)s/global/networks/default
        accessConfigs:
        - name: External NAT
          type: ONE_TO_ONE_NAT
      metadata:
        items:
        - key: startup-script
          value: startup-script-value
  """ % {"master": evaluation_context.properties["masterAddress"],
         "project": evaluation_context.properties["project"],
         "zone": evaluation_context.properties["zone"]}
  