Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add azure_rm_roleassginment_facts #52626

Open
wants to merge 7 commits into
base: devel
from

Conversation

Projects
None yet
4 participants
@yungezz
Copy link
Contributor

yungezz commented Feb 20, 2019

SUMMARY

add new module for azure_rm_roleassignment_facts, test pending on role definition merge.

ISSUE TYPE
  • New Module Pull Request
COMPONENT NAME
ADDITIONAL INFORMATION

@ansibot

This comment has been minimized.

@ansibot

This comment has been minimized.

Copy link
Contributor

ansibot commented Feb 20, 2019

@yungezz, just so you are aware we have a dedicated Working Group for azure.
You can find other people interested in this in #ansible-azure on Freenode IRC
For more information about communities, meetings and agendas see https://github.com/ansible/community

click here for bot help

@ansibot

This comment has been minimized.

Copy link
Contributor

ansibot commented Feb 20, 2019

The test ansible-test sanity --test pylint [explain] failed with 1 error:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:121:0: syntax-error invalid syntax (<unknown>, line 121)

The test ansible-test sanity --test ansible-doc --python 2.6 [explain] failed with 1 error:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:0:0: has a documentation error formatting or is missing documentation.

The test ansible-test sanity --test ansible-doc --python 2.7 [explain] failed with 1 error:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:0:0: has a documentation error formatting or is missing documentation.

The test ansible-test sanity --test ansible-doc --python 3.5 [explain] failed with 1 error:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:0:0: has a documentation error formatting or is missing documentation.

The test ansible-test sanity --test ansible-doc --python 3.6 [explain] failed with 1 error:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:0:0: has a documentation error formatting or is missing documentation.

The test ansible-test sanity --test ansible-doc --python 3.7 [explain] failed with 1 error:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:0:0: has a documentation error formatting or is missing documentation.

The test ansible-test sanity --test ansible-doc --python 3.8 [explain] failed with 1 error:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:0:0: has a documentation error formatting or is missing documentation.

The test ansible-test sanity --test docs-build [explain] failed with the error:

