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(
url='https://ovirt.example.com/ovirt-engine/api';,
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.
Regards,
Logan