On 12/25/2017 05:46 PM, Yaniv Kaul wrote:
While trying to add an instance type, I fail with the error:
Operation Failed". Fault detail is "[Cannot add Template. Memory size
(1024MB) cannot exceed maximum memory size (0MB).]
The code is taken from the example in the SDK, so I'm not sure what I'm
doing wrong here.
Code:
instance_types_service.add(
types.InstanceType(
name='myinstancetype',
description='My instance type',
memory=1 * 2**30,
high_availability=types.HighAvailability(
enabled=True,
),
cpu=types.Cpu(
topology=types.CpuTopology(
cores=2,
sockets=2,
),
),
),
)
engine.log:
2017-12-25 10:58:19,825-05 INFO
[org.ovirt.engine.core.bll.AddVmTemplateCommand] (default task-13)
[265ff704-d89f-471b-8207-fc0e1b8816fd] Lock Acquired to object
'EngineLock:{exclusiveLocks='[myinstancetype=TEMPLATE_NAME,
703e1265-e160-4a76-82e6-06974156b7b9=TEMPLATE]', sharedLocks='[]'}'
2017-12-25 10:58:19,831-05 WARN
[org.ovirt.engine.core.bll.AddVmTemplateCommand] (default task-13)
[265ff704-d89f-471b-8207-fc0e1b8816fd] Validation of action 'AddVmTemplate'
failed for user admin@internal-authz. Reasons:
VAR__ACTION__ADD,VAR__TYPE__VM_TEMPLATE,ACTION_TYPE_FAILED_MAX_MEMORY_CANNOT_BE_SMALLER_THAN_MEMORY_SIZE,$maxMemory
0,$memory 1024
2017-12-25 10:58:19,832-05 INFO
[org.ovirt.engine.core.bll.AddVmTemplateCommand] (default task-13)
[265ff704-d89f-471b-8207-fc0e1b8816fd] Lock freed to object
'EngineLock:{exclusiveLocks='[myinstancetype=TEMPLATE_NAME,
703e1265-e160-4a76-82e6-06974156b7b9=TEMPLATE]', sharedLocks='[]'}'
2017-12-25 10:58:19,839-05 DEBUG
[org.ovirt.engine.core.common.di.interceptor.DebugLoggingInterceptor]
(default task-13) [265ff704-d89f-471b-8207-fc0e1b8816fd] method: runAction,
params: [AddVmTemplate,
AddVmTemplateParameters:{commandId='179df9ed-209c-4882-a19a-b76a4fe1adb8',
user='null', commandType='Unknown'}], timeElapsed: 33ms
2017-12-25 10:58:19,846-05 ERROR
[org.ovirt.engine.api.restapi.resource.AbstractBackendResource] (default
task-13) [] Operation Failed: [Cannot add Template. Memory size (1024MB)
cannot exceed maximum memory size (0MB).]
TIA,
Y.
I think this is related to the new `memory_policy.max` attribute that
was introduced in 4.1. I think that for virtual machines it has a
default value so that it isn't necessary to explicitly provide it. It
may not have a default value fro instance types. Can you try adding this
to the request to create the instance type?
memory_policy=types.MemoryPolicy(
max=1 * 2**30
)
Then try again. If it works I think that we need to fix the engine so
that it assigns a default value, like it does for virtual machines.