152 lines
4.2 KiB
Python
152 lines
4.2 KiB
Python
|
#
|
||
|
# DBus structures for the RPM OSTree data.
|
||
|
#
|
||
|
# Copyright (C) 2020 Red Hat, Inc.
|
||
|
#
|
||
|
# This copyrighted material is made available to anyone wishing to use,
|
||
|
# modify, copy, or redistribute it subject to the terms and conditions of
|
||
|
# the GNU General Public License v.2, or (at your option) any later version.
|
||
|
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||
|
# ANY WARRANTY expressed or implied, including the implied warranties of
|
||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||
|
# Public License for more details. You should have received a copy of the
|
||
|
# GNU General Public License along with this program; if not, write to the
|
||
|
# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||
|
# 02110-1301, USA. Any Red Hat trademarks that are incorporated in the
|
||
|
# source code or documentation are not subject to the GNU General Public
|
||
|
# License and may only be used or replicated with the express permission of
|
||
|
# Red Hat, Inc.
|
||
|
#
|
||
|
from dasbus.structure import DBusData
|
||
|
from dasbus.typing import Str, Bool
|
||
|
|
||
|
__all__ = ["RPMOSTreeConfigurationData", "RPMOSTreeContainerConfigurationData"]
|
||
|
|
||
|
|
||
|
class RPMOSTreeConfigurationData(DBusData):
|
||
|
"""Structure to hold RPM OSTree configuration."""
|
||
|
|
||
|
def __init__(self):
|
||
|
self._osname = ""
|
||
|
self._remote = ""
|
||
|
self._url = ""
|
||
|
self._ref = ""
|
||
|
self._gpg_verification_enabled = True
|
||
|
|
||
|
@staticmethod
|
||
|
def is_container():
|
||
|
"""Is this native container source?"""
|
||
|
return False
|
||
|
|
||
|
@property
|
||
|
def osname(self) -> Str:
|
||
|
"""Management root for OS installation."""
|
||
|
return self._osname
|
||
|
|
||
|
@osname.setter
|
||
|
def osname(self, value: Str):
|
||
|
self._osname = value
|
||
|
|
||
|
@property
|
||
|
def remote(self) -> Str:
|
||
|
"""Remote management root for OS installation."""
|
||
|
return self._remote
|
||
|
|
||
|
@remote.setter
|
||
|
def remote(self, value: Str):
|
||
|
self._remote = value
|
||
|
|
||
|
@property
|
||
|
def url(self) -> Str:
|
||
|
"""URL of the repository to install from."""
|
||
|
return self._url
|
||
|
|
||
|
@url.setter
|
||
|
def url(self, value: Str):
|
||
|
self._url = value
|
||
|
|
||
|
@property
|
||
|
def ref(self) -> Str:
|
||
|
"""Name of branch in the repository."""
|
||
|
return self._ref
|
||
|
|
||
|
@ref.setter
|
||
|
def ref(self, value: Str):
|
||
|
self._ref = value
|
||
|
|
||
|
@property
|
||
|
def gpg_verification_enabled(self) -> Bool:
|
||
|
"""Is the GPG key verification enabled?"""
|
||
|
return self._gpg_verification_enabled
|
||
|
|
||
|
@gpg_verification_enabled.setter
|
||
|
def gpg_verification_enabled(self, value: Bool):
|
||
|
self._gpg_verification_enabled = value
|
||
|
|
||
|
|
||
|
class RPMOSTreeContainerConfigurationData(DBusData):
|
||
|
"""Structure to hold RPM OSTree from container configuration."""
|
||
|
|
||
|
def __init__(self):
|
||
|
self._stateroot = ""
|
||
|
self._remote = ""
|
||
|
self._transport = ""
|
||
|
self._url = ""
|
||
|
self._signature_verification_enabled = True
|
||
|
|
||
|
@staticmethod
|
||
|
def is_container():
|
||
|
"""Is this native container source?"""
|
||
|
return True
|
||
|
|
||
|
@property
|
||
|
def stateroot(self) -> Str:
|
||
|
"""Name for the state directory, also known as "osname".
|
||
|
|
||
|
This could be optional.
|
||
|
"""
|
||
|
return self._stateroot
|
||
|
|
||
|
@stateroot.setter
|
||
|
def stateroot(self, value: Str):
|
||
|
self._stateroot = value
|
||
|
|
||
|
@property
|
||
|
def transport(self) -> Str:
|
||
|
"""Ostree transport protocol used.
|
||
|
|
||
|
This could be optional (default will be 'repository').
|
||
|
"""
|
||
|
return self._transport
|
||
|
|
||
|
@transport.setter
|
||
|
def transport(self, value: Str):
|
||
|
self._transport = value
|
||
|
|
||
|
@property
|
||
|
def remote(self) -> Str:
|
||
|
"""Name of the OSTree remote."""
|
||
|
return self._remote
|
||
|
|
||
|
@remote.setter
|
||
|
def remote(self, value: Str):
|
||
|
self._remote = value
|
||
|
|
||
|
@property
|
||
|
def url(self) -> Str:
|
||
|
"""URL of the repository to install from."""
|
||
|
return self._url
|
||
|
|
||
|
@url.setter
|
||
|
def url(self, value: Str):
|
||
|
self._url = value
|
||
|
|
||
|
@property
|
||
|
def signature_verification_enabled(self) -> Bool:
|
||
|
"""Is the GPG key verification enabled?"""
|
||
|
return self._signature_verification_enabled
|
||
|
|
||
|
@signature_verification_enabled.setter
|
||
|
def signature_verification_enabled(self, value: Bool):
|
||
|
self._signature_verification_enabled = value
|