|
|
@ -237,18 +237,11 @@ def linodeServers(module, api, state, name, plan, distribution, datacenter, lino
|
|
|
|
|
|
|
|
|
|
|
|
# Any create step triggers a job that need to be waited for.
|
|
|
|
# Any create step triggers a job that need to be waited for.
|
|
|
|
if not servers:
|
|
|
|
if not servers:
|
|
|
|
new_server = True
|
|
|
|
for arg in ('name', 'plan', 'distribution', 'datacenter'):
|
|
|
|
# TODO - improve
|
|
|
|
if not eval(arg):
|
|
|
|
if not name:
|
|
|
|
module.fail_json(msg='%s is required for active state' % arg)
|
|
|
|
module.fail_json(msg='%s is required for active state' % 'name')
|
|
|
|
|
|
|
|
if not plan:
|
|
|
|
|
|
|
|
module.fail_json(msg='%s is required for active state' % 'plan')
|
|
|
|
|
|
|
|
if not distribution:
|
|
|
|
|
|
|
|
module.fail_json(msg='%s is required for active state' % 'distribution')
|
|
|
|
|
|
|
|
if not datacenter:
|
|
|
|
|
|
|
|
module.fail_json(msg='%s is required for active state' % 'datacenter')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Create linode entity
|
|
|
|
# Create linode entity
|
|
|
|
|
|
|
|
new_server = True
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
res = api.linode_create(DatacenterID=datacenter, PlanID=plan,
|
|
|
|
res = api.linode_create(DatacenterID=datacenter, PlanID=plan,
|
|
|
|
PaymentTerm=payment_term)
|
|
|
|
PaymentTerm=payment_term)
|
|
|
@ -261,16 +254,11 @@ def linodeServers(module, api, state, name, plan, distribution, datacenter, lino
|
|
|
|
module.fail_json(msg = '%s' % e.value[0]['ERRORMESSAGE'])
|
|
|
|
module.fail_json(msg = '%s' % e.value[0]['ERRORMESSAGE'])
|
|
|
|
|
|
|
|
|
|
|
|
if not disks:
|
|
|
|
if not disks:
|
|
|
|
new_server = True
|
|
|
|
for arg in ('name', 'linode_id', 'distribution'):
|
|
|
|
# TODO - improve
|
|
|
|
if not eval(arg):
|
|
|
|
if not name:
|
|
|
|
module.fail_json(msg='%s is required for active state' % arg)
|
|
|
|
module.fail_json(msg='%s is required for active state' % 'name')
|
|
|
|
|
|
|
|
if not linode_id:
|
|
|
|
|
|
|
|
module.fail_json(msg='%s is required for active state' % 'linode_id')
|
|
|
|
|
|
|
|
if not distribution:
|
|
|
|
|
|
|
|
module.fail_json(msg='%s is required for active state' % 'distribution')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Create disks (1 from distrib, 1 for SWAP)
|
|
|
|
# Create disks (1 from distrib, 1 for SWAP)
|
|
|
|
|
|
|
|
new_server = True
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
if not password:
|
|
|
|
if not password:
|
|
|
|
# Password is required on creation, if not provided generate one
|
|
|
|
# Password is required on creation, if not provided generate one
|
|
|
@ -299,14 +287,9 @@ def linodeServers(module, api, state, name, plan, distribution, datacenter, lino
|
|
|
|
module.fail_json(msg = '%s' % e.value[0]['ERRORMESSAGE'])
|
|
|
|
module.fail_json(msg = '%s' % e.value[0]['ERRORMESSAGE'])
|
|
|
|
|
|
|
|
|
|
|
|
if not configs:
|
|
|
|
if not configs:
|
|
|
|
new_server = True
|
|
|
|
for arg in ('name', 'linode_id', 'distribution'):
|
|
|
|
# TODO - improve
|
|
|
|
if not eval(arg):
|
|
|
|
if not name:
|
|
|
|
module.fail_json(msg='%s is required for active state' % arg)
|
|
|
|
module.fail_json(msg='%s is required for active state' % 'name')
|
|
|
|
|
|
|
|
if not linode_id:
|
|
|
|
|
|
|
|
module.fail_json(msg='%s is required for active state' % 'linode_id')
|
|
|
|
|
|
|
|
if not distribution:
|
|
|
|
|
|
|
|
module.fail_json(msg='%s is required for active state' % 'distribution')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Check architecture
|
|
|
|
# Check architecture
|
|
|
|
for distrib in api.avail_distributions():
|
|
|
|
for distrib in api.avail_distributions():
|
|
|
@ -337,6 +320,7 @@ def linodeServers(module, api, state, name, plan, distribution, datacenter, lino
|
|
|
|
disks_list = ','.join(disks_id)
|
|
|
|
disks_list = ','.join(disks_id)
|
|
|
|
|
|
|
|
|
|
|
|
# Create config
|
|
|
|
# Create config
|
|
|
|
|
|
|
|
new_server = True
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
api.linode_config_create(LinodeId=linode_id, KernelId=kernel_id,
|
|
|
|
api.linode_config_create(LinodeId=linode_id, KernelId=kernel_id,
|
|
|
|
Disklist=disks_list, Label='%s config' % name)
|
|
|
|
Disklist=disks_list, Label='%s config' % name)
|
|
|
@ -388,14 +372,15 @@ def linodeServers(module, api, state, name, plan, distribution, datacenter, lino
|
|
|
|
if new_server and not ssh_pub_key:
|
|
|
|
if new_server and not ssh_pub_key:
|
|
|
|
instance['password'] = password
|
|
|
|
instance['password'] = password
|
|
|
|
instances.append(instance)
|
|
|
|
instances.append(instance)
|
|
|
|
|
|
|
|
|
|
|
|
elif state in ('stopped'):
|
|
|
|
elif state in ('stopped'):
|
|
|
|
if not name:
|
|
|
|
for arg in ('name', 'linode_id'):
|
|
|
|
module.fail_json(msg='%s is required for stopped state' % 'name')
|
|
|
|
if not eval(arg):
|
|
|
|
if not linode_id:
|
|
|
|
module.fail_json(msg='%s is required for active state' % arg)
|
|
|
|
module.fail_json(msg='%s is required for stopped state' % 'linode_id')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if not servers:
|
|
|
|
if not servers:
|
|
|
|
module.fail_json(msg = 'Server %s (lid: %s) not found' % (name, linode_id))
|
|
|
|
module.fail_json(msg = 'Server %s (lid: %s) not found' % (name, linode_id))
|
|
|
|
|
|
|
|
|
|
|
|
for server in servers:
|
|
|
|
for server in servers:
|
|
|
|
instance = getInstanceDetails(api, server)
|
|
|
|
instance = getInstanceDetails(api, server)
|
|
|
|
if server['STATUS'] != 2:
|
|
|
|
if server['STATUS'] != 2:
|
|
|
@ -408,14 +393,15 @@ def linodeServers(module, api, state, name, plan, distribution, datacenter, lino
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
instance['status'] = 'Stopped'
|
|
|
|
instance['status'] = 'Stopped'
|
|
|
|
instances.append(instance)
|
|
|
|
instances.append(instance)
|
|
|
|
|
|
|
|
|
|
|
|
elif state in ('restarted'):
|
|
|
|
elif state in ('restarted'):
|
|
|
|
if not name:
|
|
|
|
for arg in ('name', 'linode_id'):
|
|
|
|
module.fail_json(msg='%s is required for restarted state' % 'name')
|
|
|
|
if not eval(arg):
|
|
|
|
if not linode_id:
|
|
|
|
module.fail_json(msg='%s is required for active state' % arg)
|
|
|
|
module.fail_json(msg='%s is required for restarted state' % 'linode_id')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if not servers:
|
|
|
|
if not servers:
|
|
|
|
module.fail_json(msg = 'Server %s (lid: %s) not found' % (name, linode_id))
|
|
|
|
module.fail_json(msg = 'Server %s (lid: %s) not found' % (name, linode_id))
|
|
|
|
|
|
|
|
|
|
|
|
for server in servers:
|
|
|
|
for server in servers:
|
|
|
|
instance = getInstanceDetails(api, server)
|
|
|
|
instance = getInstanceDetails(api, server)
|
|
|
|
try:
|
|
|
|
try:
|
|
|
@ -425,6 +411,7 @@ def linodeServers(module, api, state, name, plan, distribution, datacenter, lino
|
|
|
|
instance['status'] = 'Restarting'
|
|
|
|
instance['status'] = 'Restarting'
|
|
|
|
changed = True
|
|
|
|
changed = True
|
|
|
|
instances.append(instance)
|
|
|
|
instances.append(instance)
|
|
|
|
|
|
|
|
|
|
|
|
elif state in ('absent', 'deleted'):
|
|
|
|
elif state in ('absent', 'deleted'):
|
|
|
|
for server in servers:
|
|
|
|
for server in servers:
|
|
|
|
instance = getInstanceDetails(api, server)
|
|
|
|
instance = getInstanceDetails(api, server)
|
|
|
|