adds sdk_root parameter

This commit is contained in:
Stanislav Shamilov 2024-12-06 20:45:08 +02:00
parent de6f740af8
commit 97b07eebba
3 changed files with 31 additions and 6 deletions

View file

@ -19,7 +19,8 @@ def sdkmanager_runner(module, **kwargs):
update=cmd_runner_fmt.as_fixed("--update"),
installed=cmd_runner_fmt.as_fixed("--list_installed"),
list=cmd_runner_fmt.as_fixed('--list'),
newer=cmd_runner_fmt.as_fixed("--newer")
newer=cmd_runner_fmt.as_fixed("--newer"),
sdk_root=cmd_runner_fmt.as_opt_eq_val("--sdk_root", ignore_none=True)
),
force_lang="C.UTF-8",
**kwargs
@ -61,7 +62,7 @@ class AndroidSdkManager(object):
self.runner = runner
def get_installed_packages(self):
with self.runner('installed') as ctx:
with self.runner('installed sdk_root') as ctx:
rc, stdout, stderr = ctx.run()
data = stdout.split('\n')
@ -89,7 +90,7 @@ class AndroidSdkManager(object):
return packages
def get_updatable_packages(self):
with self.runner('list newer') as ctx:
with self.runner('list newer sdk_root') as ctx:
rc, stdout, stderr = ctx.run()
data = stdout.split('\n')
@ -129,5 +130,5 @@ class AndroidSdkManager(object):
if len(packages) == 0:
return 0, '', ''
command_arg = [x.name for x in packages]
with self.runner('state name') as ctx:
with self.runner('state name sdk_root') as ctx:
return ctx.run(name=command_arg, state=state)

View file

@ -8,7 +8,8 @@ class AndroidSdk(StateModuleHelper):
argument_spec=dict(
state=dict(type='str', default='present', choices=['present', 'absent', 'latest']),
package=dict(type='list', elements='str', aliases=['pkg', 'name']),
update=dict(type='bool', default=False)
update=dict(type='bool', default=False),
sdk_root=dict(type='path')
),
supports_check_mode=True
)

View file

@ -57,6 +57,27 @@
state: latest
register: platform_tools_updated
- name: Create new sdk root
file:
path: "{{ ansible_env.HOME }}/newroot"
state: directory
register: newroot
- name: Accept licenses in the new root
shell: "yes | sdkmanager --sdk_root={{ newroot.path }} --licenses"
- name: Install a package to a new root
android_sdk:
name: build-tools;34.0.0
state: present
sdk_root: "{{ newroot.path }}"
register: new_root_package
- name: Check package is installed
stat:
path: "{{ newroot.path }}/build-tools/34.0.0"
register: new_root_package_stat
- name: Run tests
assert:
that:
@ -66,4 +87,6 @@
- build_tools_deleted.changed
- not build_tools_deleted2.changed
- not platform_tools_present.changed
- platform_tools_updated.changed
- platform_tools_updated.changed
- new_root_package.changed
- new_root_package_stat.stat.exists