Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on May 17, 2012
  1. A new version of the Microkernel (v0.8.8.0) that modifies the behavio…

    Tom McSweeney authored
    …r of the flag added to the checkin requests in the previous release of the Microkernel. This flag is now only included if the node hasn't successfully checked in and registered with the Razor server. Once both of these conditions have been met, the flag will be set to false (and no longer included in the checkin requests) until the node is rebooted. This change will only work properly on reboot once changes have been made to the Razor server to handle this flag properly. Until then, on reboot, the is_first_checkin flag will remain true until Razor asks the node to register again (since we consider a "first checkin" to be the first time that the node successfully checks in and registers with the Razor server after a boot or reboot).
  2. Added a new file to the Microkernel that is used to store whether or …

    Tom McSweeney authored
    …not the Microkernel controller is checking in for the first time. This change makes it possible for the Razor server to determine whether or not it should force a registration on first boot, even if the node has checked in more recently than the "register_timeout" (allowing for the Razor server to pick up configuration changes on the node that may have required a reboot of the node but that didn't take too long, so the time between checkins doesn't exceed that "register_timeout" value).
Commits on May 10, 2012
  1. Swapped initialization over from the /opt/bootlocal.sh script to the …

    Tom McSweeney authored
    …/opt/bootsync.sh script (so that the commands run synchronously instead of in the background)
  2. Added a revised inittab file to the ISO build process (is actually co…

    Tom McSweeney authored
    …pied over to /etc/inittab in the resulting ISO) that disables automatic login of the tc user on boot (something we needed to do before release)
Commits on May 9, 2012
  1. Refactored the work from last night around dynamic loading of the TCL…

    Tom McSweeney authored
    … extensions (and the kernel modules they might contain). The TCE Mirror WEBrick instance now returns the lists as arrays instead of hash maps and both the Microkernel Controller and Kernel Module Manager now deal with these as arrays instead of hash maps. Also cleaned up how the Kernel Module Manager dealt with requests to install a module that is already installed (the module is now removed, then reinstalled) and added code to the Kernel Module Manager to simplify how it handles the "module names" that it receives from the TCE Mirror WEBrick instance (it now searches for the modules under the kernel module directory instead of requiring a full relative pathname to the kernel module in the names of the modules returned by that WEBrick instance). Finally, added the files used by the new WEBrick instance to the project (under the 'tmp/tinycorelinux' sub-directory) and moved the mk_conf.yaml file to that new (tmp) subdirectory since that's where the mk_conf.yaml file will actually be placed during the build process.
  2. Refactored the previous version of the Microkernel to add a new WEBri…

    Tom McSweeney authored
    …ck instance that supports local loading of TCL extensions. Also removed the script that was previously used to load the kernel modules that might be contained in these extensions to support the loading of a list of kernel modules from the same WEBrick instance (this functionality is now provided by the RazorMicrokernel::RzMkKernelModuleManager class instead) and added the WEBrick instance itself (via the rz_mk_tce_mirror.rb script).
