User Tools

Site Tools


python:gcp:automation:vpc-sc

VPC SC

  • defining the values
def create_dict(a1, a2, a3, a4):
    methods = [a1, a2, a3, a4]
    my_list = []
    for method in methods:
        my_dict = {"method": f'"{method}"', "permission": None}
        my_list.append(my_dict)
    return my_list

# Example usage
inputs = ("a1", "a2", "a3", "a4")
output = create_dict(*inputs)
for item in output:
    print(item)
  • using yaml as input
import yaml

def create_dict(yaml_input):
    input_dict = yaml.safe_load(yaml_input)
    methods = input_dict["methods"]
    my_list = []
    for method in methods:
        my_dict = {"method": f'"{method}"', "permission": None}
        my_list.append(my_dict)
    return my_list

# Example usage
yaml_input = """
methods:
  - a1
  - a2
  - a3
  - a4
"""
output = create_dict(yaml_input)
for item in output:
    print(item)

Final version

import yaml

def create_dict(yaml_input):
    input_dict = yaml.safe_load(yaml_input)
    methods = input_dict["methods"]
    my_list = []
    for method in methods:
        my_dict = {"method": f'"{method}"', "permission": "null"}
        my_list.append(my_dict)
    return my_list

# Example usage
with open('input.yaml', 'r') as f:
    yaml_input = f.read()

output = create_dict(yaml_input)
for item in output:
    print(f"{{\n       method          = {item['method']}\n       permission      = {item['permission']}\n}},")
  • bash format
#!/bin/bash

# Load YAML input file
input=$(cat input.yaml)

# Parse YAML input using yq
methods=$(echo $input | yq e '.methods | .[]' -)

# Loop over each method and create a dictionary
output=""
for method in $methods
do
  output+="\n{\n       method          = \"$method\"\n       permission      = null\n},"
done

# Print output
echo -e $output

using argument input

import argparse
import yaml

def create_dict(yaml_input):
    input_dict = yaml.safe_load(yaml_input)
    methods = input_dict["methods"]
    my_list = []
    for method in methods:
        my_dict = {"method": f'"{method}"', "permission": "null"}
        my_list.append(my_dict)
    return my_list

# Parse command-line arguments
parser = argparse.ArgumentParser()
parser.add_argument("-i", "--input_file", required=True, help="path to YAML input file")
args = parser.parse_args()

# Read input YAML file
with open(args.input_file, 'r') as f:
    yaml_input = f.read()

# Create dictionary and print output
output = create_dict(yaml_input)
for item in output:
    print(f"{{\n       method          = {item['method']}\n       permission      = {item['permission']}\n}},")
python script.py --input_file input.yaml

ingress policies

  • yaml file
ingress_policies:
  - from:
      sources:
        access_levels:
          - "*" # Allow Access from everywhere
      identities: "{{var.read_bucket_identities}}"
    to:
      resources:
        - "*"
      operations:
        storage.googleapis.com:
          methods:
            - "google.storage.objects.get"
            - "google.storage.objects.list"

convert python

  import yaml
import hcl2

# Load YAML file
with open('ingress_policies.yaml', 'r') as f:
    data = yaml.load(f, Loader=yaml.FullLoader)

# Convert YAML to HCL
hcl = hcl2.dumps({'ingress_policies': data['ingress_policies']})

# Save HCL file
with open('ingress_policies.hcl', 'w') as f:
    f.write(hcl)
python/gcp/automation/vpc-sc.txt · Last modified: 2023/03/17 15:05 by burim

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki