Skip to content
Commits on May 10, 2012
  1. Swapped initialization over from the /opt/bootlocal.sh script to the …

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

    …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)
    Tom McSweeney committed May 10, 2012
Commits on May 9, 2012
  1. Refactored the work from last night around dynamic loading of the TCL…

    … 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.
    Tom McSweeney committed May 9, 2012
  2. Refactored the previous version of the Microkernel to add a new WEBri…

    …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).
    Tom McSweeney committed May 8, 2012
Commits on May 8, 2012
  1. Added a quick change that restricts the installation of extensions so…

    … 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.
    Tom McSweeney committed May 8, 2012
  2. Last round of changes for initial release of the Microkernel that wil…

    …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.
    Tom McSweeney committed May 7, 2012
Commits on May 5, 2012
  1. First round of changes to make the Microkernel pull the kernel module…

    …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)
    Tom McSweeney committed May 4, 2012
Commits on May 3, 2012
  1. Changes to add the display of the Microkernel version as part of the …

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

    …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).
    Tom McSweeney committed May 1, 2012
Commits on Apr 30, 2012
  1. Removed the "bluepill" bundle from the Razor-Microkernel project (we …

    …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)
    Tom McSweeney committed Apr 30, 2012
  2. Changed the RzMkControlServer and RzMkRegistrationManager so that the…

    …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.
    Tom McSweeney committed Apr 30, 2012
Commits on Apr 21, 2012
  1. Fixed permissions in this file. Now the permissions for this file cor…

    …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)
    Tom McSweeney committed Apr 20, 2012
  2. Fixed bug in how single-disk machines were handled (in the case of a …

    …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)
    Tom McSweeney committed Apr 20, 2012
Commits on Apr 19, 2012
  1. Added a new script (load_kernel_modules.rb) to ensure that the proper…

    … 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).
    Tom McSweeney committed Apr 19, 2012
Commits on Apr 16, 2012
  1. Removed extraneous field (resources) from fields_to_include argument …

    …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)
    Tom McSweeney committed Apr 16, 2012
Commits on Apr 13, 2012
  1. Bug fixes that were the result of testing on physical hardware. Had t…

    …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.
    Tom McSweeney committed Apr 13, 2012
  2. Changed the way that the Microkernel represents the new "Hash Map" st…

    …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).
    Tom McSweeney committed Apr 12, 2012
Commits on Apr 11, 2012
  1. Last round of debugging and bug fixing. This is the version of the Ra…

    …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).
    Tom McSweeney committed Apr 11, 2012
  2. Added two more lshw commands (to gather facts about the system and th…

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

    …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.
    Tom McSweeney committed Apr 10, 2012
Commits on Mar 21, 2012
  1. Changed the structure of the YAML file built by this script a bit so …

    …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.
    Tom McSweeney committed Mar 20, 2012
Commits on Mar 20, 2012
  1. Added two new fields to the YAML file built by the build_iso_yaml.rb …

    …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)
    Tom McSweeney committed Mar 20, 2012
Commits on Mar 11, 2012
  1. Added the scripts used during the process of building the Razor Micro…

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

    …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...
    Tom McSweeney committed Mar 7, 2012
  2. Refactored the "utility classes" in order to place them into their ow…

    …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...
    Tom McSweeney committed Mar 7, 2012
  3. Refactored the "utility classes" in order to place them into their ow…

    …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...
    Tom McSweeney committed Mar 7, 2012
Commits on Mar 6, 2012
  1. A new version of the ISO (v0.1.6.0) that includes the changes necessa…

    …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).
    Tom McSweeney committed Mar 6, 2012
  2. Updating the README files to reflect the new Microkernel version (v0.…

    …1.5.0)
    Tom McSweeney committed Mar 5, 2012
Commits on Mar 3, 2012
  1. refactored the codebase and the mechanism for storing the Microkernel…

    … 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.
    Tom McSweeney committed Mar 3, 2012
Commits on Feb 29, 2012
  1. Adding the following licensing text to all of the source-code in the …

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

    …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).
    Tom McSweeney committed Feb 29, 2012
Commits on Feb 27, 2012
  1. @lynxbat
  2. @lynxbat

    first commit

    lynxbat committed Feb 27, 2012
Commits on Feb 26, 2012
  1. Added additional version number information to the README file and cl…

    …eaned up the README file a bit more.
    Tom McSweeney committed Feb 26, 2012
  2. Updating the README file (and breaking out part of it into a separate…

    … README2 file) to reflect the latest changes in this project (currently at v0.1.1.0)
    Tom McSweeney committed Feb 25, 2012
Something went wrong with that request. Please try again.