Commits on May 8, 2012
  1. Added a quick change that restricts the installation of extensions so…

    Tom McSweeney authored
    … that, by default, an extension is only installed if it is not yet installed. This avoids the overhead of re-installing extensions when the Microkernel Controller is restarted (extensions will still be re-installed on reboot, of course). This behavior can be overridden by an additional flag to the load_tcl_extensions method (in the Microkernel Controller), but this flag is not currently being used (it's there for future use if we decide we need it). This change will be made available in v0.8.2.0 of the Microkernel.
  2. Last round of changes for initial release of the Microkernel that wil…

    Tom McSweeney authored
    …l dynamically load extensions (and the kernel modules they contain, at least for the open_vm_tools extension) from a (Razor) server. Have tested this with an Apache server, now just need to finish the Razor server-side code to support this implementation.
Commits on May 5, 2012
  1. First round of changes to make the Microkernel pull the kernel module…

    Tom McSweeney authored
    …s dynamically from the Razor server (rather than loading modules from the set of kernel modules burned into the ISO). While we're changing to a new ISO, took the time to update the Facter gem that is loaded dynamically on boot to the latest stable version (v1.6.8)
Commits on May 3, 2012
  1. Changes to add the display of the Microkernel version as part of the …

    Tom McSweeney authored
    …boot process
Commits on May 2, 2012
  1. Added code to the RazorMkHardwareFacter class to remove any "offendin…

    Tom McSweeney authored
    …g keys" from the key-value pairs that are passed back to Razor. We use the phrase "offending keys" here to refer to any keys that include characters from the following character set: [!@#\$%\^&*()=+\[\]\{\}]
    
    Any "offending key" will be replace by a "cleansed key" (one with the offending characters removed) before the facts_map is passed back to the caller of the "RazorMicrokernel::RzMkHardwareFacter::add_facts_to_map!()" method, and the value that was stored under the old (offending) key will be stored under a new (cleansed) key instead (the old key-value pair will be removed as part of this operation).  With this change in place, we shouldn't have to worry about passing a facts_map with any offending keys to the Razor server (since none of the facts we gather using Facter have "offending keys", just those we've added using this RzMkHardwareFacter class).
