addftool 0.2.2__py3-none-any.whl → 0.2.4__py3-none-any.whl

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.
addftool/addf_portal.py CHANGED
@@ -4,6 +4,8 @@ from addftool.sync import add_sync_args, sync_main
4
4
  from addftool.deploy import add_deploy_args, deploy_main
5
5
  from addftool.broadcast_folder import add_broadcast_folder_args, broadcast_folder_main
6
6
 
7
+ from addftool.blob import add_blob_args, blob_main
8
+
7
9
 
8
10
  def get_args():
9
11
  parser = argparse.ArgumentParser(description="Addf's tool")
@@ -13,6 +15,7 @@ def get_args():
13
15
  add_sync_args(subparsers)
14
16
  add_deploy_args(subparsers)
15
17
  add_broadcast_folder_args(subparsers)
18
+ add_blob_args(subparsers)
16
19
 
17
20
  return parser.parse_args()
18
21
 
@@ -27,6 +30,8 @@ def main():
27
30
  deploy_main(args)
28
31
  elif args.command == "broadcast-folder":
29
32
  broadcast_folder_main(args)
33
+ elif args.command == "blob":
34
+ blob_main(args)
30
35
  else:
31
36
  print("Unknown command: ", args.command)
32
37
 
addftool/blob.py CHANGED
@@ -199,13 +199,29 @@ def get_sas_token(api_url, name, container, key, info=False):
199
199
  return f"Error: {response.status_code}"
200
200
 
201
201
 
202
- def main():
203
- # exmaple usage: addfblob install
204
- # exmaple usage: addfblob mount -k <key> -a <api> -b <buffer> -m <mount_dir>
205
- # exmaple usage: addfblob token -k <key> -a <api>
206
- parser = argparse.ArgumentParser(description="Addf's tool")
202
+ def parse_blob_account_and_container_from_url(blob_url):
203
+ """
204
+ Parse the blob URL to extract account name and container name.
205
+ """
206
+ if not blob_url.startswith("https://"):
207
+ raise ValueError(f"Invalid blob URL: {blob_url}")
208
+
209
+ parts = blob_url.split("/")
210
+ account_name = parts[2].split(".")[0]
211
+ container_name = parts[3].strip()
212
+
213
+ return account_name, container_name
214
+
215
+
216
+ def get_sas_token_for_blob_url(api_url, blob_url, key, info=False):
217
+ an, cn = parse_blob_account_and_container_from_url(blob_url)
218
+ if info:
219
+ print(f"Parse blob URL: {blob_url}, account name: {an}, container name: {cn}")
220
+ return get_sas_token(api_url, an, cn, key, info=info)
221
+
207
222
 
208
- subparsers = parser.add_subparsers(dest='command', help='Sub-command help')
223
+ def add_args(parser):
224
+ subparsers = parser.add_subparsers(dest='blob_command', help='Sub-command help')
209
225
  install_parser = subparsers.add_parser('install', help='Install help')
210
226
  # install_parser.add_argument("-o", "--output_script", help="output script", default=None)
211
227
  install_parser.add_argument("--packages", help="packages", default="fuse3 blobfuse2 azcopy")
@@ -223,19 +239,33 @@ def main():
223
239
  token_parser = subparsers.add_parser('token', help='Token help')
224
240
  add_api(token_parser)
225
241
 
226
- args = parser.parse_args()
242
+ def add_blob_args(subparsers):
243
+ deploy_parser = subparsers.add_parser('blob', help='Blob help')
244
+ add_args(deploy_parser)
245
+
227
246
 
247
+ def blob_main(args):
228
248
  # check os is linux/unix and current user, set --sudo if current user is not root
229
249
  if os.name == 'posix' and os.getuid() != 0:
230
250
  args.sudo = True
231
251
 
232
- if args.command == 'install':
252
+ if args.blob_command == 'install':
233
253
  install_main(args)
234
- elif args.command == 'mount':
254
+ elif args.blob_command == 'mount':
235
255
  mount_main(args)
236
- elif args.command == 'token':
256
+ elif args.blob_command == 'token':
237
257
  print(get_token(args, info=False))
238
258
 
239
259
 
260
+ def main():
261
+ # exmaple usage: addfblob install
262
+ # exmaple usage: addfblob mount -k <key> -a <api> -b <buffer> -m <mount_dir>
263
+ # exmaple usage: addfblob token -k <key> -a <api>
264
+ parser = argparse.ArgumentParser(description="Addf's tool")
265
+ add_args(parser)
266
+ args = parser.parse_args()
267
+ blob_main(args)
268
+
269
+
240
270
  if __name__ == "__main__":
241
271
  main()
@@ -67,7 +67,10 @@ def configure_ssh_on_ubuntu(port, username, ssh_public_key="", password=""):
67
67
  execute_command(command_prefix + "apt-get install -y openssh-server")
68
68
 
69
69
  print("Modifying SSH configuration...")
70
+ # if "#Port 22" in sshd_config
70
71
  execute_command(command_prefix + f'sed -i "s/#Port 22/Port {port}/" /etc/ssh/sshd_config')
72
+ # if Port xxx in sshd_config
73
+ execute_command(command_prefix + f'sed -i "s/Port [0-9]*/Port {port}/" /etc/ssh/sshd_config')
71
74
  execute_command(command_prefix + 'sed -i "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/" /etc/ssh/sshd_config')
