summaryrefslogtreecommitdiff
path: root/cloudinit/distros/__init__.py
AgeCommit message (Collapse)Author
2012-09-28Update the log statement used here to beJoshua Harlow
a little more relevant.
2012-09-28Dir should be 0755, not 0440Joshua Harlow
2012-09-28Ensure that the directory where the sudoersJoshua Harlow
file is being added actually exists before it is written into and ensure that the directory is included in the main sudoers file.
2012-09-28Sync with head and fix conflicts.Joshua Harlow
2012-09-28Rework the rest of the locations that usedJoshua Harlow
the previous 'user' and make those locations go through the new distros functions to select the default user or the user list (depending on usage). Adjust the tests to check the new 'default' field that signifies the default user + test the new method to extract just the default user from a normalized user dictionary.
2012-09-28rpm spec and rpm build, better handle case with no package_mirrorsJoshua Harlow
2012-09-28Also ensure that if mirror info is not invalidJoshua Harlow
before we start iterating over it (it could be sent is as none).
2012-09-28Stop the bad habit of using 'or'.Joshua Harlow
2012-09-25Allow package_mirrors to be non-existent.Joshua Harlow
2012-09-24Avoid rechecking if old users is availabile.Joshua Harlow
2012-09-24Handle the case where 'user' is defined but 'users' isn't.Joshua Harlow
2012-09-24Update to bring inline with trunk/head.Joshua Harlow
2012-09-24Refactor the ug normalization to take in a distroJoshua Harlow
and produce a user and group list. Clean this up to be simpler as well as handle the old 'user' case when it exists in configuration.
2012-09-24handle ifup on RH distros by iterating over 'ifup devname'Joshua Harlow
Fix the ifup so that if a list of devices is provided then each interface is brought up individually instead of using the '--all' which isn't on rhel. The default debian behavior will be to use this still though as it overrides the new bring up interfaces function for this case.
2012-09-23Make the normalization a module level functionJoshua Harlow
since it has little dependence on the distros class itself. Readjust the using code to use this new module level function instead.
2012-09-22Use 0440 permissions on sudoers, not 0644Garrett Holmstrom
2012-09-21Add in another helper that can understand the Joshua Harlow
'etc/hosts' format and add in a unit test to make sure that format can be correctly handled and added onto in a nice manner + update the distro code to use this new code instead of the previous function that did the same thing.
2012-09-21Fix some docs + pylint warnings + log on default created in the module.Joshua Harlow
2012-09-21Also allow the user list to come in as a commaJoshua Harlow
separated list so that its types match more of what the group list can be.
2012-09-211. Cleanup the user creation so that the distro class isJoshua Harlow
responsible only for creating users and groups and normalizing a input configuration into a normalized format that splits up the user list, the group list and the default user listsand let the add user/group config module handle calling those methods to add its own users/groups and the default user (if any). 2. Also add in tests for this normalization process to ensure that it is pretty bug free and works with the different types of formats that users/groups/defaults + options can take.
2012-09-20Use only util methods for reading/loading/appending/peekingJoshua Harlow
at files since it is likely soon that we will add a new way of adjusting the root of files read, also it is useful for debugging to track what is being read/written in a central fashion.
2012-09-20Remove the need to have 'default_user' andJoshua Harlow
'default_user_groups' groups be hard coded into the distro class, instead let that set of configuration be located in the config file where it should be specified instead.
2012-09-19Fix the ifup so that if a list of devices is providedJoshua Harlow
then each interface is brought up individually instead of using the '--all' which isn't on rhel. The default debian behavior will be to use this still though as it overrides the new bring up interfaces function for this case.
2012-09-18Add support for useradd --selinux-user''Garrett Holmstrom
2012-08-31- Converted user list to user dict to allow exclusion of the default userBen Howard
on Ubuntu systems via cloud-config (LP: #1041384). - Fixed bug with user creation on Ubuntu where the default user groups are not set properly (LP: #1044044). - Fixed documentation for user creation (LP: #1044508).
2012-08-22do not attempt the useradd command if user existsScott Moser
Previously we were only logging that the user existed and then still trying to run the command (which would raise error) As a result, none of the rest of the things would be done (sshimport id and such)
2012-08-22pep8 fixesScott Moser
2012-08-22fix duplicate flags being passed to useraddScott Moser
Fix bug here: adduser_cmd = ['useradd', name] x_adduser_cmd = adduser_cmd is different than x_adduser_cmd = ['useradd', name] The problem was they referenced the same list, and we were doubly appending.
2012-08-22distros: add_default_user is no longer abstractScott Moser
2012-08-22fix issues from 'make pylint'Scott Moser
In an effort to pylint errors about NonImlementedError and add_default_user, I moved this method to distro and genericized it. Now, assuming a sane 'create_user' for the distro, this should work. Also: * removed the unused set_configured_user method
2012-08-22fix errors from 'make pep8'Scott Moser
2012-08-22Merge with lp:cloud-initBen Howard
2012-08-22Simplified users[0] detection, and ensured compatability with previous user ↵Ben Howard
password control code
2012-08-22improve the check for "uses unknown key" in mirror templatesScott Moser
instead of substituting and then checking for presense of a unlikely to occur string, this only adds to the search list if there is no KeyError raised.
2012-08-22fix for pep8 issues and seemingly functional now.Scott Moser
2012-08-22merge from trunk for pep8 fixesScott Moser
2012-08-22fix pep8 complaints.Scott Moser
make pep8 now is silent on precise's pep8 ( 0.6.1-2ubuntu2).
2012-08-22rework package mirror selectionScott Moser
There are several changes here. * Datasource now has a 'availability_zone' getter. * get_package_mirror_info * Datasource convenience 'get_package_mirror_info' that calls the configured distro, and passes it the availability-zone * distro has a get_package_mirror_info method * get_package_mirror_info returns a dict that of name:mirror this is to facilitate use of 'security' and 'primary' archive. * this supports searching based on templates. Any template that references undefined values is skipped. These templates can contain 'availability_zone' (LP: #1037727) * distro's mirrors can be arch specific (LP: #1028501) * rename_apt_lists supports the "mirror_info" rather than single mirror * generate_sources_list supports mirror_info, and as a result, the ubuntu mirrors reference '$security' rather than security (LP: #1006963) * remove the DataSourceEc2 specific mirror selection, but instead rely on the above filtering, and the fact that 'ec2_region' is only defined if the availability_zone looks like a ec2 az.
2012-08-21Implemented MP feedback.Ben Howard
2012-08-20Added "userless" mode to cloud-init for handling the creation of theBen Howard
users and the default user on Ubuntu. cloudinit/config/cc_users_groups.py: new cloud-config module for creating users and groups on instance initialization. - Creates users and group - Sets "user" directive used in ssh_import_id cloudinit/config/cc_ssh_import_id.py: module will rely upon users_groups for setting the default user. Removed assumption of 'ubuntu' user. cloudinit/distros/__init__.py: Added new abstract methods for getting and creating the default user. cloudinit/distros/ubuntu.py: Defined abstract methods for getting and and creating the default 'ubuntu' user on Ubuntu instances. cloudinit/util.py: Added ability to hide command run through util.subp to prevent the commands from showing in the logs. Used by user_groups cloud-config module. config/cloud.cfg: Removed "user: ubuntu" directive and replaced with new user-less syntax. doc/examples/cloud-config.txt: Documented the creation of users and groups.
2012-06-29add update_package_sources to distro classScott Moser
Previously update_package_sources was a private class (_update_package_sources). The apt_update_upgrade class called it. It does make sense that things would want to call this independently of installing packages. Therefore, expose it as a non hidden method.
2012-06-21Updated so that the locale that is being written out currently in 'cc_locale'Joshua Harlow
now will be done by the distro classes (since its not the same for rhel and ubuntu). Remove the template also since it will just be created by the ubuntu distro class (its just one line).
2012-06-21Remove another unused importJoshua Harlow
2012-06-211. Move all info() logging methods to debug() harlowja
2. Adjust comment on sources list from depends 3. For the /etc/timezone 'writing', add a header that says created by cloud-init
2012-06-201. Add an importer function that will search for a given module in a set of ↵Joshua Harlow
search module 'prefixes' that also has a potential set of required attributes. 2. Use this new importer to find the distro class, the userdata handler modules, the config modules and the datasource modules, if none can be found error out accordingly.
2012-06-20Massive pylint + pep8 fixups!Joshua Harlow
2012-06-20Catch the import error rather than the runtime error.Joshua Harlow
2012-06-19More cleanups around read/write rootsJoshua Harlow
2012-06-18Include link to netcf library in the comment.Joshua Harlow
2012-06-16If bringing up, return whatever the bring up result is, otherwise false.Joshua Harlow