diff options
Diffstat (limited to 'snaps/config/project.py')
-rw-r--r-- | snaps/config/project.py | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/snaps/config/project.py b/snaps/config/project.py new file mode 100644 index 0000000..6790609 --- /dev/null +++ b/snaps/config/project.py @@ -0,0 +1,57 @@ +# Copyright (c) 2017 Cable Television Laboratories, Inc. ("CableLabs") +# and others. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +class ProjectConfig(object): + """ + Class to hold the configuration settings required for creating OpenStack + project objects + """ + + def __init__(self, **kwargs): + + """ + Constructor + :param name: the project's name (required) + :param domain or domain_name: the project's domain name + (default = 'Default'). + Field is used for v3 clients + :param description: the description (optional) + :param users: list of users to associate project to (optional) + :param enabled: denotes whether or not the project is enabled + (default True) + """ + + self.name = kwargs.get('name') + self.domain_name = kwargs.get( + 'domain', kwargs.get('domain', 'Default')) + + self.description = kwargs.get('description') + if kwargs.get('enabled') is not None: + self.enabled = kwargs['enabled'] + else: + self.enabled = True + + self.users = kwargs.get('users', list()) + + if not self.name: + raise ProjectConfigError( + "The attribute name is required for ProjectConfig") + + +class ProjectConfigError(Exception): + """ + Exception to be thrown when project settings attributes are incorrect + """ |