72
75
 
73
76
  if not os.path.exists("/etc/ssh/ssh_host_rsa_key"):
@@ -36,9 +36,9 @@ def deploy_vscode_server(install_tunnel=True):
36
36
  # Start VS Code Tunnel if requested
37
37
  if install_tunnel:
38
38
  print("Starting VS Code Tunnel...")
39
- execute_command("code tunnel --accept-server-license-terms")
40
39
 
41
40
  print("VS Code installation completed successfully!")
41
+ print("You can start VS Code by running 'code' in the terminal., such as: \"code tunnel --accept-server-license-terms\"")
42
42
 
43
43
 
44
44
  def add_deploy_vscode_server_args(parser):
addftool/tool.py CHANGED
@@ -71,9 +71,5 @@ def main():
71
71
  print("No such init option")
72
72
 
73
73
 
74
- def pull():
75
- execute_command("git pull origin")
76
-
77
-
78
74
  if __name__ == "__main__":
79
75
  main()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: addftool
3
- Version: 0.2.2
3
+ Version: 0.2.4
4
4
  Requires-Dist: cryptography
5
5
  Requires-Dist: requests
6
6
  Requires-Dist: PyYAML
@@ -1,19 +1,19 @@
1
1
  addftool/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- addftool/addf_portal.py,sha256=pw6ivnwMfmK4WC-1Gs5cMndXKQRbMm6VvDyxXJDNrm4,991
3
- addftool/blob.py,sha256=NZOItDyFUIdV1tfhJZJJBEzGy296CE5NCictTzP4OPc,8282
2
+ addftool/addf_portal.py,sha256=6XjwGs5m2mRVDWVvCPOiqn1NlxDcGBTQ9Kr_0g5RsJc,1130
3
+ addftool/blob.py,sha256=YT3eZrC9mdYtntDlwEI5MUHFw98wKtBC_pHEdtqvsv4,9206
4
4
  addftool/broadcast_folder.py,sha256=bEOr-8Q14DhZFS658hab4U-9HvAW3EGluEriilIdEXQ,11976
5
5
  addftool/sync.py,sha256=ZpYxbM8uiPFrV7ODmOaM7asVPCWaxBixA-arVc-1kfs,14045
6
- addftool/tool.py,sha256=EuKQ2t2InN7yB-_oYLcdsA7vRqzRGTunwIxplUSqEG0,2054
6
+ addftool/tool.py,sha256=FmxRY3-pP0_Z0zCUAngjmEMmPUruMftg_iUlB1t2TnQ,2001
7
7
  addftool/util.py,sha256=zlNLu8Be8cGIpNRqBw8_0q7nFxWlsJ9cToN62ohjdXE,2335
8
8
  addftool/deploy/__init__.py,sha256=UL8b-Idt7lStlMiOm8oTZ65fdzYz99Fgzq2Gaw8WsZc,1544
9
9
  addftool/deploy/azure.py,sha256=_o_9Eh8cVwLDAqvfyRYBtQRHs_Gul-nCs2ZXttwO1bk,1301
10
- addftool/deploy/ssh_server.py,sha256=f2T8fgwACVljPfdcimMywUjsFnLCWRde7iWPAILpRz8,5463
11
- addftool/deploy/vscode_server.py,sha256=9KoWQdK3ESgKtdACEHTng2OuQKlIZjh_R_qJNT-XOv8,2609
10
+ addftool/deploy/ssh_server.py,sha256=7glpJJNROskpqPkeYrTc2MbVzRendUZLv-ZgPs6HCq8,5641
11
+ addftool/deploy/vscode_server.py,sha256=tLtSvlcK2fEOaw6udWt8dNELVhwv9F59hF5DJJ-1Nak,2666
12
12
  addftool/process/__init__.py,sha256=Dze8OrcyjQlAbPrjE_h8bMi8W4b3OJyZOjTucPrkJvM,3721
13
13
  addftool/process/utils.py,sha256=JldxnwanLJOgxaPgmCJh7SeBRaaj5rFxWWxh1hpsvbA,2609
14
14
  addftool/ssh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
- addftool-0.2.2.dist-info/METADATA,sha256=UAlfwCvT_leVPhIku998LlT2f23Gd4ugq9Yh4Dzlt3E,170
16
- addftool-0.2.2.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
17
- addftool-0.2.2.dist-info/entry_points.txt,sha256=9lkmuWMInwUAtev8w8poNkNd7iML9Bjd5CBCFVxg2b8,111
18
- addftool-0.2.2.dist-info/top_level.txt,sha256=jqj56-plrBbyzY0tIxB6wPzjAA8kte4hUlajyyQygN4,9
19
- addftool-0.2.2.dist-info/RECORD,,
15
+ addftool-0.2.4.dist-info/METADATA,sha256=Mxypih4dkYUmHFyyVBqbZLVf4CYJqapkfHMJ2zCMVh0,170
16
+ addftool-0.2.4.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
17
+ addftool-0.2.4.dist-info/entry_points.txt,sha256=9lkmuWMInwUAtev8w8poNkNd7iML9Bjd5CBCFVxg2b8,111
18
+ addftool-0.2.4.dist-info/top_level.txt,sha256=jqj56-plrBbyzY0tIxB6wPzjAA8kte4hUlajyyQygN4,9
19
+ addftool-0.2.4.dist-info/RECORD,,