esp-rainmaker-cli 1.13.0__tar.gz → 1.13.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/PKG-INFO +8 -1
  2. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/esp_rainmaker_cli.egg-info/PKG-INFO +8 -1
  3. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rainmaker/rainmaker.py +23 -0
  4. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rainmaker/version.py +1 -1
  5. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_cmd/node.py +10 -2
  6. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_lib/configmanager.py +1 -1
  7. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/LICENSE +0 -0
  8. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/README.md +0 -0
  9. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/esp_rainmaker_cli.egg-info/SOURCES.txt +0 -0
  10. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/esp_rainmaker_cli.egg-info/dependency_links.txt +0 -0
  11. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/esp_rainmaker_cli.egg-info/entry_points.txt +0 -0
  12. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/esp_rainmaker_cli.egg-info/requires.txt +0 -0
  13. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/esp_rainmaker_cli.egg-info/top_level.txt +0 -0
  14. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rainmaker/__init__.py +0 -0
  15. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_cmd/__init__.py +0 -0
  16. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_cmd/automation.py +0 -0
  17. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_cmd/browserlogin.py +0 -0
  18. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_cmd/cache.py +0 -0
  19. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_cmd/cmd_response.py +0 -0
  20. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_cmd/group.py +0 -0
  21. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_cmd/html/welcome.html +0 -0
  22. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_cmd/provision.py +0 -0
  23. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_cmd/stream.py +0 -0
  24. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_cmd/test.py +0 -0
  25. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_cmd/user.py +0 -0
  26. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_lib/__init__.py +0 -0
  27. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_lib/aws_credentials.py +0 -0
  28. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_lib/cmd_response.py +0 -0
  29. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_lib/constants.py +0 -0
  30. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_lib/device.py +0 -0
  31. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_lib/envval.py +0 -0
  32. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_lib/exceptions.py +0 -0
  33. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_lib/kvs_streaming.py +0 -0
  34. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_lib/local_control.py +0 -0
  35. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_lib/logger.py +0 -0
  36. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_lib/node.py +0 -0
  37. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_lib/node_cache.py +0 -0
  38. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_lib/profile_manager.py +0 -0
  39. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_lib/profile_utils.py +0 -0
  40. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_lib/schedule_utils.py +0 -0
  41. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_lib/serverconfig.py +0 -0
  42. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_lib/service.py +0 -0
  43. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_lib/session.py +0 -0
  44. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_lib/session_store.py +0 -0
  45. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_lib/simple_local_control.py +0 -0
  46. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_lib/user.py +0 -0
  47. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/__init__.py +0 -0
  48. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/common/__init__.py +0 -0
  49. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/common/discovery/__init__.py +0 -0
  50. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/common/discovery/mdns_discovery.py +0 -0
  51. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/common/prov/__init__.py +0 -0
  52. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/common/prov/wifi_ctrl.py +0 -0
  53. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/common/prov/wifi_prov.py +0 -0
  54. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/common/prov/wifi_scan.py +0 -0
  55. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/common/security/__init__.py +0 -0
  56. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/common/security/security.py +0 -0
  57. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/common/security/security0.py +0 -0
  58. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/common/security/security1.py +0 -0
  59. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/common/security/security2.py +0 -0
  60. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/common/security/srp6a.py +0 -0
  61. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/common/transport/__init__.py +0 -0
  62. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/common/transport/ble_cli.py +0 -0
  63. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/common/transport/transport.py +0 -0
  64. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/common/transport/transport_ble.py +0 -0
  65. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/common/transport/transport_console.py +0 -0
  66. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/common/transport/transport_http.py +0 -0
  67. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/common/utils/__init__.py +0 -0
  68. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/common/utils/convenience.py +0 -0
  69. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_claim/__init__.py +0 -0
  70. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_claim/claim.py +0 -0
  71. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_claim/claim_config.py +0 -0
  72. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_local_ctrl/__init__.py +0 -0
  73. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_local_ctrl/constants_pb2.py +0 -0
  74. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_local_ctrl/esp_local_ctrl.py +0 -0
  75. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_local_ctrl/esp_local_ctrl_pb2.py +0 -0
  76. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_local_ctrl/esp_prov.py +0 -0
  77. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_local_ctrl/esp_rainmaker_ctrl.py +0 -0
  78. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_local_ctrl/esp_rmaker_prov_local_ctrl_pb2.py +0 -0
  79. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_local_ctrl/integration.py +0 -0
  80. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_local_ctrl/proto/__init__.py +0 -0
  81. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_local_ctrl/proto/proto_lc.py +0 -0
  82. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_local_ctrl/prov/__init__.py +0 -0
  83. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_local_ctrl/prov/custom_prov.py +0 -0
  84. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_local_ctrl/prov/wifi_ctrl.py +0 -0
  85. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_local_ctrl/raw_config.py +0 -0
  86. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_local_ctrl/raw_params.py +0 -0
  87. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_local_ctrl/sec0_pb2.py +0 -0
  88. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_local_ctrl/sec1_pb2.py +0 -0
  89. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_local_ctrl/sec2_pb2.py +0 -0
  90. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_local_ctrl/security/__init__.py +0 -0
  91. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_local_ctrl/session_pb2.py +0 -0
  92. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_local_ctrl/transport/__init__.py +0 -0
  93. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_local_ctrl/utils/__init__.py +0 -0
  94. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/__init__.py +0 -0
  95. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/challenge_response.py +0 -0
  96. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/config/__init__.py +0 -0
  97. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/config/custom_cloud_config_pb2.py +0 -0
  98. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/config/esp_rmaker_chal_resp_pb2.py +0 -0
  99. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/config/esp_rmaker_claim_pb2.py +0 -0
  100. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/config/esp_rmaker_user_mapping_pb2.py +0 -0
  101. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/esp_rainmaker_prov.py +0 -0
  102. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/on_network_chal_resp.py +0 -0
  103. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/proto/__init__.py +0 -0
  104. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/protocomm/__init__.py +0 -0
  105. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/protocomm/python/__init__.py +0 -0
  106. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/protocomm/python/constants_pb2.py +0 -0
  107. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/protocomm/python/sec0_pb2.py +0 -0
  108. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/protocomm/python/sec1_pb2.py +0 -0
  109. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/protocomm/python/sec2_pb2.py +0 -0
  110. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/protocomm/python/session_pb2.py +0 -0
  111. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/prov/__init__.py +0 -0
  112. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/prov/prov_util.py +0 -0
  113. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/prov/user_mapping.py +0 -0
  114. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/security/__init__.py +0 -0
  115. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/transport/__init__.py +0 -0
  116. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/utils/__init__.py +0 -0
  117. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/wifi_provisioning/__init__.py +0 -0
  118. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/wifi_provisioning/python/__init__.py +0 -0
  119. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/wifi_provisioning/python/wifi_config_pb2.py +0 -0
  120. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/wifi_provisioning/python/wifi_constants_pb2.py +0 -0
  121. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/wifi_provisioning/python/wifi_ctrl_pb2.py +0 -0
  122. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/rmaker_tools/rmaker_prov/wifi_provisioning/python/wifi_scan_pb2.py +0 -0
  123. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/server_cert/__init__.py +0 -0
  124. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/server_cert/server_cert.pem +0 -0
  125. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/setup.cfg +0 -0
  126. {esp_rainmaker_cli-1.13.0 → esp_rainmaker_cli-1.13.1}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: esp-rainmaker-cli
