def _kpm(self): self.filter_files = True self.manifest = ManifestJsonnet() ns, name = self.manifest.package['name'].split("/") if not self.namespace: self.namespace = ns if not self.pname: self.pname = name self.package_name = "%s/%s" % (self.namespace, self.pname) if not self.version or self.version == "default": self.version = self.manifest.package['version'] self.metadata = self.manifest.metadata()
def _call(self): r = kpm.registry.Registry(self.registry_host) # @TODO: Override organization self.manifest = ManifestJsonnet() # @TODO: Pack in memory kubepath = os.path.join(".", self.manifest.package_name() + "kub.tar.gz") pack_kub(kubepath) f = open(kubepath, 'rb') r.push( self.manifest.package['name'], { "name": self.manifest.package['name'], "version": self.manifest.package['version'], "blob": base64.b64encode(f.read()) }, self.force) f.close() os.remove(kubepath)
class PushCmd(CommandBase): name = 'push' help_message = "push a package to the registry" def __init__(self, options): self.output = options.output self.registry_host = options.registry_host self.force = options.force self.manifest = None super(PushCmd, self).__init__(options) @classmethod def _add_arguments(self, parser): parser.add_argument("-H", "--registry-host", nargs="?", default=kpm.registry.DEFAULT_REGISTRY, help='registry API url') parser.add_argument("-o", "--organization", nargs="?", default=None, help="push to another organization") parser.add_argument("-f", "--force", action='store_true', default=False, help="force push") def _call(self): r = kpm.registry.Registry(self.registry_host) # @TODO: Override organization self.manifest = ManifestJsonnet() # @TODO: Pack in memory kubepath = os.path.join(".", self.manifest.package_name() + "kub.tar.gz") pack_kub(kubepath) f = open(kubepath, 'rb') r.push( self.manifest.package['name'], { "name": self.manifest.package['name'], "version": self.manifest.package['version'], "blob": base64.b64encode(f.read()) }, self.force) f.close() os.remove(kubepath) def _render_json(self): print json.dumps({ "package": self.manifest.package['name'], "version": self.manifest.package['version'] }) def _render_console(self): print "package: %s (%s) pushed" % (self.manifest.package['name'], self.manifest.package['version'])
def manifest(self, tla_codes=None): return ManifestJsonnet(self.packager, tla_codes)
def _call(self): r = kpm.registry.Registry(self.registry_host) result = r.pull(self.package, version=self.version) p = kpm.packager.Package(result, b64_encoded=False) self.path = os.path.join(self.dest, ManifestJsonnet(p).package_name()) p.extract(self.path)
def manifest(self): if self._manifest is None: self._manifest = ManifestJsonnet( self.package, {"params": json.dumps(self.tla_codes)}) return self._manifest
def test_load_bad_manifest(bad_package_dir): import yaml with pytest.raises(yaml.YAMLError): ManifestJsonnet(package=None)
def manifest(kubeui_package, package_dir): return ManifestJsonnet(kubeui_package)
def test_load_from_path(manifest): m = ManifestJsonnet() assert m == manifest
def bad_manifest(): return ManifestJsonnet(package=None)
def empty_manifest(empty_package_dir): return ManifestJsonnet(package=None)