Commits on Apr 30, 2012
  1. Removed the "bluepill" bundle from the Razor-Microkernel project (we …

    Tom McSweeney authored
    …no longer feel we'll need this functionality, and the bundle/gem itself wasn't very well implemented and doesn't seem to be well supported anymore either)
  2. Changed the RzMkControlServer and RzMkRegistrationManager so that the…

    Tom McSweeney authored
    …y report a "hw_id" value (constructed using a new "get_hw_id_array" method that was added to the RzMkFactManager class) rather than a "uuid" value to Razor as part of the checkin and registration requests. With this set of changes, responsibility for construction of UUID values (and visibility into those values) is officially moved over to the Razor server and away from the Microkernel.
Commits on Apr 21, 2012
  1. Fixed permissions in this file. Now the permissions for this file cor…

    Tom McSweeney authored
    …respond to the permissions set for the others that will be installed in the /usr/local/lib/ruby/1.8/razor_microkernel directory (within the Microkernel ISO)
  2. Fixed bug in how single-disk machines were handled (in the case of a …

    Tom McSweeney authored
    …single-disk machine, the Microkernel wasn't returning any disk information in the form of a "flattened array of disk information", because there was no flattened array of disk information hash values to return information from (just a single hash)
Commits on Apr 19, 2012
  1. Added a new script (load_kernel_modules.rb) to ensure that the proper…

    Tom McSweeney authored
    … kernel modules are loaded at boot and made changes to the bootlocal.sh script to call this new script (currently this only manages the kernel modules provided by the open-vm-tools package, which should only be loaded if we are in a VMware environment, but this could easily be extended to support other modules). Also made the changes to the project that were made earlier in the ISO to update the version of Facter to the latest release (v1.6.7).
Commits on Apr 16, 2012
  1. Removed extraneous field (resources) from fields_to_include argument …

    Tom McSweeney authored
    …used when constructing the flattened list of "mk_hw_cpu..." values (shouldn't effect the output at all since there isn't a "resources" field in the "lshw -c processor" output, it's just a "neatness counts" sort of thing)
Commits on Apr 13, 2012
  1. Bug fixes that were the result of testing on physical hardware. Had t…

    Tom McSweeney authored
    …o add a few fields that were missing from some of the flattened-data-model fields and add some code to handle exclusion of the "lscpu" hash map if the user so desired (it is now reported with a key that ends in "json_str", just like the other "objects" reported back from the output of the "lscpu" and "lshw" commands). This completes work on v0.4.x.y) of the Microkernel. Will start work on v0.5.x.y.z) next.
  2. Changed the way that the Microkernel represents the new "Hash Map" st…

    Tom McSweeney authored
    …yle facts that are being included in the node-registration process. These new facts are now being reported as JSON strings rather than as objects. Also added code so that these new "_json_str" suffixed properties could fe filtered out of the registration process altogether using the mk_fact_excl_pattern that is already available on the Razor configuration file (conf/razor_server.conf). Finally, added a new set of properties that are built from these "JSON-string" style properties that contain a flattened-out version of some of the more interesting properties from these objects (so that they can be used to build tag rules).
Commits on Apr 11, 2012
  1. Last round of debugging and bug fixing. This is the version of the Ra…

    Tom McSweeney authored
    …zorMicrokernel::RzMkHardwareFacter class that will be included in the next version of the Microkernel (v0.4.2.0). Includes changes to properly parse "Unclaimed" lines and to properly handle the "lshw -c network" output (returning it as an array, even though it doesn't look like the other resource arrays). Also includes code changes to ensure that all of the meta-data values being added by these commands are returned in Hash maps and/or Arrays that are referenced from the attributes hash with keys that are prefixed by the string "mk_hw_TYPE_" where TYPE is one eof the following strings: "bus", "mem", "disk", "proc", or "nw" (for outputs from the "lshw -c bus", "lshw -c memory", "lshw -c disk", "lshw -c processor", and "lshw -c network" commands, respectively). In addition, the output of the "lscpu" command is returned under a single key in the attributes hash (mk_hw_cpu_info).
  2. Added two more lshw commands (to gather facts about the system and th…

    Tom McSweeney authored
    …e bus, the latter includes the board serial number for physical nodes, which can be used to tie the BMC and node information together)
  3. Changes to add a new set of "hardware-specific" facts to the list of …

    Tom McSweeney authored
    …facts reported during node registration. The new facts are gathered from the node by the Microkernel Controller using wrapped calls to "lscpu" and "lshw" system calls. Will complete testing of the new code tomorrow, but so far tests using a copy of this code in an external ruby script are working as they should.
Commits on Mar 21, 2012
  1. Changed the structure of the YAML file built by this script a bit so …

    Tom McSweeney authored
    …that we can use more than just a SHA256 checksum if we would like. The new YAML file now has a 'kernel_hash' and 'initrd_hash' field in it (replacing the 'kernel_sha2' and 'initrd_sha2' fields that were in this YAML file previously) and includes a 'hash_description' map in it that describes the hash algorithm that was used to generate the 'kernel_hash' and 'initrd_hash' values.
Commits on Mar 20, 2012
  1. Added two new fields to the YAML file built by the build_iso_yaml.rb …

    Tom McSweeney authored
    …file that contain the sha256 checksums for the vmlinuz and core.gz files contained in the ISO (used to check for integrity of these two files during the iPXE-boot process). Also changed the existing kernel and initrd fields in this file so that they included relative paths (from the root of the ISO) to these two files (boot/vmlinuz and boot/core.gz, respectively). Finally, made changes to the rebuild_iso.sh file so that the new CLI for the build_iso_yaml.rb file is used (now have to pass in 4 arguments, not just two; have added the paths to the kernel and initrd files as inputs to the build_iso_yaml.rb script)
Commits on Mar 11, 2012
  1. Added the scripts used during the process of building the Razor Micro…

    Tom McSweeney authored
    …kernel ISO to the project, will be available starting with this version of the Microkernel (v0.2.1.0)
Commits on Mar 7, 2012
  1. Refactored the "utility classes" in order to place them into their ow…

    Tom McSweeney authored
    …n module (the RazorMicrokernel module). At the same time, added a "RazorMicrokernel::Logging" mixin that can be used to make a component loggable (this mixin is patterned after the ProjectRazor::Logging mixin in the Razor project). Finally, made the changes necessary to replace the old "logger" code (where a Logger instance was created in the "main" scripts and passed into the associated methods) with the new mixin-based logger (where the capability to log is mixed into the scripts/classes). The only difficulty was in sorting out how to apply the new mixin-based logger in the WEBrick instance, but that issue has been resolved. This should complete the refactoring necessary to output logs in a manner that is equivalent to how logs are handled in the Razor project...
  2. Refactored the "utility classes" in order to place them into their ow…

    Tom McSweeney authored
    …n module (the RazorMicrokernel module). At the same time, added a "RazorMicrokernel::Logging" mixin that can be used to make a component loggable (this mixin is patterned after the ProjectRazor::Logging mixin in the Razor project). Finally, made the changes necessary to replace the old "logger" code (where a Logger instance was created in the "main" scripts and passed into the associated methods) with the new mixin-based logger (where the capability to log is mixed into the scripts/classes). The only difficulty was in sorting out how to apply the new mixin-based logger in the WEBrick instance, but that issue has been resolved. This should complete the refactoring necessary to output logs in a manner that is equivalent to how logs are handled in the Razor project...
  3. Refactored the "utility classes" in order to place them into their ow…

    Tom McSweeney authored
    …n module (the RazorMicrokernel module). At the same time, added a "RazorMicrokernel::Logging" mixin that can be used to make a component loggable (this mixin is patterned after the ProjectRazor::Logging mixin in the Razor project). Finally, made the changes necessary to replace the old "logger" code (where a Logger instance was created in the "main" scripts and passed into the associated methods) with the new mixin-based logger (where the capability to log is mixed into the scripts/classes). The only difficulty was in sorting out how to apply the new mixin-based logger in the WEBrick instance, but that issue has been resolved. This should complete the refactoring necessary to output logs in a manner that is equivalent to how logs are handled in the Razor project...
Commits on Mar 6, 2012
  1. A new version of the ISO (v0.1.6.0) that includes the changes necessa…

    Tom McSweeney authored
    …ry to dynamically change the logging level using the new parameter that was just added to the Razor Server configuration file (mk_log_level). While this functionality was being added, also did a bit of refactoring of the RzMkConfigurationManager class to further encapsulate the details of how the current configuration is persisted and managed internally. Now maintain the current configuration state within this class, and provide attr_readers that can be used to get this information from other classes (rather than requiring that those classes understand the particulars of the configuration map passed from the Razor Server).
Commits on Mar 3, 2012
  1. refactored the codebase and the mechanism for storing the Microkernel…

    Tom McSweeney authored
    … Controller configuration in order to work in changes implemented in Razor to return a Microkernel Controller configuration as part of the "Checkin Response". Required changes to the Razor Microkernel Controller, the Razor Microkernel Web Server, and the mk_conf.yaml file itself (in order to add the code to process the configuration from the Checkin Response and to account for changes made to the configuration property names in order to keep them in a flatter model on the Razor Server side of things). Also moved the log-file location for the Microkernel Controller to the /var/log directory (to make it consistent with the Razor Microkernel Web Server's logfile location), added additional debugging output, and created a new "Configuration Manager" class (a singleton class that consolidates the common functionality needed in both the WEBrick server and the Microkernel Controller to check for changes in the Microkernel Configuration and save a new configuration to the mk_conf.yaml file). Finally, refactored the names of a number of classes/scripts so that the classes/scripts in the /usr/local/bin directory of the Microkernel all include a "rz_mk_" prefix at the front of their file names.
Commits on Feb 29, 2012
  1. Adding the following licensing text to all of the source-code in the …

    Tom McSweeney authored
    …project:
    
    EMC Confidential Information, protected under EMC Bilateral Non-Disclosure Agreement.
    Copyright © 2012 EMC Corporation, All Rights Reserved
  2. Latest version of the Razor Microkernel (v0.1.4.0); includes changes …

    Tom McSweeney authored
    …to fix the reboot action in the Microkernel Controller, shortening of the sleep interval between iterations (as a carry-over until we can get the push of configuration from Razor working properly), and removal of the "mk" prefix from Microkernel hostname when constructing a uuid for use in checkin/registration. Also added error handling to the main Microkernel Controller loop so that it would continue to run, even in the face of unexpected input from the Razor server (or complete failure of the Razor server). Finally, pulled in some of the files that we modified in the default Tiny Core Linux distribution in order to grab the "next-server" from the DHCP reply (the /etc/init.d/dhcp.sh script and the /usr/share/udhcpc/dhcp_mk_config.script file).
Commits on Feb 27, 2012
  1. Nicholas Weaver
  2. Nicholas Weaver

    first commit

    lynxbat authored
Something went wrong with that request. Please try again.