3
- Version: 1.13.0
3
+ Version: 1.13.1
4
4
  Summary: A python utility to perform host based claiming
5
5
  Home-page: https://github.com/espressif/esp-rainmaker-cli
6
6
  Author: Espressif Systems
@@ -122,6 +122,13 @@ Changelog
122
122
 
123
123
  All major changes to ESP RainMaker CLI will be documented in this file.
124
124
 
125
+ ## [1.13.1] - 23-Apr-2026
126
+ ### Added
127
+ - Node sharing enhancements:
128
+ - Support for sharing as "primary"
129
+ - Transferring nodes
130
+ - Adding sub-roles
131
+
125
132
  ## [1.13.0] - 08-Apr-2026
126
133
  ### Added
127
134
  - New `stream` command for WebRTC video streaming from ESP RainMaker camera devices via Amazon Kinesis Video Streams (KVS) signaling:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: esp-rainmaker-cli
3
- Version: 1.13.0
3
+ Version: 1.13.1
4
4
  Summary: A python utility to perform host based claiming
5
5
  Home-page: https://github.com/espressif/esp-rainmaker-cli
6
6
  Author: Espressif Systems
@@ -122,6 +122,13 @@ Changelog
122
122
 
123
123
  All major changes to ESP RainMaker CLI will be documented in this file.
