def SystemManifest(self): man = Manifest.Manifest(self) try: man.LoadPath(self._root + Manifest.SYSTEM_MANIFEST_FILE) except: man = None return man
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
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
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
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
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"