Example #1
0
File: push.py Project: zjinys/kpm
 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()
Example #2
0
File: push.py Project: ryanj/kpm
 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)
Example #3
0
File: push.py Project: ryanj/kpm
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'])
Example #4
0
 def manifest(self, tla_codes=None):
     return ManifestJsonnet(self.packager, tla_codes)
Example #5
0
 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)
Example #6
0
 def manifest(self):
     if self._manifest is None:
         self._manifest = ManifestJsonnet(
             self.package, {"params": json.dumps(self.tla_codes)})
     return self._manifest
Example #7
0
def test_load_bad_manifest(bad_package_dir):
    import yaml
    with pytest.raises(yaml.YAMLError):
        ManifestJsonnet(package=None)
Example #8
0
def manifest(kubeui_package, package_dir):
    return ManifestJsonnet(kubeui_package)
Example #9
0
def test_load_from_path(manifest):
    m = ManifestJsonnet()
    assert m == manifest
Example #10
0
def bad_manifest():
    return ManifestJsonnet(package=None)
Example #11
0
def empty_manifest(empty_package_dir):
    return ManifestJsonnet(package=None)