124
124
 
125
+ ## [1.13.1] - 23-Apr-2026
126
+ ### Added
127
+ - Node sharing enhancements:
128
+ - Support for sharing as "primary"
129
+ - Transferring nodes
130
+ - Adding sub-roles
131
+
125
132
  ## [1.13.0] - 08-Apr-2026
126
133
  ### Added
127
134
  - New `stream` command for WebRTC video streaming from ESP RainMaker camera devices via Amazon Kinesis Video Streams (KVS) signaling:
@@ -668,6 +668,29 @@ def main():
668
668
  "format: <nodeid1>,<nodeid2>,...",
669
669
  required=True)
670
670
 
671
+ add_op_parser.add_argument('--sub_role',
672
+ type=int,
673
+ metavar='<sub_role>',
674
+ choices=range(1, 5),
675
+ help='Sub-role for the secondary user (1-4)',
676
+ default=None)
677
+
678
+ add_op_parser.add_argument('--primary',
679
+ action='store_true',
680
+ help='Set "primary":true in the sharing request')
681
+
682
+ add_op_parser.add_argument('--transfer',
683
+ action='store_true',
684
+ help='Transfer node ownership to the specified user')
685
+
686
+ add_op_parser.add_argument('--new_role',
687
+ type=str,
688
+ metavar='<new_role>',
689
+ choices=['primary', 'secondary'],
690
+ help='New role for the current user after transfer (primary/secondary).\n'
691
+ 'Only used with --transfer',
692
+ default=None)
693
+
671
694
  add_profile_argument(add_op_parser)
672
695
  add_op_parser.set_defaults(func=node_sharing_ops, parser=add_op_parser)
673
696
 
@@ -5,4 +5,4 @@
5
5
  # SPDX-License-Identifier: Apache-2.0
6
6
 
7
7
  # This file contains the version information for the ESP RainMaker CLI
8
- VERSION = "1.13.0"
8
+ VERSION = "1.13.1"
@@ -897,7 +897,7 @@ def list_sharing_details(node_id=None, primary_user=False, request_id=None, list
897
897
 
898
898
  return node_json_resp
899
899
 
900
- def add_user_to_share_nodes(nodes=None, user=None, profile_override=None):
900
+ def add_user_to_share_nodes(nodes=None, user=None, sub_role=None, primary=False, transfer=False, new_role=None, profile_override=None):
901
901
  """
902
902
  Add user to share nodes
903
903
 
@@ -932,6 +932,14 @@ def add_user_to_share_nodes(nodes=None, user=None, profile_override=None):
932
932
  api_input = {}
933
933
  api_input['nodes'] = node_id_list
934
934
  api_input['user_name'] = user
935
+ if sub_role is not None:
936
+ api_input['sub_role'] = sub_role
937
+ if primary:
938
+ api_input['primary'] = True
939
+ if transfer:
940
+ api_input['transfer'] = True
941
+ if new_role is not None:
942
+ api_input['new_role'] = new_role
935
943
  log.debug("API data set: {}".format(api_input))
936
944
 
937
945
  # API with profile-aware session
@@ -1116,7 +1124,7 @@ def node_sharing_ops(vars=None):
1116
1124
  if action == 'add_user':
1117
1125
  # Share nodes with user
1118
1126
  print("Adding user to share node(s)")
1119
- node_json_resp = add_user_to_share_nodes(nodes=vars['nodes'], user=vars['user'], profile_override=profile_override)
1127
+ node_json_resp = add_user_to_share_nodes(nodes=vars['nodes'], user=vars['user'], sub_role=vars.get('sub_role'), primary=vars.get('primary', False), transfer=vars.get('transfer', False), new_role=vars.get('new_role'), profile_override=profile_override)
1120
1128
 
1121
1129
  # Print success response
1122
1130
  if 'status' in node_json_resp and node_json_resp['status'].lower() == 'success':
@@ -426,7 +426,7 @@ class Config:
426
426
  socket.setdefaulttimeout(10)
427
427
  log.info("Checking for supported version.")
428
428
  path = 'apiversions'
429
- request_url = self.get_host().split(serverconfig.VERSION)[0] + path
429
+ request_url = self.get_host().rsplit(serverconfig.VERSION, 1)[0] + path
430
430
  try:
431
431
  log.debug("Version check request url : " + request_url)
432
432
  response = requests.get(url=request_url, verify=CERT_FILE,