Skip to content

Commit 9f70b76

Browse files
v1.3.1: fixes error handling in oldpuppet-sync; add home storage creation to new-system-user
1 parent e3f82e0 commit 9f70b76

File tree

4 files changed

+22
-5
lines changed

4 files changed

+22
-5
lines changed

cheeto/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '1.3.0'
1+
__version__ = '1.3.1'

cheeto/cmds/database.py

+18-2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from pathlib import Path
1515
import statistics as stat
1616
import sys
17+
from venv import logger
1718

1819
from mongoengine import NotUniqueError, DoesNotExist
1920
from ponderosa import ArgParser, arggroup
@@ -691,7 +692,7 @@ def user_new_system(args: Namespace):
691692
except DuplicateGlobalUser as e:
692693
console.print(f'[red]{e}')
693694
else:
694-
console.print(f'Created user {args.username} on all sites.')
695+
console.print(f'Created user {args.username}, use `cheeto db user add site` to add to sites and create home storages.')
695696
if password is not None:
696697
console.print(f'Password: {password}')
697698
console.print('[red] Make sure to save this password in 1password!')
@@ -817,8 +818,23 @@ def user_remove_access(args: Namespace):
817818
@commands.register('database', 'user', 'add', 'site',
818819
help='Add user(s) to site')
819820
def user_add_site(args):
821+
logger = logging.getLogger(__name__)
820822
for user in args.user:
821-
add_site_user(args.site, user)
823+
try:
824+
add_site_user(args.site, user)
825+
except DuplicateSiteUser:
826+
logger.info(f'User {user} already exists in site {args.site}.')
827+
if args.create_storage:
828+
logger.info(f'Creating home storage for {user} in site {args.site}.')
829+
try:
830+
create_home_storage(args.site, user)
831+
except (NotUniqueError, DuplicateKeyError):
832+
logger.info(f'Home storage for {user} in site {args.site} already exists.')
833+
834+
835+
@user_add_site.args()
836+
def _(parser: ArgParser):
837+
parser.add_argument('--create-storage', action='store_true', default=False)
822838

823839

824840
@arggroup()

cheeto/database/crud.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -937,8 +937,9 @@ def user_to_puppet(user: SiteUser,
937937

938938
try:
939939
home_storage = query_user_home_storage(user.sitename, user.parent)
940-
except DoesNotExist:
940+
except (DoesNotExist, NonExistentStorage):
941941
storage = None
942+
logger.warning(f'No home storage found for {user.username} at {user.sitename}')
942943
else:
943944
storage = dict(autofs={'nas': home_storage.host,
944945
'path': str(home_storage.host_path.parent)},

pyproject.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "cheeto"
3-
version = "1.3.0"
3+
version = "1.3.1"
44
description = "Utilities for the UC Davis HPC Core Facility."
55
license = "Proprietary"
66
authors = [

0 commit comments

Comments
 (0)