import os
import grpc
import cloudianConsumer_pb2_grpc as pb2_grpc
import cloudianConsumer_pb2 as pb2

# Insecure Channel
# channel = grpc.insecure_channel('localhost:50051')
# client = pb2_grpc.cloudianConsumerStub(channel)

consumer_host = os.getenv("CONSUMER_HOST", "cloudian-consumer.yoogle.com")
consumer_port = os.getenv("CONTAINER_SECURE_PORT", "8445")
with open("ca.pem", "rb") as fp:
    ca_cert = fp.read()

# For bypassing dns or fqdn for certs
# options = {
#     'grpc.ssl_target_name_override' : 'localhost',
#     'grpc.default_authority': 'localhost'
# }

recommendations_channel = grpc.secure_channel(
    f"{consumer_host}:{consumer_port}", grpc.ssl_channel_credentials(ca_cert)
)

client = pb2_grpc.cloudianConsumerStub(recommendations_channel)

request = pb2.Group(groupName="daas-demo-grpc",groupDesc='Grupo prueba Daas Cloudian Consumer')
response = client.CreateGroup(request)

print(response)

request = pb2.User(groupName="daas-demo-grpc",userName='velero-user',userDesc='User for velero only')
response = client.CreateUser(request)

print(response)

request = pb2.S3Access(groupName="daas-demo-grpc",userName='velero-user')
response = client.CreateS3Access(request)

print(response)

request = pb2.User(groupName="daas-demo-grpc",userName='velero-user')
response = client.DeleteUser(request)

print(response)

request = pb2.Group(groupName="daas-demo-grpc")
response = client.DeleteGroup(request)
print(response)
