Exemple #1
0
 def SystemManifest(self):
     man = Manifest.Manifest(self)
     try:
         man.LoadPath(self._root + Manifest.SYSTEM_MANIFEST_FILE)
     except:
         man = None
     return man
Exemple #2
0
    def FindLatestManifest(self, train = None):
        # Gets <UPDATE_SERVER>/<train>/LATEST
        # Returns a manifest, or None.
        rv = None
        current_version = None
        temp_mani = self.SystemManifest()
        if temp_mani:
            current_version = temp_mani.Sequence()

        if train is None:
            if temp_mani is None:
                # I give up
                raise Exceptions.ConfigurationInvalidException
            if temp_mani.NewTrain():
                # If we're redirected to a new train, use that.
                train = temp_mani.NewTrain()
            else:
                train = temp_mani.Train()

        file = self.TryGetNetworkFile("%s/%s/LATEST" % (UPDATE_SERVER, train))
        if file is None:
            log.debug("Could not get latest manifest file for train %s" % train)
        else:
            rv = Manifest.Manifest(self)
            rv.LoadFile(file)
        return rv
def run_all_manifests():
    """
    Test creation of a KOPS kubeconfig file via Jinja2 template
    :return:
    """
    print(
        "***************************************************************************************************"
    )
    print("Configure Manifest for Cluster...")
    print(
        "***************************************************************************************************"
    )
    Manifest(manifest_template_file, manifest_data_file, new_manifest_file,
             state_template_file, state_shell_file, vers_template_file,
             vers_shell_file, ssh_template_file, ssh_shell_file,
             upd_template_file, upd_shell_file, val_template_file,
             val_shell_file, kops_template_file, kops_shell_file,
             kops_del_template_file, kops_del_shell_file, chef_manifest_file,
             chef_shell_file, chef_nofips_manifest_file,
             chef_nofips_shell_file, pre_build_manifest_file,
             pre_build_shell_file, ca_cert_file, client_key_file)
    print(
        "***************************************************************************************************"
    )
    print("Manifest Configuration Complete")
    print(
        "***************************************************************************************************"
    )
    return
Exemple #4
0
    def FindLatestManifest(self, train = None, require_signature = False):
        # Gets <UPDATE_SERVER>/<train>/LATEST
        # Returns a manifest, or None.
        rv = None
        temp_mani = self.SystemManifest()

        if train is None:
            if temp_mani is None:
                # I give up
                raise Exceptions.ConfigurationInvalidException
            if temp_mani.NewTrain():
                # If we're redirected to a new train, use that.
                train = temp_mani.NewTrain()
            else:
                train = temp_mani.Train()

        file = self.TryGetNetworkFile(url = "%s/%s/LATEST" % (self.UpdateServerMaster(), train),
                                      reason = "GetLatestManifest",
                                  )
        if file is None:
            log.debug("Could not get latest manifest file for train %s" % train)
        else:
            rv = Manifest.Manifest(self, require_signature = require_signature)
            rv.LoadFile(file)
        return rv
Exemple #5
0
 def SystemManifest(self):
     if self._manifest is None:
         self._manifest = Manifest.Manifest(configuration=self)
         try:
             self._manifest.LoadPath(self._root +
                                     Manifest.SYSTEM_MANIFEST_FILE)
         except:
             self._manifest = None
     return self._manifest
Exemple #6
0
    def FindLatestManifest(self, train=None):
        # Finds the latest (largest sequence number)
        # manifest for a given train, iterating through
        # the search locations.
        # Returns a manifest, or None.
        rv = None
        if train is None:
            temp_mani = self.SystemManifest()
            if temp_mani is None:
                # I give up
                raise ConfigurationInvalidException
            train = temp_mani.Train()
        for file in self.SearchForFile(train + "/LATEST"):
            temp_mani = Manifest.Manifest(self)
            temp_mani.LoadFile(file)
            if rv is None or temp_mani.Sequence() > rv.Sequence():
                rv = temp_mani

        return rv
Exemple #7
0
        if url:
            file = self.TryGetNetworkFile(
                url = url,
                handler = handler,
            )
            if file:
                return file.read()
        return None

if __name__ == "__main__":
    conf = Configuration()

    pkg = Package.Package("freenas", "1.0", "abcd")
    pkg.AddUpdate("0.9", "1234")

    manifest = Manifest.Manifest(conf)
    manifest.SetSequence(100)
    manifest.SetTrain("FreeNAS-ALPHA")
    manifest.SetVersion("FreeNAS-9.3-ALPHA")
    manifest.AddPackage(pkg)
    manifest.SetSignature()

    if manifest.Validate() != True:
        print "Validation failed"

    print manifest.String()
    manifest.StorePath("manifest")
    new_manifest = Manifest.Manifest(conf)
    new_manifest.LoadPath("manifest")
    if new_manifest.Validate() == True:
        print "Re-loaded manifest validated"