From 2176e4e2d402318713b08a7004317a742effc2b1 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Wed, 5 Oct 2011 16:05:11 +0200 Subject: [PATCH 1/2] begin new type type (no typo) Signed-off-by: Nico Schottelius --- lib/cdist/type.py | 57 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 lib/cdist/type.py diff --git a/lib/cdist/type.py b/lib/cdist/type.py new file mode 100644 index 00000000..b0280660 --- /dev/null +++ b/lib/cdist/type.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# 2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty 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 cdist. If not, see . +# +# + +import logging +import os +log = logging.getLogger(__name__) + +class Type(object): + + def __init__(self, path, remote_path): + self.path = path + self.remote_path = remote_path + + def list_explorers(self): + """Return list of available explorers""" + dir = os.path.join(self.path, "explorer") + if os.path.isdir(dir): + list = os.listdir(dir) + else: + list = [] + + log.debug("Explorers for %s in %s: %s", type, dir, list) + + return list + + def is_install(self): + """Check whether a type is used for installation (if not: for configuration)""" + return os.path.isfile(os.path.join(self.path, "install")) + + # FIXME: Type + def type_dir(self, type, *args): + """Return (sub-)directory of a type""" + return os.path.join(self.type_base_dir, type, *args) + + # FIXME: Type + def remote_type_explorer_dir(self, type): + """Return remote directory that holds the explorers of a type""" + return os.path.join(REMOTE_TYPE_DIR, type, "explorer") From 68889c4bf7a5281cab51a8be0ba7fa7ca40c4da7 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Wed, 5 Oct 2011 16:12:25 +0200 Subject: [PATCH 2/2] finish type, shrink path Signed-off-by: Nico Schottelius --- lib/cdist/path.py | 31 +------------------------------ lib/cdist/type.py | 10 ++-------- 2 files changed, 3 insertions(+), 38 deletions(-) diff --git a/lib/cdist/path.py b/lib/cdist/path.py index 5cde357b..e709e6fe 100644 --- a/lib/cdist/path.py +++ b/lib/cdist/path.py @@ -171,30 +171,11 @@ class Path: """Return list of available explorers""" return os.listdir(self.global_explorer_dir) - # FIXME: Type - only needs to know its path - def list_type_explorers(self, type): - """Return list of available explorers for a specific type""" - dir = self.type_dir(type, "explorer") - if os.path.isdir(dir): - list = os.listdir(dir) - else: - list = [] - - log.debug("Explorers for %s in %s: %s", type, dir, list) - - return list - # Stays here def list_types(self): """Retuns list of types""" return os.listdir(self.type_base_dir) - # FIXME: type - def is_install_type(self, type): - """Check whether a type is used for installation (if not: for configuration)""" - marker = os.path.join(self.type_dir(type), "install") - return os.path.isfile(marker) - # Stays here def list_object_paths(self, starting_point): """Return list of paths of existing objects""" @@ -260,16 +241,6 @@ class Path: return objects - # FIXME: Type - def type_dir(self, type, *args): - """Return (sub-)directory of a type""" - return os.path.join(self.type_base_dir, type, *args) - - # FIXME: Type - def remote_type_explorer_dir(self, type): - """Return remote directory that holds the explorers of a type""" - return os.path.join(REMOTE_TYPE_DIR, type, "explorer") - # Stays here def transfer_object_parameter(self, cdist_object): """Transfer the object parameter to the remote destination""" @@ -286,7 +257,7 @@ class Path: self.remote_mkdir(REMOTE_GLOBAL_EXPLORER_DIR) self.transfer_dir(self.global_explorer_dir, REMOTE_GLOBAL_EXPLORER_DIR) - # Stays here + # Stays here - FIXME: adjust to type code, loop over types! def transfer_type_explorers(self, type): """Transfer explorers of a type, but only once""" if type in self.type_explorers_transferred: diff --git a/lib/cdist/type.py b/lib/cdist/type.py index b0280660..e1c5f589 100644 --- a/lib/cdist/type.py +++ b/lib/cdist/type.py @@ -46,12 +46,6 @@ class Type(object): """Check whether a type is used for installation (if not: for configuration)""" return os.path.isfile(os.path.join(self.path, "install")) - # FIXME: Type - def type_dir(self, type, *args): - """Return (sub-)directory of a type""" - return os.path.join(self.type_base_dir, type, *args) - - # FIXME: Type - def remote_type_explorer_dir(self, type): + def remote_explorer_dir(self): """Return remote directory that holds the explorers of a type""" - return os.path.join(REMOTE_TYPE_DIR, type, "explorer") + return os.path.join(self.remote_path, "explorer")