I'm working on a program that should take a set of variables for the name, ram and disk space as well as how many disks (IE, 3 at 10, 15 and 20GB). Most of that works, but if I try and specify an integer value for memory it will seemingly always fail. I'm using Python 3, code and error are below.
def create_vm(name, ram, cpu=None):
garbled_passwd = 'd3lrazNwa2wjUnI='
logging.basicConfig(level=logging.DEBUG, filename=os.path.join(baseDir, 'list_vms.log'))
# This example will connect to the server and create a new virtual machine:
# Create the connection to the server:
connection = sdk.Connection(
username='admin@internal',
password=base64.b64decode(garbled_passwd).decode('utf-8'),
ca_file='/etc/pki/tls/certs/examplecert.pem',
debug=True,
log=logging.getLogger(),
)
# Get the reference to the "vms" service:
vms_service = connection.system_service().vms_service()
# Use the "add" method to create a new virtual machine:
cpu = types.CpuTopology(cores=2, sockets=1)
vms_service.add(
types.Vm(
name=name,
memory=400,
cpu=types.Cpu(topology=cpu),
cluster=types.Cluster(
name='Default',
),
template=types.Template(
name='Blank',
),
),
)
# Close the connection to the server:
connection.close()
ovirtsdk4.Error: Fault reason is "Operation Failed". Fault detail is "[Cannot add VM. Physical Memory Guaranteed cannot exceed Memory Size.]". HTTP response code is 400.
The Template is unmodified from installation time. I know the other settings are right because if I comment out the memory line then it creates a VM with the memory value from the "Blank" template.