Command "/usr/bin/python test/sanity/code-smell/docs-build.py" returned exit status 1.
>>> Standard Error
Command 'make singlehtmldocs' failed with status code: 2
--> Standard Output
cat _themes/srtd/static/css/theme.css | sed -e 's/^[ 	]*//g; s/[ 	]*$//g; s/\([:{;,]\) /\1/g; s/ {/{/g; s/\/\*.*\*\///g; /^$/d' | sed -e :a -e '$!N; s/\n\(.\)/\1/; ta' > _themes/srtd/static/css/theme.min.css
PYTHONPATH=../../lib ../bin/dump_config.py --template-file=../templates/config.rst.j2 --output-dir=rst/reference_appendices/ -d ../../lib/ansible/config/base.yml
mkdir -p rst/cli
PYTHONPATH=../../lib ../bin/generate_man.py --template-file=../templates/cli_rst.j2 --output-dir=rst/cli/ --output-format rst ../../lib/ansible/cli/*.py
PYTHONPATH=../../lib ../bin/dump_keywords.py --template-dir=../templates --output-dir=rst/reference_appendices/ -d ./keyword_desc.yml
PYTHONPATH=../../lib ../bin/plugin_formatter.py -t rst --template-dir=../templates --module-dir=../../lib/ansible/modules -o rst/modules/ 
Evaluating module files...
Makefile:93: recipe for target 'modules' failed
--> Standard Error
Traceback (most recent call last):
  File "../bin/plugin_formatter.py", line 774, in <module>
    main()
  File "../bin/plugin_formatter.py", line 729, in main
    plugin_info, categories = get_plugin_info(options.module_dir, limit_to=options.limit_to, verbose=(options.verbosity > 0))
  File "../bin/plugin_formatter.py", line 294, in get_plugin_info
    doc, examples, returndocs, metadata = plugin_docs.get_docstring(module_path, fragment_loader, verbose=verbose)
  File "/root/ansible/lib/ansible/utils/plugin_docs.py", line 103, in get_docstring
    data = read_docstring(filename, verbose=verbose, ignore_errors=ignore_errors)
  File "/root/ansible/lib/ansible/parsing/plugin_docs.py", line 40, in read_docstring
    M = ast.parse(b_module_data.read())
  File "/usr/lib/python3.6/ast.py", line 35, in parse
    return compile(source, filename, mode, PyCF_ONLY_AST)
  File "<unknown>", line 121
    role_definition_id=assignment.role_definition_id,
                     ^
SyntaxError: invalid syntax
make: *** [modules] Error 1

The test ansible-test sanity --test compile --python 2.7 [explain] failed with 1 error:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:121:26: SyntaxError: role_definition_id=assignment.role_definition_id,

The test ansible-test sanity --test compile --python 2.6 [explain] failed with 1 error:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:121:26: SyntaxError: role_definition_id=assignment.role_definition_id,

The test ansible-test sanity --test compile --python 3.5 [explain] failed with 1 error:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:121:26: SyntaxError: role_definition_id=assignment.role_definition_id,

The test ansible-test sanity --test compile --python 3.6 [explain] failed with 1 error:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:121:26: SyntaxError: role_definition_id=assignment.role_definition_id,

The test ansible-test sanity --test compile --python 3.7 [explain] failed with 1 error:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:121:26: SyntaxError: role_definition_id=assignment.role_definition_id,

The test ansible-test sanity --test compile --python 3.8 [explain] failed with 1 error:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:121:9: SyntaxError: role_definition_id=assignment.role_definition_id,

The test ansible-test sanity --test import --python 2.7 [explain] failed with 1 error:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:121:26: SyntaxError: invalid syntax

The test ansible-test sanity --test import --python 3.5 [explain] failed with 1 error:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:121:26: SyntaxError: invalid syntax

The test ansible-test sanity --test import --python 3.6 [explain] failed with 1 error:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:121:26: SyntaxError: invalid syntax

The test ansible-test sanity --test import --python 3.7 [explain] failed with 1 error:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:121:26: SyntaxError: invalid syntax

The test ansible-test sanity --test import --python 3.8 [explain] failed with 1 error:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:121:9: SyntaxError: invalid syntax

The test ansible-test sanity --test import --python 2.6 [explain] failed with 1 error:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:121:26: SyntaxError: invalid syntax

The test ansible-test sanity --test pep8 [explain] failed with 5 errors:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:30:161: E501 line too long (166 > 160 characters)
lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:213:47: W291 trailing whitespace
lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:233:47: W291 trailing whitespace
lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:239:18: W291 trailing whitespace
lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:241:1: E302 expected 2 blank lines, found 1

The test ansible-test sanity --test validate-modules [explain] failed with 1 error:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:0:0: E401 Python SyntaxError while parsing module

The test ansible-test sanity --test yamllint [explain] failed with 1 error:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:121:26: python-syntax-error invalid syntax (<unknown>, line 121)

click here for bot help

@yungezz

This comment has been minimized.

Copy link
Contributor Author

yungezz commented Feb 26, 2019

manual test output for reference:

playbook code snippets

    - name: Create a role assignment (Check Mode)
      azure_rm_roleassignment:
        scope: "/subscriptions/{{ subscription_id }}/resourceGroups/{{ resource_group }}"
        assignee_object_id: "{{ principal_id }}"
        role_definition_id: "{{ role_definition_id }}"
      check_mode: yes
      register: output

    - name: Assert creating role definition check mode
      assert:
        that:
          - output.changed

    - name: Create a role assignment
      azure_rm_roleassignment:
        scope: "/subscriptions/{{ subscription_id }}/resourceGroups/{{ resource_group }}"
        assignee_object_id: "{{ principal_id }}"
        role_definition_id: "{{ role_definition_id }}"
      register: output

    - name: Assert creating role definition
      assert:
        that:
          - output.changed

    - name: Get facts
      azure_rm_roleassignment_facts:
        scope: "/subscriptions/{{ subscription_id }}/resourceGroups/{{ resource_group }}"
        assignee: "{{ principal_id }}"
      register: facts
    - name: dump output
      debug:
        var: facts

    - name: delete  role assignment
      azure_rm_roleassignment:
        name: 3d01af82-13d7-46be-a544-fec82b3ea0c3
        scope: "/subscriptions/{{ subscription_id }}/resourceGroups/{{ resource_group }}"

output

TASK [Create a role assignment (Check Mode)] *************************************************************************************************************************************************************
task path: /home/yungez/src/ansible-testapp/roleassignment.yml:22
Tuesday 26 February 2019  15:18:39 +0800 (0:00:02.928)       0:00:04.390 ******
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: yungez
<127.0.0.1> EXEC /bin/sh -c 'echo ~yungez && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /home/yungez/.ansible/tmp/ansible-tmp-1551165519.5372853-181544841564084 `" && echo ansible-tmp-1551165519.5372853-181544841564084="` echo /hoe/yungez/.ansible/tmp/ansible-tmp-1551165519.5372853-181544841564084 `" ) && sleep 0'
Using module file /home/yungez/.ansible/roles/azure_preview_modules/library/azure_rm_roleassignment.py
<127.0.0.1> PUT /home/yungez/.ansible/tmp/ansible-local-115065llns2kn/tmpntlqykg4 TO /home/yungez/.ansible/tmp/ansible-tmp-1551165519.5372853-181544841564084/AnsiballZ_azure_rm_roleassignment.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /home/yungez/.ansible/tmp/ansible-tmp-1551165519.5372853-181544841564084/ /home/yungez/.ansible/tmp/ansible-tmp-1551165519.5372853-181544841564084/AnsiballZ_azure_m_roleassignment.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/home/yungez/src/ansible/venv/bin/python /home/yungez/.ansible/tmp/ansible-tmp-1551165519.5372853-181544841564084/AnsiballZ_azure_rm_roleassignment.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /home/yungez/.ansible/tmp/ansible-tmp-1551165519.5372853-181544841564084/ > /dev/null 2>&1 && sleep 0'
 [WARNING]: Azure API profile latest does not define an entry for AuthorizationManagementClient

changed: [localhost] => changed=true
  id: null
  invocation:
    module_args:
      ad_user: null
      adfs_authority_url: null
      api_profile: latest
      assignee_object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
      auth_source: null
      cert_validation_mode: null
      client_id: null
      cloud_environment: AzureCloud
      name: null
      password: null
      profile: null
      role_definition_id: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Authorization/roleDefinitions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
      scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/ansible-roledefinition1
      secret: null
      state: present
      subscription_id: null
      tenant: null

TASK [Assert creating role definition check mode] ********************************************************************************************************************************************************
task path: /home/yungez/src/ansible-testapp/roleassignment.yml:30
Tuesday 26 February 2019  15:18:42 +0800 (0:00:02.820)       0:00:07.210 ******
ok: [localhost] => changed=false
  msg: All assertions passed

TASK [Create a role assignment] **************************************************************************************************************************************************************************
task path: /home/yungez/src/ansible-testapp/roleassignment.yml:35
Tuesday 26 February 2019  15:18:42 +0800 (0:00:00.054)       0:00:07.264 ******
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: yungez
<127.0.0.1> EXEC /bin/sh -c 'echo ~yungez && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /home/yungez/.ansible/tmp/ansible-tmp-1551165522.4120975-183105516536526 `" && echo ansible-tmp-1551165522.4120975-183105516536526="` echo /hoe/yungez/.ansible/tmp/ansible-tmp-1551165522.4120975-183105516536526 `" ) && sleep 0'
Using module file /home/yungez/.ansible/roles/azure_preview_modules/library/azure_rm_roleassignment.py
<127.0.0.1> PUT /home/yungez/.ansible/tmp/ansible-local-115065llns2kn/tmpam9audih TO /home/yungez/.ansible/tmp/ansible-tmp-1551165522.4120975-183105516536526/AnsiballZ_azure_rm_roleassignment.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /home/yungez/.ansible/tmp/ansible-tmp-1551165522.4120975-183105516536526/ /home/yungez/.ansible/tmp/ansible-tmp-1551165522.4120975-183105516536526/AnsiballZ_azure_m_roleassignment.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/home/yungez/src/ansible/venv/bin/python /home/yungez/.ansible/tmp/ansible-tmp-1551165522.4120975-183105516536526/AnsiballZ_azure_rm_roleassignment.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /home/yungez/.ansible/tmp/ansible-tmp-1551165522.4120975-183105516536526/ > /dev/null 2>&1 && sleep 0'
changed: [localhost] => changed=true
  id: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/ansible-roledefinition1/providers/Microsoft.Authorization/roleAssignments/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  invocation:
    module_args:
      ad_user: null
      adfs_authority_url: null
      api_profile: latest
      assignee_object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
      auth_source: null
      cert_validation_mode: null
      client_id: null
      cloud_environment: AzureCloud
      name: null
      password: null
      profile: null
      role_definition_id: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Authorization/roleDefinitions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
      scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/ansible-roledefinition1
      secret: null
      state: present
      subscription_id: null
      tenant: null

TASK [Assert creating role definition] *******************************************************************************************************************************************************************
task path: /home/yungez/src/ansible-testapp/roleassignment.yml:42
Tuesday 26 February 2019  15:18:52 +0800 (0:00:10.209)       0:00:17.474 ******
ok: [localhost] => changed=false
  msg: All assertions passed


TASK [Get facts] *****************************************************************************************************************************************************************************************
task path: /home/yungez/src/ansible-testapp/roleassignment.yml:47
Tuesday 26 February 2019  15:30:24 +0800 (0:00:02.354)       0:00:03.826 ******
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: yungez
<127.0.0.1> EXEC /bin/sh -c 'echo ~yungez && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /home/yungez/.ansible/tmp/ansible-tmp-1551166224.8838375-91137391833021 `" && echo ansible-tmp-1551166224.8838375-91137391833021="` echo /home/yungez/.ansible/tmp/ansible-tmp-1551166224.8838375-91137391833021 `" ) && sleep 0'
Using module file /home/yungez/.ansible/roles/azure_preview_modules/library/azure_rm_roleassignment_facts.py
<127.0.0.1> PUT /home/yungez/.ansible/tmp/ansible-local-11869_mhhievq/tmp0rqd1zns TO /home/yungez/.ansible/tmp/ansible-tmp-1551166224.8838375-91137391833021/AnsiballZ_azure_rm_roleassignment_facts.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /home/yungez/.ansible/tmp/ansible-tmp-1551166224.8838375-91137391833021/ /home/yungez/.ansible/tmp/ansible-tmp-1551166224.8838375-91137391833021/AnsiballZ_azure_rm_roleassignment_facts.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/home/yungez/src/ansible/venv/bin/python /home/yungez/.ansible/tmp/ansible-tmp-1551166224.8838375-91137391833021/AnsiballZ_azure_rm_roleassignment_facts.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /home/yungez/.ansible/tmp/ansible-tmp-1551166224.8838375-91137391833021/ > /dev/null 2>&1 && sleep 0'
 [WARNING]: Azure API profile latest does not define an entry for AuthorizationManagementClient

ok: [localhost] => changed=false
  invocation:
    module_args:
      ad_user: null
      adfs_authority_url: null
      api_profile: latest
      assignee: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
      auth_source: null
      cert_validation_mode: null
      client_id: null
      cloud_environment: AzureCloud
      name: null
      password: null
      profile: null
      scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/ansible-roledefinition1
      secret: null
      subscription_id: null
      tenant: null
  roleassignments:
  - id: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/ansible-roledefinition1/providers/Microsoft.Authorization/roleAssignments/xxxxxxx-13d7-46be-a544-fec82b3ea0c3
    name: xxxxxxx-13d7-46be-a544-fec82b3ea0c3
    principal_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    role_definition_id: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Authorization/roleDefinitions/xxxxxxx-592e-4ea0-a6e1-52e0449ecc2d
    scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/ansible-roledefinition1
    type: Microsoft.Authorization/roleAssignments

TASK [dump output] ***************************************************************************************************************************************************************************************
task path: /home/yungez/src/ansible-testapp/roleassignment.yml:52
Tuesday 26 February 2019  15:30:27 +0800 (0:00:02.888)       0:00:06.714 ******
ok: [localhost] =>
  facts:
    changed: false
    failed: false
    roleassignments:
    - id: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/ansible-roledefinition1/providers/Microsoft.Authorization/roleAssignments/xxxxxxx-13d7-46be-a544-fec82b3ea0c3
      name: xxxxxxx-13d7-46be-a544-fec82b3ea0c3
      principal_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
      role_definition_id: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Authorization/roleDefinitions/xxxxxxx-592e-4ea0-a6e1-52e0449ecc2d
      scope: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/ansible-roledefinition1
      type: Microsoft.Authorization/roleAssignments
    warnings:
    - Azure API profile latest does not define an entry for AuthorizationManagementClient

@yungezz yungezz changed the title [WIP] add azure_rm_roleassginment_facts add azure_rm_roleassginment_facts Mar 4, 2019

@ansibot

This comment has been minimized.

Copy link
Contributor

ansibot commented Mar 4, 2019

The test ansible-test sanity --test pylint [explain] failed with 2 errors:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:209:17: ansible-format-automatic-specification Format string contains automatic field numbering specification
lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:231:79: undefined-variable Undefined variable 'scope'

The test ansible-test sanity --test pep8 [explain] failed with 1 error:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:30:161: E501 line too long (162 > 160 characters)

click here for bot help

@ansibot ansibot added ci_verified needs_revision and removed WIP labels Mar 4, 2019

@ansibot ansibot removed the ci_verified label Mar 4, 2019

@ansibot

This comment has been minimized.

Copy link
Contributor

ansibot commented Mar 4, 2019

The test ansible-test sanity --test pylint [explain] failed with 1 error:

lib/ansible/modules/cloud/azure/azure_rm_roleassignment_facts.py:209:17: ansible-format-automatic-specification Format string contains automatic field numbering specification

click here for bot help

@ansibot ansibot added the ci_verified label Mar 4, 2019

@ansibot ansibot removed the ci_verified label Mar 4, 2019

@ansibot

This comment has been minimized.

Copy link
Contributor

ansibot commented Mar 4, 2019

@Madhura-CSI @brusMX @caohai @devigned @gustavomcarmo @haroldwongms @iphilpot @julienstroheker @lmazuel @obsoleted @sozercan @trstringer @tstringer @xscript @yaweiw @yuwzho

As a maintainer of a module in the same namespace this new module has been submitted to, your vote counts for shipits. Please review this module and add shipit if you would like to see it merged.

click here for bot help

@zikalino
Copy link
Contributor

zikalino left a comment

in general nothing major.

@ansibot ansibot removed the needs_triage label Mar 4, 2019

@Fred-sun

This comment has been minimized.

Copy link
Contributor

Fred-sun commented Mar 7, 2019

@ansibot ansibot added the stale_ci label Mar 15, 2019

@Fred-sun

This comment has been minimized.

Copy link
Contributor

Fred-sun commented Mar 18, 2019

@yuwzho Please review and push for forward this PR when you're available! Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.