Coder Social home page Coder Social logo

cobblerclient's Introduction

Cobbler

Publish Python distributions to TestPyPI PyPI version PyPI - Downloads Documentation Status Matrix Codacy Badge Codacy Badge Asciinema

Cobbler is a Linux installation server that allows for rapid setup of network installation environments. It glues together and automates many associated Linux tasks so you do not have to hop between lots of various commands and applications when rolling out new systems, and, in some cases, changing existing ones. It can help with installation, DNS, DHCP, package updates, power management, configuration management orchestration, and much more.

asciicast

Read more at https://cobbler.github.io

To view the man-pages, install the RPM and run man cobbler or run perldoc cobbler.pod from a source checkout.

To build the RPM, run make rpms. Developers, try make webtest to do a local make install that preserves your configuration.

If you want to contribute you may find more information under CONTRIBUTING.md.

The documentation can be found at Readthedocs

cobblerclient's People

Contributors

c0deaddict avatar dgivens avatar hafkensite avatar hbokh avatar holmesb avatar jtopjian avatar schoolguy avatar thijsschnitger avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

cobblerclient's Issues

Can not create new system using main.go as template.

Hello! I'm trying to use cobblerclient to interact with remote cobbler (it is in docker container). I'm using main.go as a template. Unfortunately, it fails on creating system stage and I don't know how to fix it.
First, it failed to creating system due to lack of string "PowerType: "ipmitool"" in new System description. After adding this line system creation fails with python exception:

Error creating system: Fault(1): <class 'AttributeError'>:'str' object has no attribute 'copy'.

2021-02-16T15:43:36 - INFO | Exception Info:
  File "/usr/lib/python3.9/site-packages/cobbler/remote.py", line 3473, in _dispatch
    return method_handle(*params)

  File "/usr/lib/python3.9/site-packages/cobbler/remote.py", line 1949, in save_system
    return self.save_item("system", object_id, token, editmode=editmode)

  File "/usr/lib/python3.9/site-packages/cobbler/remote.py", line 1912, in save_item
    self.api.add_item(what, obj, logger=self.logger)

  File "/usr/lib/python3.9/site-packages/cobbler/api.py", line 739, in add_item
    self.get_items(what).add(ref, check_for_duplicate_names=check_for_duplicate_names, save=save, logger=logger)

  File "/usr/lib/python3.9/site-packages/cobbler/cobbler_collections/collection.py", line 398, in add
    self.lite_sync.add_single_system(ref.name)

  File "/usr/lib/python3.9/site-packages/cobbler/actions/litesync.py", line 207, in add_single_system
    self.tftpd.add_single_system(system)

  File "/usr/lib/python3.9/site-packages/cobbler/modules/managers/in_tftpd.py", line 148, in add_single_system
    self.tftpgen.write_templates(system)

  File "/usr/lib/python3.9/site-packages/cobbler/tftpgen.py", line 863, in write_templates
    blended = utils.blender(self.api, False, obj)

  File "/usr/lib/python3.9/site-packages/cobbler/utils.py", line 641, in blender
    __consolidate(node, results)

  File "/usr/lib/python3.9/site-packages/cobbler/utils.py", line 793, in __consolidate
    results[field].update(data_item.copy())

Here is my System object description

s := cobbler.System{
  Name: "Foobar",
  Profile: "Testy",
  BootLoader: "grub",
  NameServers: []string{"8.8.8.8", "1.1.1.1"},
  PowerID: "",
  PowerType: "ipmitool",
}

Any help would be appreciated.

Missing API Endpoints for a lot of things

@nodeg Please use and extend this. DONE

  • basically all actions except sync
  • item copy
  • item report
  • item list
  • item rename
  • profile/system get-autoinstall
  • everything related to the item package
  • everything related to the item mgmtclass
  • everything related to the item file
  • everything related to the item menu
  • everything related to the item image

Tests: Add missing server XML fixtures

For testing purposes, we need a full set of fixtures that we want to use for unit-testing. This is not given atm.

Auto-Generation of these fixtures can atm not be delivered, thus they need to be manually generated.

Can't add interfaces to systems

...using Cobbler v3.3.0 until Cobbler issue #2846 is resolved. Then will need to reinstate interface testing in this client, which has been temporarily removed

CI fails on Windows

Currently our tests are failing on Windows, although I am pretty sure that we don't have any Linux specific stuff in there. Thus we need to fix that at some point.

Abstract access to resources

Is your feature request related to a problem? Please describe.

Since in the future we hopefully have a HTTP REST API at some point we should abstract access to the "raw" API we currently offer.

Describe the solution you'd like

Access to the API should be abstracted by functionality.

Describe alternatives you've considered

None

Additional context

Related to cobbler/cobbler-web#72

CI: Deduplicate test execution

Currently, when opening a PR from this repo to the main branch, the CI is executed twice. Since this is not needed we need to de-duplicate the CI execution.

This behavior is currently problematic for coverage uploads.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.