summaryrefslogtreecommitdiff
path: root/nova/objects/trusted_certs.py
diff options
context:
space:
mode:
authorJackie Truong <jacklyn.truong@jhuapl.edu>2017-12-15 19:01:00 -0500
committerJackie Truong <jacklyn.truong@jhuapl.edu>2018-03-29 23:00:48 -0400
commit589eb8872631ff4f0a4b34003152a644a35cddb7 (patch)
treee854463463f4700c643b055c447bc390dca667a9 /nova/objects/trusted_certs.py
parente35e8d7f3fb057dbb6ca23b186c94aca0d1d7979 (diff)
downloadnova-589eb8872631ff4f0a4b34003152a644a35cddb7.tar.gz
Add trusted_certs object
This change adds a trusted_certs object, which stores a list of trusted x509 certificate IDs, to the Instance object. Change-Id: I872b50932f7611584661efc604c8e5d4324fae9b Implements: blueprint nova-validate-certificates
Diffstat (limited to 'nova/objects/trusted_certs.py')
-rw-r--r--nova/objects/trusted_certs.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/nova/objects/trusted_certs.py b/nova/objects/trusted_certs.py
new file mode 100644
index 0000000000..e4dd7e46c2
--- /dev/null
+++ b/nova/objects/trusted_certs.py
@@ -0,0 +1,36 @@
+# 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.
+
+from oslo_serialization import jsonutils
+
+from nova import db
+from nova.objects import base
+from nova.objects import fields
+
+
+@base.NovaObjectRegistry.register
+class TrustedCerts(base.NovaObject):
+ # Version 1.0: Initial version
+ VERSION = '1.0'
+
+ fields = {
+ 'ids': fields.ListOfStringsField(nullable=False),
+ }
+
+ @base.remotable_classmethod
+ def get_by_instance_uuid(cls, context, instance_uuid):
+ db_extra = db.instance_extra_get_by_instance_uuid(
+ context, instance_uuid, columns=['trusted_certs'])
+ if not db_extra or not db_extra['trusted_certs']:
+ return None
+ return cls.obj_from_primitive(
+ jsonutils.loads(db_extra['trusted_certs']))